Tasks MCP Server
# Tasks MCP
### Configure mcp client vscode
```json
// For use with vscode and copilot
{
"servers": {
"tasks-mcp": {
"type": "stdio",
"command": "uv",
"args": [
"run",
"--directory",
"path-to/tasks-mcp",
"src/main.py"
],
"env": {
"TRANSPORT": "stdio"
},
}
},
"inputs": []
}
```
```yaml
// For use with continue.dev extension
name: Tasks MCP Server
version: 0.0.1
schema: v1
mcpServers:
- name: Task MCP
command: uv
args:
- run
- --directory
- /path-to/tasks-mcp
- src/main.py
env: {
TRANSPORT: "stdio"
}
```
---
### Runing server mode
```bash
// env variables
TRANSPORT=streamable-http
DATABASE_PATH=~/.tasks.sqlite3 # default data folrder on MCP project
HOST=0.0.0.0
PORT=8000
```
```bash
// Running local python server
make install
make run
```
```bash
// Run in docker
make docker.build
make docker.run
```
---
### Common Natural Language Commands
You can interact with the Tasks MCP server using natural language commands. Here are some examples:
- Add a task with title {title} and description {description}
- Example: "Add task with title Buy groceries and description Get milk, eggs, and bread."
- List all tasks
- Example: "Show me all my tasks" or "List tasks created"
- Get details of a specific task
- Example: "Show details for task 2"
- Update a task's title or description
- Example: "Update task 3 with title Review project plan and description Check deadlines and deliverables."
- Change the status of a task
- Example: "Mark task 4 as in progress" or "Complete the task for dinner"
- Delete a task
- Example: "Delete task 5"
You can use these commands in English or Spanish. The system will interpret your intent and perform the requested action.
---
## Libraries Used
This project uses the following main libraries:
- **mcp[cli]**: Provides the Model Context Protocol (MCP) server and CLI tools for building and running MCP-compatible agents and servers.
- **pydantic-settings**: For configuration management and environment variable parsing.
- **sqlite3** (Python standard library): Used for local task data storage.
- **dataclasses** (Python standard library): For structured data models.
See `pyproject.toml` for the full list of dependencies.
TDQS
Scored across 7 tools
Most tools have distinct purposes (add, delete, get, update, list, filter, get status), but 'tasks_list_tool' and 'filter_tasks_tool' could cause confusion as both retrieve lists of tasks. The descriptions clarify that one is a simple list with a limit, while the other allows filtering by multiple criteria, but the overlap in functionality might lead to misselection in some contexts.
The naming is mixed with no clear pattern: 'add_task_tool', 'delete_task_tool', 'filter_tasks_tool', 'get_tasks_status', 'get_task_tool', 'tasks_list_tool', 'update_task_tool'. Some use verb_noun_tool (e.g., add_task_tool), others use noun_verb_tool (e.g., tasks_list_tool), and 'get_tasks_status' lacks the '_tool' suffix. This inconsistency reduces predictability but remains readable.
With 7 tools, this is well-scoped for a task management server. Each tool serves a clear purpose in handling tasks, such as CRUD operations, listing, filtering, and retrieving status values. The count is neither too sparse nor bloated, fitting typical use cases effectively.
The tool set provides complete coverage for task management: create (add_task_tool), read (get_task_tool, tasks_list_tool, filter_tasks_tool), update (update_task_tool), delete (delete_task_tool), and additional utility (get_tasks_status). There are no obvious gaps; agents can perform all essential lifecycle operations without dead ends.