swapi_mcp
swapi_mcp
Un pequeño proyecto de referencia de extremo a extremo para construir un agente de IA observable: un servidor MCP que envuelve la Star Wars API, un agente Claude que lo maneja y una interfaz de chat web — todo instrumentado con OpenTelemetry y Grafana Cloud (trazas distribuidas, métricas RED, RUM de frontend y observabilidad de IA/agentes).
Existe para mostrar, en una única base de código ejecutable, cómo encajan las piezas — el límite de herramientas de MCP, el bucle de uso de herramientas del agente y el trazado de pila completa desde un clic en el navegador hasta una llamada HTTP upstream y de vuelta.
Qué hay aquí
Dos mitades que se comunican entre sí mediante MCP (stdio):
El servidor MCP (src/index.ts, src/tools/) — envuelve la Star Wars API como 18 herramientas en 6 recursos (people, planets, films, species, vehicles, starships): una search_, una get-all y una get-by-id por recurso. Es un mero proveedor de herramientas; no toma decisiones.
El agente (src/agent/) — el que toma las decisiones:
mcpClient.ts— lanza el servidor compilado a través de stdio y se conecta como cliente MCP.agent.ts— un bucle manual de uso de herramientas: envía la pregunta + las herramientas del servidor a Claude, ejecuta cada herramienta solicitada mediante MCP, devuelve los resultados y repite hasta terminar.main.ts— un punto de entrada de CLI.server.ts+public/index.html— un servidor HTTP y una interfaz de chat de una sola página.
Related MCP server: SWAPI MCP Server
Observabilidad
Todo lo siguiente es opcional y está controlado por variables de entorno — el agente funciona perfectamente sin nada de eso.
Trazado distribuido (OpenTelemetry → Tempo): una única traza abarca
browser → POST /ask → agent.turn → llm.request / tool.call → tool.execute → swapi.fetch, a través de tres servicios (swapi-web,swapi-agent,swapi-mcp-server). El contexto de la traza se propaga a través del límite de MCP mediante el_metade la petición.Métricas RED (→ Mimir): histogramas de tasa / errores / duración por herramienta y por llamada al LLM, además de un contador de uso de tokens para el coste, etiquetados con
model,erroryerror.type.RUM de frontend (Grafana Faro): Web Vitals, errores de JS y propagación de trazas del navegador al backend.
Observabilidad de IA / agentes (
@grafana/agent-o11y): generaciones de LLM normalizadas y ejecuciones de herramientas.Inyección de fallos de demostración (
src/chaos.ts): opcionalmente hace que un recurso devuelva un 503 simulado y que otro responda un 50% más lento, para que los paneles muestren señales reales de error y latencia.
Requisitos previos
Node.js 22+ (usa
--env-file)Yarn 4 (mediante Corepack)
Una clave de API de Anthropic (para el agente)
Una cuenta de Grafana Cloud (opcional — solo para las funciones de observabilidad)
Configuración
yarn install
yarn buildUsar el servidor MCP directamente (p. ej., Claude Desktop)
Apunta tu cliente MCP al servidor compilado:
{
"mcpServers": {
"swapi": { "command": "node", "args": ["/absolute/path/to/swapi_mcp/build/index.js"] }
}
}Ejecutar el agente
Crea un .env (ignorado por Git) con al menos tu clave de Anthropic:
ANTHROPIC_API_KEY=sk-ant-...Después:
yarn dev # build + serve the web UI at http://localhost:8787
yarn ask "Who is Luke's homeworld?" # one-shot CLIVariables de entorno
Variable | Propósito |
| Necesaria para el agente. |
| Modelo alternativo (por defecto |
| Puerto del servidor web (por defecto |
| Activan trazas + métricas OTLP hacia Grafana Cloud. |
| Activan el RUM de frontend de Grafana Faro (la URL del colector es pública por diseño). |
| Activan Grafana Agent Observability (el token necesita el alcance |
| Inyección de fallos de demostración (desactivada por defecto). |
Notas
Este es un proyecto de aprendizaje / demostración. Los datos provienen de un espejo estático de SWAPI, que modela asociaciones (un personaje "aparece en" una película), no acciones — por lo que las respuestas se formulan en consecuencia.
Licencia
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables searching characters, planets, and films from the Star Wars universe via the SWAPI API.4121ISC
- AlicenseNot gradedqualityBmaintenanceEnables LLMs and clients to search for Star Wars characters, planets, and films by exposing SWAPI as MCP tools.1MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for querying the Star Wars universe via the SWAPI API, providing access to characters, films, starships, vehicles, species, and planets.ISC
- FlicenseBqualityBmaintenanceA Model Context Protocol server that exposes Star Wars API data as MCP tools. It enables users to list available categories and retrieve character information.3140
Related MCP Connectors
SWAPI MCP — wraps the Star Wars API (swapi.dev, free, no auth)
Star Wars API (SWAPI) as a remote MCP server: films, people, planets, species, starships, vehicles.
Rick and Morty MCP — wraps the Rick and Morty API (free, no auth)
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/jasonwarta/swapi_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server