Skip to main content
Glama
README.md
# 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

B3/5.0

Scored across 7 tools

Disambiguation4/5

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.

Naming Consistency3/5

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.

Tool Count5/5

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.

Completeness5/5

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.

Maintenance

ActivityInactive
ResponsivenessNo issues