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