A Model Context Protocol (MCP) server that provides CPAN (Comprehensive Perl Archive Network) package information, including README content, package metadata, and search capabilities.
- Package README: Fetch README and documentation for CPAN modules
- Package Information: Get metadata, dependencies, and version info
- Search Packages: Search CPAN repository for modules
- Comprehensive Documentation: Access detailed package information and usage examples
npm install cpan-package-readme-mcp-server
Add to your MCP client configuration:
{
"mcpServers": {
"cpan-package-readme": {
"command": "npx",
"args": ["cpan-package-readme-mcp-server"]
}
}
}
Get package README and usage examples from CPAN.
Parameters:
-
package_name
(required): The CPAN module name (e.g., "Data::Dumper", "LWP::UserAgent") -
version
(optional): Package version (defaults to latest) -
include_examples
(optional): Whether to include usage examples (default: true)
Example:
{
"package_name": "LWP::UserAgent",
"include_examples": true
}
Get package basic information and dependencies from CPAN.
Parameters:
-
package_name
(required): The CPAN module name -
include_dependencies
(optional): Whether to include dependencies (default: true) -
include_dev_dependencies
(optional): Whether to include test dependencies (default: false)
Example:
{
"package_name": "Mojolicious",
"include_dependencies": true,
"include_dev_dependencies": false
}
Search for packages in CPAN.
Parameters:
-
query
(required): The search query -
limit
(optional): Maximum number of results (default: 20, max: 100)
Example:
{
"query": "web framework",
"limit": 10
}
npm install
npm run build
npm test
npm run dev
The server uses MetaCPAN API to fetch package information. No additional configuration is required for basic usage.
The server handles various error conditions:
- Package not found
- Invalid module names
- Network connectivity issues
- Rate limiting
- Invalid parameters
-
@modelcontextprotocol/sdk
: MCP SDK for server implementation - Built-in HTTP client for MetaCPAN API requests
MIT
Contributions are welcome! Please feel free to submit a Pull Request.