Skip to main content
Glama
shakaran

symfony-agent-mcp

symfony-agent-mcp

npm version License: MIT Node.js MCP PRs Welcome GitHub issues GitHub stars Build Status Coverage

ВозможностиБыстрый стартИнтеграцияИспользованиеДокументацияУчастиеЛицензия


Готовый к продакшену Model Context Protocol (MCP) сервер для приложений Symfony. Предоставляет AI-ассистентам глубокий, доступный только для чтения обзор всей вашей кодовой базы Symfony — маршруты, контроллеры, сервисы, сущности, схема базы данных, миграции, события, формы, безопасность, Doctrine, Messenger, Twig, API Platform и многое другое.

Клиент

Установка

Claude Code

Выполните claude mcp addнастройка

Claude Desktop

Добавьте в claude_desktop_config.jsonнастройка

Cursor

Добавьте в .cursor/mcp.jsonнастройка

VS Code Copilot

Добавьте в .vscode/mcp.jsonнастройка

Любой MCP-клиент

транспорт stdio, command: npx @shakaran/symfony-agent-mcp


Возможности

1,679 инструментов в 16 категориях

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")

Безопасность в первую очередь

  • Только чтение — никогда ничего не записывает, не изменяет и не выполняет

  • Автоматическое редактирование — пароли, токены, API-ключи и учётные данные базы данных заменяются на [REDACTED] до того, как данные попадут к ИИ

  • Конвейер DLP — многоуровневый сканер предотвращения утечек данных (регулярные выражения + структурное обнаружение кредитных карт, JWT, SSH-ключей, облачных учётных данных и т.д.)

  • Проверка путей — атаки с обходом каталогов блокируются на уровне ввода

  • Без выполнения кода — PHP-файлы анализируются статически (без eval, без PHP-рантайма)

  • Без сетевых вызовов — все данные берутся только из локальных файлов

  • Фильтр инъекций в промпты — вывод инструментов сканируется на предмет паттернов инъекций перед передачей ИИ


Related MCP server: phpustik MCP Server

Быстрый старт

Вариант A: npx (установка не требуется)

npx @shakaran/symfony-agent-mcp

Вариант B: глобальная установка

npm install -g @shakaran/symfony-agent-mcp
symfony-agent-mcp

Вариант C: из исходного кода

git clone https://github.com/shakaran/symfony-agent-mcp
cd symfony-agent-mcp
pnpm install
pnpm build
pnpm start

См. GETTING_STARTED.md для пошагового руководства, включая настройку Node.js, устранение неполадок и проверку первого использования.


Интеграция

Установка в один клик

Клиент

Установка

Cursor

Установить в Cursor

VS Code

Установить в VS Code

VS Code Insiders

Установить в VS Code Insiders

Windsurf

Установить в Windsurf

Claude Code

Установить в Claude Code

Claude Desktop

Установить в Claude Desktop

Claude Code

Выполните один раз для регистрации сервера:

# 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.js

Чтобы сделать его доступным глобально во всех проектах, добавьте флаг --scope user:

claude mcp add --scope user symfony -- npx @shakaran/symfony-agent-mcp

Claude Desktop

Добавьте в файл конфигурации Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "symfony": {
      "command": "npx",
      "args": ["@shakaran/symfony-agent-mcp"]
    }
  }
}

Cursor

Добавьте в .cursor/mcp.json:

{
  "symfony": {
    "command": "npx",
    "args": ["@shakaran/symfony-agent-mcp"]
  }
}

VS Code Copilot

Добавьте в .vscode/mcp.json:

{
  "servers": {
    "symfony": {
      "type": "stdio",
      "command": "npx",
      "args": ["@shakaran/symfony-agent-mcp"]
    }
  }
}

Использование

Каждый инструмент принимает параметр app_path, указывающий на корень вашего приложения 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: 7

Примеры запросов, которые можно использовать с Claude:

  • "Покажи все маршруты с методами POST и их контроллеры"

  • "Какие сервисы помечены тегом doctrine.event_listener?"

  • "Выведи последние 50 строк производственного журнала"

  • "Есть ли циклические зависимости в контейнере сервисов?"

  • "Какие сущности Doctrine имеют связи с User?"

  • "Покажи историю миграций и любые деструктивные миграции"

  • "Какие контроллеры не имеют атрибутов безопасности?"


Конфигурация

Вся конфигурация осуществляется через переменные окружения, передаваемые процессу MCP-сервера.

Обнаружение инструментов

Переменная

По умолчанию

Описание

SYMFONY_MCP_DYNAMIC_TOOLS

true

Включить динамическое обнаружение инструментов. Если true, tools/list возвращает только 5 мета-инструментов вместо всех 1,679. Установите false, чтобы восстановить прежнее поведение (все инструменты всегда видны).

SYMFONY_MCP_TOKEN_BUDGET

40000

Максимальное оценочное количество токенов, которое можно активировать за сеанс. Активация блокируется при превышении этого лимита; передайте force=true в activate_category, чтобы переопределить.

Безопасность и доступ

Переменная

По умолчанию

Описание

SYMFONY_MCP_ALLOWED_PATHS

(любой)

Разделённый двоеточиями список абсолютных путей приложений, которые сервер может проверять. Пример: /var/www/app1:/var/www/app2

SYMFONY_MCP_REQUIRE_SYMFONY

true

Установите false, чтобы пропустить проверку проекта Symfony (полезно для тестирования).

SYMFONY_MCP_ALLOWED_TOOLS

(все)

Разделённый запятыми список разрешённых имён инструментов. Вызывать можно только перечисленные инструменты.

SYMFONY_MCP_BLOCKED_TOOLS

(нет)

Разделённый запятыми список запрещённых. Имеет приоритет над списком разрешённых.

SYMFONY_MCP_SIGNING_SECRET

(выкл.)

Секрет длиной 32+ символа для подписи запросов. Включает аутентификацию каждого запроса.

SYMFONY_MCP_SESSION_SECRET

(выкл.)

Секрет для генерации токенов сеанса.

SYMFONY_MCP_SESSION_TOKEN

(выкл.)

Токен для проверки входящих запросов.

SYMFONY_MCP_SESSION_STRICT

false

Установите true, чтобы отклонять запросы без действительного токена сеанса.

SYMFONY_MCP_SESSION_WINDOW

300

Окно действия токена сеанса в секундах.

Ограничение скорости

Переменная

По умолчанию

Описание

SYMFONY_MCP_RATE_LIMIT

60

Максимум запросов за окно. Установите 0, чтобы отключить.

SYMFONY_MCP_RATE_WINDOW_MS

60000

Окно ограничения скорости в миллисекундах (1 минута).

SYMFONY_MCP_RATE_BURST

10

Максимум всплесковых запросов за 1 секунду.

Транспорт

Переменная

По умолчанию

Описание

SYMFONY_MCP_HTTP_PORT

(выкл.)

Порт для HTTP/SSE транспорта. Если задан, запускает HTTP-сервер в дополнение к stdio.

SYMFONY_MCP_STDIO

true

Установите false, чтобы отключить транспорт stdio (полезно при работе только через HTTP).

SYMFONY_MCP_TOOL_TIMEOUT_MS

30000

Тайм-аут выполнения каждого инструмента в миллисекундах.

Пример: Claude Code с отключёнными динамическими инструментами

{
  "mcpServers": {
    "symfony": {
      "command": "npx",
      "args": ["@shakaran/symfony-agent-mcp"],
      "env": {
        "SYMFONY_MCP_DYNAMIC_TOOLS": "false"
      }
    }
  }
}

Пример: увеличение бюджета токенов до 80 000 токенов

{
  "mcpServers": {
    "symfony": {
      "command": "node",
      "args": ["/path/to/symfony-agent-mcp/dist/server.js"],
      "env": {
        "SYMFONY_MCP_TOKEN_BUDGET": "80000"
      }
    }
  }
}

Локальная установка (из исходного кода)

Используйте это, если хотите запустить сервер из локального клона (публикация в 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.js

Затем настройте ваш MCP-клиент, чтобы он указывал на собранный файл:

Claude Code (выполните один раз):

claude mcp add symfony -- node /absolute/path/to/symfony-agent-mcp/dist/server.js

Claude 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"]
    }
  }
}

Совет: После пересборки (pnpm build) перезапустите ваш MCP-клиент, чтобы изменения вступили в силу.


Что он читает

Сервер читает файлы непосредственно из вашего приложения Symfony — не требуется подключение к базе данных и PHP-рантайм:

  • config/routes.yaml, config/routes/*.yaml — YAML-маршруты

  • PHP 8 #[Route] атрибуты в контроллерах в src/Controller/

  • config/services.yaml — сервисы DI-контейнера

  • config/packages/*.yaml — конфигурация framework, security, doctrine, messenger, mailer

  • src/Entity/*.php — файлы сущностей Doctrine (атрибуты PHP 8 + аннотации)

  • var/log/*.log — журналы приложения

  • migrations/, src/Migrations/ — файлы миграций Doctrine

  • composer.json, composer.lock — информация о пакетах

  • .env, .env.local, .env.*.local — переменные окружения (чувствительные значения автоматически редактируются)


Совместимость с Symfony

Symfony

PHP

ORM-маппинг

5.4 LTS

8.0+

Аннотации или атрибуты

6.x

8.0+

Атрибуты

7.x

8.2+

Атрибуты

8.x

8.2+

Атрибуты


Требования

  • Node.js ≥ 22.0.0

  • pnpm ≥ 11.0.0 (или npm/yarn для разработки)


Разработка

pnpm install
pnpm dev            # watch mode (TypeScript → dist/)
pnpm test           # run all tests
pnpm lint           # ESLint
pnpm typecheck      # tsc --noEmit

Полное руководство по разработке см. в DEVELOPMENT.md: обзор архитектуры, добавление новых инструментов, стратегия тестирования и рекомендации по участию.


Документация

Документ

Описание

GETTING_STARTED.md

Пошаговая настройка, требования Node.js, устранение неполадок

ARCHITECTURE.md

Проектирование системы, конвейер безопасности, обзор компонентов, документация по всем 1 679 инструментам в 16 категориях

DEVELOPMENT.md

Рабочий процесс разработки, добавление инструментов, тестирование, участие

SECURITY.md

Модель угроз, конвейер DLP, политика ответственного раскрытия

CHANGELOG.md

История релизов и дорожная карта

PROJECT_SUMMARY.md

Обзор проекта на высоком уровне и статистика


Участие

Проблемы (issues) и pull request'ы приветствуются на github.com/shakaran/symfony-agent-mcp.

Пожалуйста, прочитайте DEVELOPMENT.md перед отправкой PR и SECURITY.md для ознакомления с политикой ответственного раскрытия.


Лицензия

MIT © Ángel Guzmán Maeso

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
3Releases (12mo)
Commit activity

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    A 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.
    8
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Enables 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.
    41
    MIT

View all related MCP servers

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.

View all MCP Connectors

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/shakaran/symfony-agent-mcp'

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