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

FeaturesQuick StartIntegrationUsageDocumentationContributingLicense


Ein produktionsreifer Model Context Protocol (MCP)-Server für Symfony-Anwendungen. Gibt KI-Assistenten tiefe, schreibgeschützte Einblicke in Ihre gesamte Symfony-Codebasis – Routen, Controller, Dienste, Entitäten, Datenbankschema, Migrationen, Ereignisse, Formulare, Sicherheit, Doctrine, Messenger, Twig, API Platform und vieles mehr.

Client

Installation

Claude Code

Ausführen: claude mcp addEinrichtung

Claude Desktop

Hinzufügen zu claude_desktop_config.jsonEinrichtung

Cursor

Hinzufügen zu .cursor/mcp.jsonEinrichtung

VS Code Copilot

Hinzufügen zu .vscode/mcp.jsonEinrichtung

Jeder MCP-Client

stdio-Transport, command: npx @shakaran/symfony-agent-mcp


Funktionen

1,679 Tools in 16 Kategorien

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

Sicherheit zuerst

  • Nur lesen – schreibt, ändert oder führt niemals etwas aus

  • Automatische Schwärzung – Passwörter, Tokens, API-Schlüssel und Datenbankanmeldeinformationen werden durch [REDACTED] ersetzt, bevor Daten an die KI gelangen

  • DLP-Pipeline – mehrschichtiger Data-Loss-Prevention-Scanner (Regex-Muster + strukturelle Erkennung für Kreditkarten, JWTs, SSH-Schlüssel, Cloud-Anmeldeinformationen usw.)

  • Pfadvalidierung – Directory-Traversal-Angriffe werden auf der Eingabeebene blockiert

  • Keine Codeausführung – PHP-Dateien werden statisch geparst (kein eval, keine PHP-Laufzeit)

  • Keine Netzwerkaufrufe – alle Daten stammen nur aus lokalen Dateien

  • Prompt-Injection-Filter – Tool-Ausgabe wird auf Injektionsmuster überprüft, bevor sie an die KI weitergeleitet wird


Related MCP server: phpustik MCP Server

Schnellstart

Option A: npx (keine Installation erforderlich)

npx @shakaran/symfony-agent-mcp

Option B: Globale Installation

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

Option C: Aus dem Quellcode

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

Siehe GETTING_STARTED.md für eine Schritt-für-Schritt-Anleitung einschließlich Node.js-Einrichtung, Fehlerbehebung und Erstverwendung.


Integration

Ein-Klick-Installation

Client

Installation

Cursor

Installation in Cursor

VS Code

Installation in VS Code

VS Code Insiders

Installation in VS Code Insiders

Windsurf

Installation in Windsurf

Claude Code

Installation in Claude Code

Claude Desktop

Installation in Claude Desktop

Claude Code

Führen Sie einmal aus, um den Server zu registrieren:

# 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

Um es global über alle Projekte verfügbar zu machen, fügen Sie das Flag --scope user hinzu:

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

Claude Desktop

Fügen Sie es zu Ihrer Claude-Desktop-Konfigurationsdatei (claude_desktop_config.json) hinzu:

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

Cursor

Fügen Sie es zu .cursor/mcp.json hinzu:

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

VS Code Copilot

Fügen Sie es zu .vscode/mcp.json hinzu:

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

Verwendung

Jedes Tool akzeptiert einen app_path-Parameter, der auf das Wurzelverzeichnis Ihrer Symfony-Anwendung verweist:

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

Beispiel-Prompts, die Sie mit Claude verwenden können:

  • "Zeig mir alle Routen mit POST-Methoden und ihre Controller"

  • "Welche Dienste sind mit doctrine.event_listener getaggt?"

  • "Liste die letzten 50 Zeilen des Produktionsprotokolls auf"

  • "Gibt es zirkuläre Abhängigkeiten im Service-Container?"

  • "Welche Doctrine-Entitäten haben Beziehungen zu User?"

  • "Zeig mir die Migrationshistorie und alle destruktiven Migrationen"

  • "Welche Controller haben keine Sicherheitsattribute?"


Konfiguration

Die gesamte Konfiguration erfolgt über Umgebungsvariablen, die an den MCP-Serverprozess übergeben werden.

Tool-Erkennung

Variable

Standard

Beschreibung

SYMFONY_MCP_DYNAMIC_TOOLS

true

Dynamische Tool-Erkennung aktivieren. Wenn true, gibt tools/list nur 5 Meta-Tools zurück anstatt aller 1,679. Setzen Sie auf false, um das alte Verhalten wiederherzustellen (alle Tools immer sichtbar).

SYMFONY_MCP_TOKEN_BUDGET

40000

Maximale geschätzte Tokens, die pro Sitzung aktiviert werden können. Die Aktivierung wird blockiert, wenn dieses Limit überschritten würde; übergeben Sie force=true in activate_category, um es zu überschreiben.

Sicherheit & Zugriff

Variable

Standard

Beschreibung

SYMFONY_MCP_ALLOWED_PATHS

(beliebig)

Durch Doppelpunkte getrennte Liste absoluter App-Pfade, die der Server untersuchen darf. Beispiel: /var/www/app1:/var/www/app2

SYMFONY_MCP_REQUIRE_SYMFONY

true

Setzen Sie auf false, um die Symfony-Projektvalidierung zu überspringen (nützlich für Tests).

SYMFONY_MCP_ALLOWED_TOOLS

(alle)

Kommagetrennte Whitelist von Tool-Namen. Nur aufgeführte Tools sind aufrufbar.

SYMFONY_MCP_BLOCKED_TOOLS

(keine)

Kommagetrennte Blacklist. Hat Vorrang vor der Whitelist.

SYMFONY_MCP_SIGNING_SECRET

(aus)

Geheimnis mit 32+ Zeichen für die Anfragesignatur. Aktiviert die Authentifizierung pro Anfrage.

SYMFONY_MCP_SESSION_SECRET

(aus)

Geheimnis für die Generierung von Sitzungstokens.

SYMFONY_MCP_SESSION_TOKEN

(aus)

Token zur Validierung eingehender Anfragen.

SYMFONY_MCP_SESSION_STRICT

false

Setzen Sie auf true, um Anfragen ohne gültiges Sitzungstoken abzulehnen.

SYMFONY_MCP_SESSION_WINDOW

300

Gültigkeitsfenster des Sitzungstokens in Sekunden.

Ratenbegrenzung

Variable

Standard

Beschreibung

SYMFONY_MCP_RATE_LIMIT

60

Maximale Anfragen pro Fenster. Setzen Sie auf 0, um zu deaktivieren.

SYMFONY_MCP_RATE_WINDOW_MS

60000

Ratenbegrenzungsfenster in Millisekunden (1 Minute).

SYMFONY_MCP_RATE_BURST

10

Maximale Burst-Anfragen in 1 Sekunde.

Transport

Variable

Standard

Beschreibung

SYMFONY_MCP_HTTP_PORT

(aus)

Port für HTTP/SSE-Transport. Wenn gesetzt, startet einen HTTP-Server zusätzlich zu stdio.

SYMFONY_MCP_STDIO

true

Setzen Sie auf false, um den stdio-Transport zu deaktivieren (nützlich, wenn nur HTTP verwendet wird).

SYMFONY_MCP_TOOL_TIMEOUT_MS

30000

Zeitlimit für die Ausführung pro Tool in Millisekunden.

Beispiel: Claude Code mit deaktivierten dynamischen Tools

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

Beispiel: Token-Budget auf 80 000 Token erhöht

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

Lokale Installation (aus dem Quellcode)

Verwenden Sie dies, wenn Sie den Server aus einem lokalen Klon ausführen möchten (keine npm-Veröffentlichung erforderlich).

# 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

Konfigurieren Sie dann Ihren MCP-Client so, dass er auf die erstellte Datei verweist:

Claude Code (einmal ausführen):

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

Tipp: Nach dem Neuerstellen (pnpm build) starten Sie Ihren MCP-Client neu, um die Änderungen zu übernehmen.


Was es liest

Der Server liest Dateien direkt aus Ihrer Symfony-Anwendung – keine Datenbankverbindung, keine PHP-Laufzeit erforderlich:

  • config/routes.yaml, config/routes/*.yaml — YAML-Routen

  • PHP 8 #[Route]-Attribute an Controllern in src/Controller/

  • config/services.yaml — DI-Container-Services

  • config/packages/*.yaml — Framework-, Sicherheits-, Doctrine-, Messenger- und Mailer-Konfiguration

  • src/Entity/*.php — Doctrine-Entity-Dateien (PHP 8-Attribute + Annotationen)

  • var/log/*.log — Anwendungs-Logs

  • migrations/, src/Migrations/ — Doctrine-Migrationsdateien

  • composer.json, composer.lock — Paketinformationen

  • .env, .env.local, .env.*.local — Umgebungsvariablen (sensible Werte werden automatisch geschwärzt)


Symfony-Kompatibilität

Symfony

PHP

ORM-Mapping

5.4 LTS

8.0+

Annotationen oder Attribute

6.x

8.0+

Attribute

7.x

8.2+

Attribute

8.x

8.2+

Attribute


Voraussetzungen

  • Node.js ≥ 22.0.0

  • pnpm ≥ 11.0.0 (oder npm/yarn für die Entwicklung)


Entwicklung

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

Siehe DEVELOPMENT.md für den vollständigen Entwicklungsleitfaden: Architekturübersicht, Hinzufügen neuer Tools, Teststrategie und Beitragsrichtlinien.


Dokumentation

Dokument

Beschreibung

GETTING_STARTED.md

Schritt-für-Schritt-Einrichtung, Node.js-Voraussetzungen, Fehlerbehebung

ARCHITECTURE.md

Systemdesign, Sicherheits-Pipeline, Komponentenübersicht, alle 1.679 Tools in 16 Kategorien dokumentiert

DEVELOPMENT.md

Entwicklungsworkflow, Hinzufügen von Tools, Testen, Mitwirken

SECURITY.md

Bedrohungsmodell, DLP-Pipeline, Richtlinie zur verantwortungsvollen Offenlegung

CHANGELOG.md

Versionshistorie und Roadmap

PROJECT_SUMMARY.md

Allgemeine Projektübersicht und Statistiken


Mitwirken

Issues und Pull-Requests sind willkommen unter github.com/shakaran/symfony-agent-mcp.

Bitte lesen Sie DEVELOPMENT.md, bevor Sie einen PR einreichen, und SECURITY.md für die Richtlinie zur verantwortungsvollen Offenlegung.


Lizenz

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