tcc

Trabalho de Conclusão de Curso com título: Transformando APIs em Interfaces Conversacionais: Validação da Abordagem OpenAPI-MCP para Agentes Baseados em IA

https://github.com/castrozan/tcc

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (2.9%) to scientific vocabulary

Keywords

ia mcp research tcc
Last synced: 6 months ago · JSON representation ·

Repository

Trabalho de Conclusão de Curso com título: Transformando APIs em Interfaces Conversacionais: Validação da Abordagem OpenAPI-MCP para Agentes Baseados em IA

Basic Info
  • Host: GitHub
  • Owner: Castrozan
  • License: mit
  • Language: TypeScript
  • Default Branch: master
  • Homepage:
  • Size: 18.2 MB
Statistics
  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Topics
ia mcp research tcc
Created 12 months ago · Last pushed 6 months ago
Metadata Files
Readme License Citation

README.md

TCC - Transformando APIs em Interfaces Conversacionais

Ask DeepWiki <-- Converse com o projeto

Validação da Abordagem OpenAPI-MCP para Agentes Baseados em IA
Trabalho de Conclusão de Curso - Engenharia de Software
Autor: Lucas de Castro Zanoni | Orientador: Thyerri Fernandes Mezzari
Instituição: Centro Universitário UniSATC

🤖 Como Funciona o Sistema?

  • O usuário escreve algo como “quero buscar o equipamento 123”.
  • O modelo de linguagem entende a intenção.
  • A intenção é convertida pelo modelo de linguagem em chamadas de função.
  • A chamada de função é convertida em chamada de ferramentas MCP.
  • O cliente via protocolo MCP chama as ferramentas correspondentes a intenção do usuároo.
  • Nos servidores MCP a chamada é transformada em uma requisição HTTP real com base na especificação SWAGGER da aplicação destino.
  • A resposta da API é formatada e enviada de volta ao modelo de linguagem que interpreta e responde, como se fosse um bate-papo.

🎥 Demonstração

📖 Navegação Rápida

| 🎯 Seu Objetivo | 📋 Comece Aqui | ⏱️ Tempo | | --------------------------- | ---------------------------------------------------------------------- | ----------- | | Entender a pesquisa | 📚 Guia Rápido - Acadêmico | 5-15 min | | Usar a ferramenta | 💻 Guia Rápido - Desenvolvedor | 5-10 min | | Reproduzir experimentos | 🔬 Guia Rápido - Pesquisador | 20 min | | Avaliar comercialmente | 🏢 Guia Rápido - Empresa | 15 min | | Navegar documentação | 📚 Índice Completo | Referência |


📖 Sobre a Pesquisa

Este TCC investiga como especificações OpenAPI podem ser automaticamente convertidas em servidores MCP (Model Context Protocol), permitindo que modelos de linguagem de grande escala (LLMs) interajam com sistemas existentes através de interfaces conversacionais naturais.

🎯 Problema de Pesquisa

"Como a combinação da especificação OpenAPI com o protocolo MCP pode facilitar a integração eficiente e segura de agentes conversacionais baseados em IA com sistemas web existentes, contribuindo para a democratização do acesso a tecnologias complexas?"

🎯 Principais Objetivos

  • Desenvolver um gerador automático de servidores MCP a partir de especificações OpenAPI
  • Implementar um cliente de chat capaz de gerenciar múltiplos servidores MCP simultaneamente
  • Validar a abordagem através de testes experimentais rigorosos
  • Avaliar desempenho, segurança e experiência do usuário

🏆 Principais Contribuições Científicas

✅ Resultados Experimentais Validados

| Métrica | Resultado | Observações | | ------------------------------- | ------------------------------- | ----------------------------- | | Conversão OpenAPI→MCP | 100% sucesso (10/10 endpoints) | Automação completa | | Taxa de Sucesso Operacional | 100% (8/8 consultas) | Robustez funcional | | Experiência do Usuário | 4.0/5.0 | Satisfação geral | | Proteção de Segurança | 100% (16/16 ataques bloqueados) | Resistência a ataques básicos | | Tempo de Resposta Médio | 3.757ms | Variação: 1.335-5.823ms |

🔬 Inovações Técnicas

  1. Geração Automática de Ferramentas MCP: Conversão sistemática OpenAPI→MCP
  2. Orquestração Multi-Servidor: Coordenação inteligente de múltiplos servidores MCP
  3. Integração Padronizada: Ponte entre LLMs e APIs existentes
  4. Metodologia Reproduzível: Framework experimental com métricas objetivas

🏗️ Arquitetura da Solução

```mermaid graph TB UI[Interface do Usuário] CI[Chat Interface] AC[Agente Conversacional] LLM[LLM] AI[Analisador de Intenção] VR[Validador de Requisição] FR[Formatador de Resposta]

CamInt[Camada de Integração]
MCP[Servidor MCP]

Backend[Sistemas de Backend]
APIs[APIs Externas]

UI --> CI
CI --> AC
AC -.-> |Consulta do Usuário| LLM
LLM -.-> |Resposta em Linguagem Natural| AC
LLM --> |Intenção Estruturada| AI
AI --> VR
VR -.-> |Requisição Validada| CamInt
LLM --> |Resposta Formatada| FR
FR --> AC

CamInt --> MCP
MCP --> |Requisição HTTP| Backend
Backend --> APIs
APIs -.-> |Resultado da Operação| Backend
Backend -.-> MCP
MCP -.-> CamInt

```

🧩 Componentes Principais

1. Gerador Automático de Servidores MCP (mcp-openapi-server/)

  • Análise Sintática: Parser e validação de especificações OpenAPI 3.0+
  • Mapeamento Semântico: Conversão inteligente OpenAPI → ferramentas MCP
  • Geração de Ferramentas: Criação automática de servidores MCP funcionais
  • Transporte Dual: Suporte para stdio e HTTP

2. Cliente de Chat Multi-Servidor (chat-client/)

  • Interface Minimalista: Design padronizado para testes objetivos
  • Coordenação Distribuída: Gerenciamento de múltiplos servidores MCP
  • Descoberta Automática: Identificação dinâmica de ferramentas disponíveis
  • Testes E2E: Suite completa com Playwright

3. Aplicações de Teste (equipments-dummy-app/ & professionals-dummy-app/)

  • APIs RESTful: Implementações com Hono.js, TypeScript e PostgreSQL
  • Documentação OpenAPI: Especificações completas para validação
  • Cenários Reais: Simulação de sistemas empresariais

4. Framework de Validação

  • Testes Automatizados: Métricas de performance, segurança e UX
  • Red Teaming: Testes adversários para validação de segurança
  • Instrumentação: Coleta objetiva de dados experimentais

📚 Documentação Acadêmica

📄 Artigo Completo

📋 Documentação de Pesquisa

🔬 Metodologia Científica

  • Abordagem Experimental: Validação empírica com controle de variáveis
  • Métricas Objetivas: Performance, segurança e experiência do usuário
  • Testes Reproduzíveis: Framework automatizado para validação
  • Análise Estatística: Dados quantitativos com intervalos de confiança

🔄 Workflow de Desenvolvimento Acadêmico

📝 Por que este Workflow?

Este TCC foi desenvolvido seguindo um workflow orientado a código e versionamento, com várias vantagens:

  1. 📚 Versionamento Completo: Todo conteúdo (código + texto acadêmico) versionado com Git
  2. ✍️ Markdown + LaTeX: Facilidade de escrita + poder de formatação acadêmica
  3. 🔗 Gestão de Referências: BibTeX para consistência bibliográfica
  4. ⚙️ Automação: Scripts para conversão Markdown → LaTeX → PDF
  5. 🔧 Integração: Código e documentação no mesmo repositório
  6. 🔁 Reprodutibilidade: Qualquer pessoa pode reproduzir o ambiente
  7. 👥 Colaboração: Formato texto facilita revisões e sugestões

📁 Estrutura do Projeto

TCC/ ├── 📄 README.md # Este arquivo ├── 📄 pre-projeto.md # Proposta inicial da pesquisa ├── 📄 CITATION.md # Formatos de citação ├── 📄 DOCUMENTATION_INDEX.md # Índice completo da documentação ├── 📄 QUICK_START.md # Guias de início rápido ├── 📄 RESEARCH_SUMMARY.md # Resumo executivo da pesquisa ├── 🛠️ Makefile # Comandos de automação │ ├── 📚 article/ # Documentação acadêmica │ ├── 📖 article.md # Artigo principal (fonte) │ ├── 📄 article.pdf # Artigo final compilado │ ├── 📚 references.bib # Referências bibliográficas │ ├── 🖼️ images/ # Figuras e diagramas │ └── ⚙️ Makefile # Compilação LaTeX │ ├── 🤖 mcp-openapi-server/ # Gerador automático MCP │ ├── 📦 package.json # Dependências e scripts │ ├── 🔧 src/ # Código fonte │ ├── 🧪 test/ # Testes unitários │ └── 📖 README.md # Documentação técnica │ ├── 💬 chat-client/ # Cliente multi-servidor │ ├── 🌐 chat.html # Interface web │ ├── ⚙️ backend-server.js # Servidor backend │ ├── 📦 package.json # Scripts específicos do sistema │ ├── 🧪 tests/ # Testes E2E (Playwright) │ └── 📊 test-results/ # Resultados experimentais │ ├── 🏭 equipments-dummy-app/ # App teste - Equipamentos │ ├── 📦 package.json # Scripts e dependências │ └── 🔧 src/ # API REST Hono.js + TypeScript │ ├── 👥 professionals-dummy-app/ # App teste - Profissionais │ ├── 📦 package.json # Scripts e dependências │ └── 🔧 src/ # API REST Hono.js + TypeScript │ └── 🔖 bookmarks/ # Pesquisa organizada ├── 📚 bookmarks.json # Links de referência └── 💾 save-bookmarks.sh # Script de backup


📚 Citação Acadêmica

📄 BibTeX Format

bibtex @mastersthesis{zanoni2025openapi, title = {Transformando APIs em Interfaces Conversacionais: Validação da Abordagem OpenAPI-MCP para Agentes Baseados em IA}, author = {Zanoni, Lucas de Castro}, school = {Centro Universitário UniSATC}, year = {2025}, type = {Trabalho de Conclusão de Curso}, program = {Engenharia de Software}, address = {Criciúma, SC, Brasil}, url = {https://github.com/Castrozan/TCC} }

📋 Outros formatos (ABNT, APA, IEEE): CITATION.md


👤 Autor & Contato

Lucas de Castro Zanoni
📧 castro [dot] lucas290 [at] gmail [dot] com
🐙 @Castrozan
🎓 Graduando em Engenharia de Software - UniSATC

Orientador: Prof. Thyerri Fernandes Mezzari
📧 thyerri [dot] mezzari [at] satc [dot] edu [dot] br


📄 Licença

Este projeto está sob a licença MIT. Veja o arquivo LICENSE para detalhes.

Owner

  • Name: Lucas Zanoni
  • Login: Castrozan
  • Kind: user

Citation (CITATION.md)

# 📚 Como Citar Este Trabalho

## 📄 BibTeX Format

```bibtex
@mastersthesis{zanoni2025openapi,
  title = {Transformando APIs em Interfaces Conversacionais: Validação da Abordagem OpenAPI-MCP para Agentes Baseados em IA},
  author = {Zanoni, Lucas de Castro},
  school = {Centro Universitário UniSATC},
  year = {2025},
  type = {Trabalho de Conclusão de Curso},
  program = {Engenharia de Software},
  address = {Criciúma, SC, Brasil},
  url = {https://github.com/Castrozan/TCC},
  note = {Disponível em: \url{https://github.com/Castrozan/TCC}},
  keywords = {agente conversacional baseado em IA, integração de sistemas, inteligência artificial, OpenAPI, Model Context Protocol, segurança, usabilidade}
}
```

## 📖 Formato ABNT (Brasileiro)

**ZANONI, Lucas de Castro**. *Transformando APIs em Interfaces Conversacionais: Validação da Abordagem OpenAPI-MCP para Agentes Baseados em IA*. 2025. 23 f. Trabalho de Conclusão de Curso (Bacharelado em Engenharia de Software) - Centro Universitário UniSATC, Criciúma, 2025. Disponível em: https://github.com/Castrozan/TCC. Acesso em: [data de acesso].

## 🌍 Formato APA

Zanoni, L. C. (2025). *Transformando APIs em interfaces conversacionais: Validação da abordagem OpenAPI-MCP para agentes baseados em IA* [Trabalho de Conclusão de Curso, Centro Universitário UniSATC]. GitHub. https://github.com/Castrozan/TCC

## 📝 Formato IEEE

L. C. Zanoni, "Transformando APIs em Interfaces Conversacionais: Validação da Abordagem OpenAPI-MCP para Agentes Baseados em IA," Trabalho de Conclusão de Curso, Centro Universitário UniSATC, Criciúma, Brasil, 2025. [Online]. Available: https://github.com/Castrozan/TCC

## 🔬 Para Citação de Componentes Específicos

### Gerador MCP OpenAPI
```bibtex
@misc{zanoni2025generator,
  title = {OpenAPI MCP Server Generator},
  author = {Zanoni, Lucas de Castro},
  year = {2025},
  howpublished = {\url{https://github.com/Castrozan/TCC/tree/main/mcp-openapi-server}},
  note = {Componente do TCC: Transformando APIs em Interfaces Conversacionais}
}
```

### Cliente de Chat Multi-Servidor
```bibtex
@misc{zanoni2025client,
  title = {Multi-Server MCP Chat Client},
  author = {Zanoni, Lucas de Castro},
  year = {2025},
  howpublished = {\url{https://github.com/Castrozan/TCC/tree/main/chat-client}},
  note = {Componente do TCC: Transformando APIs em Interfaces Conversacionais}
}
```

### Dataset Experimental
```bibtex
@misc{zanoni2025dataset,
  title = {OpenAPI-MCP Integration Experimental Dataset},
  author = {Zanoni, Lucas de Castro},
  year = {2025},
  howpublished = {\url{https://github.com/Castrozan/TCC/tree/main/chat-client/test-results}},
  note = {Dados experimentais do TCC: Transformando APIs em Interfaces Conversacionais}
}
```

## 📊 Dados Experimentais

Se você está citando especificamente os resultados experimentais, inclua estas informações:

- **Período de Coleta**: Janeiro 2025
- **Ambiente de Teste**: Node.js 20+, Playwright, OpenAI GPT-4
- **Métricas Coletadas**: Performance, Segurança, Experiência do Usuário
- **Cenários Testados**: 8 consultas, 16 ataques de segurança, 10 endpoints OpenAPI

## 🎯 Palavras-Chave Sugeridas

Para trabalhos relacionados, considere usar estas palavras-chave:

**Português**: agente conversacional, inteligência artificial, OpenAPI, Model Context Protocol, integração de sistemas, segurança, usabilidade, automação, democratização tecnológica

**English**: conversational agent, artificial intelligence, OpenAPI, Model Context Protocol, systems integration, security, usability, automation, technology democratization

## 📄 Licença para Citação

Este trabalho está disponível sob licença MIT, permitindo uso acadêmico e comercial com atribuição apropriada. Veja [LICENSE](LICENSE) para detalhes completos.

## 📞 Contato para Citação

Para questões sobre citação ou uso acadêmico:

**Autor**: Lucas de Castro Zanoni  
📧 castro.lucas290@gmail.com

**Orientador**: Prof. Thyerri Fernandes Mezzari  
📧 thyerri.mezzari@satc.edu.br

---

*Esta página é atualizada conforme padrões acadêmicos e feedback da comunidade científica.* 

GitHub Events

Total
  • Watch event: 1
  • Delete event: 2
  • Push event: 153
  • Public event: 1
  • Create event: 2
Last Year
  • Watch event: 1
  • Delete event: 2
  • Push event: 153
  • Public event: 1
  • Create event: 2

Dependencies

mcp-server-manager-app/Dockerfile docker
  • node 22 build
mcp-server-manager-app/alpha-server/Dockerfile docker
  • node 22 build
mcp-server-manager-app/alpha-server/docker-compose.yml docker
mcp-server-manager-app/docker-compose.yml docker
mcp-server-manager-app/alpha-server/package-lock.json npm
  • 108 dependencies
mcp-server-manager-app/alpha-server/package.json npm
  • @types/node ^22.13.10 development
  • typescript ^5.8.2 development
  • @modelcontextprotocol/sdk ^1.7.0
  • express ^4.21.2
  • zod ^3.24.2
mcp-server-manager-app/package-lock.json npm
  • 627 dependencies
mcp-server-manager-app/package.json npm
  • @eslint/js ^9.19.0 development
  • @types/express ^5.0.0 development
  • @types/express-http-proxy ^1.6.6 development
  • @types/jest ^29.5.14 development
  • @types/node ^22.10.2 development
  • @types/supertest ^6.0.2 development
  • @typescript-eslint/eslint-plugin ^8.21.0 development
  • @typescript-eslint/parser ^8.21.0 development
  • eslint ^9.19.0 development
  • eslint-config-prettier ^10.0.1 development
  • eslint-plugin-import ^2.31.0 development
  • eslint-plugin-prettier ^5.2.3 development
  • jest ^29.7.0 development
  • prettier ^3.4.2 development
  • supertest ^7.0.0 development
  • ts-jest ^29.2.5 development
  • tsx ^4.19.2 development
  • typescript ^5.7.2 development
  • typescript-eslint ^8.21.0 development
  • @modelcontextprotocol/sdk latest
  • dotenv ^16.4.7
  • express ^4.21.2
  • express-http-proxy ^2.1.1
  • express-validator ^7.2.1
  • redis ^4.7.0
  • zod ^3.22.4
mcp/weather/pyproject.toml pypi
  • httpx >=0.28.1
  • mcp [cli]>=1.4.1
mcp/weather/uv.lock pypi
  • annotated-types 0.7.0
  • anyio 4.8.0
  • certifi 2025.1.31
  • click 8.1.8
  • colorama 0.4.6
  • h11 0.14.0
  • httpcore 1.0.7
  • httpx 0.28.1
  • httpx-sse 0.4.0
  • idna 3.10
  • markdown-it-py 3.0.0
  • mcp 1.4.1
  • mdurl 0.1.2
  • pydantic 2.10.6
  • pydantic-core 2.27.2
  • pydantic-settings 2.8.1
  • pygments 2.19.1
  • python-dotenv 1.0.1
  • rich 13.9.4
  • shellingham 1.5.4
  • sniffio 1.3.1
  • sse-starlette 2.2.1
  • starlette 0.46.1
  • typer 0.15.2
  • typing-extensions 4.12.2
  • uvicorn 0.34.0
  • weather 0.1.0