Skip to main content
Glama
bmihestean

delivery-mcp-server

by bmihestean

delivery-mcp-server

PH.02 of the AI-Forward Delivery Leader Build Program. Сервер MCP (Model Context Protocol), предоставляющий индексированные программные документы delivery-copilot — SOW, отчеты о статусе, заметки QBR, реестр рисков — в виде инструментов, ресурса и подсказки, которые любой хост MCP (Claude Desktop, Claude Code) может использовать напрямую, с изоляцией по учетным записям, перенесенной напрямую из PH.01.

MCP — это та часть, которую почти ни один кандидат с опытом в delivery/PM на самом деле не создавал: большинство людей использовали MCP-сервер внутри чат-клиента. Этот сервер создан с нуля, и этот README также служит объяснением назначения каждой движущейся части.

Статус

Создано и проверено: 3 инструмента, 1 ресурс, 1 подсказка, все протестированы от начала до конца через реальный MCP Client и через claude mcp add в Claude Code.

Что такое MCP и почему он построен именно так

MCP стандартизирует то, как хост-приложение (Claude Desktop, Claude Code) взаимодействует с сервером, предоставляющим данные и функциональность — одна интеграция вместо индивидуальной для каждого приложения. Сервер предоставляет три различных примитивных типа, и эта сборка намеренно использует все три, чтобы показать различие на практике, а не просто описать его:

  • Инструменты — действие, которое модель решает вызвать в середине разговора, выбирая собственные аргументы. search_delivery_docs — это основной инструмент данного сервера.

  • Ресурсы — данные только для чтения, которые приложение выбирает для загрузки по URI, как браузер загружает страницу — не то, что модель вызывает сама. delivery://{account}/{filename} — это ресурс данного сервера: получить целый документ, когда вы уже знаете, какой именно вам нужен.

  • Подсказки — шаблон сообщения, который человек вызывает по имени, как слэш-команду. draft_status_update — это подсказка данного сервера: выберите учетную запись, получите готовую инструкцию, вставленную в разговор.

Разделение на поиск и генерацию — это настоящее архитектурное решение. delivery-copilot/ask.py извлекает фрагменты и вызывает Claude для генерации ответа с цитированием в одном скрипте, потому что ничто другое в этом конвейере не является моделью. Внутри MCP-сервера в цикле уже есть модель — та, что ведет разговор хоста. Поэтому search_delivery_docs выполняет только поиск и возвращает совпавшие фрагменты в виде данных; собственная модель хоста читает их и сама составляет обоснованный ответ, руководствуясь инструкцией по цитированию/отказу, встроенной в docstring инструмента (единственное место, где сервер может оставить инструкции по обоснованию, поскольку он не владеет системным промптом). Одно заслуживающее упоминания следствие: этот сервер ни разу не вызывает Claude. Нет ANTHROPIC_API_KEY, нет платных запросов — это локальное встраивание и векторный поиск, именно то, что уже делает ingest.py. Стоимость генерации полностью ложится на хост.

Изоляция переносится без изменений из PH.01. Каждый инструмент принимает аргумент account и читает только коллекцию Chroma этой учетной записи (delivery_docs__<account>) — снова проверено на этом уровне с помощью одноразовой второй учетной записи: задав ей не связанный вопрос (то, на что могла ответить только meridian-health), она вернула только свою собственную единственную заметку, никогда не содержимое Meridian.

Структура репозитория — почему это не Python-импорт от delivery-copilot

Этот репозиторий зависит от delivery-copilot ровно для одной вещи: артефакта данных в chroma_db/, а не его кода. Никакого межрепозиторного pip install -e, никаких общих модулей:

  • list_accounts() читает client.list_collections() и удаляет префикс delivery_docs__ — вообще не нуждается в data/raw/.

  • list_documents(account) читает уникальные значения source, уже сохраненные в метаданных фрагментов этой коллекции.

  • Ресурс delivery:// восстанавливает документ, объединяя его фрагменты в исходном порядке (извлеченном из идентификаторов фрагментов source::N, которые ingest.py уже назначает).

Укажите DELIVERY_DB_PATH на любое собранное хранилище Chroma (по умолчанию: ../delivery-copilot/chroma_db, предполагая, что оба репозитория клонированы как соседние) — и этот сервер работает — действительно самодостаточный с точки зрения кода, независимо клонируемый, что соответствует тому, как ai-fundamentals-rig и delivery-copilot независимы друг от друга.

Стоящая внимания находка (окружение)

mcp[cli] тянет за собой pyjwt[crypto]cryptography. cryptography перестала поставлять предварительно собранные x86_64 macOS wheels начиная с v46.0.4 (с тех пор только arm64) — установка на этой (действительно Intel) машине пыталась скомпилировать из исходников и не удалась без заголовков Rust/OpenSSL. Зафиксировали cryptography==46.0.3 в requirements.txt, последний релиз с x86_64 wheel, комфортно удовлетворяющий требованию pyjwt cryptography>=3.4.0. Напоминание: "pip install" молча предполагает, что для вашей архитектуры CPU есть wheel — это не всегда так.

Также: текущая мажорная версия MCP Python SDK (v2) требует Python 3.10+; системный Python этой машины был 3.9.6. Установили 3.13 через официальный установщик python.org, рядом с системным интерпретатором, специально для .venv этого репозитория.

Настройка

# needs delivery-copilot's index already built: `python ingest.py` in that repo first
python3.13 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Запуск

Ручное тестирование, хост не нужен — вызывает каждый инструмент/ресурс/подсказку через реальный Client в памяти:

python test_server.py

MCP Inspector (интерактивный, открывает локальный веб-интерфейс):

uv run mcp dev server.py     # or: pip install uv, then the same command

Зарегистрировать в Claude Code:

claude mcp add delivery-copilot \
  -e DELIVERY_DB_PATH=/absolute/path/to/delivery-copilot/chroma_db \
  -- /absolute/path/to/delivery-mcp-server/.venv/bin/python /absolute/path/to/delivery-mcp-server/server.py

claude mcp list   # confirm it connects

Затем в чате Claude Code: "Используя MCP-сервер delivery-copilot, кто владеет риском Okta для meridian-health, согласно документам?" — Claude сам вызывает search_delivery_docs и цитирует то, что возвращается.

Что дальше

PH.02 функционально завершен: 3 инструмента, 1 ресурс, 1 подсказка, протестированы локально и вживую через Claude Code. Естественные расширения, не блокирующие: вторая реальная учетная запись, как только она появится (ничто здесь не привязано к meridian-health), и агент статуса/рисков PH.03 может разумно строиться на draft_status_update, а не начинаться с нуля.


Часть AI-Forward Delivery Leader Build Program.

-
license - not tested
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Agentic search over your Dewey document collections from any MCP-compatible client.

  • Search your knowledge bases from any AI assistant using hybrid RAG.

  • Securely search and manage workspace context files for AI agents and teams.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/bmihestean/delivery-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server