cpan-package-readme-mcp-server

elchika-inc/cpan-package-readme-mcp-server

3.2

If you are the rightful owner of cpan-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 CPAN Package README MCP Server is a Model Context Protocol server designed to provide AI assistants with detailed information about CPAN packages, including README content, metadata, and search capabilities.

Tools
  1. get_package_readme

    Retrieves comprehensive README content and usage examples for CPAN packages.

  2. get_package_info

    Fetches detailed package metadata, dependencies, and author information from MetaCPAN.

  3. search_packages

    Searches CPAN repository for packages with filtering capabilities.

CPAN Package README MCP Server

license npm version npm downloads GitHub stars

An MCP (Model Context Protocol) server that enables AI assistants to fetch comprehensive information about CPAN (Comprehensive Perl Archive Network) packages, including README content, package metadata, and search functionality.

Features

  • Package README Retrieval: Fetch formatted README content with usage examples from Perl/CPAN modules hosted on MetaCPAN
  • Package Information: Get comprehensive package metadata including dependencies, versions, author information, and documentation
  • Package Search: Search CPAN repository with filtering by category, author, and relevance
  • Smart Caching: Intelligent caching system to optimize API usage and improve response times
  • MetaCPAN Integration: Direct integration with MetaCPAN API for comprehensive package information
  • Error Handling: Robust error handling with automatic retry logic and fallback strategies

MCP Client Configuration

Add this server to your MCP client configuration:

{
  "mcpServers": {
    "cpan-package-readme": {
      "command": "npx",
      "args": ["cpan-package-readme-mcp-server"]
    }
  }
}

Available Tools

get_package_readme

Retrieves comprehensive README content and usage examples for CPAN packages.

Parameters:

{
  "package_name": "LWP::UserAgent",
  "version": "latest",
  "include_examples": true
}
  • package_name (string, required): CPAN module name (e.g., "Data::Dumper", "LWP::UserAgent")
  • version (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 author information from MetaCPAN.

Parameters:

{
  "package_name": "Mojolicious",
  "include_dependencies": true,
  "include_dev_dependencies": false
}
  • package_name (string, required): CPAN module name
  • include_dependencies (boolean, optional): Include runtime dependencies (default: true)
  • include_dev_dependencies (boolean, optional): Include test/development dependencies (default: false)

Returns: Package metadata including version info, author details, license, download stats, and dependency information.

search_packages

Searches CPAN repository for packages with filtering capabilities.

Parameters:

{
  "query": "web framework",
  "limit": 20,
  "author": "SRI"
}
  • query (string, required): Search terms (module name, description, keywords)
  • limit (number, optional): Maximum number of results to return (default: 20, max: 100)
  • author (string, optional): Filter by author/maintainer CPAN ID

Returns: List of matching packages with names, descriptions, authors, and popularity metrics.

Error Handling

The server handles common error scenarios gracefully:

  • Package not found: Returns clear error messages with similar module suggestions
  • Rate limiting: Implements automatic retry with exponential backoff
  • Network timeouts: Configurable timeout with retry logic
  • Invalid module names: Validates module name format and provides guidance
  • MetaCPAN API failures: Fallback strategies when API is unavailable

License

MIT