Skip to content

Releases: meob/mcp-blueprint

v0.6.0 — Simplified Engine Model

Choose a tag to compare

@meob meob released this 25 Aug 17:54

Breaking Changes

  • Removed tool-level engines field and sql map (multi-engine) from ToolMetadata. sql is now always a plain string path; engine filtering happens exclusively at pack level.
  • engines is now required in pack.yaml (at least one engine must be declared). Packs without pack.yaml are skipped.
  • Removed applies_to() and sql_for() methods (replaced by direct sql attribute access).
  • Removed engine parameter from load_tool_from_file() and load_tools_from_dir().

Added

  • GitHub Pages website (website/index.html): blue-themed landing page with sections for problem statement, quickstart, architecture, packs, enterprise features, benchmark results, and arXiv paper link.
  • GitHub Actions workflow (.github/workflows/pages.yml) for automatic deployment from website/ directory on push to main.

Documentation

  • Updated docs/pack_development.md, docs/faq.md, template/README.md, ARCH.md, DECISIONS.md to reflect the simplified model.

Full benchmark

Verticalized packs score 0.939 pooled mean accuracy vs 0.666 for raw SQL and 0.605 for generic tool packs. Cost per correct answer improves 2–12×.

Full benchmark · arXiv paper

v0.5.0

Choose a tag to compare

@meob meob released this 16 Aug 12:04

0.5.0 - 2026-08-16

Added

  • packs/smoke, a zero-dependency deployment check pack that runs on an
    in-memory SQLite database (no server, no driver, no seed data):
    smoke_ping, smoke_get_server_status, smoke_fortune and
    smoke_horoscope. config/smoke.yaml runs it through the pack allowlist,
    tests/test_pack_smoke.py exercises every tool and stays green in CI, and
    docs/smoke.md documents the deployment checks and a failure guide.

Changed

  • Unit tests now run on Python 3.12 and 3.14 in CI; Python 3.14 is advertised
    in package metadata.

v0.4.0

Choose a tag to compare

@meob meob released this 11 Aug 06:16

[0.4.0] - 2026-08-11

Changed

  • Breaking: upgraded the MCP Python SDK from v1 to v2 (mcp>=2,<3). The
    FastMCP integration is now the v2 MCPServer: AuditedFastMCP became
    AuditedMCPServer, transport parameters (host, port) moved off the
    server constructor to run_streamable_http_async(), and protocol field
    access is snake_case. The v2 server speaks both the 2025-era and 2026-07-28
    revisions, so existing clients keep working.
  • Pydantic floor raised to >=2.12 to match the SDK v2 dependency.

v0.2.1

Choose a tag to compare

@meob meob released this 04 Aug 18:56

v0.2.1 — patch release (fixes only)

  • Sizes in bytes: the DBA packs now report raw byte counts in a single size_bytes column across all six engines; the engine-specific human-readable size/size_mb strings (pg_size_pretty(), FORMAT(), ROUND(...) || ' MB', formatReadableSize()) were removed (decision D14).
  • CI repaired and green on all jobs: bumped actions/checkout@v5 and astral-sh/setup-uv@v7 (Node 24, dropping the Node.js 20 deprecation warning), fixed the folded unit-test command, and auto-created the log directory so integration jobs pass on a fresh checkout.
  • get_connections test is now environment-independent (no longer assumes a client session exists).

Changelog: CHANGELOG.md

mcp-blueprint v0.2.0

Choose a tag to compare

@meob meob released this 04 Aug 05:25

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).