Skip to main content
Glama
johnqh

ShapeShyft API MCP Server

by johnqh

Servidor MCP de ShapeShyft API

Servidor MCP (Model Context Protocol) que describe y maneja la API de ShapeShyft — la plataforma de salida estructurada para LLM donde cada endpoint configurado se convierte en una URL REST que devuelve JSON conforme al esquema.

Proporciona a un asistente de IA cuatro cosas:

  • 61 herramientas que cubren todas las rutas de la API de ShapeShyft — entidades, claves de proveedor de LLM, proyectos, endpoints, analíticas, límites de tasa, almacenamiento, usuarios e invocación de IA.

  • 6 recursos de documentación que describen la propia API (visión general, rutas, modelo de datos, ejemplos prácticos, errores, proveedores) — legibles sin credenciales y sin llamada de red.

  • 3 plantillas de prompt para flujos de trabajo comunes: configurar un endpoint, depurarlo, auditar una entidad.

  • La habilidad /shapeshyft-endpoint — un flujo de trabajo guiado para construir, invocar, depurar y auditar endpoints, distribuido como un plugin de Claude Code.

Paquete: @sudobility/shapeshyft_api_mcp (BUSL-1.1)

Instalación

bun install

Related MCP server: Swagger MCP Server

Configuración

Obtener una clave

Crea una clave de API personal una vez, en shapeshyft.ai → Panel de control → Configuración → Claves de API personales → asígnale un nombre → Crear clave. Empieza con shyft_ y no caduca. Entrégasela al servidor y deja que la recuerde:

set_credentials({ apiKey: "shyft_...", persist: true })
// or, for an unattended agent that should act as the workspace:
set_credentials({ entityApiKey: "shyftent_...", persist: true })

Eso escribe ~/.shapeshyft/config.json (modo 0600), de modo que las sesiones posteriores comienzan autenticadas sin nada más que configurar.

Resolución de credenciales

Mayor prioridad primero:

  1. Un argumento de herramienta explícito (p. ej. apiKey en invoke_endpoint)

  2. Variables de entorno

  3. ~/.shapeshyft/config.json

Variable

¿Requerida?

Descripción

SHAPESHYFT_API_URL

No

URL base de la API. Por defecto https://api.shapeshyft.ai; usa http://localhost:3000 para desarrollo local

SHAPESHYFT_API_KEY

Para herramientas de admin

Clave de API personal (shyft_...) — preferida, nunca caduca

SHAPESHYFT_AUTH_TOKEN

Solo para crear/revelar claves

Token de ID de Firebase del usuario con sesión iniciada

SHAPESHYFT_PROJECT_API_KEY

Para herramientas de IA

Clave de API de proyecto (sk_live_...)

SHAPESHYFT_ENTITY_SLUG

No

Slug de entidad por defecto, para que las herramientas puedan omitir entitySlug

SHAPESHYFT_ORG_PATH

No

Ruta de organización por defecto en las URLs de IA (por defecto, el slug de entidad)

SHAPESHYFT_CONFIG_PATH

No

Sobrescribe la ubicación del archivo de configuración

El servidor arranca sin credenciales en absoluto — los recursos de documentación, el catálogo de proveedores y las comprobaciones de salud son públicos. Las herramientas que necesitan una credencial devuelven un error claro que indica cómo obtenerla.

Dos tipos de clave, trabajos diferentes. shyft_... es una clave personal que te autentica en las rutas de administración. sk_live_... es una clave de proyecto que permite a los llamadores invocar los endpoints de IA de un proyecto. Crear y revelar claves personales es lo único que una clave personal no puede hacer — eso necesita un token de ID de Firebase, para que una clave filtrada no pueda acuñar más.

Opción A: Instalar como plugin de Claude Code (recomendado)

Esto hace que las herramientas MCP, los recursos de documentación y la habilidad /shapeshyft-endpoint estén disponibles en cualquier proyecto.

# Register this repo as a marketplace, then install the plugin from it
claude plugin marketplace add /path/to/shapeshyft_api_mcp
claude plugin install shapeshyft@shapeshyft

Verifica con claude plugin details shapeshyft@shapeshyft, que lista la habilidad y el servidor MCP.

El plugin se instala como una copia en ~/.claude/plugins/cache/shapeshyft/, por lo que las ediciones en este repositorio no surten efecto hasta que actualices tanto el marketplace como el plugin:

claude plugin marketplace update shapeshyft
claude plugin update shapeshyft@shapeshyft

La copia incluye node_modules, así que ejecuta bun install aquí antes de instalar o actualizar — el servidor se ejecuta directamente desde src/index.ts.

El plugin está definido por:

  • .claude-plugin/plugin.json — metadatos del plugin

  • .claude-plugin/marketplace.json — entrada del marketplace

  • .mcp.json — declaración del servidor MCP (lee SHAPESHYFT_* de tu entorno)

  • skills/shapeshyft-endpoint/ — la habilidad /shapeshyft-endpoint

Opción B: Añadir el servidor MCP manualmente

Añade a .claude/settings.json (o .mcp.json):

{
  "mcpServers": {
    "shapeshyft-api": {
      "command": "bun",
      "args": ["run", "/path/to/shapeshyft_api_mcp/src/index.ts"]
    }
  }
}

No se necesitan credenciales en la configuración: ejecuta set_credentials({ apiKey, persist: true }) una vez y la clave vive en ~/.shapeshyft/config.json en lugar de un archivo de configuración que podría ser confirmado. Las variables de entorno siguen funcionando y tienen prioridad.

Herramientas

Documentación y salud

Herramienta

Propósito

describe_shapeshyft_api

Lee la documentación de la API incluida (overview, routes, data-model, examples, errors, providers)

get_configuration

Muestra la URL de API efectiva, los valores por defecto y qué credenciales están presentes (redactadas)

set_credentials

Establece la clave de API, el token, la clave de proyecto, la URL o los valores por defecto — con persist para guardarlos

clear_stored_credentials

Elimina los secretos guardados del archivo de configuración, conservando las preferencias

check_api_health

GET /health, o /health/ready para la comprobación de la base de datos

get_api_info

GET / — nombre, versión, estado

Identidad y claves de API personales

Herramienta

Propósito

get_current_user

GET /users/me — a quién pertenece la credencial actual y cómo se autenticó

list_api_keys, get_api_key

Metadatos de la clave (nunca el secreto)

create_api_key, reveal_api_key

Acuñar o releer una clave — se requiere token de Firebase

update_api_key

Renombrar, o is_active: false para pausar una clave de forma reversible

delete_api_key

Revocación permanente

Proveedores (públicos)

list_providers, get_provider, list_provider_models

Las entradas de modelos llevan capacidades (entrada de visión/audio/video, salida de medios, búsqueda web) y precios en céntimos — compruébalas antes de establecer un model en un endpoint.

Invocación de IA (clave de API de proyecto)

Herramienta

Propósito

invoke_endpoint

Ejecuta un endpoint → { output, usage, generated_media? }

preview_endpoint_prompt

Construye el prompt sin llamar al LLM — gratis, ideal para depurar

Entidades, miembros, invitaciones (autenticación de Firebase)

list_entities, get_entity, create_entity, update_entity, delete_entity, list_entity_members, update_member_role, remove_entity_member, list_entity_invitations, invite_member, renew_invitation, cancel_invitation, list_my_invitations, accept_invitation, decline_invitation

Claves de proveedor de LLM

list_llm_keys, get_llm_key, create_llm_key, update_llm_key, delete_llm_key

Proyectos

list_projects, get_project, create_project, update_project, delete_project, get_project_api_key, refresh_project_api_key

Endpoints

list_endpoints, get_endpoint, create_endpoint, update_endpoint, delete_endpoint

Analíticas, límites de tasa, almacenamiento, usuarios

get_analytics · get_rate_limits, get_rate_limit_history · get_storage_config, set_storage_config, update_storage_config, delete_storage_config · get_user_info, get_user_subscription, get_user_settings, update_user_settings

Recursos

URI

Contenidos

shapeshyft://api/overview

Arquitectura, jerarquía de objetos, esquemas de autenticación, ciclo de vida de invocación, límites

shapeshyft://api/routes

Cada ruta con método, autenticación, parámetros y respuesta

shapeshyft://api/data-model

Formas de objetos, niveles de límite de tasa, tablas de base de datos

shapeshyft://api/examples

Configuración de extremo a extremo, curl/TypeScript/Python, patrones de esquema, multimodal

shapeshyft://api/errors

Envoltura de errores, códigos de estado, resolución de problemas

shapeshyft://api/providers

Lista de proveedores, selección de modelos, pipeline multimodal, transcripción

Prompts

setup_structured_endpoint · debug_endpoint · audit_entity

Sesión de ejemplo

describe_shapeshyft_api({ section: "examples" })
list_entities()                                  -> entitySlug "acme"
create_llm_key({ key_name: "Prod Anthropic", provider: "anthropic", api_key: "sk-ant-..." })
create_project({ project_name: "support-tools", display_name: "Support Tools" })
create_endpoint({ projectId, endpoint_name: "classify-ticket", llm_key_id,
                  model: "claude-sonnet-4-6-20260217",
                  instructions: "Classify the ticket and judge sentiment.",
                  output_schema: { type: "object", properties: {
                    category:  { type: "string", enum: ["billing", "bug", "feature", "other"] },
                    sentiment: { type: "string", enum: ["positive", "neutral", "negative"] }
                  }, required: ["category", "sentiment"] } })
get_project_api_key({ projectId })
invoke_endpoint({ projectName: "support-tools", endpointName: "classify-ticket",
                  input: { text: "You billed me twice this month." } })
  -> { output: { category: "billing", sentiment: "negative" },
       usage: { tokens_input: 312, tokens_output: 18, latency_ms: 940,
                estimated_cost_cents: 0.11 } }

La habilidad /shapeshyft-endpoint

Instalada con el plugin, la habilidad enruta una solicitud a uno de cuatro flujos y comprueba las credenciales antes de tocar nada:

Flujo

Cubre

A — Construir

tarea → esquema de salida → clave de proveedor → modelo → proyecto → endpoint → invocación verificada

B — Invocar

resolver nombres, ejecutar entrada a través de un endpoint, informar salida más costo y latencia

C — Depurar

mapear 401/404/405/429 a una causa; corregir problemas de conformidad de esquema y calidad

D — Auditar

inventariar claves, proyectos y endpoints; revisar gasto, fallos y margen de cuota

Uso:

/shapeshyft-endpoint

O simplemente describe lo que quieres:

"Convierte este prompt de clasificación en una API" "Mi endpoint sigue devolviendo la categoría incorrecta" "¿Cuánto me están costando mis endpoints de ShapeShyft este mes?"

Referencias incluidas:

  • skills/shapeshyft-endpoint/references/creating-endpoints.md — referencia de campos de create_endpoint y seis recetas prácticas, cada una emparejando una carga útil de entrada con sus esquemas y respuesta

  • skills/shapeshyft-endpoint/references/schema-design.md — esquemas de salida que los modelos realmente satisfacen

  • skills/shapeshyft-endpoint/references/model-selection.md — elegir un proveedor y modelo según capacidades y precios

Desarrollo

bun run dev        # Run the server over stdio
bun run build      # Bundle to dist/index.js
bun run typecheck  # TypeScript check
bun run verify     # typecheck + build
bun run start      # Run the production bundle

Valida el plugin y la habilidad después de editarlos:

claude plugin validate .        # marketplace + plugin manifests
claude plugin validate skills   # skill frontmatter and structure

Estructura del proyecto

src/
├── index.ts            # Entry: env config, registration, stdio transport
├── client.ts           # HTTP client: auth-mode routing, envelope unwrapping
├── prompts.ts          # Prompt templates
├── resources/          # Embedded API documentation (resources + describe_shapeshyft_api)
└── tools/              # One module per route family

skills/
└── shapeshyft-endpoint/
    ├── SKILL.md                        # The /shapeshyft-endpoint skill
    └── references/
        ├── creating-endpoints.md       # create_endpoint recipes with payload examples
        ├── schema-design.md            # Output schema design guide
        └── model-selection.md          # Provider and model selection guide

.claude-plugin/         # plugin.json + marketplace.json
.mcp.json               # MCP server declaration used by the plugin

Arquitectura

AI assistant (Claude Code / Claude Desktop)
    ↕ stdio (MCP protocol)
ShapeShyft API MCP server (this project)
    ↕ HTTP / REST
ShapeShyft API (Hono on Bun, PostgreSQL)
    ↕
10 LLM providers (OpenAI, Anthropic, Gemini, Groq, Mistral, xAI, DeepSeek,
                  Perplexity, Cohere, LM Studio)

El servidor es un cliente HTTP ligero. Cada herramienta se asigna a una ruta REST, y la cabecera Authorization correcta se elige según la familia de rutas: un token de ID de Firebase para rutas de administración, la clave de API de proyecto para /api/v1/ai/*, nada para rutas públicas. Las respuestas se extraen de la envoltura { success, data, timestamp }; los fallos vuelven como errores de herramienta MCP que llevan el estado HTTP y cualquier details del proveedor.

Proyectos relacionados

  • shapeshyft_api — el backend Hono que este servidor envuelve

  • shapeshyft_types — definiciones de tipos TypeScript compartidas

  • shapeshyft_client — hooks de cliente de API para aplicaciones web/nativas

  • shapeshyft_lib — almacenes de lógica de negocio

  • shapeshyft_app — frontend web React

Licencia

BUSL-1.1

Tool Schema Changelog

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

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessNo issues

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

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/johnqh/shapeshyft_api_mcp'

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