Skip to main content
Glama
moazhassan751

todo-mcp-server

📝 Простой MCP-сервер для списка задач

Постоянный менеджер списка задач, реализованный как сервер Model Context Protocol (MCP) с использованием Python SDK FastMCP. Он предоставляет три инструмента, которые любой MCP-совместимый ИИ-клиент (Claude Desktop, Cursor, Antigravity IDE) может обнаружить и вызывать.

Что он делает

Этот сервер позволяет ИИ-ассистенту управлять простым списком задач от вашего имени — добавлять задачи с приоритетами, просматривать их с фильтрами и отмечать как выполненные. Все задачи сохраняются в локальный JSON-файл (tasks.json), поэтому состояние сохраняется между сеансами.


Related MCP server: mcpappwrite

Инструменты

add_task

Создание новой задачи с необязательным уровнем приоритета.

Параметр

Тип

Обязательный

По умолчанию

Описание

title

string

✅

—

Описание задачи (1–200 символов)

priority

string

❌

"medium"

Одно из "low", "medium", "high"

Пример ввода:

{ "title": "Write MCP report", "priority": "high" }

Пример вывода:

✅ Task added!
  ID:       1
  Title:    Write MCP report
  Priority: high
  Status:   pending

list_tasks

Просмотр задач, опционально отфильтрованных по статусу.

Параметр

Тип

Обязательный

По умолчанию

Описание

status

string

❌

"all"

Одно из "all", "pending", "done"

Пример ввода:

{ "status": "pending" }

Пример вывода:

📋 Tasks (pending) — 2 found:

  ID  Status    Priority Title
————  ————————— ———————— ————————————————————————————————————————
   2  ⏳ pending medium   Review lecture notes
   3  ⏳ pending low      Buy coffee

complete_task

Отметить задачу как выполненную по её числовому идентификатору.

Параметр

Тип

Обязательный

Описание

task_id

integer

✅

Идентификатор, показанный в list_tasks

Пример ввода:

{ "task_id": 1 }

Пример вывода:

✅ Task 1 completed!
  Title:        Write MCP report
  Completed at: 2026-08-19T08:42:42.518574+00:00

Примеры обработки ошибок:

# Empty title
Error: Task title cannot be empty.

# Non-existent task
Error: No task with ID 999. Valid IDs: [1, 2, 3]

# Already completed
Task 1 ('Write MCP report') is already marked as done.

Инструкции по настройке

Предварительные требования

  • Python 3.10+

  • pip

Установка

# Clone the repo
git clone https://github.com/YOUR_USERNAME/simple-mcp-server.git
cd simple-mcp-server

# Install dependencies
pip install -r requirements.txt

Запуск сервера

Режим Stdio (по умолчанию — используется MCP-клиентами):

python server.py

MCP Inspector (интерактивный интерфейс тестирования):

mcp dev server.py
# Opens at http://localhost:6274

Автоматические тесты (с помощью включённого тестового скрипта):

python test_server.py

Подключение к MCP-клиентам

Claude Desktop

Добавьте в claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%/Claude/):

{
  "mcpServers": {
    "todo-server": {
      "command": "python",
      "args": ["/absolute/path/to/simple-mcp-server/server.py"]
    }
  }
}

Cursor

Добавьте в .cursor/mcp.json в корне вашего проекта:

{
  "mcpServers": {
    "todo-server": {
      "command": "python",
      "args": ["/absolute/path/to/simple-mcp-server/server.py"]
    }
  }
}

Google Antigravity IDE

Добавьте в .agents/mcp_config.json в корне вашего рабочего пространства:

{
  "mcpServers": {
    "todo-server": {
      "command": "python",
      "args": ["/absolute/path/to/simple-mcp-server/server.py"]
    }
  }
}

Smithery (удалённое развёртывание)

После развёртывания на Smithery настройте с помощью:

{
  "mcpServers": {
    "todo-server": {
      "serverUrl": "https://server.smithery.ai/@YOUR_USERNAME/simple-mcp-server/mcp"
    }
  }
}

Структура проекта

simple-mcp-server/
├── server.py           # Main MCP server with 3 tools
├── test_server.py      # Automated test script
├── requirements.txt    # Python dependencies
├── .gitignore          # Git ignore rules
├── Dockerfile          # Docker image for Smithery deployment
├── smithery.yaml       # Smithery deployment configuration
└── README.md           # This file

Выводы

  1. Магия FastMCP по преобразованию типов в схему мощна, но непрозрачна. Декоратор @mcp.tool() автоматически генерирует JSON Schema из подсказок типов Python и docstring — это отлично сокращает шаблонный код. Но когда что-то идёт не так (например, ключевое слово version не принимается в конструкторе), ошибка всплывает глубоко в слое протокола MCP, а не на уровне Python. Для отладки потребовалось читать исходный код SDK.

  2. Кодировка Windows сильно мешает. Консоль Windows по умолчанию использует cp1252, которая не может отображать символы эмодзи (✅, 📋). Это вызвало сбой нашего тестового скрипта с UnicodeEncodeError, хотя сам инструмент MCP работал нормально. Исправление (sys.stdout.reconfigure(encoding="utf-8")) — одна строка, но для его поиска потребовалось понять разницу между транспортным слоем MCP (который отлично работает с UTF-8) и слоем терминала (который — нет).

  3. Транспорт stdio в MCP удивительно элегантен. Весь протокол работает через сообщения JSON-RPC в stdin/stdout. Нет необходимости настраивать HTTP-сервер, открывать порты или бороться с CORS-заголовками. Клиент запускает сервер как подпроцесс, и они просто общаются. Это делает локальную разработку невероятно простой по сравнению с созданием REST API, и именно поэтому MCP-серверы так легко подключать к разным клиентам.


Лицензия

MIT

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers