Skip to content

leonardopadilha/tutorial_typescript_swapi-mcp-server

Repository files navigation

🌟 MCP Star Wars API Server

TypeScript Node.js MCP

Um servidor Model Context Protocol (MCP) desenvolvido em TypeScript que integra a Star Wars API (SWAPI) com o Claude Desktop. Permite que você faça perguntas sobre o universo Star Wars e obtenha informações detalhadas sobre personagens, planetas, filmes e muito mais, diretamente através do Claude.

📖 Sobre o Projeto

Este projeto é baseado no tutorial "Do Zero ao MCP: Criando um Servidor Model Context Protocol com TypeScript e a API do Star Wars" da desenvolvedora Glaucia Lemos.

🎥 Recursos de Aprendizado

✨ Funcionalidades

🔧 Tools Disponíveis

Tool Descrição Exemplo de Uso
search_characters Busca personagens do Star Wars por nome "Busque informações sobre Luke Skywalker"
search_planets Busca planetas do Star Wars por nome "Encontre dados sobre Tatooine"
search_films Busca filmes do Star Wars por título "Procure pelo filme A New Hope"
get_character_by_id Obtém informações detalhadas de um personagem pelo ID "Busque o personagem com ID 4"

📚 Resources Disponíveis

Resource Descrição URI
all_films Lista todos os filmes da saga Star Wars ordenados por episódio swapi://films/all

🚀 Como Executar

Pré-requisitos

  • Node.js (versão 18 ou superior)
  • Claude Desktop instalado
  • npm ou yarn

1. Instalação

# Clone o repositório
git clone <seu-repositorio>
cd mcp_api_star_wars

# Instale as dependências
npm install

2. Compilação

# Compile o TypeScript
npm run build

# Ou use o modo watch para desenvolvimento
npm run watch

3. Configuração do Claude Desktop

Adicione a seguinte configuração ao seu arquivo claude_desktop_config.json:

{
  "mcpServers": {
    "swapi-mcp-server": {
      "command": "node",
      "args": [
        "C:\\caminho\\para\\seu\\projeto\\build\\index.js"
      ]
    }
  }
}

4. Teste com Inspector (Opcional)

# Teste o servidor MCP com o inspector
npm run inspector

5. Execução

# Execute o servidor
npm start

🏗️ Estrutura do Projeto

mcp_api_star_wars/
├── src/
│   ├── index.ts          # Servidor MCP + Lógica das Tools
│   └── types.ts          # Interfaces TypeScript (People, Planets, Films)
├── build/                # Arquivos JS compilados
├── package.json          # Dependências e scripts
├── tsconfig.json         # Configuração TypeScript
├── claude_desktop_config.json  # Configuração do MCP Client
└── README.md            # Este arquivo

🛠️ Tecnologias Utilizadas

📋 Exemplos de Uso

Após configurar o servidor, você pode fazer perguntas como:

Personagens

  • "Busque informações sobre Luke Skywalker"
  • "Encontre personagens com cabelo loiro"
  • "Mostre o personagem com ID 1"

Planetas

  • "Encontre dados sobre Tatooine"
  • "Busque planetas com clima árido"
  • "Mostre planetas com população maior que 1000000"

Filmes

  • "Procure pelo filme A New Hope"
  • "Mostre todos os filmes da saga"
  • "Encontre filmes dirigidos por George Lucas"

🔧 Scripts Disponíveis

npm run build      # Compila o TypeScript
npm run start      # Executa o servidor
npm run watch      # Compila em modo watch
npm run inspector  # Testa com MCP Inspector
npm run prepare    # Executa build antes de publicar

🤝 Contribuindo

  1. Faça um fork do projeto
  2. Crie uma branch para sua feature (git checkout -b feature/AmazingFeature)
  3. Commit suas mudanças (git commit -m 'Add some AmazingFeature')
  4. Push para a branch (git push origin feature/AmazingFeature)
  5. Abra um Pull Request

📝 Licença

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

🙏 Agradecimentos

🔗 Links Úteis


May the Force (and the Code) be with you! ⭐✨

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published