Docs MCP Server

Docs MCP Server

Enables Claude to interact with collaborative Docs instances, providing document management, content editing, access control, and AI-powered transformations via MCP.

Category
Visit Server

README

<img src="https://docs.numerique.gouv.fr/assets/icon-docs-dsfr.svg" width="48" alt="Icรดne DSFR">

Docs MCP Server

<div align="center">

๐Ÿš€ MCP Server for Docs

Complete API integration with 31 tools including document content editing via Yjs

PyPI version Python Support License: MIT Code style: ruff Tests Coverage Security Type Checked

๐Ÿ“– Documentation โ€ข ๐Ÿš€ Installation โ€ข ๐Ÿ› ๏ธ Usage โ€ข ๐Ÿค Contributing โ€ข ๐Ÿ“‹ Changelog

</div>


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

<details> <summary><strong>๐Ÿ“„ Document Operations (6 tools)</strong></summary>

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

</details>

<details> <summary><strong>โœ๏ธ Document Content Editing (4 tools)</strong></summary>

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

</details>

<details> <summary><strong>๐ŸŒณ Tree Operations (4 tools)</strong></summary>

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

</details>

<details> <summary><strong>๐Ÿ” Access Management (7 tools)</strong></summary>

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

</details>

<details> <summary><strong>๐Ÿ‘ค User & Content Management (8 tools)</strong></summary>

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

</details>

<details> <summary><strong>๐Ÿค– AI Features (2 tools)</strong></summary>

Tool Description
docs_ai_transform AI text transformation (correct, rephrase, summarize)
docs_ai_translate AI translation services

</details>

๐Ÿ“Š 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

๐Ÿ“„ License

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

๐Ÿค Contributing

We welcome contributions! Please see our Contributing Guidelines 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" /> </a>

๐Ÿ™ Acknowledgments


<div align="center">

Made with โค๏ธ by nic01asFr

Enabling seamless AI integration with collaborative documentation

</div>

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured