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.1.tar.gz (38.1 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.1-py3-none-any.whl (26.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mcpydoc-0.4.1.tar.gz
  • Upload date:
  • Size: 38.1 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.1.tar.gz
Algorithm Hash digest
SHA256 a4683263237e535a78273ab87a673ffee69013f2f047714c6847d8e730b499e7
MD5 de66c58eb09ba95358bd301d804d242e
BLAKE2b-256 e3511be75eaafe9cac991f82ec555e6e617b1abcbef0142233d994680fb2b1a0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mcpydoc-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 26.3 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 37e96e3d2e371bea6d46fdf2ba1442ec4a080586f79259944bcff005884b774a
MD5 34e9bf35669de6b492b2bd8d67ca2962
BLAKE2b-256 680cb5d698f6aef012353b9bc2afe88810da7804f9b5dc9be9f039d08e687794

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