Skip to main content
Glama

Домашнее задание MCP — Хост, два транспорта и навык

Этот проект удовлетворяет локальным частям задания без использования дополнительных фреймворков:

  • CLI-агент с использованием Ollama qwen3.5:4b;

  • MCP-хост, загружающий конфигурацию, объединяющий инструменты и маршрутизирующий вызовы;

  • todo-сервер через stdio с 3 инструментами, 1 ресурсом и 1 подсказкой;

  • тот же сервер через аутентифицированный локальный Streamable HTTP;

  • прогрессивная загрузка навыков через use_skill;

  • сохранение состояния, валидация, восстанавливаемые MCP-ошибки и интеграционные тесты.

Публичный хостинг намеренно не выполняется. См. PUBLIC_HTTP.md для точных шагов развертывания.

Требования

  • Node.js 20+

  • Ollama

  • qwen3.5:4b: ollama pull qwen3.5:4b

Related MCP server: Personal OS MCP

Установка и проверка

npm install
npm test
npm run check

Запуск всего локально

Используйте один и тот же локальный ключ в обоих терминалах. Он не сохраняется в репозитории.

Терминал 1 — запуск аутентифицированного HTTP-сервера:

export MCP_KEY="$(openssl rand -hex 32)"
echo "$MCP_KEY"   # copy this value for terminal 2
npm run server:http

Терминал 2 — убедитесь, что Ollama запущен, затем запустите агента:

export MCP_KEY="paste-the-same-value"
ollama serve      # omit if Ollama is already running

В другом терминале выполните:

export MCP_KEY="paste-the-same-value"
npm run agent

Попробуйте эти запросы:

Add "finish MCP homework" using the stdio todo server.
Add "record the demo" using the HTTP todo server.
Standup time — what should I work on today?

Последний запрос должен запустить use_skill("daily-plan"), затем вызвать оба MCP-сервера и вернуть Сегодня, Позже и Блокеры.

Тестирование с MCP Inspector

Stdio:

npx @modelcontextprotocol/inspector node src/servers/stdio.js

HTTP:

export MCP_KEY="a-local-test-key"
npm run server:http
npx @modelcontextprotocol/inspector

В Inspector выберите Streamable HTTP, используйте http://127.0.0.1:3000/mcp и добавьте заголовок Authorization: Bearer a-local-test-key. Проверьте:

  1. add_task, list_tasks и complete_task отображаются и вызываются.

  2. todo://list можно прочитать.

  3. plan_my_day можно загрузить.

  4. Завершение неизвестного ID возвращает isError: true.

Карта проекта

config.json                 agent/model/server configuration
skills/daily-plan/SKILL.md on-demand workflow
src/agent/                  MCP host, Ollama loop, and skill loader
src/todo/                   shared todo domain and MCP capabilities
src/servers/stdio.js        stdio entry point
src/servers/http.js         Streamable HTTP entry point
test/                       unit and protocol integration tests

Подтверждение оценивания

Требование

Подтверждение

Хост-агент

src/agent, config.json; объединяет и маршрутизирует инструменты с префиксами

stdio-сервер

src/servers/stdio.js; 3 инструмента + ресурс + подсказка

Локальный HTTP

src/servers/http.js; Streamable HTTP + health + bearer-аутентификация

Навык в агенте

skills/daily-plan/SKILL.md; индексирован, затем загружен через use_skill

Обработка ошибок

Валидация Zod, isError, ограниченный цикл агента, стабильные HTTP-ошибки

Тесты

npm test проверяет репозиторий и оба MCP-транспорта из конца в конец

Демонстрация и чек-лист сдачи

Для короткой демонстрации на YouTube:

  1. Покажите успешное выполнение npm test.

  2. Покажите stdio-сервер в Inspector: инструменты, ресурс и подсказку.

  3. Покажите HTTP-сервер, возвращающий 401 без ключа, а затем подключение с ключом.

  4. В агенте добавьте одну задачу через каждый сервер.

  5. Спросите "Время стендапа" и покажите автоматическую загрузку навыка с вызовами обоих серверов.

  6. Кратко откройте config.json и SKILL.md и объясните маршрутизацию.

Отправьте ссылку на YouTube и исходный код в Moodle. Если вы позже развернете проект, также отправьте публичный URL /mcp и временный ключ для проверяющего.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    A local-stdio MCP server for a single personal Todoist account with env-gated read-only mode and prompt-injection mitigations.
    221 npm
    MIT
  • F
    license
    A
    quality
    B
    maintenance
    MCP server for Personal OS API that enables managing tasks, notes, projects, collections, reviews, and more through typed tools over stdio.
    66
    -
  • F
    license
    Not graded
    quality
    B
    maintenance
    A Model Context Protocol server that provides todo management via stdio, local HTTP, and public HTTPS transports, enabling agents to add, list, and complete tasks, and includes a daily standup skill.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    A demo MCP server exposing an in-memory todo list via tools (add_task, list_tasks, complete_task), a resource, and a prompt, over both stdio and HTTP transports.
    1 npm
    ISC