Skip to main content
Glama
glaucia86

Star Wars MCP Server

by glaucia86

🌟 Star Wars MCP Server

TypeScript Node.js MCP Star Wars API Claude Desktop

Um servidor MCP (Model Context Protocol) que fornece acesso à Star Wars API (SWAPI) através do Claude Desktop

📖 Sobre o Projeto

Este projeto é um servidor MCP desenvolvido em TypeScript que integra a Star Wars API (SWAPI) com o Claude Desktop. Ele 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.

Related MCP server: Pokemon MCP Server

✨ Funcionalidades

🔧 Tools Disponíveis

  • search_characters - Busca personagens do Star Wars por nome

  • search_planets - Busca planetas do Star Wars por nome

  • search_films - Busca filmes do Star Wars por título

  • get_character_by_id - Obtém informações detalhadas de um personagem pelo ID

📚 Resources Disponíveis

  • all_films - Lista todos os filmes da saga Star Wars ordenados por episódio

🚀 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 https://github.com/glaucia86/swapi-mcp-server-app.git

# Entre no diretório
cd swapi-mcp-server-app

# Instale as dependências
npm install

2. Compilação

# Compile o TypeScript
npm run build

3. Configuração do Claude Desktop

  1. Localize o arquivo de configuração:

    %APPDATA%\Claude\claude_desktop_config.json
  2. Adicione a configuração do servidor MCP:

    {
      "mcpServers": {
        "swapi-mcp-server": {
          "command": "node",
          "args": ["CAMINHO_COMPLETO/swapi-mcp-server-app/build/index.js"]
        }
      }
    }

    ⚠️ Importante: Substitua CAMINHO_COMPLETO pelo caminho absoluto para o seu projeto.

  3. Reinicie o Claude Desktop completamente

4. Verificação

O servidor será iniciado automaticamente pelo Claude Desktop. Você saberá que está funcionando quando conseguir fazer perguntas sobre Star Wars no Claude.

🧪 Testando com o Inspector

Para testar e debugar o servidor MCP, você pode usar o MCP Inspector:

# Execute o inspector
npm run inspector

O inspector abrirá em seu navegador onde você poderá:

  • Testar todos os tools individualmente

  • Verificar os resources disponíveis

  • Debugar problemas de conexão

  • Visualizar logs em tempo real

💬 Exemplos de Perguntas

Buscar Personagens

Busque informações sobre Luke Skywalker
Procure pelo personagem Darth Vader
Encontre dados sobre a Princesa Leia

Buscar Planetas

Encontre informações sobre o planeta Tatooine
Busque dados sobre Alderaan
Procure pelo planeta Hoth

Buscar Filmes

Procure pelo filme "A New Hope"
Busque informações sobre "The Empire Strikes Back"
Encontre dados do filme "Return of the Jedi"

Obter Personagem por ID

Obtenha informações do personagem com ID 1
Busque dados do personagem com ID 4

Listar Filmes

Liste todos os filmes de Star Wars
Mostre todos os filmes da saga Star Wars ordenados por episódio

📁 Estrutura do Projeto

swapi-mcp-server-app/
├── src/
│   ├── index.ts          # Servidor MCP principal
│   └── types.ts          # Definições de tipos TypeScript
├── build/                # Arquivos compilados
├── package.json          # Dependências e scripts
├── tsconfig.json         # Configuração do TypeScript
└── README.md             # Documentação

🛠 Scripts Disponíveis

  • npm run build - Compila o TypeScript

  • npm run watch - Compila em modo watch

  • npm run inspect - Executa o MCP Inspector para testes

🔍 Troubleshooting

O servidor não aparece no Claude Desktop

  1. Verifique se o caminho no arquivo de configuração está correto

  2. Certifique-se de que o arquivo build/index.js existe

  3. Reinicie o Claude Desktop completamente

  4. Verifique os logs em %APPDATA%\Claude\logs\mcp.log

Erros de compilação

  1. Execute npm install novamente

  2. Verifique se a versão do Node.js é compatível

  3. Execute npm run build e verifique se há erros

🤝 Contribuição

Contribuições são bem-vindas! Sinta-se à vontade para:

  1. Fazer fork do projeto

  2. Criar 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. Abrir um Pull Request

📝 Licença

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

👨‍💻 Autor

Glaucia Lemos

Twitter LinkedIn YouTube GitHub

🌟 Agradecimentos


May the Force be with you! ⭐

Available Tools

4 tools
get_character_by_idObter Personagem por IDB

Obtém informações detalhadas de um personagem pelo ID

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesID do personagem

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but only states it 'gets detailed information' without disclosing behavioral traits. It doesn't mention whether this is a read-only operation, potential error cases (e.g., invalid ID), rate limits, authentication needs, or what 'detailed information' entails. For a tool with zero annotation coverage, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence in Portuguese that directly states the tool's purpose without unnecessary words. It is appropriately sized and front-loaded, making it easy to understand quickly. Every part of the sentence contributes to clarifying the tool's function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (1 parameter, 100% schema coverage) but lack of annotations and output schema, the description is incomplete. It doesn't explain what 'informações detalhadas' includes in the return values, error handling, or other contextual details needed for effective use. For a tool with no output schema, more detail on returns is warranted.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the single parameter 'id' documented as 'ID do personagem'. The description adds no additional meaning beyond this, as it only repeats 'pelo ID'. According to guidelines, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Obtém' - gets) and resource ('personagem' - character) with the specific mechanism ('pelo ID' - by ID). It distinguishes from siblings like 'search_characters' by focusing on retrieval of a single character rather than searching. However, it doesn't specify what 'informações detalhadas' includes, keeping it from a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you have a specific character ID, contrasting with 'search_characters' for broader queries. However, it doesn't explicitly state when to use this tool versus alternatives or mention any prerequisites like ID format or existence. The guidance is present but not comprehensive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_charactersBuscar PersonagensC

Busca personagens do Star Wars por nome

ParametersJSON Schema
NameRequiredDescriptionDefault
searchYesNome do personagem para buscar

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the basic function without mentioning any behavioral traits like whether it returns partial matches, case sensitivity, pagination, rate limits, error conditions, or what the response format looks like. This leaves significant gaps in understanding how the tool behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise - a single sentence that directly states the tool's function without any unnecessary words. It's appropriately sized for a simple search tool and front-loads the essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a search tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what the tool returns (list of characters? partial information?), how results are structured, or any behavioral aspects. The agent would need to guess about the tool's behavior and output format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, so the schema already fully documents the single 'search' parameter. The description adds no additional parameter semantics beyond what's in the schema, maintaining the baseline score of 3 for adequate but not enhanced parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Busca' - search) and resource ('personagens do Star Wars' - Star Wars characters), making the purpose specific and understandable. However, it doesn't explicitly differentiate from the sibling tool 'get_character_by_id' which retrieves characters by ID rather than name search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention the sibling 'get_character_by_id' tool for ID-based retrieval, nor does it provide any context about when name search is appropriate versus other search tools like 'search_films' or 'search_planets'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_filmsBuscar FilmesC

Busca filmes do Star Wars por título

ParametersJSON Schema
NameRequiredDescriptionDefault
searchYesTítulo do filme para buscar

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It only states the basic function without mentioning any behavioral traits: no information about rate limits, authentication requirements, response format, pagination, error conditions, or what happens with no results. For a search tool with zero annotation coverage, this leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise - a single sentence in Portuguese that directly states the tool's function. There's zero wasted language, and the information is front-loaded. Every word earns its place, making this maximally efficient while still communicating the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete for effective tool use. While the purpose is clear, there's no information about what the tool returns (film objects, IDs, metadata), how results are structured, or any behavioral constraints. For a search tool that presumably returns data, the absence of output information creates significant uncertainty for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with the single parameter 'search' already documented as 'Título do filme para buscar'. The description adds no additional parameter semantics beyond what the schema provides - it doesn't clarify search syntax, case sensitivity, language support, or special characters. With complete schema coverage, the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Busca' - search) and resource ('filmes do Star Wars' - Star Wars films) with a specific scope ('por título' - by title). It distinguishes from sibling tools that search characters or planets, but doesn't explicitly differentiate from potential other film search tools. The purpose is specific but could be more precise about what makes this search unique.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. While it's clear this searches films while siblings search characters/planets, there's no mention of when to prefer this over other search methods, what types of searches it supports (exact match, partial, fuzzy), or any prerequisites for use. The context is implied but not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_planetsBuscar PlanetasC

Busca planetas do Star Wars por nome

ParametersJSON Schema
NameRequiredDescriptionDefault
searchYesNome do planeta para buscar

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the basic action (search by name) without mentioning what the search returns (e.g., list of planets, partial matches), how results are formatted, error conditions, or any rate limits. For a search tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence in Portuguese: 'Busca planetas do Star Wars por nome'. It's front-loaded with the core purpose, has zero wasted words, and is appropriately sized for a simple search tool with one parameter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (1 parameter, 100% schema coverage) but lack of annotations and output schema, the description is incomplete. It doesn't explain what the search returns (e.g., planet details, list of matches), how results are structured, or any behavioral nuances. For a search tool, this leaves the agent guessing about the output format and search behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the single parameter 'search' documented as 'Nome do planeta para buscar' (Name of the planet to search). The description adds no additional parameter semantics beyond what the schema provides, such as search syntax, case sensitivity, or wildcard support. With high schema coverage, the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Busca planetas do Star Wars por nome' (Searches Star Wars planets by name). It specifies the verb (busca/searches), resource (planetas/planets), and scope (Star Wars). However, it doesn't explicitly differentiate from sibling tools like search_characters or search_films, which follow similar patterns but target different resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like search_characters or search_films, nor does it explain when a planet search is appropriate versus character or film searches. There's no context about prerequisites, limitations, or typical use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 4 tool updatesv1.0.0
    • First observedget_character_by_id
    • First observedsearch_characters
    • First observedsearch_films
    • First observedsearch_planets

TDQS

B3.2/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: get_character_by_id retrieves a specific character by ID, search_characters searches characters by name, search_films searches films by title, and search_planets searches planets by name. There is no overlap or ambiguity between these functions.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case: get_character_by_id, search_characters, search_films, and search_planets. The naming is predictable and uniform throughout the set.

Tool Count3/5

With only 4 tools, the server feels thin for a Star Wars domain that includes characters, films, planets, species, starships, and vehicles. While the tools cover basic search and retrieval, the count is borderline low for comprehensive coverage.

Completeness2/5

The tool set has significant gaps: it lacks CRUD operations (e.g., no create, update, or delete), misses key resources like species and starships, and offers only search and get functions without lifecycle coverage. This will likely cause agent failures for broader tasks.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    Enables access to NASA space data and images through Claude Desktop, providing features like astronomy picture of the day, Mars rover photos, near-Earth object information, NASA image search, and Earth satellite imagery.
    5
    -
  • A
    license
    C
    quality
    D
    maintenance
    Enables users to access comprehensive Pokemon data through the PokeAPI, including Pokemon stats, types, descriptions, move details, and complete evolution chains. Allows Claude to answer Pokemon-related questions with detailed information about any Pokemon, their abilities, and evolutionary relationships.
    1
    18
    ISC

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/glaucia86/swapi-mcp-server-app'

If you have feedback or need assistance with the MCP directory API, please join our Discord server