Model Context Protocol (MCP)

3 хв читання

Model Context Protocol (MCP)

PgArachne нативно підтримує Model Context Protocol (MCP) — відкритий стандарт, який дозволяє AI-моделям (таким як Claude чи Cursor) безпечно отримувати доступ до ваших даних та функцій як до «інструментів» (tools).

Як це працює?

PgArachne працює безпосередньо як MCP-сервер. Замість написання власного HTTP-сервера для кожного проєкту, просто запустіть PgArachne над вашою базою даних. PgArachne автоматично аналізує ваші дозволені SQL-функції та надає до них доступ AI-клієнтам через HTTP(S).

🛠️ SQL-функції як інструменти

Будь-яка SQL-функція, доступна через кінцеву точку JSON-RPC 2.0 PgArachne, автоматично стає «інструментом», доступним для AI. Стандартна поведінка (виклик pgarachne.allowed_schemas()) надає доступ до функцій, що зберігаються в схемі api, до яких автентифікований користувач має доступ (через GRANT EXECUTE). LLM бачить назву функції, параметри та опис із SQL-коментарів.

Посібник з підключення

1 a. Автентифікація — API-токен (рекомендовано для продуктивного середовища)

Для постійного з’єднання з AI використовуйте довгостроковий API-токен. Токен повинен бути згенерований адміністратором (учасником ролі pgarachne_admin):

-- Switch to the administrator role
SET ROLE pgarachne_admin;

-- Generate a new token for the target role (e.g., 'app_user')
SELECT pgarachne.add_api_token('Claude Desktop', 'app_user');

Збережіть повернутий рядок. Використовуйте його як Authorization: Bearer YOUR_API_TOKEN у конфігурації AI-клієнта.

1 b. Автентифікація — прямі облікові дані (розробка та прості налаштування)

Альтернативно, надсилайте ім’я користувача PostgreSQL та пароль безпосередньо за допомогою HTTP Basic Authentication. Керування API-токенами не потрібне, і команда GRANT … TO pgarachne не потрібна — PgArachne підключається безпосередньо як зазначений користувач.

Authorization: Basic <base64(username:password)>

Використовуйте цей підхід для локального тестування або внутрішніх інструментів, де облікові дані вже безпечно керуються. Для продуктивних інтеграцій AI з хмарними клієнтами API-токени є більш прийнятним варіантом.

2. Claude Desktop

Додайте PgArachne до конфігурації Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "pgarachne": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-http",
        "--url",
        "https://your-api.com/db/my_database/mcp"
      ],
      "env": {
        "Authorization": "Bearer YOUR_API_TOKEN"
      }
    }
  }
}

Примітка: для з’єднання обов’язковий HTTP(S). У прикладі використовується npx-мостик server-http від Anthropic, який діє як посередник між стандартним MCP (stdio) та PgArachne (HTTP).

3. Cursor

У налаштуваннях Cursor (Settings > MCP) додайте новий сервер, що зв’язується безпосередньо через HTTP (або за допомогою згаданого вище мостика, якщо ваша версія Cursor не підтримує нативні HTTP MCP-сервери):

  • Type: command (з npx-мостиком) або http
  • Name: PgArachne
  • URL: https://your-api.com/db/my_database/mcp
  • Auth Header: Authorization: Bearer YOUR_API_TOKEN

🌐 Публічна доступність (Ngrok)

Якщо ви тестуєте PgArachne локально та хочете підключити його до хмарного AI-клієнта (поза локальними інсталяціями), ваш сервер повинен бути публічно доступним через HTTP(S) URL.

# Run ngrok for the HTTP PgArachne port (e.g., 8080)
ngrok http 8080

Потім використайте згенеровану HTTPS-адресу від Ngrok у конфігурації AI.

Безпека

Кінцева точка MCP повністю дотримується системи прав доступу PostgreSQL:

  • Автентифікація: Кожен запит вимагає дійсного API-токена, JWT або облікових даних HTTP Basic; неавтентифіковані запити негайно відхиляються.
  • Авторизація: AI може бачити та викликати лише ті функції в дозволених схемах, для яких автентифікована роль має GRANT EXECUTE.
  • RLS: Row-Level Security повністю активний — AI бачить лише ті рядки, до яких конкретна роль має доступ.

Дивіться Безпека та автентифікація для повного порівняння всіх підтримуваних методів автентифікації.