Servidor MCP (Model Context Protocol) para consultas ao universo Star Wars via SWAPI. Ideal para integrações, estudos e demonstrações de arquitetura em camadas com Node.js/TypeScript.
- Inspirado no projeto base do canal Código Fonte TV (veja créditos abaixo).
- Reimplementado para consumir a API pública SWAPI, trazendo informações sobre personagens, filmes, naves, veículos, espécies e planetas do universo Star Wars.
- Desenvolvido em Node.js/TypeScript, seguindo arquitetura em camadas (DDD):
- Domain: Modelos de domínio.
- Infrastructure: Serviços de integração com a SWAPI.
- Application: Lógica de negócio e formatação dos dados.
- Interface: Controladores MCP e validação de entrada.
- main.ts: Ponto de entrada do servidor MCP.
- Instale as dependências:
yarn install
- Faça o build do projeto:
yarn build
- Configure o
clientpara se comunicar com mcp-server, mais informações, clique aqui.
O servidor ficará disponível via stdio, pronto para receber requisições MCP.
Os principais scripts configurados no package.json para uso com Yarn são:
yarn build: Compila o projeto TypeScript para JavaScript na pastabuild/.yarn test: Executa os testes automatizados com Jest.
Você pode rodar os scripts assim:
yarn build # Compila o projeto
yarn test # Executa os testesA SWAPI é uma API REST aberta, sem autenticação, que fornece dados do universo Star Wars. Principais recursos disponíveis:
- People (
/people/): Personagens icônicos como Luke Skywalker, Darth Vader, etc. - Films (
/films/): Informações sobre os filmes da saga. - Starships (
/starships/): Naves espaciais. - Vehicles (
/vehicles/): Veículos terrestres e aéreos. - Species (
/species/): Espécies do universo Star Wars. - Planets (
/planets/): Planetas famosos como Tatooine, Hoth, Naboo, etc.
- Buscar um personagem:
curl https://swapi.bry.com.br/api/people/1/ # Retorna dados de Luke Skywalker - Buscar um planeta:
curl https://swapi.bry.com.br/api/planets/1/ # Retorna dados de Tatooine - Buscar por nome:
curl "https://swapi.bry.com.br/api/people/?search=leia" # Busca personagens com nome contendo 'leia'
Contribuições são bem-vindas! Para contribuir:
- Faça um fork do projeto
- Crie uma branch com sua feature ou correção
- Envie um pull request
- Abra issues para sugestões ou bugs
Distribuído sob a licença ISC. Veja o arquivo LICENSE para mais detalhes.
Este projeto foi baseado no exemplo do canal Código Fonte TV, adaptado para consumir a SWAPI.
Para mais detalhes sobre a SWAPI, acesse a documentação oficial.
Feito com ☕ por Gustavo Freitas. Dúvidas ou sugestões: LinkedIn