Skip to main content
Glama
README.md
# MCP Docs Server

A lightweight Model Context Protocol (MCP) server that provides direct access to local documentation files - a simple alternative to complex RAG pipelines for project-specific context.

## Overview

This MCP server reads a single markdown file (`context.md`) and exposes its contents through two simple tools:
- `get_context_overview()`: Lists all section titles
- `search_context(query)`: Searches content across all sections

Perfect for giving LLMs access to project documentation without the overhead of vector databases or embedding models.

## Features

- **Zero dependencies** beyond the MCP Python SDK
- **Lightning fast** - direct file access, no vector search
- **Simple setup** - works with both GUI and CLI MCP clients
- **Cross-platform** - includes shell wrapper for macOS/Linux compatibility
- **Robust error handling** - comprehensive logging and debugging support

## Installation

### Prerequisites

- Python 3.11+ 
- MCP client (Claude Desktop, cline, etc.)

### Setup

1. Clone this repository:
```bash
git clone https://github.com/unlock-mcp/mcp-docs-server.git
cd mcp-docs-server
```

2. Install dependencies:
```bash
pip install -r requirements.txt
```

3. Create your documentation file:
```bash
# Create a context.md file in the project root with your documentation
echo "# My Project Docs\n\nThis is my documentation." > context.md
```

### Client Configuration

#### For Claude Desktop (GUI clients)

Use the shell wrapper for reliable execution:

1. Make the wrapper executable:
```bash
chmod +x run_context_server.sh
```

2. Install the server:
```bash
mcp install ./run_context_server.sh --name "docs-server"
```

#### For cline and CLI clients

Add to your MCP configuration file:

```json
{
  "mcpServers": {
    "docs-server": {
      "timeout": 60,
      "type": "stdio",
      "command": "/opt/homebrew/bin/python3.11",
      "args": [
        "/path/to/mcp-docs-server/mcp_context_server.py"
      ],
      "env": {}
    }
  }
}
```

*Note: Update the Python path to match your system (`which python3.11`)*

## Development

### Testing

Use the MCP development tools for easy testing:

```bash
mcp dev ./run_context_server.sh
```

This launches a web-based inspector for testing your server.

### Debugging

The server logs to stderr for debugging. Check your MCP client's logs if you encounter issues.

Common issues:
- **ENOENT errors**: Use the shell wrapper or specify full Python path
- **Import errors**: Ensure `mcp[cli]>=1.2.0` is installed
- **File not found**: Verify `context.md` exists in the project root

## File Structure

```
mcp-docs-server/
├── mcp_context_server.py      # Main server implementation
├── run_context_server.sh      # Shell wrapper for GUI clients
├── requirements.txt           # Python dependencies
├── context.md                 # Your documentation (create this)
└── README.md                  # This file
```

## Usage

Once configured, you can use these tools in your MCP client:

- **Get overview**: "What sections are available in the docs?"
- **Search content**: "Search for authentication in the docs"
- **Specific queries**: "How do I configure the database?"

## Tutorial

For a complete walkthrough of building this server from scratch, including common pitfalls and solutions, see the full tutorial: [Ditching RAG: Building a Local MCP Server for Your Docs](https://unlockmcp.com/guides/how-to-build-a-local-mcp-server-for-your-docs-a-complete-walkthrough/)

## Contributing

Contributions welcome! Please feel free to submit issues and pull requests.

## License

MIT License - see LICENSE file for details.

---

Built with ❤️ by the [UnlockMCP](https://unlockmcp.com) team.