До основного вмісту

MCP Server: підключення інструментів до Claude AI

AI-агенти на VDS · 19.04.2026 · 4 хв читання
Ілюстрація до статті «MCP Server: підключення інструментів до Claude AI»

MCP Server: Claude Desktop + локальні інструменти

Model Context Protocol (MCP) — відкритий стандарт Anthropic для підключення AI-агентів до зовнішніх даних та інструментів. MCP-сервери дають Claude змогу працювати з файловою системою, базами даних, API та браузером безпосередньо з чату.

Архітектура MCP

MCP складається з трьох компонентів: Host (Claude Desktop, Claude Code), Client (вбудований у Host), Server (локальний процес з інструментами). Сервер надає: Tools (дії), Resources (дані) та Prompts (шаблони).

Встановлення Claude Desktop

Завантажте з claude.ai/download. Конфігурація MCP-серверів міститься у:

# macOS/Linux
~/.config/claude/claude_desktop_config.json

# Windows
%APPDATA%\Claude\claude_desktop_config.json

Підключення готових MCP-серверів

# claude_desktop_config.json
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/projects"]
    },
    "sqlite": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-sqlite", "--db-path", "/data/mydb.sqlite"]
    },
    "brave-search": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-brave-search"],
      "env": {"BRAVE_API_KEY": "your-key"}
    }
  }
}

Створення власного MCP-сервера на Python

pip install mcp
from mcp.server import Server
from mcp.server.stdio import stdio_server
from mcp import types
import asyncio

server = Server("my-hosting-tools")

@server.list_tools()
async def list_tools():
    return [
        types.Tool(
            name="check_domain",
            description="Перевірити доступність домену",
            inputSchema={
                "type": "object",
                "properties": {
                    "domain": {"type": "string", "description": "Доменне ім'я"}
                },
                "required": ["domain"]
            }
        )
    ]

@server.call_tool()
async def call_tool(name: str, arguments: dict):
    if name == "check_domain":
        domain = arguments["domain"]
        import socket
        try:
            socket.gethostbyname(domain)
            return [types.TextContent(type="text", text=f"Домен {domain} активний")]
        except:
            return [types.TextContent(type="text", text=f"Домен {domain} недоступний")]

async def main():
    async with stdio_server() as streams:
        await server.run(*streams, server.create_initialization_options())

asyncio.run(main())
# Додати до claude_desktop_config.json
{
  "mcpServers": {
    "hosting-tools": {
      "command": "python3",
      "args": ["/path/to/my-mcp-server.py"]
    }
  }
}
Екосистема MCP: На mcp.so та github.com/modelcontextprotocol/servers доступні сотні готових серверів: GitHub, PostgreSQL, Google Drive, Slack, Puppeteer та багато інших.

Типові помилки MCP-сервера

ПомилкаПричинаЩо робити
Server disconnected одразу після запуску Claude DesktopНеправильний шлях або команда в полі command/args секції mcpServersПеревірте, що команда запускається вручну в терміналі без помилок тими самими аргументами
spawn npx ENOENTNode.js або npx не встановлені, або недоступні в PATH процесу, з якого запущено Claude DesktopВкажіть повний шлях до npx: which npx і пропишіть абсолютний шлях у полі command
MCP error -32000: Connection closedСервер завершився з необробленим винятком одразу після стартуЗапустіть сервер вручну і подивіться traceback у консолі перед підключенням до Claude Desktop
Зміни в claude_desktop_config.json не застосовуютьсяClaude Desktop кешує конфіг під час запуску і не перечитує його на льотуПовністю завершіть процес Claude Desktop (не просто закрийте вікно) і запустіть знову

Порівняння способів підключення інструментів

СпосібДе виконуєтьсяРівень доступу
MCP Server (локальний процес, stdio)На машині користувачаПовний — такий самий, як у процесу користувача в системі
Function calling через API без MCPНа боці вашого власного бекендуОбмежений тим, що явно реалізовано у вашому коді
Вбудовані інструменти Claude (вебпошук, виконання коду)На боці інфраструктури AnthropicОбмежений вбудованим набором, без доступу до файлової системи користувача

Коли MCP не підходить

  • Потрібен production-сервіс для зовнішніх користувачів — MCP через stdio розрахований на локальний десктоп, а не на сотні одночасних клієнтів
  • Інструмент має працювати без встановленого локально Claude Desktop — тоді потрібен HTTP API, а не протокол stdio
  • Потрібна сувора пісочниця навколо інструмента — звичайний локальний MCP-процес виконується з правами поточного користувача ОС, без ізоляції
  • Критична гарантована сумісність між різними MCP-хостами без індивідуального тестування — реалізації протоколу в різних клієнтів поки відрізняються деталями

Якщо інструмент підключається до зовнішнього AI API, а не до Claude Desktop локально, знадобиться стаття «Claude API (Anthropic): підключення та інтеграція з VPS». Оскільки інструмент отримує довільний ввід від моделі, варто заздалегідь прочитати про «Безпека AI-агентів: захист від prompt injection».

Перевірка результату

Переконайтеся, що сервер запущено, він видимий Claude і справді викликається:

# Запустити сервер вручну і переконатися, що немає помилок у stdout/stderr
python3 /path/to/my-mcp-server.py

# Переглянути логи MCP у Claude Desktop (macOS)
tail -f ~/Library/Logs/Claude/mcp*.log

# Список інструментів через офіційний dev-інспектор
npx @modelcontextprotocol/inspector python3 /path/to/my-mcp-server.py

В інтерфейсі Claude Desktop сервер має з'явитися у списку підключених із зеленим індикатором і доступним інструментом check_domain. Для сценаріїв автоматизації без діалогу з Claude Desktop іноді зручніша готова платформа на кшталт «n8n на VDS: автоматизація з AI-агентами без коду».

Чи була стаття корисною?
← Назад до бази знань Поставити питання підтримці