Skip to main content
Glama
deepujain

MCP Document & Task Server

by deepujain
README.md
# MCP Document & Task Server

Example [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) servers from the Medium article
[The Model Context Protocol (MCP): Fundamentals, Real-World Applications, and Building AI Agent Integrations](https://medium.com/@deepujain/the-model-context-protocol-mcp-fundamentals-real-world-applications-and-building-ai-agent-ba43bdc379f4).

Two self-contained MCP servers that any compatible AI host (Claude Desktop, Cursor, or a custom agent) can discover and use automatically.

## Servers

**`server.py`** -- Document database with three tools:
- `search_documents(query)` -- search documents by title
- `get_document(doc_id)` -- retrieve a document by ID
- `create_document(title, content, author)` -- create a new document

**`task_server.py`** -- Task tracker with two tools:
- `search_tasks(query)` -- search tasks by title keyword
- `get_tasks_by_status(status)` -- get tasks by status (`todo`, `in_progress`, `done`)

## Quick Start

```bash
# Clone the repo
git clone https://github.com/deepujain/mcp-doc-server.git
cd mcp-doc-server

# Create virtual environment and install dependencies
uv venv
source .venv/bin/activate
uv sync
```

### Test with the MCP Inspector

```bash
# Document server
mcp dev server.py

# Task tracker (in a separate terminal)
mcp dev task_server.py
```

The Inspector opens in your browser. Click **Tools > List Tools**, select a tool, fill in the input, and hit **Run Tool**.

### Connect to Cursor

Add to `.cursor/mcp.json` in your project root:

```json
{
  "mcpServers": {
    "document-db": {
      "command": "uv",
      "args": ["--directory", "/path/to/mcp-doc-server", "run", "server.py"]
    },
    "task-tracker": {
      "command": "uv",
      "args": ["--directory", "/path/to/mcp-doc-server", "run", "task_server.py"]
    }
  }
}
```

Replace `/path/to/mcp-doc-server` with the actual path. Restart Cursor, then ask in agent chat:

> "Find the Q1 report and summarize it"

> "What tasks are in progress?"

### Connect to Claude Desktop

Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS):

```json
{
  "mcpServers": {
    "document-db": {
      "command": "uv",
      "args": ["--directory", "/path/to/mcp-doc-server", "run", "server.py"]
    },
    "task-tracker": {
      "command": "uv",
      "args": ["--directory", "/path/to/mcp-doc-server", "run", "task_server.py"]
    }
  }
}
```

Restart Claude Desktop. The tools appear automatically.

## Requirements

- Python 3.10+
- [UV](https://docs.astral.sh/uv/) package manager

## License

MIT

TDQS

B3.2/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: create, retrieve by ID, and search by title. There is no ambiguity between them.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in snake_case (create_document, get_document, search_documents), making naming predictable.

Tool Count3/5

With only 3 tools, the server feels minimal for a 'Document & Task Server'. The count is borderline low but not excessively so.

Completeness2/5

The tool set lacks update and delete operations for documents, and entirely omits task-related functionality despite the server name. This creates significant gaps.

Maintenance

ActivityInactive
ResponsivenessNo issues