MCP Server с нуля:
полный гайд для разработчиков

LLM не могут сами запросить вашу БД, прочитать локальные файлы или вызвать внутренние API. Не хватает не интеллекта — а стандарта, который связывает AI с реальным миром. Эту задачу решает Model Context Protocol (MCP).

Гайд для backend- и AI-инженеров с опытом Python или TypeScript. От теории протокола до production-деплоя — вы соберёте рабочий MCP Server с Tools, Resources и Prompts. В финале подключите его к Cursor или Claude Desktop и запустите проект персональной базы знаний.

01 Протокол MCP: от Function Calling к единому стандарту

Боли: у каждого LLM-вендора свой формат function calling. Смена модели — переписывание интеграций. LangChain Tools привязаны к фреймворку и не переносятся между IDE.

  • Эволюция: Function Calling (vendor-specific) → ChatGPT Plugins (platform lock-in) → MCP (открытый стандарт). Anthropic open-source MCP в ноябре 2024, чтобы унифицировать AI↔system коммуникацию через JSON-RPC.
  • Роли: MCP Client на стороне AI (Claude Desktop, Cursor). MCP Server — то, что вы пишете. Он экспонирует Tools (вызываемые функции), Resources (читаемые данные) и Prompts (переиспользуемые шаблоны).
  • Транспорт: JSON-RPC 2.0 поверх stdio (локально, низкая latency) или HTTP + SSE / Streamable HTTP (удалённо, multi-client). Жизненный цикл: handshake → capability negotiation → requests → shutdown.
MCP vs OpenAI Function Calling vs LangChain Tools
Измерение MCP OpenAI FC LangChain
Стандартизация Открытый, cross-model Vendor-private Framework-bound
Resources / Prompts Нативно Не поддерживается Не поддерживается
Экосистема (2026) 10 000+ servers Зрелый, только OpenAI Зрелый, только framework

Напишите один MCP Server — Cursor, Claude Desktop и VS Code смогут его вызывать. Это USB-C-момент для AI tooling.

02 Настройка окружения и первый Hello World Server

Выбор языка: Python с официальным пакетом mcp и FastMCP (лучший старт). TypeScript с @modelcontextprotocol/sdk для full-stack команд. Примеры ниже — на Python.

setup.sh
python -m venv .venv
source .venv/bin/activate
pip install mcp

npm init -y
npm install @modelcontextprotocol/sdk

Структура проекта: server.py, tools/, resources/, prompts/, tests/, pyproject.toml.

Debug stack: официальный MCP Inspector (npx @modelcontextprotocol/inspector), Claude Desktop через claude_desktop_config.json, Cursor через Settings → MCP.

server.py
from mcp.server.fastmcp import FastMCP

mcp = FastMCP("my-first-server")

@mcp.tool()
def say_hello(name: str) -> str:
    """Приветствует человека по имени."""
    return f"Привет, {name}! Это ваш первый MCP tool."

if __name__ == "__main__":
    mcp.run()

Запустите python server.py или npx @modelcontextprotocol/inspector python server.py. После настройки Cursor или Claude Desktop tool должен появиться в AI-контексте.

03 Tools: пять практических паттернов, async и обработка ошибок

Сигнатуры функций превращаются в JSON Schema для модели. Используйте snake_case verb-имена вроде search_web. Сложные inputs чисто мапятся через Pydantic BaseModel с Field(description=...).

Пять стартовых tools: калькулятор (безопасный parsing выражений), чтение/запись файлов (directory allowlist), HTTP client (timeouts и size caps), read-only SQL (parameterized queries) и timezone utilities.

Async IO: async def с httpx.AsyncClient для сетевых вызовов. Возвращайте structured error dicts вместо raw exceptions. Добавьте timeouts и permission checks для production paths.

04 Resources и Prompts: подача данных и переиспользуемые шаблоны

Resource vs Tool: Resources дают данные; Tools выполняют действия. Адресуйте resources по URI: file://, http://, custom://. Статические resources — фиксированные URI; динамические принимают параметры вроде user://{user_id}/profile.

Поддерживайте text, JSON, binary и streaming payloads. Filesystem resource server может листать директории, читать файлы и подписываться на change events.

Prompts поставляют готовые message templates с injected parameters — идеально для code review, interview simulation или debug assistants. Multi-turn templates могут смешивать роли user и assistant.

05 HTTP transport, отладка и production deployment

stdio vs HTTP + SSE
Признак stdio HTTP + SSE
Deployment Локальный процесс Удалённый сервер
Multi-client Нет Да
Лучше для Личные локальные tools Team-shared SaaS MCP

Remote example: FastMCP("remote-server", transport="streamable-http") за uvicorn на порту 8000. Усилите Bearer tokens, API-key middleware, CORS allowlists и rate limits.

Тестируйте MCP Inspector и pytest через mcp.client.stdio. Частые сбои: неверный config path (tool невидим), non-serializable return types, blocking calls с timeouts.

Деплой через Docker (Python 3.12-slim), Railway/Render для hobby, Lambda/Cloud Run serverless или Nginx на VPS. Structured logs, Prometheus metrics, Sentry alerts и endpoint /health. Декларируйте MCP protocol versions и держите tool upgrades backward compatible.

06 Проект базы знаний, данные экосистемы и шесть шагов rollout

Capstone: персональный knowledge-base MCP Server с semantic search по Markdown-заметкам, созданием записей и file watching через ChromaDB/Qdrant, text-embedding-3-small и watchfiles. Спросите Cursor: «Что я писал про MCP на прошлой неделе?» — agent вызовет ваш search tool.

Reference servers 2026: mcp-server-filesystem, mcp-server-github, mcp-server-brave-search, mcp-server-postgres, mcp-server-slack. Крупные clients уже с native MCP support; enterprise security baselines и marketplaces созревают.

  • Протокол: Anthropic open-source MCP в ноябре 2024 (JSON-RPC 2.0); governance перешла в Linux Foundation AAIF в 2026.
  • Экосистема: публичных MCP servers больше 10 000; Python и TypeScript SDK — официальный maintenance path — проверяйте версии на GitHub после release.
  • Transport: Streamable HTTP вытесняет pure SSE для stateless load balancing в cloud deployments.

Official docs и SDK (перепроверяйте links после upstream releases):

https://modelcontextprotocol.io

https://github.com/modelcontextprotocol/python-sdk

https://github.com/modelcontextprotocol/typescript-sdk

https://github.com/modelcontextprotocol/inspector

  1. Выбрать язык и transport: Python + stdio для solo dev; HTTP для team sharing.
  2. Scaffold modules: разделить tools, resources, prompts; установить MCP Inspector.
  3. Ship Hello World: проверить visibility в Cursor или Claude Desktop.
  4. Добавить пять tools плюс resources: начать read-only, затем writes и external APIs.
  5. Automate tests и Docker: stdio integration tests в CI.
  6. Deploy 24/7: sleep ноутбука убивает MCP sessions; plain Linux VPS без macOS sandboxes и Xcode. Для стабильной MCP infra, shared agents и iOS CI CALMVPS bare-metal Mac rental обычно лучший fit: dedicated M4/M4 Pro, ~120s provisioning, flexible billing. См. цены и центр помощи.

MCP — стандартный протокол для AI tooling. Освоите его — расширите любой LLM реальными возможностями, начиная с сегодняшнего Hello World.