Skip to main content

Model Context Protocol (MCP) server providing documentation and code analysis for Python packages

Project description

MCPyDoc - Python Package Documentation MCP Server

CI PyPI version Python 3.9+ License: MIT Code style: black

MCPyDoc is a Model Context Protocol (MCP) server that provides comprehensive documentation and code analysis capabilities for Python packages. It enables AI agents like Cline and GitHub Copilot to understand and work with Python codebases more effectively, especially when working with private libraries and unfamiliar packages.

✨ Features

  • 📚 Package Documentation: Get comprehensive docs for any Python package
  • 🔍 Symbol Search: Find classes, functions, and modules by pattern
  • 💻 Source Code Access: Retrieve actual implementation code
  • 🏗️ Structure Analysis: Analyze complete package architecture
  • 🔧 Type Hints: Extract and analyze type annotations
  • 📖 Docstring Parsing: Support for Google, NumPy, and Sphinx formats
  • 🏃 High Performance: Efficient caching and optimized operations
  • 🛡️ Error Handling: Robust error management and validation

🚀 Quick Start

Installation

# Install from PyPI (Recommended)
pip install mcpydoc

# Or install from source
git clone https://github.com/amit608/MCPyDoc.git
cd MCPyDoc
pip install .

Once installed and configured with your AI agent, the server will automatically start when needed.

🔌 Integration with you favorite coding AI agent

Configuration

Add MCPyDoc to your Cline/Claude Code/Cursor/Github Copilot MCP configuration:

{
  "mcpServers": {
    "mcpydoc": {
      "command": "python",
      "args": ["-m", "mcpydoc"],
      "env": {},
      "description": "Python package documentation and code analysis server"
    }
  }
}

📊 Supported Package Types

  • Standard Library - Built-in modules (json, os, sys, etc.)
  • Third-Party Packages - pip-installed packages
  • Local Packages - Development packages in current environment
  • Virtual Environments - Proper path resolution

🛠️ API Reference

Core Methods

get_module_documentation(package, module_path=None, version=None)

Get comprehensive documentation for a package or specific module.

Parameters:

  • package (str): Package name
  • module_path (str, optional): Dot-separated path to specific module
  • version (str, optional): Specific version to use

Returns: ModuleDocumentationResult

search_package_symbols(package, pattern=None, version=None)

Search for symbols in a package.

Parameters:

  • package (str): Package name
  • pattern (str, optional): Search pattern (case-insensitive)
  • version (str, optional): Specific version to use

Returns: List[SymbolSearchResult]

get_source_code(package, symbol_name, version=None)

Get source code for a specific symbol.

Parameters:

  • package (str): Package name
  • symbol_name (str): Dot-separated path to symbol
  • version (str, optional): Specific version to use

Returns: SourceCodeResult

analyze_package_structure(package, version=None)

Analyze complete package structure.

Parameters:

  • package (str): Package name
  • version (str, optional): Specific version to use

Returns: PackageStructure

🏗️ Architecture

MCPyDoc uses a clean, modular architecture:

mcpydoc/
├── __init__.py          # Package interface
├── __main__.py          # CLI entry point
├── server.py            # Core MCPyDoc class
├── mcp_server.py        # MCP JSON-RPC server
├── analyzer.py          # Package analysis engine
├── documentation.py     # Docstring parsing
├── models.py            # Pydantic data models
├── exceptions.py        # Custom exceptions
└── utils.py             # Utility functions

Key Components

  • Analyzer: Package introspection and symbol discovery
  • Documentation Parser: Multi-format docstring parsing
  • MCP Server: JSON-RPC protocol implementation
  • Models: Type-safe data structures with Pydantic
  • Exception Handling: Comprehensive error management

📝 License

MIT License - see LICENSE file for details.

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Run the test suite
  6. Submit a pull request

Made with ❤️ for the Python community

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcpydoc-0.4.0.tar.gz (39.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcpydoc-0.4.0-py3-none-any.whl (25.8 kB view details)

Uploaded Python 3

File details

Details for the file mcpydoc-0.4.0.tar.gz.

File metadata

  • Download URL: mcpydoc-0.4.0.tar.gz
  • Upload date:
  • Size: 39.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for mcpydoc-0.4.0.tar.gz
Algorithm Hash digest
SHA256 aa24888fbabb65aa48c550d96d41eca685c30c00f02eb6eaf8c3aa3a2402b7bb
MD5 9bdb0d78f8a2ae129e3c8b4fb3811d10
BLAKE2b-256 9eb304607872e37aa132c721db1718a6926ecc7d511599637fc7d984d6f8d19d

See more details on using hashes here.

File details

Details for the file mcpydoc-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: mcpydoc-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 25.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for mcpydoc-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7bab373e208922d93b5fe1eea7ec35eeddce173278f7f1807e43e984c678388f
MD5 b0179aefb7960a6048767299058bb3fd
BLAKE2b-256 3cbe00f6ceae57c3704acdd5e842d32f8be80efa873f7b7f03885b1cd79c0293

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page