Skip to content

mcp-blueprint v0.2.0

Choose a tag to compare

@meob meob released this 04 Aug 05:25
· 38 commits to main since this release

Overview

mcp-blueprint turns a database into a set of domain-oriented MCP tools. A
server is described entirely by packs — YAML tool metadata plus SQL files —
with no Python code required. This first release ships the complete
framework: six database engines, a fail-closed security model, observability,
Docker stacks and a full documentation suite.

Framework

  • Pack-driven design: a pack is just pack.yaml + one YAML per tool + one SQL
    file per query; tools are discovered automatically.
  • Security: every tool is read-only by default, enforced at load time and
    at runtime (fail-closed, single SELECT / WITH...SELECT); writes are
    opt-in via writes: true. Jinja2 templates allow {% if %} control flow
    but reject {{ }} interpolation — values reach the database only as bound
    placeholders.
  • Transports: stdio and Streamable HTTP.
  • Per-server pack allowlist (server.packs) and engine-based pack
    filtering (engines: in pack.yaml), with engine aliases
    (postgres, mssql, sql_server).
  • Pack instructions are surfaced in every tool description and in the server
    instructions, so a pack can guide the agent's tool usage.
  • Result caching (cache.ttl), result formatting (format.rename,
    format.hidden), row caps (server.max_rows).
  • KPI status convention (kpi_name, current_value, unit, suggested_threshold, status) for diagnostic dashboards.
  • Observability: structured logging, audit log, per-call trace_id,
    sensitive-value redaction, optional Prometheus metrics endpoint.
  • Multi-engine tool sharing via sql maps keyed by engine.

Engines and packs

Six reference DBA packs expose the same 13 tools across engines:

  • pg-dba — PostgreSQL 14+
  • mysql-dba — MySQL 8+
  • oracle-dba — Oracle 12c+
  • clickhouse-dba — ClickHouse 23+
  • sqlserver-dba — SQL Server 2016+
  • mariadb-dba — MariaDB 10.4+

Plus the sakila domain pack (film recommendations and rental checks) as the
reference example for building domain packs.

Docker

  • docker-compose.yaml — PostgreSQL + the pg-dba server over Streamable HTTP.
  • docker-compose.databases.yaml — one container per optional engine (Oracle,
    ClickHouse, SQL Server, MariaDB) with least-privilege monitoring accounts.

Documentation

  • Installation, quick start, Docker and pack-development guides.
  • New: custom-server tutorial (fork vs dependency
    model, upgrade strategy), best practices and a
    FAQ.
  • New: examples/customers — a complete CRM example
    pack with schema, seed data and a KPI dashboard.

Getting started

git clone https://github.com/meob/mcp-blueprint.git
cd mcp-blueprint
uv sync --all-extras --dev
uv run blueprint list-tools --config config
uv run blueprint serve --config config --transport stdio

204 tests pass (7 integration tests skipped when a local database is
unreachable).