TODO MCP CLI и сервер
В этом репозитории содержится минимальная реализация протокола контекста модели (MCP) для приложения списка дел, включая:
Сервер FastAPI (
server/): предоставляет конечную точку/toolsдля обнаружения инструментов и конечную точку/rpcдля вызовов JSON-RPC для выполнения операций над задачами.CLI-клиент (
client/cli.py): интерфейс командной строки Python, который взаимодействует с LLM (через OpenAI) и сервером MCP для создания, перечисления и выполнения задач с помощью вызовов функций.
Функции
Добавьте задачи с названием, содержанием и, по желанию, датой выполнения.
Список всех задач
Отметить задачи как выполненные
Генерация идентификатора задачи на стороне сервера
Соответствие JSON-RPC 2.0 для вызова инструмента
Предпосылки
Питон 3.10+
pipenv или
venvдля виртуальных средAPI-ключ OpenAI
Установка
Клонируйте репозиторий:
git clone https://github.com/oseni99/todo-mcp cd todo-mcpСоздайте и активируйте виртуальную среду:
python3 -m venv .venv source .venv/bin/activateУстановите зависимости:
pip install -r requirements.txtСоздайте
.envв корне проекта:OPENAI_API_KEY=sk-... MCP_SERVER=http://127.0.0.1:8000
Структура каталога
todoMCP/
├── client/ # CLI client code
│ └── cli.py # Main entrypoint for the MCP-CLI
├── server/ # FastAPI server code
│ ├── handlers.py # Business logic for add, list, complete
│ ├── tools.py # JSON-Schema tool manifest
│ └── main.py # FastAPI app with /tools and /rpc
├── .env # Environment variables (not committed)
├── requirements.txt # Python dependencies
└── README.md # This fileЗапуск сервера
fastapi dev server/main.pyПосетите http://127.0.0.1:8000/docs для получения интерактивной документации по API.
Запуск CLI
Из корня проекта:
python -m client.cliВведите в командной строке команды на естественном языке, например:
> Create a task titled "Write blog post" with content "Outline first draft" due 2025-05-20
> List my tasks
> Mark the first task as done
> Thanks!
> exitCLI выведет вызовы инструментов и ответы LLM.