symfony-agent-mcp
symfony-agent-mcp
Características • Inicio rápido • Integración • Uso • Documentación • Contribuir • Licencia
Un servidor Model Context Protocol (MCP) listo para producción para aplicaciones Symfony. Proporciona a los asistentes de IA una introspección profunda y de solo lectura de todo tu código Symfony: rutas, controladores, servicios, entidades, esquema de base de datos, migraciones, eventos, formularios, seguridad, Doctrine, Messenger, Twig, API Platform y mucho más.
Cliente | Instalación |
Claude Code | Ejecuta |
Claude Desktop | Añade a |
Cursor | Añade a |
VS Code Copilot | Añade a |
Cualquier cliente MCP | transporte stdio, |
Características
1,679 herramientas en 16 categorías
Available tool categories (16 categories, 1,679 tools total, ~164,729 tokens if all active)
Category │ Tools │ Est. tokens │ Description
─────────────────┼────────────┼────────────────┼────────────────────────────────────────────────────────
symfony-core │ 549 tools │ ~ 53995 tokens │ Routes, services, controllers, events, commands, bundles, DI container, kernel
database │ 176 tools │ ~ 17121 tokens │ Entities, migrations, Doctrine ORM, relationships, query patterns, indexes, DBAL
security │ 133 tools │ ~ 13008 tokens │ Voters, firewalls, authenticators, JWT, OAuth, CSRF, access control, secrets vault
frontend │ 121 tools │ ~ 11568 tokens │ Twig, translations, asset mapper, Symfony UX, Turbo, live components, Webpack
testing │ 110 tools │ ~ 10559 tokens │ PHPUnit, Behat, Cypress, Playwright, Psalm, PHPStan, Rector, static analysis
integrations │ 106 tools │ ~ 10939 tokens │ Stripe, Slack, Sentry, Elasticsearch, Twilio, SendGrid, Mailgun, Datadog, OpenAI
serializer │ 91 tools │ ~ 9031 tokens │ Serializer, validation, forms, constraints, DTOs, transformers, normalizers
messaging │ 87 tools │ ~ 8455 tokens │ Messenger, notifier, webhooks, Mercure, mailer, transports, stamps, failure handling
api │ 68 tools │ ~ 6438 tokens │ API Platform, OpenAPI, GraphQL, REST patterns, versioning, rate limits, Nelmio
infrastructure │ 68 tools │ ~ 6794 tokens │ Docker, CI/CD, Kubernetes, Terraform, Helm, Nginx, serverless, cloud platforms
cache-sessions │ 62 tools │ ~ 5945 tokens │ Cache pools, HTTP cache, sessions, rate limiter, lock, cache warmers, OPcache
config │ 35 tools │ ~ 3157 tokens │ Environment config, framework settings, Monolog, CORS, locale, feature flags
code-quality │ 25 tools │ ~ 2447 tokens │ Profiler, dead code detection, dependency graph, accessibility, code metrics
cloud-aws │ 18 tools │ ~ 1945 tokens │ AWS S3, SES, Cognito, ECS, Lambda/Bref, Parameter Store, Secrets Manager, CloudFront
cloud-other │ 16 tools │ ~ 1851 tokens │ Azure Blob/Pipelines, Google Cloud Run/Storage, Firebase, DigitalOcean, Consul
queues │ 14 tools │ ~ 1476 tokens │ RabbitMQ, Kafka, SQS FIFO/DLQ, Pusher, Redis pub/sub and streams
To activate a category: call activate_category(category: "<key>")
To search for specific tools: call search_tools(query: "what you want to do")Diseño con seguridad ante todo
Solo lectura — nunca escribe, modifica ni ejecuta nada
Redacción automática — las contraseñas, tokens, claves API y credenciales de base de datos se reemplazan con
[REDACTED]antes de que cualquier dato llegue a la IACanalización DLP — escáner de prevención de pérdida de datos multicapa (patrones regex + detección estructural de tarjetas de crédito, JWT, claves SSH, credenciales de nube, etc.)
Validación de rutas — los ataques de traversal de directorios se bloquean en la capa de entrada
Sin ejecución de código — los archivos PHP se analizan estáticamente (sin
eval, sin runtime de PHP)Sin llamadas de red — todos los datos provienen solo de archivos locales
Filtro de inyección de prompts — la salida de las herramientas se escanea en busca de patrones de inyección antes de enviarse a la IA
Related MCP server: phpustik MCP Server
Inicio rápido
Opción A: npx (sin instalación requerida)
npx @shakaran/symfony-agent-mcpOpción B: Instalación global
npm install -g @shakaran/symfony-agent-mcp
symfony-agent-mcpOpción C: Desde el código fuente
git clone https://github.com/shakaran/symfony-agent-mcp
cd symfony-agent-mcp
pnpm install
pnpm build
pnpm startConsulta GETTING_STARTED.md para una guía paso a paso que incluye configuración de Node.js, solución de problemas y verificación del primer uso.
Integración
Instalación con un clic
Cliente | Instalación |
Cursor | |
VS Code | |
VS Code Insiders | |
Windsurf | |
Claude Code | |
Claude Desktop |
Claude Code
Ejecuta una vez para registrar el servidor:
# npx (no local install required)
claude mcp add symfony -- npx @shakaran/symfony-agent-mcp
# Or from a local source build
claude mcp add symfony -- node /path/to/symfony-agent-mcp/dist/server.jsPara que esté disponible globalmente en todos los proyectos, añade la bandera --scope user:
claude mcp add --scope user symfony -- npx @shakaran/symfony-agent-mcpClaude Desktop
Añade a tu archivo de configuración de Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"symfony": {
"command": "npx",
"args": ["@shakaran/symfony-agent-mcp"]
}
}
}Cursor
Añade a .cursor/mcp.json:
{
"symfony": {
"command": "npx",
"args": ["@shakaran/symfony-agent-mcp"]
}
}VS Code Copilot
Añade a .vscode/mcp.json:
{
"servers": {
"symfony": {
"type": "stdio",
"command": "npx",
"args": ["@shakaran/symfony-agent-mcp"]
}
}
}Uso
Cada herramienta acepta un parámetro app_path que apunta a la raíz de tu aplicación Symfony:
list_routes(app_path: "/var/www/myapp")
→ Found 42 routes: GET /api/users [api_users], POST /login [app_login], …
get_entity_details(app_path: "/var/www/myapp", entity_name: "User")
→ Entity: User | Table: users
Properties: id (int, PK), email (string 180), isActive (bool)
Relationships: OneToMany → Post (author)
get_error_summary(app_path: "/var/www/myapp")
→ Last 24h: 3 CRITICAL, 12 ERROR, 47 WARNING
get_code_quality_report(app_path: "/var/www/myapp")
→ God classes: UserManager (1240 lines), dead services: 4, N+1 risks: 7Ejemplos de prompts que puedes usar con Claude:
"Muéstrame todas las rutas con métodos POST y sus controladores"
"¿Qué servicios están etiquetados con
doctrine.event_listener?""Lista las últimas 50 líneas del registro de producción"
"¿Hay dependencias circulares en el contenedor de servicios?"
"¿Qué entidades de Doctrine tienen relaciones con User?"
"Muéstrame el historial de migraciones y cualquier migración destructiva"
"¿Qué controladores no tienen atributos de seguridad?"
Configuración
Toda la configuración se realiza mediante variables de entorno pasadas al proceso del servidor MCP.
Descubrimiento de herramientas
Variable | Por defecto | Descripción |
|
| Habilita el descubrimiento dinámico de herramientas. Cuando es |
|
| Máximo de tokens estimados que se pueden activar por sesión. La activación se bloquea cuando se excedería este límite; pasa |
Seguridad y acceso
Variable | Por defecto | Descripción |
| (cualquiera) | Lista separada por dos puntos de rutas absolutas de aplicaciones que el servidor puede inspeccionar. Ejemplo: |
|
| Establece a |
| (todas) | Lista blanca separada por comas de nombres de herramientas. Solo las herramientas listadas son invocables. |
| (ninguna) | Lista negra separada por comas. Tiene prioridad sobre la lista blanca. |
| (desactivado) | Secreto de 32+ caracteres para la firma de solicitudes. Habilita la autenticación por solicitud. |
| (desactivado) | Secreto para la generación de tokens de sesión. |
| (desactivado) | Token para validar en las solicitudes entrantes. |
|
| Establece a |
|
| Ventana de validez del token de sesión en segundos. |
Limitación de velocidad
Variable | Por defecto | Descripción |
|
| Máximo de solicitudes por ventana. Establece a |
|
| Ventana de límite de velocidad en milisegundos (1 minuto). |
|
| Máximo de solicitudes ráfaga en 1 segundo. |
Transporte
Variable | Por defecto | Descripción |
| (desactivado) | Puerto para el transporte HTTP/SSE. Cuando se establece, inicia un servidor HTTP además de stdio. |
|
| Establece a |
|
| Tiempo de espera de ejecución por herramienta en milisegundos. |
Ejemplo: Claude Code con herramientas dinámicas deshabilitadas
{
"mcpServers": {
"symfony": {
"command": "npx",
"args": ["@shakaran/symfony-agent-mcp"],
"env": {
"SYMFONY_MCP_DYNAMIC_TOOLS": "false"
}
}
}
}Ejemplo: presupuesto de tokens aumentado a 80 000 tokens
{
"mcpServers": {
"symfony": {
"command": "node",
"args": ["/path/to/symfony-agent-mcp/dist/server.js"],
"env": {
"SYMFONY_MCP_TOKEN_BUDGET": "80000"
}
}
}
}Instalación local (desde el código fuente)
Usa esto cuando quieras ejecutar el servidor desde un clon local (no se necesita publicación npm).
# 1. Clone the repo
git clone https://github.com/shakaran/symfony-agent-mcp
cd symfony-agent-mcp
# 2. Install dependencies (Node.js ≥ 22 required)
pnpm install # or: npm install
# 3. Build TypeScript → dist/
pnpm build # or: npm run build
# 4. Test the server responds
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | node dist/server.jsLuego configura tu cliente MCP para que apunte al archivo compilado:
Claude Code (ejecuta una vez):
claude mcp add symfony -- node /absolute/path/to/symfony-agent-mcp/dist/server.jsClaude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"symfony": {
"command": "node",
"args": ["/absolute/path/to/symfony-agent-mcp/dist/server.js"]
}
}
}VS Code (.vscode/mcp.json):
{
"servers": {
"symfony": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/symfony-agent-mcp/dist/server.js"]
}
}
}Consejo: Después de reconstruir (
pnpm build), reinicia tu cliente MCP para que tome los cambios.
Lo que lee
El servidor lee archivos directamente de tu aplicación Symfony — no se necesita conexión a base de datos ni runtime de PHP:
config/routes.yaml,config/routes/*.yaml— Rutas YAMLAtributos PHP 8
#[Route]en los controladores desrc/Controller/config/services.yaml— Servicios del contenedor de DIconfig/packages/*.yaml— Configuración de framework, security, doctrine, messenger y mailersrc/Entity/*.php— Archivos de entidad de Doctrine (atributos PHP 8 + anotaciones)var/log/*.log— Registros de la aplicaciónmigrations/,src/Migrations/— Archivos de migración de Doctrinecomposer.json,composer.lock— Información del paquete.env,.env.local,.env.*.local— Variables de entorno (los valores sensibles se redactan automáticamente)
Compatibilidad con Symfony
Symfony | PHP | Mapeo ORM |
5.4 LTS | 8.0+ | Anotaciones o Atributos |
6.x | 8.0+ | Atributos |
7.x | 8.2+ | Atributos |
8.x | 8.2+ | Atributos |
Requisitos
Node.js ≥ 22.0.0
pnpm ≥ 11.0.0 (o npm/yarn para desarrollo)
Desarrollo
pnpm install
pnpm dev # watch mode (TypeScript → dist/)
pnpm test # run all tests
pnpm lint # ESLint
pnpm typecheck # tsc --noEmitConsulta DEVELOPMENT.md para la guía de desarrollo completa: visión general de la arquitectura, adición de nuevas herramientas, estrategia de pruebas y pautas de contribución.
Documentación
Documento | Descripción |
Configuración paso a paso, requisitos previos de Node.js, solución de problemas | |
Diseño del sistema, pipeline de seguridad, visión general de componentes, todas las 1.679 herramientas en 16 categorías documentadas | |
Flujo de trabajo de desarrollo, adición de herramientas, pruebas y contribución | |
Modelo de amenazas, pipeline DLP, política de divulgación responsable | |
Historial de versiones y hoja de ruta | |
Visión general del proyecto de alto nivel y estadísticas |
Contribución
Las issues y las pull requests son bienvenidas en github.com/shakaran/symfony-agent-mcp.
Consulta DEVELOPMENT.md antes de enviar un PR, y SECURITY.md para conocer la política de divulgación responsable.
Licencia
MIT © Ángel Guzmán Maeso
Maintenance
Related MCP Servers
- AlicenseAqualityCmaintenanceA production-ready Model Context Protocol (MCP) server that bridges your Symfony/PHP project with LLMs such as Claude. It exposes tools that let the AI read your project's routes, services, Twig templates, and PHP source code.8MIT
- AlicenseBqualityCmaintenanceEnables AI assistants to deeply interact with the PHP ecosystem, including runtime, static analysis, security scanning, testing, Composer, and frameworks like Laravel and Symfony. It exposes over 30 tools, 8 resources, and 7 prompts via MCP, allowing natural language commands to run PHP linting, static analysis, audits, tests, and project initialization.41MIT
- FlicenseNot gradedqualityCmaintenanceEnables debugging Symfony applications by inspecting profiler data through a standalone MCP server.
- AlicenseNot gradedqualityBmaintenanceMCP server that exposes Symfony profiler runtime data (requests, queries, logs) to AI agents like Claude Code for debugging and optimization.MIT
Related MCP Connectors
Security-first WordPress MCP server. 129 tools for Claude, ChatGPT, Gemini. Free on wp.org.
Scans MCP servers for tool poisoning, prompt injection and supply chain risks.
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
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/shakaran/symfony-agent-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server