week7-mcp-server
Неделя 7 — MCP (даём агенту собственные инструменты стандартным способом)
Часть моего пути по прокачке навыков автоматизации в условиях, когда отрасль движется в сторону ИИ. Эта неделя посвящена Model Context Protocol (MCP) — вместо вставки данных в промпт LLM получает небольшой набор инструментов и сама решает, какие из них вызвать и в каком порядке, чтобы ответить на вопрос.
Почему эта неделя важна: жёсткое зашивание данных в промпт не масштабируется дальше демо. MCP — это становящийся стандарт подхода «вот ваши инструменты и источники данных — вперёд»; именно он позволяет агенту подключиться к живой системе, а не к снапшоту.
Архитектура
[client.py asks a question]
|
v
[Claude sees 3 tool definitions — no invoice data in the prompt]
| decides which tools to call, with what arguments
v
[MCP server (server.py): list_invoices / get_invoice / get_purchase_order]
| returns live data over stdio
v
[Claude reasons over the results and answers]Преемственность: на неделе 2 извлекали счёт из документа. Неделя 6 решала, что делать с исключением счетом, используя данные, которые у бота уже были на руках. На этой неделе сами данные живут внутри MCP-сервера — агент сам получает нужные ему факты, а не берёт уже заготовленные. Соедините это со защищённой политикой службой решений из недели 6 — и получите Portfolio Project #4 из дорожной карты: агент, который и сам ищет факты, и передаёт решение на проверку аудируемому слою правил.
Related MCP server: Invoice MCP Server
Что здесь
Файл | Роль (назначение) |
| MCP-сервер — предоставляет функции |
| Запускает сервер и управление с Claude — отдельно серверный процесс запуска составлять не нужно |
| Юнит-тесты для инструментальных функций — API-ключ не нужен |
1. Запуск
python -m venv .venv
.venv\Scripts\Activate.ps1
pip install -r requirements.txt
# copy .env.example to .env and paste your key
python src/client.pyclient.py сам запускает server.py через stdio (именно так MCP обычно работает с локальными инструментами — здесь нет HTTP-порта для управления, в отличие от недели 6). Смотрите, как выводят строки [MCP tool call: ...] в тот момент, когда Claude решает, какие данные ему нужно найти.
Запустите юнит-тесты для логики инструментов (API-ключ не требуется):
pytest2. Ключевая идея дизайна: инструменты + данные поверх стандартного протокола
До MCP «выдать модели инструмент» означало вручную катaть JSON-схему и диспетчер на if/elif для каждого проекта. MCP это стандартизирует: server.py объявляет инструменты один раз через @mcp.tool(), и любой MCP-совместимый клиент — client.py из этого репозитория, Claude Desktop, агент другой команды — может обнаружить их и вызывать таким же способом. Именно в этом суть «подключения агентов к реальным инструментам»: разработчик инструмента и агент не обязаны быть одним и тем же человеком.
3. Что я понял / что готово для продакшена, а что нет
MCP разводит того, кто владеет данными, и того, кто о данных рассуждает — серверу не важно и он не знает, какая LLM его вызывает.
Выбор модели тоже здесь важен: это оркестрация (выбор необходимого инструмента), а не сложные рассуждения, поэтому нужна дешёвая и быстрая модель (
claude-haiku-4-5) — рассуждения уровня Opus оставьте решениям, которые происходят на неделе 6.Не ready для production: «ERP» — это словарь в памяти, у сервера нет аутентификации, и референ нет настоящего MCP-ресурса (только инструменты) — в продакшен-версии счета, вероятно, выбрали is бы как MCP ресурсы. (На неделе 8+.)
Мой стек
Python · MCP (official Python SDK) · Claude (claude-haiku-4-5 для работы с инструментами) · Anthropic SDK · pytest
This server cannot be deployed
Maintenance
Related MCP Connectors
Read incoming supplier invoices through a remote MCP server and get structured data for accounting.
41Free hosted MCP for invoices, estimates, clients, items and PDFs. OAuth authorization required.
1Create and manage invoices and customers on Jupiter Invoice (MCP, API-key auth).
MCP server for Codat — companies, connections, invoices, bills and financial statements.
Related MCP Servers
- FlicenseBqualityDmaintenanceBridges to a simple_invoicing FastAPI backend, exposing invoice, product, ledger, inventory, buyer, and payment management as MCP tools for use with MCP-compatible clients.15-
- AlicenseNot gradedqualityDmaintenanceEnables invoice management through MCP, including customer, invoice, and report operations with CLI and web interfaces.MIT
- AlicenseAqualityCmaintenanceEnables AI agents to stamp, cancel, and query Mexican CFDI 4.0 invoices through MCP tools, with support for local stdio and hosted HTTP transport.4609 npmMIT
- AlicenseAqualityBmaintenanceEnables MCP clients such as Claude and Cursor to manage customers, create and update draft invoices, list or download invoices as PDF and XML e-invoices, and record and list payments in a BillingEngine account. It runs locally with your API key and never deletes data.1063 npmMIT