Snapshot your dependencies, access version-perfect documentation - An MCP server for AI development assistance
Project description
SnapDepDoc
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 directoryparse_dependencies: Extract dependencies from project files with versionsget_documentation_url: Get documentation URLs for specific library versionssearch_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 projectdocs://{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
- Examples:
🏗️ 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
- Getting Started Guide - Complete walkthrough for new users
- Examples - Usage examples for all supported ecosystems
- Contributing Guide - How to contribute to the project
- Release Guide - For maintainers releasing new versions
- Publishing Guide - How to publish to PyPI
- Changelog - Version history and updates
- MCP Documentation - Learn about Model Context Protocol
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
031763c2a2779b1e15a7147f34931127e34cf89c0df929d774c020df244fb993
|
|
| MD5 |
db2806f62d253a1783f91af5f481e128
|
|
| BLAKE2b-256 |
7cf18d7ac54febcf1add1bc586b14be00677e114f99c3771d299b23250d57985
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ad7797653fc6f13a4a35ab2a9bff7f13e0b0eaedf1f7993e5b9b767583bea258
|
|
| MD5 |
8c766999a4b03a39ffc254ecfb51b389
|
|
| BLAKE2b-256 |
681ecffb7bc5dd281f40d13f4e1e437b4af9889075de84b8cc073dfa67a91911
|