Boyce
OfficialBoyce: Protocolo semántico y capa de seguridad para flujos de trabajo de bases de datos con agentes
La capa de seguridad semántica para flujos de trabajo de bases de datos con agentes. Boyce conecta LLMs a contextos de bases de datos en vivo con rieles de seguridad integrados.
Llamado así en honor a Raymond F. Boyce, co-inventor de SQL (1974) y co-autor de la Forma Normal de Boyce-Codd (BCNF).
Los agentes de IA que consultan bases de datos sin el contexto adecuado generan SQL poco fiable: trabajando con esquemas incompletos, infiriendo nombres de columnas, adivinando rutas de unión. Boyce proporciona a los agentes la inteligencia de base de datos estructurada que necesitan para generar SQL correcto y seguro en todo momento, a través de tres sistemas interconectados:
Capa | Qué hace |
Compilador SQL |
|
Inspector de BD |
|
Verificación de consultas | Bucles |
¿Por qué es importante esto? → La trampa NULL: El SQL de su agente de IA es correcto. La respuesta sigue siendo incorrecta.
Instalación
Requiere 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]"Desde el código fuente:
git clone https://github.com/boyce-io/boyce
uv pip install -e "boyce/"Related MCP server: mcp-postgres
Inicio rápido
Después de instalar, ejecute boyce init para configurar su host MCP automáticamente:
boyce initEl asistente detecta Claude Desktop, Cursor, Claude Code y JetBrains (DataGrip, IntelliJ, etc.), y escribe el bloque de configuración correcto para cada uno.
¿Desarrollando desde el código fuente? El repositorio incluye un script de configuración:
./quickstart.sh # detects uv or python, installs package, writes .env templateConfigure su host MCP
La ruta más rápida es boyce init: detecta su host MCP y escribe la configuración automáticamente:
boyce initO configúrelo manualmente. Hay dos rutas de configuración dependiendo de su host:
Ruta 1 — Hosts MCP (No se requiere clave LLM)
Si está utilizando Claude Desktop, Cursor, Claude Code, Codex, Cline, Windsurf, JetBrains (DataGrip, IntelliJ) o cualquier host compatible con MCP, no necesita configurar un proveedor de LLM para Boyce. El modelo del propio host maneja el razonamiento: Boyce proporciona el contexto del esquema y el compilador SQL determinista a través de get_schema y ask_boyce. Solo se necesita BOYCE_DB_URL (e incluso eso es opcional).
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 en la raíz del proyecto):
{
"mcpServers": {
"boyce": {
"command": "boyce",
"env": {
"BOYCE_DB_URL": "postgresql://user:pass@host:5432/db"
}
}
}
}Ruta 2 — Con NL→SQL integrado de Boyce
Si está utilizando la CLI (boyce ask), la API HTTP o un cliente que no sea MCP (por ejemplo, la extensión de VS Code), configure el planificador de consultas interno de Boyce con su proveedor de 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 admite cualquier proveedor de LLM disponible a través de LiteLLM: Anthropic, OpenAI, Ollama (local), vLLM (local), Azure, Bedrock, Vertex, Mistral y más.
BOYCE_DB_URL es opcional en ambas rutas. Sin ella, Boyce se ejecuta en modo solo esquema: la generación de SQL sigue funcionando; el pre-vuelo EXPLAIN y las herramientas de consulta en vivo devuelven "status": "unchecked".
Variables de entorno
Variable | Cuándo se necesita | Ejemplo | Propósito |
| Solo ruta 2 (CLI/HTTP/no-MCP) |
| Nombre del proveedor LiteLLM |
| Solo ruta 2 (CLI/HTTP/no-MCP) |
| ID del modelo pasado a LiteLLM |
| Al usar Anthropic |
| Credenciales de Anthropic |
| Al usar OpenAI |
| Credenciales de OpenAI |
| Opcional (cualquier ruta) |
| DSN asyncpg: habilita el pre-vuelo EXPLAIN + herramientas de consulta en vivo |
| Solo API HTTP de ruta 2 |
| Token Bearer para |
| Opcional |
| Tiempo de espera por sentencia en ms (predeterminado: 30s) |
Herramientas MCP
Herramienta | Descripción |
| Analiza un |
| Almacena una definición de negocio certificada: se inyecta automáticamente en el momento de la consulta. |
| Devuelve el contexto completo del esquema + formato de documentos StructuredFilter. Utilizado por hosts MCP para que el LLM del host pueda construir consultas sin una clave API de Boyce. |
| Pipeline completo NL → SQL: planificador de consultas (LiteLLM) → kernel determinista → verificación de trampa NULL → pre-vuelo EXPLAIN. |
| Valida SQL escrito a mano: pre-vuelo EXPLAIN, lint de Redshift, riesgo NULL, sin ejecutar. |
| Ejecuta un |
| % de nulos, conteo de distintos, mín/máx para cualquier columna: detecta problemas de calidad de datos antes de que afecten los resultados de la consulta. |
| Verificación de salud operativa: conectividad de BD, frescura de instantáneas, comandos de corrección accionables. Llame cuando las consultas fallen inesperadamente. |
Arquitectura
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 resultSoporte de dialectos: redshift, postgres, duckdb, bigquery
Rieles de seguridad de Redshift (safety.py): Linting automático para LATERAL, JSONB, REGEXP_COUNT, patrones regex de búsqueda anticipada y reescrituras de conversión numérica para Redshift 1.0 (PG 8.0.2).
CLI de escaneo
# 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 analizadores: manifiesto dbt, proyecto dbt, LookML, SQLite, DDL, CSV, Parquet, Django, SQLAlchemy, Prisma.
Verificar la instalación
# 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.Formato SemanticSnapshot
La herramienta ingest_source acepta un diccionario JSON SemanticSnapshot. Ejemplo mínimo:
{
"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": []
}Consulte boyce/tests/live_fire/mock_snapshot.json para ver un ejemplo completo de campo/entidad.
Diseño del proyecto
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 testsEstado
Capacidad | Estado |
NL → SQL (kernel determinista) | Operativo |
SemanticGraph (resolución de uniones) | Operativo |
10 analizadores de fuente | Operativo |
CLI de escaneo ( | Operativo |
PostgresAdapter (solo lectura) | Operativo |
Validación de pre-vuelo EXPLAIN | Operativo |
Detección de trampa NULL | Operativo |
Linting de seguridad Redshift 1.0 | Operativo |
Persistencia de instantáneas entre reinicios | Operativo |
Registro de auditoría (JSONL solo adjuntar) | Operativo |
Definiciones de negocio ( | Operativo |
Persistencia DSN ( | Operativo |
Diagnóstico de entorno ( | Operativo |
Fusión de múltiples instantáneas | Planificado |
Soporte
Guía de solución de problemas: docs/troubleshooting.md
Configuración de LLM local (Ollama/vLLM): docs/local-llm-setup.md
Informes de errores: GitHub Issues
Ayuda con la configuración: GitHub Issues
Correo electrónico: will@convergentmethods.com — para problemas relacionados con credenciales o configuración sensible
Copyright 2026 Convergent Methods, LLC. Licencia 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
- AlicenseNot gradedqualityCmaintenanceProvides 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.361MIT
- FlicenseNot gradedqualityDmaintenanceEnables 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.
- AlicenseNot gradedqualityAmaintenanceSecure 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.1MIT

Bollard MCPofficial
AlicenseAqualityBmaintenanceEnables safe, AI-driven database interactions with schema discovery, intent validation, and session memory, supporting multiple databases.142AGPL 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