wachterjohannes / debug-mcp-resources
Documentation resources for PHP and Symfony development
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/wachterjohannes/debug-mcp-resources
Requires
- php: ^8.1
- mcp/sdk: ^0.1
Requires (Dev)
This package is auto-updated.
Last update: 2025-11-30 12:10:26 UTC
README
⚠️ PROTOTYPE - FOR TESTING AND DISCUSSION PURPOSES ONLY
Documentation and reference resources for PHP and Symfony development.
Purpose
Provides curated documentation resources accessible via the MCP protocol:
- PHP Documentation: Best practices, common patterns, language features
- Symfony Documentation: Console commands, dependency injection, framework guides
Features
- URI-based resource access (e.g.,
php://docs/best-practices) - Markdown-formatted content optimized for LLM consumption
- Framework-specific guides and examples
- Automatic discovery by debug-mcp server
Installation
composer require wachterjohannes/debug-mcp-resources
The resources will be automatically discovered when debug-mcp server starts.
Available Resources
PHP Documentation
Access via php://docs/{topic} URI pattern.
best-practices
URI: php://docs/best-practices
Content: PHP coding best practices including:
- Type declarations and strict types
- Error handling patterns
- Security considerations
- Modern PHP features (PHP 8+)
common-patterns
URI: php://docs/common-patterns
Content: Common PHP design patterns and idioms:
- Dependency injection
- Factory patterns
- Repository patterns
- Service layer architecture
Symfony Documentation
Access via symfony://docs/{topic} URI pattern.
console-commands
URI: symfony://docs/console-commands
Content: Symfony Console component guide:
- Creating custom commands
- Command arguments and options
- Input/output handling
- Command lifecycle
dependency-injection
URI: symfony://docs/dependency-injection
Content: Symfony DI container guide:
- Service configuration
- Autowiring
- Service tags
- Compiler passes
Usage
Resources are accessed via MCP resource requests:
{
"jsonrpc": "2.0",
"method": "resources/get",
"params": {
"uri": "php://docs/best-practices"
},
"id": 1
}
Response contains the markdown content:
{
"jsonrpc": "2.0",
"result": {
"contents": [
{
"uri": "php://docs/best-practices",
"mimeType": "text/markdown",
"text": "# PHP Best Practices\n\n..."
}
]
},
"id": 1
}
Resource Structure
Markdown Files
All resource content is stored as markdown files in resources/:
resources/
├── php/
│ ├── best-practices.md
│ └── common-patterns.md
└── symfony/
├── console-commands.md
└── dependency-injection.md
Resource Classes
Each resource provider class handles a specific documentation domain:
<?php namespace Wachterjohannes\DebugMcp\Resources; use Mcp\Capability\Attribute\McpResourceTemplate; class PhpDocumentationResource { #[McpResourceTemplate( uriTemplate: 'php://docs/{topic}', name: 'php_docs', mimeType: 'text/markdown' )] public function getDocumentation(string $topic): string { // Load and return markdown content } }
Adding New Resources
To add a new resource:
-
Create Markdown File: Place in appropriate
resources/subdirectory -
Update Resource Class (if needed):
- Extend URI template patterns
- Add topic validation
- Handle new file locations
-
Document in README: Add to Available Resources section with URI pattern and description
-
Optional: Create New Resource Class: For a new documentation domain, create new class and register in composer.json
Registration
Resources are registered via composer.json extra configuration:
{
"extra": {
"wachterjohannes/debug-mcp": {
"classes": [
"Wachterjohannes\\DebugMcp\\Resources\\PhpDocumentationResource",
"Wachterjohannes\\DebugMcp\\Resources\\SymfonyDocumentationResource"
]
}
}
}
Development
Code Quality
Format code before committing:
composer cs-fix
Content Guidelines
When creating resource content:
- Use Markdown: Clear headings, code blocks, lists
- Provide Examples: Working code snippets
- Focus on Practical: Real-world use cases
- Keep Concise: Information density for LLM context
- Include Links: References to official documentation
Testing Resources
Test resources by:
- Installing package in debug-mcp instance
- Starting MCP server
- Requesting resource via JSON-RPC
- Verifying content and formatting
Requirements
- PHP 8.1 or higher
- modelcontextprotocol/php-sdk
- wachterjohannes/debug-mcp (for testing)
Repository
GitHub: https://github.com/wachterjohannes/debug-mcp-resources
License
MIT