Boyce
OfficialBoyce: Семантический протокол и уровень безопасности для агентских рабочих процессов с базами данных
Семантический уровень безопасности для агентских рабочих процессов с базами данных. Boyce подключает LLM к контексту работающей базы данных со встроенными механизмами безопасности.
Назван в честь Рэймонда Ф. Бойса, соавтора SQL (1974) и соавтора нормальной формы Бойса-Кодда (BCNF).
ИИ-агенты, запрашивающие базы данных без надлежащего контекста, генерируют ненадежный SQL — работая с неполными схемами, выводя имена столбцов и угадывая пути соединения. Boyce предоставляет агентам структурированную интеллектуальную работу с базами данных, необходимую для генерации правильного и безопасного SQL каждый раз — через три взаимосвязанные системы:
Уровень | Что он делает |
SQL-компилятор |
|
Инспектор БД |
|
Верификация запросов | Предварительные циклы |
Почему это важно? → Ловушка NULL: SQL вашего ИИ-агента правильный. Ответ все равно неверный.
Установка
Требуется Python 3.10+
pip install boyce
# With live Postgres/Redshift adapter (enables EXPLAIN pre-flight + column profiling)
pip install "boyce[postgres]"# uv (recommended)
uv pip install boyce
uv pip install "boyce[postgres]"Из исходного кода:
git clone https://github.com/boyce-io/boyce
uv pip install -e "boyce/"Related MCP server: mcp-postgres
Быстрый старт
После установки запустите boyce init для автоматической настройки вашего хоста MCP:
boyce initМастер обнаруживает Claude Desktop, Cursor, Claude Code и JetBrains (DataGrip, IntelliJ и т. д.) и записывает правильный блок конфигурации для каждого из них.
Разрабатываете из исходного кода? Репозиторий включает скрипт установки:
./quickstart.sh # detects uv or python, installs package, writes .env templateНастройка вашего хоста MCP
Самый быстрый путь — boyce init — он обнаруживает ваш хост MCP и записывает конфигурацию автоматически:
boyce initИли настройте вручную. Существует два пути настройки в зависимости от вашего хоста:
Путь 1 — Хосты MCP (ключ LLM не требуется)
Если вы используете Claude Desktop, Cursor, Claude Code, Codex, Cline, Windsurf, JetBrains (DataGrip, IntelliJ) или любой другой хост, совместимый с MCP, вам не нужно настраивать провайдера LLM для Boyce. Собственная модель хоста берет на себя рассуждения — Boyce предоставляет контекст схемы и детерминированный SQL-компилятор через get_schema и ask_boyce. Требуется только BOYCE_DB_URL (и даже это необязательно).
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"boyce": {
"command": "boyce",
"env": {
"BOYCE_DB_URL": "postgresql://user:pass@host:5432/db"
}
}
}
}Cursor (.cursor/mcp.json в корне проекта):
{
"mcpServers": {
"boyce": {
"command": "boyce",
"env": {
"BOYCE_DB_URL": "postgresql://user:pass@host:5432/db"
}
}
}
}Путь 2 — Со встроенным NL→SQL от Boyce
Если вы используете CLI (boyce ask), HTTP API или клиент, не поддерживающий MCP (например, расширение VS Code), настройте внутренний планировщик запросов Boyce с вашим провайдером LLM:
{
"mcpServers": {
"boyce": {
"command": "boyce",
"env": {
"BOYCE_PROVIDER": "anthropic",
"BOYCE_MODEL": "claude-sonnet-4-6",
"ANTHROPIC_API_KEY": "sk-ant-...",
"BOYCE_DB_URL": "postgresql://user:pass@host:5432/db"
}
}
}
}Boyce поддерживает любого провайдера LLM, доступного через LiteLLM: Anthropic, OpenAI, Ollama (локально), vLLM (локально), Azure, Bedrock, Vertex, Mistral и другие.
BOYCE_DB_URL является необязательным для обоих путей. Без него Boyce работает в режиме «только схема» — генерация SQL по-прежнему работает; предварительная проверка EXPLAIN и инструменты для работы с живыми запросами возвращают "status": "unchecked".
Переменные окружения
Переменная | Когда нужна | Пример | Назначение |
| Только путь 2 (CLI/HTTP/не-MCP) |
| Имя провайдера LiteLLM |
| Только путь 2 (CLI/HTTP/не-MCP) |
| ID модели, передаваемый в LiteLLM |
| При использовании Anthropic |
| Учетные данные Anthropic |
| При использовании OpenAI |
| Учетные данные OpenAI |
| Необязательно (любой путь) |
| asyncpg DSN — включает предварительную проверку EXPLAIN + инструменты для живых запросов |
| Только путь 2 HTTP API |
| Bearer-токен для |
| Необязательно |
| Тайм-аут для каждого оператора в мс (по умолчанию: 30 с) |
Инструменты MCP
Инструмент | Описание |
| Парсинг |
| Сохранение сертифицированного бизнес-определения — внедряется автоматически во время запроса. |
| Возврат полного контекста схемы + документации формата StructuredFilter. Используется хостами MCP, чтобы LLM хоста могла создавать запросы без API-ключа Boyce. |
| Полный конвейер NL → SQL: планировщик запросов (LiteLLM) → детерминированное ядро → проверка ловушки NULL → предварительная проверка EXPLAIN. |
| Проверка написанного вручную SQL — предварительная проверка EXPLAIN, линтинг Redshift, риск NULL — без выполнения. |
| Выполнение |
| Процент NULL, количество уникальных значений, мин/макс для любого столбца — выявление проблем с качеством данных до того, как они повлияют на результаты запроса. |
| Проверка работоспособности — подключение к БД, свежесть снимка, команды для исправления. Вызывайте, если запросы неожиданно завершаются с ошибкой. |
Архитектура
SemanticSnapshot (JSON)
│
▼ ingest_source
┌─────────────────────────────────────────────┐
│ SemanticGraph (NetworkX) │ ← in-memory, loaded per session
│ nodes = entities (tables/views/dbt models) │
│ edges = joins (weighted by confidence) │
└─────────────────────────────────────────────┘
│ │
▼ ask_boyce ▼ (internal)
QueryPlanner Dijkstra
(LiteLLM) join resolver
NL → StructuredFilter │
│ │
└──────────┬────────────────┘
▼
kernel.process_request() ← ZERO LLM HERE
SQLBuilder (dialect-aware)
│
▼
EXPLAIN pre-flight ← Query Verification
(PostgresAdapter)
│
▼
SQL + validation resultПоддержка диалектов: redshift, postgres, duckdb, bigquery
Механизмы безопасности Redshift (safety.py): Автоматический линтинг для LATERAL, JSONB, REGEXP_COUNT, шаблонов регулярных выражений с опережающим просмотром и переписывание числовых приведений для Redshift 1.0 (PG 8.0.2).
Сканирование CLI
# Scan a single file
boyce scan demo/magic_moment/manifest.json
# Scan a directory (auto-detects all parseable sources)
boyce scan ./my-project/ -v
# Save snapshots for MCP server use
boyce scan ./my-project/ --save10 парсеров: манифест dbt, проект dbt, LookML, SQLite, DDL, CSV, Parquet, Django, SQLAlchemy, Prisma.
Проверка установки
# Unit tests — no DB required, runs in ~4 seconds
python boyce/tests/verify_eyes.py
# Expected output:
# Ran 15 tests in 3.5s
# OK
# ✅ All checks passed.Формат SemanticSnapshot
Инструмент ingest_source принимает словарь JSON SemanticSnapshot. Минимальный пример:
{
"snapshot_id": "<sha256>",
"source_system": "dbt",
"entities": {
"entity:orders": {
"id": "entity:orders",
"name": "orders",
"schema": "public",
"fields": ["field:orders:order_id", "field:orders:revenue"]
}
},
"fields": {
"field:orders:order_id": {
"id": "field:orders:order_id",
"entity_id": "entity:orders",
"name": "order_id",
"field_type": "ID",
"data_type": "INTEGER"
}
},
"joins": []
}См. boyce/tests/live_fire/mock_snapshot.json для полного примера поля/сущности.
Структура проекта
boyce/ ← PRIMARY — headless FastMCP server + pip package
├── boyce/
│ ├── server.py ← MCP entry point (8 tools)
│ ├── kernel.py ← Deterministic SQL kernel
│ ├── graph.py ← SemanticGraph (NetworkX)
│ ├── safety.py ← Redshift compatibility rails
│ ├── types.py ← Protocol contract (Pydantic)
│ ├── scan.py ← Scan CLI (boyce scan)
│ ├── connections.py ← DSN persistence (ConnectionStore)
│ ├── doctor.py ← Environment diagnostics (boyce doctor)
│ ├── sql/ ← SQLBuilder, dialect layer, join resolver
│ ├── parsers/ ← 10 parsers (dbt, lookml, ddl, sqlite, csv, etc.)
│ ├── planner/ ← QueryPlanner (LiteLLM → StructuredFilter)
│ └── adapters/ ← PostgresAdapter (Eyes)
└── tests/
├── verify_eyes.py ← 15-test suite, no DB required
├── test_parsers.py ← Parser tests (all 10 parsers)
├── test_scan.py ← Scan CLI tests
└── live_fire/ ← Docker Compose integration testsСтатус
Возможность | Статус |
NL → SQL (детерминированное ядро) | Работает |
SemanticGraph (разрешение соединений) | Работает |
10 парсеров источников | Работает |
Сканирование CLI ( | Работает |
PostgresAdapter (только чтение) | Работает |
Предварительная проверка EXPLAIN | Работает |
Обнаружение ловушки NULL | Работает |
Линтинг безопасности Redshift 1.0 | Работает |
Сохранение снимка между перезапусками | Работает |
Журнал аудита (JSONL только для добавления) | Работает |
Бизнес-определения ( | Работает |
Сохранение DSN ( | Работает |
Диагностика окружения ( | Работает |
Объединение нескольких снимков | Запланировано |
Поддержка
Руководство по устранению неполадок: docs/troubleshooting.md
Настройка локальной LLM (Ollama/vLLM): docs/local-llm-setup.md
Отчеты об ошибках: GitHub Issues
Помощь с настройкой: GitHub Issues
Email: will@convergentmethods.com — для вопросов, связанных с учетными данными или конфиденциальной настройкой
Авторское право 2026 Convergent Methods, LLC. Лицензия MIT.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityCmaintenanceProvides comprehensive SQLite database interaction for AI agents, including data manipulation, schema inspection, and automated query logging. It features a unique context preservation pattern that uses a dedicated meta-table to help autonomous agents maintain self-documenting database architectures.Last updated381MIT
- Flicense-qualityDmaintenanceEnables AI agents to execute SQL queries and introspect PostgreSQL schemas, tables, and indexes with read-only safety by default. Supports optional write operations and works with Claude, LangChain, and other agents via stdio or HTTP transports.Last updated
- Alicense-qualityAmaintenanceSecure SQL proxy for AI agents. Translates natural language to safe SQL via Claude, validates at the AST level (SELECT-only, no DDL/DML), enforces per-agent row-level security, and audit-logs every query.Last updated1MIT

Bollard MCPofficial
Alicense-qualityBmaintenanceEnables safe, AI-driven database interactions with schema discovery, intent validation, and session memory, supporting multiple databases.Last updated2AGPL 3.0
Related MCP Connectors
Deterministic validation for AI-generated artifacts: JSON Schema, OpenAPI response, SQL syntax.
Query PostgreSQL databases in plain English — LLM-generated, safety-validated SQL.
Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/boyce-io/boyce'
If you have feedback or need assistance with the MCP directory API, please join our Discord server