Skip to main content

Snapshot your dependencies, access version-perfect documentation - An MCP server for AI development assistance

Project description

SnapDepDoc

CI PyPI version License: MIT

Snapshot your dependencies, access version-perfect documentation

An MCP (Model Context Protocol) server that parses project definition files and exposes library documentation with the correct versions for AI development assistance.

📖 New to SnapDepDoc? Check out the Getting Started Guide for a complete walkthrough!

🚀 Features

  • Multi-format support: Parse pyproject.toml, package.json, pom.xml, build.gradle, build.sbt, and more
  • Version-aware documentation: Fetch documentation for the exact versions specified in your project
  • Tool-based interface: Expose project information through MCP tools
  • Resource access: Provide dependency documentation as MCP resources
  • 8 Ecosystem Support: Python, Node.js, Java/Maven, Gradle, Scala/SBT, Rust, Go, and Ruby

Supported Project Types

  • Python: pyproject.toml, requirements.txt, setup.py
  • Node.js: package.json, package-lock.json
  • Java: pom.xml (Maven), build.gradle (Gradle)
  • Scala: build.sbt (SBT)
  • Rust: Cargo.toml
  • Go: go.mod
  • Ruby: Gemfile

📦 Installation

From PyPI (when released)

# Using pip
pip install snapdepdoc

# Using uv (recommended)
uv pip install snapdepdoc

From Source

# Clone the repository
git clone https://github.com/thec0dewriter/docs_mcp.git
cd docs_mcp

# Using uv (recommended)
uv pip install -e .

# Or using pip
pip install -e .

🎯 Quick Start

1. Install the package

pip install snapdepdoc

2. Configure your MCP client

Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "snapdepdoc": {
      "command": "snapdepdoc"
    }
  }
}

VS Code (.vscode/mcp.json in your project):

{
  "servers": {
    "snapdepdoc": {
      "type": "stdio",
      "command": "snapdepdoc"
    }
  }
}

3. Start using it!

Ask your AI assistant:

  • "What project files are in my directory?"
  • "What are the dependencies in my pyproject.toml?"
  • "Where can I find documentation for FastAPI version 0.104.0?"

See the examples directory for more usage scenarios.

🛠️ Usage

As an MCP Server

Development Setup (from source)

Add to your Claude Desktop configuration (claude_desktop_config.json):

{
  "mcpServers": {
    "snapdepdoc": {
      "command": "uv",
      "args": [
        "--directory",
        "/absolute/path/to/docs_mcp",
        "run",
        "snapdepdoc"
      ]
    }
  }
}

Or in VS Code (.vscode/mcp.json):

{
  "servers": {
    "snapdepdoc": {
      "type": "stdio",
      "command": "uv",
      "args": [
        "--directory",
        "/absolute/path/to/docs_mcp",
        "run",
        "snapdepdoc"
      ]
    }
  }
}

Installed via pip

{
  "mcpServers": {
    "snapdepdoc": {
      "command": "snapdepdoc"
    }
  }
}

📚 Available Tools

The server exposes the following MCP tools:

  • list_project_files: Discover project definition files in a directory
  • parse_dependencies: Extract dependencies from project files with versions
  • get_documentation_url: Get documentation URLs for specific library versions
  • search_api_documentation: Search for API documentation within libraries

📖 Available Resources

MCP resources for direct access:

  • dependencies://{project_path}: List all dependencies with versions from a project
  • docs://{library}@{version}: Access documentation for a specific library version
    • Examples: docs://fastapi@0.104.0, docs://npm:react@18.2.0, docs://mvn:org.springframework:spring-core@6.0.0

🏗️ Supported Ecosystems

Ecosystem Project Files Documentation Sources
Python pyproject.toml, requirements.txt, setup.py PyPI, ReadTheDocs
Node.js package.json, package-lock.json npm registry
Java/Maven pom.xml Maven Central, Javadoc
Gradle build.gradle, build.gradle.kts Maven Central
Scala/SBT build.sbt Maven Central, Scaladoc
Rust Cargo.toml crates.io
Go go.mod pkg.go.dev
Ruby Gemfile RubyGems

🔧 Development

# Install development dependencies
uv pip install -e ".[dev]"

# Run tests
pytest

# Format code
black .
ruff check --fix .

See CONTRIBUTING.md for detailed development guidelines.

📝 Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🗺️ Roadmap

  • Add more ecosystem support (PHP Composer, .NET NuGet, etc.)
  • Implement caching for documentation URLs
  • Add support for private package registries
  • Enhance search functionality with fuzzy matching
  • Add support for monorepo structures
  • Integration with more MCP clients

🐛 Troubleshooting

Server not starting

  • Ensure Python 3.10+ is installed
  • Verify the installation: snapdepdoc --help
  • Check MCP client logs for error messages

Dependencies not parsing correctly

  • Ensure your project file is valid and properly formatted
  • Check the examples directory for reference formats

Documentation URLs not found

  • Some packages may not have standard documentation URLs
  • Verify the package name and version are correct
  • Check your internet connection for API requests

For more issues, please check our GitHub Issues.

📚 Learn More

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

snapdepdoc-0.1.0.tar.gz (76.1 kB view details)

Uploaded Source

Built Distribution

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

snapdepdoc-0.1.0-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

Details for the file snapdepdoc-0.1.0.tar.gz.

File metadata

  • Download URL: snapdepdoc-0.1.0.tar.gz
  • Upload date:
  • Size: 76.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for snapdepdoc-0.1.0.tar.gz
Algorithm Hash digest
SHA256 031763c2a2779b1e15a7147f34931127e34cf89c0df929d774c020df244fb993
MD5 db2806f62d253a1783f91af5f481e128
BLAKE2b-256 7cf18d7ac54febcf1add1bc586b14be00677e114f99c3771d299b23250d57985

See more details on using hashes here.

File details

Details for the file snapdepdoc-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: snapdepdoc-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for snapdepdoc-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ad7797653fc6f13a4a35ab2a9bff7f13e0b0eaedf1f7993e5b9b767583bea258
MD5 8c766999a4b03a39ffc254ecfb51b389
BLAKE2b-256 681ecffb7bc5dd281f40d13f4e1e437b4af9889075de84b8cc073dfa67a91911

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