nic01asFr/docs-mcp-server
If you are the rightful owner of docs-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 Docs MCP Server is a professional server that integrates seamlessly with Claude and Docs instances using the Model Context Protocol (MCP), enabling advanced document management and AI-powered features.
Docs MCP Server
๐ Professional MCP Server for Docs
Complete API integration with 31 tools including document content editing via Yjs
๐ Documentation โข ๐ Installation โข ๐ ๏ธ Usage โข โข
The Docs MCP Server provides seamless integration between Claude and Docs instances through the Model Context Protocol (MCP). It enables Claude to interact with collaborative documents, manage access permissions, and leverage AI-powered features directly within the Docs ecosystem.
โจ Key Features
๐ Complete Document Management
- ๐ Create, read, update, and delete documents
- ๐ณ Navigate hierarchical document structures
- โ๏ธ Move and reorganize documents in trees
- ๐ Duplicate documents with or without permissions
- โญ Manage favorites and restore from trashbin
โ๏ธ Document Content Editing (NEW in v0.2.0)
- ๐ Read document content as plain text
- โ๏ธ Update documents with text or markdown
- ๐ Apply AI transformations directly to documents
- ๐ Translate document content automatically
- ๐ง Yjs (CRDT) format support for collaborative editing
๐ฅ Advanced Access Control
- ๐ Grant and revoke user permissions (reader, editor, administrator, owner)
- ๐ง Send email invitations to external users
- ๐ Search for users across the platform
- ๐ฎ Manage pending invitations
๐ค AI-Powered Features
- โ๏ธ Text correction and grammar checking
- ๐ Content rephrasing and summarization
- ๐ Multi-language translation support
- โก Custom AI transformations
๐ Version History
- ๐ Browse document version history
- ๐ Retrieve specific version content
- ๐ Track changes over time
๐ MCP Integration
- 31 Tools: Comprehensive set of operations including content editing
- 4 Resources: Real-time data access
- Type Safety: Full TypeScript-style type hints
- Error Handling: Robust error management
- Yjs Support: Native collaborative document format
๐ Installation
From PyPI (Recommended)
pip install docs-mcp-server
From Source (Development)
git clone https://github.com/nic01asFr/docs-mcp-server.git
cd docs-mcp-server
pip install -e \".[dev]\"
โ๏ธ Configuration
Environment Variables
export DOCS_BASE_URL=\"https://your-docs-instance.com\"
export DOCS_API_TOKEN=\"your-api-token\"
export DOCS_TIMEOUT=30 # Optional: request timeout in seconds
export DOCS_MAX_RETRIES=3 # Optional: maximum retry attempts
Verify Configuration
docs-mcp-server --config-check
Output:
โ Configuration loaded successfully
Base URL: https://docs.example.com
Token: ****-token-****-1234
Timeout: 30s
Max retries: 3
โ API connection successful
Authenticated as: user@example.com
User ID: user-123
๐ ๏ธ Usage
Command Line
# Start with environment variables
docs-mcp-server
# Start with explicit configuration
docs-mcp-server --base-url https://docs.example.com --token your-token
# Start with custom server name
docs-mcp-server --name my-docs-server
# Start with verbose logging
docs-mcp-server --verbose
Python Module
python -m docs_mcp_server
Programmatic Usage
import asyncio
from docs_mcp_server import DocsServer
async def main():
server = DocsServer(
base_url=\"https://docs.example.com\",
token=\"your-token\",
server_name=\"my-docs-server\"
)
await server.run()
if __name__ == \"__main__\":
asyncio.run(main())
๐ Available Tools
๐ Document Operations (6 tools)
| Tool | Description |
|---|---|
docs_list_documents | List documents with filtering and pagination |
docs_get_document | Retrieve a specific document by ID |
docs_create_document | Create new documents (root or child) |
docs_update_document | Update document title and content |
docs_delete_document | Soft delete documents |
docs_restore_document | Restore deleted documents |
โ๏ธ Document Content Editing (4 tools)
| Tool | Description |
|---|---|
docs_get_content_text | Read document content as plain text |
docs_update_content | Update document with text or markdown |
docs_apply_ai_transform | Apply AI transformation and save to document |
docs_apply_ai_translate | Translate and save document content |
๐ณ Tree Operations (4 tools)
| Tool | Description |
|---|---|
docs_move_document | Move documents in tree structure |
docs_duplicate_document | Create document copies |
docs_get_children | Get immediate child documents |
docs_get_tree | Get complete tree structure |
๐ Access Management (7 tools)
| Tool | Description |
|---|---|
docs_list_accesses | List document permissions |
docs_grant_access | Grant user access to documents |
docs_update_access | Modify existing permissions |
docs_revoke_access | Remove user access |
docs_invite_user | Send email invitations |
docs_list_invitations | List pending invitations |
docs_cancel_invitation | Cancel invitations |
๐ค User & Content Management (8 tools)
| Tool | Description |
|---|---|
docs_search_users | Search users by email |
docs_get_current_user | Get current user information |
docs_add_favorite | Add documents to favorites |
docs_remove_favorite | Remove from favorites |
docs_list_favorites | List favorite documents |
docs_list_trashbin | List deleted documents |
docs_list_versions | List document version history |
docs_get_version | Get specific version content |
๐ค AI Features (2 tools)
| Tool | Description |
|---|---|
docs_ai_transform | AI text transformation (correct, rephrase, summarize) |
docs_ai_translate | AI translation services |
๐ Resources
| Resource | Description |
|---|---|
docs://documents | All accessible documents |
docs://favorites | User's favorite documents |
docs://trashbin | Soft-deleted documents |
docs://user | Current user information |
๐ก Examples
Basic Document Operations
from docs_mcp_server import create_client
async def example():
async with create_client() as client:
# Create a document
doc = await client.create_document(
title=\"Project Proposal\",
content=\"# Project Overview\\n\\nThis is our new project...\"
)
# Grant access to a colleague
await client.grant_access(
document_id=doc.id,
user_email=\"colleague@example.com\",
role=\"editor\"
)
# Use AI to improve content
improved = await client.ai_transform(
document_id=doc.id,
text=\"This text needs improvement\",
action=\"rephrase\"
)
print(f\"Improved text: {improved.result}\")
MCP Server Integration
import asyncio
from docs_mcp_server import DocsServer
async def main():
server = DocsServer(
base_url=\"https://docs.example.com\",
token=\"your-token\",
server_name=\"company-docs\"
)
await server.run()
asyncio.run(main())
Error Handling
from docs_mcp_server import DocsAPIClient, DocsError, DocsNotFoundError
async def robust_example():
try:
async with DocsAPIClient() as client:
doc = await client.get_document(\"non-existent-id\")
except DocsNotFoundError:
print(\"Document not found\")
except DocsError as e:
print(f\"API error: {e.message}\")
except Exception as e:
print(f\"Unexpected error: {e}\")
๐งช Development
Setup Development Environment
git clone https://github.com/nic01asFr/docs-mcp-server.git
cd docs-mcp-server
pip install -e \".[dev]\"
pre-commit install
Run Tests
# Run all tests
pytest
# Run with coverage
pytest --cov=docs_mcp_server --cov-report=html
# Run specific test file
pytest tests/test_client.py -v
Code Quality
# Linting and formatting
ruff check src/ tests/
ruff format src/ tests/
# Type checking
mypy src/docs_mcp_server
# Security scanning
bandit -r src/
safety check
Documentation
# Serve documentation locally
mkdocs serve
# Build documentation
mkdocs build
๐ญ Production Ready
โ Quality Assurance
- ๐งช Comprehensive test suite with >95% coverage
- ๐ Type safety with mypy and pydantic
- ๐งน Code quality with ruff and pre-commit hooks
- ๐ก๏ธ Security scanning with bandit and safety
- ๐ Performance monitoring and optimization
๐ Security
- ๐ Secure API token management
- ๐ HTTPS-only communication
- โ Input validation and sanitization
- ๐พ No sensitive data storage
- ๐ Comprehensive security documentation
๐ CI/CD
- ๐ Automated testing on multiple Python versions (3.10-3.12)
- ๐ฆ Automated PyPI publishing on releases
- ๐ Security vulnerability scanning
- ๐ Performance regression testing
๐ Documentation
- ๐ Comprehensive API documentation
- ๐ก Usage examples and tutorials
- ๐ค Contribution guidelines
- ๐ Security policy
- ๐ Detailed changelog
๐ Links
- ๐ฆ PyPI Package
- ๐ Documentation
- ๐ GitHub Repository
- ๐ Issue Tracker
- ๐ฌ Discussions
๐ License
This project is licensed under the MIT License - see the file for details.
๐ค Contributing
We welcome contributions! Please see our for details.
Contributors
<a href="https://github.com/nic01asFr/docs-mcp-server/graphs/contributors\"> <img src="https://contrib.rocks/image?repo=nic01asFr/docs-mcp-server\" />
๐ Acknowledgments
- Model Context Protocol for the MCP specification
- La Suite Numรฉrique and the DINUM team for creating the Docs platform
- All contributors and users of this project
Made with โค๏ธ by Nicolas LAVAL
Enabling seamless AI integration with collaborative documentation