fastly-mcp
fastly-mcp
Un servidor Node.js Model Context Protocol para la API REST de Fastly. Admite transportes stdio y HTTP Streamable, identidades de usuario o cuenta con ámbito de tenant, configuración persistente de Postgres y secretos persistentes de Vault.
Garantías
Cada solicitud de Fastly utiliza la
Fastly-Keycon ámbito de usuario del llamante; no se configura ningún token compartido de Fastly en el proceso.El material del token se escribe únicamente en Vault en
fastly/tenants/<tenant>/{users|accounts}/<principal>/http/auth/token-index/fastly.La configuración no secreta utiliza la tabla de Postgres
fastly_config, con clave por tenant, tipo de principal, ID de principal y clave.Las mutaciones requieren
MCP_ADMIN_AUTH_KEYa través del parámetro de herramientaauthorizationKeycuando esa variable de entorno está configurada.service_api_requestadmite todos los métodos y rutas documentados de Fastly, incluidas las API añadidas después del lanzamiento de este servidor.
Related MCP server: Terros MCP Server
Herramientas
service_query_suggestion es un descubrimiento de esquema de solo lectura. Úselo cuando la intención o la ruta correcta de Fastly no estén claras; devuelve requisitos previos recomendados, comprobaciones de seguridad, esquemas de herramientas y ejemplos.
service_connection_info y service_scope_info son herramientas de descubrimiento de tiempo de ejecución y de tenant/cuenta de solo lectura. Úselas antes de un flujo de trabajo operativo.
service_health_check llama a GET /tokens/self con un token de usuario. fastly_list_services llama a GET /service. fastly_list_versions llama a GET /service/:service_id/version.
service_api_request es la vía de escape de cobertura completa. Acepta method, path, query opcional, body, headers y fastlyToken obligatorio. GET/HEAD son de solo lectura; POST/PUT/PATCH/DELETE son mutaciones y requieren authorizationKey cuando está configurado.
fastly_purge_service es de alto riesgo y llama a POST /service/:service_id/purge_all. Confirme el ID del servicio y use la clave de administrador. fastly_update_user_token es de alto riesgo y persiste un token de reemplazo en Vault; proporcione exactamente uno de userId o accountId, además de tenantId, fastlyToken y la clave de administrador.
Todas las respuestas contienen texto JSON con la forma { "ok": true, "status": 200, "data": {} }; los fallos establecen isError de MCP y devuelven { "ok": false, "status": 4xx, "error": "..." }. Los campos que parecen secretos se redactan de forma predeterminada.
Configuración
Copie .env.example a .env. Configure POSTGRES_*, VAULT_ADDR, VAULT_TOKEN o los ajustes de Vault Agent, y MCP_ADMIN_AUTH_KEY. TARGET_SERVICE_BASE_URL tiene como valor predeterminado https://api.fastly.com. Use MCP_TRANSPORT_MODE=stdio, http o both.
Ejecute las dependencias locales con docker compose up -d postgres vault, luego inicialice Vault según vault-production/README.md. Inicie el servidor con npm start, o use npm run start:http para HTTP. El endpoint HTTP tiene como valor predeterminado http://127.0.0.1:3000/mcp y requiere un token de portador.
Modo de servicios externos
Use docker-compose.external.yml cuando Fastly MCP se conecte a servicios externos de Vault y Postgres. Configure POSTGRES_HOST, VAULT_ADDR y las credenciales correspondientes antes de iniciar el servicio Compose solo de aplicación.
Inventario y pruebas
npm run inventory:generate obtiene el índice de referencia de la API de Fastly, o un documento JSON OpenAPI proporcionado por FASTLY_OPENAPI_URL, y escribe artifacts/fastly-openapi-endpoints.json. El artefacto se confirma y CI falla cuando la generación lo cambia.
npm test ejecuta las pruebas del cliente de Fastly, autorización de MCP, infraestructura de soporte de persistencia, HTTP y Vault. GitHub Actions ejecuta la generación de inventario antes del trabajo de pruebas.
Registro de cliente MCP
{
"mcpServers": {
"fastly-mcp": {
"command": "npm",
"args": ["run", "start:stdio"],
"cwd": "/Users/{user}/Documents/GitHub/fastly-mcp"
}
}
}Notas de desarrollo
La API de Fastly utiliza TLS 1.2 o posterior y aplica límites separados de lectura, escritura y purga. Evite escrituras concurrentes al mismo servicio. Nunca registre ni confirme valores de fastlyToken. Este proyecto se publica bajo la Licencia MIT; consulte LICENSE.
Maintenance
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables interaction with Slack workspaces as a user, supporting channel listing, message posting, threading, reactions, and user management via the Slack API.811MIT
- FlicenseAqualityNot gradedmaintenanceEnables interaction with the Terros platform's User API to manage and retrieve user profiles. Users can fetch authenticated account details, list users with filters, and lookup specific user information by ID.6
- FlicenseNot gradedqualityDmaintenanceProvides tools to interact with the Attio API, enabling management of resources in an Attio workspace.5
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Vercel API to manage deployments, domains, projects, and environment variables.1,774MIT
Related MCP Connectors
Access the Notra API for managing posts, brand identities, integrations, and schedules.
Issue, rotate and revoke scoped API-key passes for 25+ providers — the agent never sees a real key
34 production API tools over one hosted MCP endpoint.
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/LesterAJohn/fastly-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server