elchika-inc/composer-package-readme-mcp-server
If you are the rightful owner of composer-package-readme-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Composer Package README MCP Server is a specialized server designed to facilitate AI assistants in retrieving detailed information about Composer packages from Packagist, including README content and metadata.
get_package_readme
Retrieves comprehensive README content and usage examples for Composer packages.
get_package_info
Fetches detailed package metadata, dependencies, and statistics from Packagist.
search_packages
Searches Packagist for packages with advanced filtering capabilities.
Composer Package README MCP Server
An MCP (Model Context Protocol) server that enables AI assistants to fetch comprehensive information about Composer packages from Packagist, including README content, package metadata, and search functionality.
Features
- Package README Retrieval: Fetch formatted README content with usage examples from PHP/Composer packages hosted on Packagist
- Package Information: Get comprehensive package metadata including dependencies, versions, statistics, and maintainer information
- Package Search: Search Packagist with advanced filtering by type, popularity, and relevance
- Smart Caching: Intelligent caching system to optimize API usage and improve response times
- GitHub Integration: Seamless integration with GitHub API for enhanced README fetching when packages link to GitHub repositories
- Error Handling: Robust error handling with automatic retry logic and fallback strategies
MCP Client Configuration
Add this server to your MCP client configuration:
{
"mcpServers": {
"composer-package-readme": {
"command": "npx",
"args": ["composer-package-readme-mcp-server"],
"env": {
"GITHUB_TOKEN": "your_github_token_here"
}
}
}
}
Note: The
GITHUB_TOKEN
is optional but recommended for higher API rate limits when fetching README content from GitHub.
Available Tools
get_package_readme
Retrieves comprehensive README content and usage examples for Composer packages.
Parameters:
{
"package_name": "symfony/console",
"version": "latest",
"include_examples": true
}
package_name
(string, required): Composer package name invendor/package
formatversion
(string, optional): Specific package version or "latest" (default: "latest")include_examples
(boolean, optional): Include usage examples and code snippets (default: true)
Returns: Formatted README content with installation instructions, usage examples, and API documentation.
get_package_info
Fetches detailed package metadata, dependencies, and statistics from Packagist.
Parameters:
{
"package_name": "laravel/framework",
"include_dependencies": true,
"include_dev_dependencies": false
}
package_name
(string, required): Composer package nameinclude_dependencies
(boolean, optional): Include runtime dependencies (default: true)include_dev_dependencies
(boolean, optional): Include development dependencies (default: false)
Returns: Package metadata including version info, maintainers, license, download stats, and dependency tree.
search_packages
Searches Packagist for packages with advanced filtering capabilities.
Parameters:
{
"query": "http client guzzle",
"limit": 20,
"type": "library"
}
query
(string, required): Search terms (package name, description, keywords)limit
(number, optional): Maximum number of results to return (default: 20, max: 100)type
(string, optional): Filter by package type (library, project, metapackage, etc.)
Returns: List of matching packages with names, descriptions, download counts, and relevance scores.
Error Handling
The server handles common error scenarios gracefully:
- Package not found: Returns clear error messages with package name suggestions
- Rate limiting: Implements automatic retry with exponential backoff
- Network timeouts: Configurable timeout with retry logic
- Invalid package names: Validates package name format and provides guidance
- GitHub API failures: Fallback strategies when GitHub integration fails
License
MIT