MCP Hub
Back to servers

Document MCP Server

Provides tools and resources for managing in-memory documents, allowing users to read, edit, and list document contents via the Model Context Protocol. It includes features for formatting documents to Markdown and accessing document-specific resources.

glama
Updated
Mar 13, 2026

Document MCP Server

A simple MCP (Model Context Protocol) server and MCP client for managing documents using FastMCP.

Features

  • Tools:

    • read_doc_contents: Read the contents of a document.
    • edit_document: Edit a document by replacing text.
    • return all the docs: List all document IDs.
  • Resources:

    • docs://documents: JSON list of document IDs.
    • docs://documents/{doc_id}: Plain text content of a specific document.
  • Prompts:

    • format_to_md: Prompt template for formatting documents to Markdown.

Prerequisites

  • Python 3.12 or higher
  • uv (Python package manager and project manager)

Installation

  1. Ensure you have Python 3.12+ installed.

  2. Install uv if not already installed:

    pip install uv
    
  3. Clone or download this project to your local machine.

  4. Navigate to the project directory:

    cd "path/to/mcp server"
    
  5. Create a virtual environment and install dependencies:

    uv sync
    

Running the Server

To run the MCP server in development mode:

uv run mcp dev mcp_server.py

The server runs on stdio transport, suitable for MCP clients.

Testing the Functionality

Test client is provided in mcp_client.py to verify the server works.

To test:

  1. In one terminal, start the server:

    uv run python mcp_server.py
    
  2. In another terminal, run the test client:

    uv run mcp_client.py
    

This will connect to the server and list the available tools, printing them to the console.

For more advanced testing, you can modify mcp_client.py to call specific tools, read resources, or get prompts.

Example: To read a document content, you could add code like:

# Inside the async main function
doc_content = await client.call_tool("read_doc_contents", {"doc_id": "deposition.md"})
print(doc_content)

Project Structure

  • mcp_server.py: The main MCP server implementation.
  • mcp_client.py: A test client for interacting with the server.
  • pyproject.toml: Project configuration and dependencies.

Notes

  • The server uses an in-memory dictionary for documents. Changes are not persisted.
  • Ensure the virtual environment is activated when running Python commands.

Reviews

No reviews yet

Sign in to write a review