Claude MCP: подключаем AI-агента к БД и внешним API
Подробный гайд по Model Context Protocol: как подключить Claude к PostgreSQL, SQLite и внешним API через MCP-серверы с примерами конфигурации.
Представьте: вы открываете Claude и просите его — «Покажи, сколько заказов поступило за последние 7 дней». Агент сам обращается к вашей PostgreSQL-базе, выполняет запрос и возвращает ответ. Никакого кода, никаких промежуточных интерфейсов. Именно это и делает MCP — протокол, который превратил Claude из умного чат-бота в полноценного агента, встроенного в вашу инфраструктуру.
Model Context Protocol (MCP) — открытый стандарт, анонсированный Anthropic в ноябре 2024 года. К 2026 году он стал де-факто стандартом подключения LLM к внешним инструментам: более 200 готовых серверов, поддержка в Claude Code, Cursor, Windsurf и десятках других инструментов. В этой статье разберём архитектуру MCP, типы транспорта и пошагово настроим интеграцию с базами данных и API.
Что такое MCP и как он работает
MCP — это протокол клиент-сервер, построенный поверх JSON-RPC 2.0. Идея проста: AI-модель играет роль MCP-клиента, а любой внешний инструмент — базы данных, API, файловые системы — становится MCP-сервером.
MCP — это «USB-C для AI»: один стандарт, чтобы подключать всё. Вместо написания кастомных интеграций для каждого инструмента вы один раз поднимаете MCP-сервер и больше не думаете о совместимости.
Каждый MCP-сервер предоставляет три типа возможностей:
| Тип | Описание | Пример |
|---|---|---|
| Tools (инструменты) | Функции, которые агент может вызывать | execute_query, send_message |
| Resources (ресурсы) | Данные, к которым можно обратиться | Файлы, записи БД, документы |
| Prompts (подсказки) | Шаблоны для типовых задач | Готовые SQL-запросы, сценарии |
graph LR
U[Пользователь] -->|запрос на естественном языке| C[Claude / MCP-клиент]
C -->|JSON-RPC 2.0| S1[MCP-сервер: PostgreSQL]
C -->|JSON-RPC 2.0| S2[MCP-сервер: GitHub API]
C -->|JSON-RPC 2.0| S3[MCP-сервер: Slack]
S1 -->|результат запроса| C
S2 -->|данные репозитория| C
S3 -->|статус канала| C
C -->|готовый ответ| U
Протокол поддерживает три типа транспорта:
- stdio — локальный процесс, общается через стандартный ввод/вывод. Идеален для инструментов с прямым доступом к системе.
- HTTP (Streamable HTTP) — рекомендованный вариант для удалённых серверов, самый широко поддерживаемый в облачных сервисах.
- SSE (Server-Sent Events) — устаревший вариант HTTP-транспорта, сохранён для совместимости.
.well-known URL. Теперь реестры и браузеры могут обнаруживать возможности сервера без подключения к нему.Подключение к базам данных
Самый востребованный сценарий — дать Claude доступ к вашим данным. Рассмотрим подключение к SQLite и PostgreSQL.
SQLite: самый быстрый старт
SQLite не требует отдельного сервиса — один файл, и вы готовы. Добавьте конфигурацию в claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\):
{
"mcpServers": {
"sqlite": {
"command": "npx",
"args": [
"@executeautomation/database-server",
"/path/to/your/database.db"
]
}
}
}
После перезапуска Claude Desktop вы можете писать: «Покажи все таблицы в базе», «Сделай выборку из таблицы orders за март» — и получать результаты напрямую.
PostgreSQL: production-ready подключение
Для PostgreSQL используйте официальный сервер Anthropic или универсальный DBHub:
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": [
"@modelcontextprotocol/server-postgres",
"postgresql://user:password@localhost:5432/mydb"
]
}
}
}
Альтернатива — DBHub с поддержкой PostgreSQL, MySQL, MariaDB, SQL Server и SQLite в одном сервере:
{
"mcpServers": {
"dbhub": {
"command": "npx",
"args": ["@bytebase/dbhub", "--transport", "stdio"],
"env": {
"DATABASE_URL": "postgresql://user:password@host:5432/db"
}
}
}
}
env. Также не подключайтесь через MCP к production-базе напрямую — AI выполняет запросы без предварительной валидации. Создайте отдельного пользователя только с правами чтения (GRANT SELECT ON ALL TABLES).Таблица популярных MCP-серверов для баз данных
| Сервер | Поддерживаемые БД | Особенности |
|---|---|---|
@modelcontextprotocol/server-postgres | PostgreSQL | Официальный, минималистичный |
@executeautomation/database-server | PostgreSQL, SQLite, SQL Server | Единый интерфейс |
@bytebase/dbhub | PostgreSQL, MySQL, MariaDB, SQLite | Zero-dependency, TOML-конфиг |
@panasenco/mcp-sqlite | SQLite | Лёгкий, только SQLite |
Подключение к внешним API
Помимо баз данных, MCP позволяет подключать любые внешние сервисы. К 2026 году экосистема насчитывает реализации для GitHub, Slack, Google Drive, Notion, Jira, Salesforce и сотен других.
Пример: GitHub + Slack в одном агенте
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}"
}
},
"slack": {
"command": "npx",
"args": ["@modelcontextprotocol/server-slack"],
"env": {
"SLACK_BOT_TOKEN": "${SLACK_BOT_TOKEN}",
"SLACK_TEAM_ID": "T0123456"
}
}
}
}
Теперь Claude может: «Возьми все открытые PR в репозитории myrepo, у которых нет ревьюера, и напиши в Slack-канал #dev-alerts». Агент сам цепочкой вызовет инструменты обоих серверов.
Удалённые HTTP-серверы с аутентификацией
Для удалённых MCP-серверов (облачные сервисы, корпоративные API) используйте HTTP-транспорт с заголовками:
{
"mcpServers": {
"myapi": {
"type": "http",
"url": "https://api.example.com/mcp",
"headers": {
"X-API-Key": "${MY_API_KEY}",
"Authorization": "Bearer ${MY_TOKEN}"
}
}
}
}
--client-id, --client-secret и --callback-port в Claude Code CLI. Это удобно для интеграций с корпоративными SSO-системами.Создание собственного MCP-сервера
Готовых серверов может не хватить — например, для интеграции с внутренним API компании. Написать MCP-сервер несложно: официальные SDK доступны для Python и TypeScript.
from mcp.server import Server
from mcp.server.stdio import stdio_server
from mcp import types
app = Server("my-crm-server")
@app.list_tools()
async def list_tools() -> list[types.Tool]:
return [
types.Tool(
name="get_customer",
description="Получить данные клиента по ID",
inputSchema={
"type": "object",
"properties": {
"customer_id": {
"type": "string",
"description": "ID клиента в CRM"
}
},
"required": ["customer_id"]
}
)
]
@app.call_tool()
async def call_tool(name: str, arguments: dict):
if name == "get_customer":
customer_id = arguments["customer_id"]
# Здесь ваш реальный запрос к CRM API
data = await fetch_from_crm(customer_id)
return [types.TextContent(type="text", text=str(data))]
async def main():
async with stdio_server() as streams:
await app.run(*streams, app.create_initialization_options())
if __name__ == "__main__":
import asyncio
asyncio.run(main())
MCP в Claude Code и CI/CD
Для разработчиков особенно ценен MCP в связке с Claude Code. Конфигурация через .mcp.json в корне проекта автоматически подхватывается:
{
"mcpServers": {
"database": {
"command": "npx",
"args": ["@modelcontextprotocol/server-postgres", "${DATABASE_URL}"]
},
"filesystem": {
"command": "npx",
"args": ["@modelcontextprotocol/server-filesystem", "./data"]
}
}
}
Это позволяет всей команде использовать одинаковый набор инструментов: файл .mcp.json коммитится в репозиторий, и каждый разработчик автоматически получает доступ к тем же MCP-серверам.
.mcp.json в репозиторий, но вынесите секреты (токены, пароли) в .env файл, который в .gitignore. Такой подход обеспечивает воспроизводимость настроек без утечки учётных данных.Итоги: почему MCP меняет правила игры
MCP решил проблему, которая тормозила применение AI в реальных проектах — изоляцию модели от данных. Вместо того чтобы копировать данные в промпт вручную, агент сам получает актуальную информацию в нужный момент.
Ключевые выводы:
- Стандарт победил: 200+ готовых серверов в 2026 году — MCP стал тем же для AI-интеграций, чем REST стал для веб-API.
- Безопасность важнее удобства: всегда создавайте отдельные учётные данные с минимальными правами; никогда не давайте агенту write-доступ к production-базам без явных ограничений.
- Начните с малого: SQLite + один API — достаточно, чтобы за вечер получить рабочего агента.
- Масштаб без переписывания: добавление нового инструмента — это добавление блока в JSON-конфиг, а не переписывание логики агента.
Разница между «умным чат-ботом» и «AI-агентом в вашей инфраструктуре» — это именно MCP. Протокол убирает самый болезненный барьер: необходимость вручную передавать данные туда-обратно.
Экосистема продолжает расти: спецификация MCP v2.1 с Server Cards, нативная поддержка OAuth, появление корпоративных реестров серверов — всё это говорит о том, что MCP — это надолго и всерьёз.
Источники
- https://modelcontextprotocol.io/docs/getting-started/intro
- https://modelcontextprotocol.io/specification/2025-11-25
- https://platform.claude.com/docs/en/agent-sdk/mcp
- https://github.com/executeautomation/mcp-database-server
- https://github.com/bytebase/dbhub
- https://calmops.com/ai/model-context-protocol-mcp-2026-complete-guide/