c95bc4cd44
- Add mcp.md to: bg, fa, ru, tr, zh, ar - Add index.md to Bulgarian (bg) - Add 24 missing German (de) documentation files Translations for all supported languages now complete.
2.7 KiB
2.7 KiB
MCP Сервер (Model Context Protocol)
BaraDB включает встроенный MCP-сервер, который позволяет агентам AI (Claude, Cursor и т.д.) взаимодействовать с базой данных напрямую.
Быстрый старт
./build/baramcp --data-dir ./data
Запускается в режиме STDIO, принимая сообщения JSON-RPC 2.0 на stdin.
Доступные инструменты
1. query — Выполнение SQL
{
"name": "query",
"arguments": {
"sql": "SELECT * FROM users WHERE age > ?",
"params": [25],
"tenant_id": "company-a",
"user_id": "alice"
}
}
Параметризованные запросы с ? placeholders. Multi-tenant поддержка через tenant_id и user_id.
2. vector_search — Семантический поиск
{
"name": "vector_search",
"arguments": {
"table": "docs",
"column": "embedding",
"query_vector": [0.1, 0.2, 0.3],
"k": 5,
"metric": "cosine",
"filter_column": "category",
"filter_value": "news",
"tenant_id": "company-a"
}
}
Метрики: cosine, euclidean, dot_product, manhattan.
3. schema_inspect — Исследование схемы
{
"name": "schema_inspect",
"arguments": {
"table": "users",
"tenant_id": "company-a"
}
}
Возвращает таблицы, столбцы, типы, первичные ключи, внешние ключи, индексы и RLS-политики.
Конфигурация в Claude Desktop
{
"mcpServers": {
"baradb": {
"command": "/path/to/build/baramcp",
"args": ["--data-dir", "/path/to/data"]
}
}
}
Конфигурация в Cursor
{
"mcpServers": {
"baradb": {
"command": "/path/to/build/baramcp",
"args": ["--data-dir", "~/.baradb/data"]
}
}
}
Multi-Tenant изоляция
Каждый MCP-запрос может включать tenant_id и user_id, установленные как переменные сессии:
app.tenant_id— для RLS-фильтрацииapp.user_id— для ссылокcurrent_user
RLS-политики автоматически фильтруют данные на основе этих переменных.
Протокол JSON-RPC 2.0
Сервер использует JSON-RPC 2.0 через STDIO:
// Запрос
{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {...}}
// Ответ
{"jsonrpc": "2.0", "id": 1, "result": {"content": [{"type": "text", "text": "..."}]}}