- Can I use ajtis/mcp-bundle in Laravel instead of Symfony? If so, how?
- No, this bundle is explicitly designed for Symfony 6.4+ and relies heavily on Symfony’s HTTP stack (HttpFoundation, Routing) and dependency injection. Laravel would require significant refactoring to replicate these dependencies, such as manually implementing PSR-15 middleware or adapting the HTTP kernel. Consider alternatives like direct MCP SDK integration or custom REST/gRPC adapters if Laravel is a hard requirement.
- What Laravel versions does ajtis/mcp-bundle support?
- This bundle does not support Laravel at all—it’s a Symfony integration. However, if you’re using Symfony via Laravel’s Symfony components (e.g., Lumen or Symfony bridge), ensure your environment meets Symfony 6.4+/7.3+/8.0 requirements. The MCP SDK (^0.4) also mandates PHP 8.1+, so align your Laravel runtime accordingly.
- How do I install and configure ajtis/mcp-bundle in a Symfony app?
- Run `composer require symfony/mcp-bundle` (note: the package name in the README is incorrect; use `symfony/mcp-bundle` as per Symfony AI docs). Configure routes in `config/routes.yaml` to expose MCP tools/prompts via HTTP. Enable STDIO transport by extending the bundle’s command classes. Refer to the [Symfony AI documentation](https://symfony.com/doc/current/ai/bundles/mcp-bundle.html) for step-by-step setup.
- Is ajtis/mcp-bundle stable enough for production? What are the risks?
- This bundle is **experimental** and lacks Symfony’s backward compatibility guarantees. Risks include MCP SDK breaking changes (e.g., unsupported resource templates), API shifts, or Symfony AI ecosystem discontinuity. Test thoroughly in staging, monitor MCP/Symfony AI updates, and prepare a fallback (e.g., direct SDK integration or custom adapters) if stability becomes critical.
- How does ajtis/mcp-bundle handle MCP tools, prompts, and resources?
- The bundle supports MCP tools and prompts via HTTP/STDIO transport, enabling agentic workflows (e.g., LLM orchestration). Resource templates are **placeholder-only** and require MCP SDK support, which isn’t yet implemented. For now, focus on HTTP/STDIO for tools/prompts, and validate if resource templates are a dealbreaker for your use case.
- What’s the performance impact of using HTTP/STDIO transport in MCP?
- HTTP/STDIO transport may introduce latency for high-frequency agent interactions, especially in microservices or autonomous systems. Benchmark your workload to ensure it meets throughput requirements. If performance is critical, consider lower-level alternatives like gRPC or WebSockets, though they’d require custom MCP protocol adaptation.
- Where should I report bugs or request features for ajtis/mcp-bundle?
- Issues and pull requests must be submitted to the **Symfony AI repository** ([github.com/symfony/ai](https://github.com/symfony/ai)), not this GitHub repo. The bundle is a read-only subtree split. Check existing issues for similar requests before opening new ones, and tag them with `mcp-bundle` for visibility.
- Are there alternatives to ajtis/mcp-bundle for MCP in Laravel/Symfony?
- For Laravel, consider direct MCP SDK integration ([mcp/sdk](https://github.com/modelcontextprotocol/php-sdk)) or custom adapters (e.g., REST/gRPC). In Symfony, alternatives include forking the bundle or waiting for Symfony AI to stabilize MCP support. If you need broader agentic tooling, explore [Symfony AI’s ecosystem](https://symfony.com/ai) or frameworks like LangChain for PHP.
- How do I monitor MCP SDK updates for breaking changes?
- Subscribe to the [MCP SDK GitHub repo](https://github.com/modelcontextprotocol/php-sdk) for release notes and breaking change alerts. Use Composer’s `platform-check` or `platform-needs` to enforce SDK version constraints in CI. Set up notifications for MCP SDK tags (e.g., `^0.4`) and test your bundle against new versions in a staging environment.
- Can ajtis/mcp-bundle work with Laravel’s Horizon or other queue systems?
- No, this bundle is Symfony-specific and doesn’t integrate with Laravel’s queue systems (e.g., Horizon). If you need MCP-driven async workflows, consider wrapping the bundle in a Symfony microservice or using Laravel’s Symfony bridge to proxy MCP requests. Alternatively, implement a custom queue adapter for the MCP SDK.