Agente de IA inteligente que utiliza o Model Context Protocol (MCP) para consultar uma API sobre mecanismos de viagens interestelares em obras de ficção científica. O projeto demonstra uma arquitetura completa com API REST, servidor MCP e agente de IA conversacional.
| Tecnologia | Versão | Uso |
|---|---|---|
| Python | 3.8+ | Linguagem principal |
| FastAPI | 0.116.1 | Framework web |
| Uvicorn | 0.35.0 | Servidor ASGI |
| OpenAI | - | Modelo de linguagem |
| MCP | 1.26.0 | Model Context Protocol |
| FastMCP | 2.14.5 | Framework MCP |
| Strands Agents | 1.24.0 | Framework de agentes |
| Requests | 2.32.5 | Cliente HTTP |
Este projeto explora diferentes tecnologias de viagem interestelar presentes em obras clássicas de ficção científica como Star Wars, Star Trek, Duna, Fundação e Interestelar. O sistema permite que um agente de IA consulte informações sobre esses mecanismos de viagem através de um servidor MCP que se comunica com uma API REST.
- 🔍 Buscar viagens interestelares por ID, tipo ou obra
- 📚 Consultar informações sobre diferentes mecanismos FTL (Faster Than Light)
- 🤖 Interagir com um agente de IA que entende o contexto das viagens espaciais
- 🌐 API REST completa com arquitetura em camadas
- 🔌 Servidor MCP para integração com agentes de IA
interstellar_travel_mcp_ai_agent/
├── 🤖 ftl_agent/ # API do Agente de IA
├── 🖥️ ftl_app/ # Interface Web (Streamlit)
├── 🔌 ftl_travel_mcp_server/ # Servidor MCP
└── 🌐 interstellar_api/ # API REST de Dados
API REST que expõe o agente de IA conversacional através de endpoints HTTP. Processa perguntas sobre viagens interestelares e se comunica com o servidor MCP.
Responsabilidades:
- Expor endpoint HTTP para interação com o agente
- Processar perguntas dos usuários sobre viagens interestelares
- Comunicar-se com o servidor MCP para obter informações
- Gerar respostas contextualizadas e inteligentes
- Manter o contexto da conversa
Tecnologias:
FastAPI- Framework web para a APIstrands-agents[openai]- Framework para criação de agentes de IAstrands-agents-tools- Ferramentas auxiliares para agentesfastmcp- Cliente MCP para comunicação com o servidorpython-dotenv- Gerenciamento de variáveis de ambienteOpenAI- Modelo de linguagem para processamento
Arquitetura:
agent/- Implementação do agente de IA, LLM e promptsmodel/- Modelos de dados (ChatRequest, ChatResponse)route/- Rotas HTTP da APIservice/- Lógica de negócio do agenteapp.py- Aplicação FastAPI principal
Endpoint Disponível:
POST /api/interstellar/agent- Envia mensagens para o agente e recebe respostas- Body:
{"messages": [{"role": "user", "content": "sua pergunta"}]} - Response:
{"content": "resposta do agente"}
- Body:
Interface web interativa construída com Streamlit que permite aos usuários conversarem com o agente de IA através de um chat amigável.
Responsabilidades:
- Fornecer interface gráfica para interação com o agente
- Gerenciar histórico de conversas
- Fazer requisições HTTP para a API do agente
- Exibir respostas de forma formatada
Tecnologias:
Streamlit- Framework para criação de aplicações webrequests- Cliente HTTP para comunicação com a APIpython-dotenv- Gerenciamento de variáveis de ambiente
Funcionalidades:
- 💬 Chat interativo com histórico de mensagens
- 🎨 Interface amigável e responsiva
- ⚡ Comunicação em tempo real com o agente
- 🔄 Gerenciamento automático de sessão
Arquivos:
streamlit_app.py- Aplicação Streamlit principal.env- Configuração da URL da API do agenterequirements.txt- Dependências Python
O servidor MCP (Model Context Protocol) atua como uma ponte entre o agente de IA e a API REST, expondo ferramentas que o agente pode utilizar.
Responsabilidades:
- Expor ferramentas (tools) para o agente de IA
- Fazer requisições HTTP para a API REST
- Transformar dados da API em formato consumível pelo agente
- Gerenciar a comunicação via protocolo MCP
Tecnologias:
mcp- Implementação do Model Context Protocolfastmcp- Framework para criar servidores MCP rapidamenterequests- Cliente HTTP para comunicação com a APIpython-dotenv- Gerenciamento de variáveis de ambiente
Ferramentas Expostas:
get_db_schema()- Retorna estrutura do banco (IDs, tipos, obras)find_by_id(id)- Busca viagem por identificador únicofind_by_type(type)- Busca viagens por tipo (ex: "Warp Drive")find_by_work(work)- Busca viagens por obra (ex: "Star Wars")
Arquivos:
mcp_server.py- Servidor MCP com definição das ferramentasmcp_client.py- Cliente MCP para testesrequirements.txt- Dependências Python
API REST completa construída com FastAPI, seguindo arquitetura em camadas para organização e manutenibilidade.
Responsabilidades:
- Fornecer endpoints HTTP para consulta de dados
- Gerenciar o banco de dados JSON
- Implementar lógica de negócio
- Validar e serializar dados
Tecnologias:
FastAPI- Framework web moderno e rápidoUvicorn- Servidor ASGI de alta performancepython-dotenv- Gerenciamento de variáveis de ambiente
Arquitetura em Camadas:
Camada de persistência e acesso aos dados.
db.py- Inicialização e conexão com o bancointerstellar_db.json- Banco de dados JSON com informações das viagens
Modelos de dados e schemas Pydantic.
interstellar_model.py- Definição do modelo InterstellarTravelModel
Camada de acesso aos dados (Data Access Layer).
interstellar_repository.py- Queries e operações no banco de dados
Lógica de negócio da aplicação.
interstellar_service.py- Regras de negócio e orquestração
Definição dos endpoints da API.
interstellar_route.py- Rotas HTTP e controllers
Endpoints Disponíveis:
GET /api/interstellar/info- Retorna IDs, tipos e obras disponíveisGET /api/interstellar/id/{id}- Busca por ID específicoGET /api/interstellar/type/{type}- Busca por tipo de viagemGET /api/interstellar/work/{work}- Busca por obra de ficção
Arquivos:
app.py- Aplicação FastAPI principalrequirements.txt- Dependências Python
O banco de dados contém informações sobre tipos de viagens interestelares:
| ID | Tipo | Obra | Descrição |
|---|---|---|---|
duna_holtzman_foldspace |
Dobra do Espaço | Duna | Efeito Holtzman com Navegadores |
foundation_hyperspace_jump |
Salto pelo Hiperspaço | Fundação | Dimensão alternativa |
star_wars_hyperspace |
Hiperespaço | Star Wars | Dimensão paralela |
star_trek_warp_drive |
Warp Drive | Star Trek | Campo de dobra espacial |
interstellar_wormhole |
Buraco de Minhoca | Interestelar | Conexão espaço-temporal |
interstellar_relativistic_travel |
Viagem Relativística | Interestelar | Dilatação temporal |
- Python 3.8+
- pip
cd interstellar_api
pip install -r requirements.txt
uvicorn app:app --reload --port 8000A API estará disponível em http://localhost:8000
cd ftl_travel_mcp_server
pip install -r requirements.txt
# Configure o .env com:
# INTERSTELLAR_API_BASE_URL=http://localhost:8000/api/interstellar
# HOST=localhost
# PORT=3000
python mcp_server.pyO servidor MCP estará disponível em http://localhost:3000
cd ftl_agent
pip install -r requirements.txt
# Configure o .env com:
# OPENAI_KEY=sua-chave-aqui
# OPENAI_MODEL=gpt-4-mini
uvicorn app:app --reload --port 8001A API do agente estará disponível em http://localhost:8001
cd ftl_app
pip install -r requirements.txt
# Configure o .env com:
# AGENT_URL=http://localhost:8001
streamlit run streamlit_app.pyA interface web estará disponível em http://localhost:8501
ftl_agent/.env
OPENAI_KEY=sua-chave-openai
OPENAI_MODEL=gpt-4-miniftl_app/.env
AGENT_URL=http://localhost:8001ftl_travel_mcp_server/.env
INTERSTELLAR_API_BASE_URL=http://localhost:8000/api/interstellar
HOST=localhost
PORT=3000# Listar todas as informações disponíveis
curl http://localhost:8000/api/interstellar/info
# Buscar por obra
curl http://localhost:8000/api/interstellar/work/Star%20Wars
# Buscar por tipo
curl http://localhost:8000/api/interstellar/type/Warp%20Drivecurl -X POST http://localhost:8001/api/interstellar/agent \
-H "Content-Type: application/json" \
-d '{"messages": [{"role": "user", "content": "Me fale sobre Star Wars"}]}'Acesse http://localhost:8501 e converse com o agente:
Usuário: "Me fale sobre as viagens em Star Wars"
Agente: [Consulta o MCP e retorna informações sobre hiperespaço]
Usuário: "Qual a diferença entre Warp Drive e Hiperespaço?"
Agente: [Compara os dois mecanismos usando dados da API]
O MCP é um protocolo que permite que modelos de IA (como GPT-4) acessem ferramentas e dados externos de forma estruturada. Ele define como agentes de IA podem descobrir e usar ferramentas disponíveis.
- ✅ Padronização na comunicação entre IA e ferramentas
- ✅ Descoberta automática de capacidades
- ✅ Separação de responsabilidades
- ✅ Escalabilidade e manutenibilidade
A API segue o padrão de arquitetura em camadas:
- Route → Recebe requisições HTTP
- Service → Processa lógica de negócio
- Repository → Acessa dados
- Database → Armazena informações
Contribuições são bem-vindas! Sinta-se à vontade para:
- Adicionar novas viagens interestelares
- Melhorar a documentação
- Implementar novos endpoints
- Otimizar o código
Este projeto é de código aberto e está disponível para fins educacionais.
Inspirado nas obras de ficção científica:
- Duna - Frank Herbert
- Fundação - Isaac Asimov
- Star Wars - George Lucas
- Star Trek - Gene Roddenberry
- Interestelar - Christopher Nolan
Feito com ❤️ e ☕ para explorar o universo da ficção científica através da tecnologia!
