Протокол контекста модели (MCP) — это открытый стандарт, который позволяет использовать такие модели, как Anthropic Клод и инструменты разработчика, такие как Клод Код обращайтесь к внешним инструментам, источникам данных и подсказкам безопасным и стандартным способом.
Это руководство проведет вас через процесс создания собственного сервера MCP с нуля, что позволит Claude Code получить доступ к пользовательским функциям и, таким образом, значительно расширить его функциональность за пределы встроенных функций.
Что такое протокол контекста модели (MCP)?
MCP (протокол контекста модели) — это открытая спецификация Разработан для стандартизации подключения клиентов языковой модели (таких как Claude, Claude Code и других LLM-фронтендов) к серверам инструментов и источникам данных. MCP можно представить как «порт USB-C для LLM»: он определяет схему транспорта/JSON-RPC и общий способ публикации серверами трёх видов возможностей:
- Ресурсы — данные в виде файла или документа, которые клиент может прочитать (например, строка базы данных, текстовый файл, полезная нагрузка JSON).
- Инструменты — вызываемые функции, которые модель может попросить хост выполнить (с одобрения пользователя).
- Запрашивает — многоразовые шаблоны подсказок или рабочие процессы, которые может вызывать модель/клиент.
MCP поддерживает несколько транспортных протоколов (stdio, HTTP, SSE) и предоставляет схему, SDK и примеры серверов, поэтому вам не придётся изобретать формат протокола самостоятельно. Протокол поддерживается публично (спецификация + SDK) и содержит обучающие материалы и галерею примеров серверов для ускорения внедрения.
Какова архитектура MCP?
Архитектура MCP намеренно проста и модульна: основные элементы MCP серверы, МКП клиентов и транспорты которые передают между собой сообщения в формате JSON-RPC. Ниже перечислены основные компоненты, с которыми вы будете взаимодействовать при создании сервера для Claude Code (или других клиентов MCP).
Сервер, клиент и протокол
- МСР-сервер — Услуга, которая издает Инструменты, ресурсы и подсказки. Инструменты могут выполнять побочные эффекты или извлекать данные; ресурсы отображают контент, доступный только для чтения; подсказки представляют собой многоразовые шаблоны подсказок, которые клиент может запросить у модели для выборки.
- Клиент MCP (хост) — Обычно является частью хоста LLM (например, Claude Code, плагина VS Code, браузерного клиента). Он обнаруживает доступные серверы, предоставляет модели описания инструментов и направляет вызовы, инициированные моделью, серверам.
- протокол — Сообщения кодируются как JSON-RPC; спецификация определяет события жизненного цикла, обнаружение инструментов, вызов, завершение/выборку, а также то, как структурированные результаты передаются обратно клиенту и модели.
Модель коммуникации (что происходит при использовании инструмента)
- Клиент отправляет пользовательское сообщение модели.
- Модель анализирует контекст и решает вызвать инструмент, предоставленный MCP (или несколько инструментов).
- Клиент пересылает вызов инструмента на сервер MCP по выбранному транспорту.
- Сервер запускает инструмент и возвращает результаты.
- Модель получает выходные данные инструмента и формирует окончательный ответ для пользователя.
Примитивы реализации
- JSON-RPC сообщения следуют схеме MCP.
- Определения инструментов публикуются в ответах обнаружения сервера, чтобы клиенты могли представить их в пользовательском интерфейсе.
- Ресурсы ссылаются
@source:pathсинтаксис клиентов (например,@postgres:...), позволяя моделям ссылаться на внешний контент без встраивания больших объемов данных в подсказку.
Зачем интегрировать Claude Code с серверами MCP?
Claude Code — это предложение Anthropic, ориентированное на рабочие процессы, ориентированные на код и разработчика (интеграция редактора/IDE, понимание кода и т. д.). Доступ к внутренним инструментам (поиск исходного кода, CI-менеджер, система тикетов, приватные реестры) через серверы MCP позволяет Claude Code вызывать их как первоклассные инструменты внутренние диалоги по кодированию и потоки агентов.
Интеграция Claude Code с серверами MCP открывает практические, важные для производства возможности для программиста:
1. Пусть модель действовать на реальных системах
Claude Code может запрашивать у MCP-сервера запросы к системам отслеживания ошибок, выполнять запросы к базе данных, читать большие документы или создавать запросы на выдачу (PR) на GitHub, обеспечивая сквозную автоматизацию прямо в процессе кодирования. Это явно поддерживается документацией Claude Code (примеры: запросы к Postgres, Sentry или создание запросов на выдачу).
2. Разгрузка больших объемов данных и специализированной логики
Вместо того, чтобы встраивать каждый источник данных в запрос (что требует использования токенов), вы публикуете данные и инструменты через MCP. Модель вызывает инструмент, получает структурированный ответ и согласовывает его — это сокращает использование токенов и позволяет серверам справляться с тяжёлой нагрузкой (запросы к базе данных, длительное чтение файлов, аутентификация).
3. Безопасность и управление
MCP централизует управление доступом и аудит на уровне сервера, позволяя организациям составлять белый список одобренных серверов, контролировать доступные инструменты и ограничивать выходные данные. Claude Code также поддерживает корпоративную конфигурацию MCP и согласование на уровне области действия.
4. Повторное использование и экосистема
Серверы MCP можно использовать повторно разными клиентами и командами. Один раз создав сервер, вы сможете использовать те же сервисы (или обмениваться реализациями) множеством клиентов Claude/LLM.
Что вам нужно перед тем, как начать?
Минимальные требования
- Машина для разработки с Python 3.10 + (В примере мы будем использовать Python). В качестве альтернативы, Node и другие языки поддерживаются пакетами SDK MCP.
uv(инструмент Astral) или эквивалентный инструмент для запуска серверов MCP stdio (в руководстве MCP используетсяuv). Шаги установки показаны ниже.- Установите Claude Code или получите доступ к клиенту Claude (настольному или CLI) для регистрации и тестирования сервера; или к любому клиенту с поддержкой MCP. Claude Code поддерживает HTTP, SSE и локальные серверы stdio.
- Примечание о безопасности: Добавляйте в Claude Code только доверенные серверы MCP в настройках группы или предприятия — MCP предоставляет серверам доступ к конфиденциальным данным, и существуют риски немедленного внедрения, если сервер возвращает вредоносный контент.
Как установить и проверить Claude Code CLI
Это Руководство по установке и использованию Claude Code.
1) Краткий обзор — рекомендуемые методы установки
Использовать собственный установщик (рекомендуется) или Homebrew на macOS/Linux. NPM доступен для установки на базе Node. Для Windows доступны установщики PowerShell/CMD. Источник: официальная документация Claude Code и GitHub.
2) Предварительные условия
- macOS 10.15+, Ubuntu 20.04+/Debian 10+ или Windows 10+ (для Windows рекомендуется WSL).
- Node.js 18+ только требуется для метода установки NPM.
3) Команды установки (выберите одну)
Нативный (рекомендуется — без зависимости от Node),macOS / Linux / WSL:
curl -fsSL https://claude.ai/install.sh | bash
# optional: install latest explicitly
curl -fsSL https://claude.ai/install.sh | bash -s latest
# or install a specific version
curl -fsSL https://claude.ai/install.sh | bash -s 1.0.58
Windows PowerShell:
irm https://claude.ai/install.ps1 | iex
# or for latest: & (::Create((irm https://claude.ai/install.ps1))) latest
(Это официальные собственные скрипты установщика).
NPM (если вам нужна глобальная установка на базе Node):
# requires Node.js 18+
npm install -g @anthropic-ai/claude-code
Не используют sudo npm install -g — предупредить о глобальных установках с помощью sudo (проблемы с правами доступа/безопасностью). Если возникнут ошибки с правами доступа, используйте nvm или исправьте глобальный префикс npm вместо использования sudo.
4) Убедитесь, что двоичный файл установлен (базовые проверки)
Запустите их локально сразу после установки:
# is the command on PATH?
which claude
# version (or -v)
claude --version
# or
claude -v
# help (sanity check)
claude --help
Ожидаемое: which показывает путь (например /usr/local/bin/claude or ~/.nvm/.../bin/claude) и расширение claude --version выводит строку, похожую на semver. В документации и README указано claude в качестве основной точки входа CLI.
5) Проверка работоспособности и конфигурации установки (рекомендуемые проверки)
a) claude doctor,Бегать:
claude doctor
Эта встроенная диагностика проверяет тип установки, общие проблемы (например, проблемы с правами доступа npm), зависимости, такие как ripgrep, и предлагает исправления. В документации прямо рекомендуется запустить claude doctor после установки.
б) Провести дымовой тест (неинтерактивный)
Из каталога вашего проекта:
cd /path/to/your/project
claude -p "Explain this project in 3 sentences"
Это использует Распечатать Режим (-p) для отправки одного приглашения и выхода; подходит для непрерывной интеграции или быстрых функциональных проверок.
c) Проверка подлинности (убедитесь, что CLI может связаться с Anthropic)
Claude Code поддерживает несколько способов аутентификации (консольный OAuth, ключ API, интеграция с провайдерами). Распространенные проверки:
- При использовании ключа API (CI / headless / local env var):
export ANTHROPIC_API_KEY="sk-..."
# then
claude auth status
claude auth whoami # or `claude auth whoami` / `claude whoami` depending on version
Вы можете использовать CometAPIAPI-ключ для использования Claude Code. Использование API Claude через CometAPI даст вам скидку 20%.
- Если вы использовали OAuth через консоль - бегать:
claude auth status
claude auth whoami
Вы должны увидеть информацию об учетной записи/плане или подтверждение того, что вы прошли аутентификацию.
Пошаговая подготовка среды
Ниже приведены конкретные шаги по подготовке двух распространенных стеков разработчика (TypeScript и Python), за которыми следуют быстрые проверки, чтобы убедиться, что все работает.
H3 — A. Настройка TypeScript / Node (самый быстрый путь)
- Создайте проект и установите SDK:
mkdir mcp-demo && cd mcp-demo
npm init -y
npm install @modelcontextprotocol/sdk express zod
npm install --save-dev typescript tsx @types/node @types/express
- Создавай
server.ts(Мы приводим полный пример в разделе «Как быстро построить…».) - Run:
npx -y tsx server.ts
- Протестируйте локально с помощью Инспектор МКП или добавьте в код Клода:
npx @modelcontextprotocol/inspector
# or (for Claude Code)
claude mcp add --transport http my-server http://localhost:3000/mcp
(Команды «Инспектор» и «Клод» позволяют вам проверять обнаружение и вызывать инструменты.)
Как быстро собрать MCP-сервер для Клода Кода?
быстрый контрольный список
-
Запустите свой сервер (рекомендуется потоковый HTTP):
node server.tsoruvicorn server:app. -
На вашем компьютере разработчика выполните одно из следующих действий:
- Используйте Инспектор МКП для проверки (
npx @modelcontextprotocol/inspector) и подтвердитеtools/listиresources/list; или - Добавьте сервер в Клод Код:
claude mcp add --transport http <name> http://<host>:<port>/mcp(или следуйте инструкциям веб-интерфейса, если ваш клиент поддерживает удаленный MCP).
Если вы планируете использовать коннектор API Messages от Anthropic для удаленного MCP (без отдельного клиента), прочтите документацию Клода — может потребоваться заголовок бета-версии (точный заголовок и текущий статус поддержки проверьте в документации).
Ниже приведены два полных, но компактных примера сервера, которые можно скопировать, запустить и подключить к Claude Code (или MCP Inspector). Пример на TypeScript использует Express и TypeScript SDK; пример на Python демонстрирует монтирование FastAPI.
Примечание: приведённый ниже код соответствует общедоступным примерам SDK и намеренно минимизирован для ясности. Для производственной среды добавьте аутентификацию, логирование, ограничение скорости и проверку входных данных сверх настроек SDK по умолчанию.
Пример 1: TypeScript + Express (потоковый HTTP)
Создавай server.ts (полный):
// server.ts
import express from "express";
import * as z from "zod/v4";
import { McpServer, ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
const server = new McpServer({ name: "claude-code-demo", version: "0.1.0" });
// Register a simple tool: add two numbers
server.registerTool(
"add",
{
title: "Add",
description: "Add two numbers a and b",
inputSchema: { a: z.number(), b: z.number() },
outputSchema: { result: z.number() }
},
async ({ a, b }) => {
const output = { result: a + b };
return {
content: ,
structuredContent: output
};
}
);
// Register a resource: greet user (dynamic)
server.registerResource(
"greeting",
new ResourceTemplate("greeting://{name}", { list: undefined }),
{ title: "Greeting", description: "Return a greeting for the name" },
async (uri, params) => {
return {
contents:
};
}
);
// Express + Streamable HTTP transport
const app = express();
app.use(express.json());
app.post("/mcp", async (req, res) => {
const transport = new StreamableHTTPServerTransport({ enableJsonResponse: true });
// Close transport when connection closes
res.on("close", () => transport.close());
await server.connect(transport);
await transport.handleRequest(req, res, req.body);
});
const port = parseInt(process.env.PORT || "3000", 10);
app.listen(port, () => console.log(`MCP server listening: http://localhost:${port}/mcp`));
Run:
npm install
npx -y tsx server.ts
Затем подключите Claude Code (пример):
# Add the remote server to your Claude Code MCP list (local dev)
claude mcp add --transport http my-demo http://localhost:3000/mcp
Этот пример адаптирован из официального краткого руководства по TypeScript SDK и демонстрирует, как регистрировать инструменты и ресурсы, а затем предоставлять их через потоковый HTTP.
Пример 2: Python + FastAPI (FastMCP + потоковый HTTP)
Создавай server.py (полный):
# server.py
from fastapi import FastAPI
from mcp.server.fastmcp import FastMCP
app = FastAPI()
mcp = FastMCP("claude-python-demo", stateless_http=True)
# tool: simple sum
@mcp.tool()
def add(a: int, b: int) -> dict:
"""Add two integers"""
return {"result": a + b}
# resource: simple greeting resource template
@mcp.resource("greeting://{name}")
def greeting(name: str):
return {"contents": }
# mount the streamable-http MCP endpoint (FastMCP exposes an ASGI app)
app.mount("/mcp", mcp.streamable_http_app())
# optional endpoint to demonstrate other API routes
@app.get("/")
async def root():
return {"status": "OK"}
Run:
uvicorn server:app --reload --port 8000
Связаться с инспектором:
npx @modelcontextprotocol/inspector
# In Inspector select Streamable HTTP and enter http://localhost:8000/mcp
Примеры Python SDK и утилиты FastMCP упрощают регистрацию @mcp.tool() и @mcp.resource() декорированные функции, которые LLM может обнаружить и вызвать.
Как на самом деле Клод Код называет ваши инструменты?
Когда LLM решает использовать инструмент, клиент отправляет вызов JSON-RPC на сервер MCP. Сервер выполняет запрошенный инструмент (например, выполняет запрос к базе данных, запускает тесты или вызывает внешний API) и возвращает структурированный контент и презентабельный контентКлиент (Клод Код) может затем включить структурированный вывод в контекст модели, чтобы модель могла продолжать рассуждения, используя эти достоверные данные, а не только текстовый вывод сервера. TypeScript SDK поддерживает регистрацию inputSchema и outputSchema (zod) поэтому аргументы и выходные данные проверяются и типизируются машиной.
Какие инструменты тестирования и отладки следует использовать?
Инспектор МКП
The Инспектор МКП — официальный визуальный инструмент разработчика для тестирования серверов MCP. Он позволяет подключаться к серверу (stdio, SSE или streamable-HTTP), получать список инструментов, вызывать их вручную и отслеживать жизненный цикл сообщений JSON-RPC — незаменимый инструмент при разработке. Запустить его можно через npx @modelcontextprotocol/inspector.
Локальное и удаленное тестирование
- Локальный (stdio) — быстрый итерационный цикл для настольных приложений и автономной отладки.
- Потоковый HTTP — протестируйте с помощью Inspector или подключитесь к Claude Code с помощью
claude mcp addCLI или коннектор MCP в API Messages для удалённого тестирования. Обязательно предоставьте все необходимые заголовки аутентификации для вашего сервера.
Заключение
MCP — это практичный мост между современными LLM-программами и системами, которые фактически хранят данные и выполняют действия. Для рабочих процессов кода интеграция Claude Code с сервером MCP обеспечивает структурированный, контролируемый доступ к репозиториям, непрерывной интеграции (CI), системам отслеживания ошибок и специализированным инструментам, что обеспечивает более точную автоматизацию и более безопасные побочные эффекты. Благодаря официальным SDK на TypeScript и Python, потоковому HTTP для удалённого хостинга и таким инструментам, как MCP Inspector, вы можете создать минимальный сервер за считанные минуты и перейти к его развертыванию в рабочей среде.
Разработчики могут получить доступ Клод Соннет 4.5 API и Клод Опус 4.1 API и т.д. через CometAPI, последняя версия модели Всегда обновляется на официальном сайте. Для начала изучите возможности модели в Детская Площадка и проконсультируйтесь с API-руководство для получения подробных инструкций. Перед доступом убедитесь, что вы вошли в CometAPI и получили ключ API. CometAPI предложить цену намного ниже официальной, чтобы помочь вам интегрироваться.
Готовы к работе?→ Зарегистрируйтесь в CometAPI сегодня !
Если вы хотите узнать больше советов, руководств и новостей об искусственном интеллекте, подпишитесь на нас VK, X и Discord!
