mcp-data-platform composable mcp data platform
v1.x part of txn2 ↗

project / mcp-data-platform

org / txn2

est. 2025

pkg.go.dev ↗

apache 2.0

mcp-data-platform semantic platform for ai.

mcp-data-platform is the composable MCP server platform for AI assistants that need data with context. Compose mcp-trino and mcp-s3 behind one endpoint with the platform's own data catalog and bidirectional cross-enrichment. Query a table and get its meaning, owners, tags, and open incidents in the same response. Semantic first: every data response includes business context from the semantic layer.

OAuth 2.1 inbound, OAuth 2.1 outbound to upstream MCPs, OIDC, API keys, role-based personas, audit logging, admin portal, and a gateway toolkit that re-exposes any third-party MCP server through the same auth pipeline. Run as a single binary or import as a Go library to compose your own platform. Apache 2.0.

Sponsored by Deasil Works, Inc. and Plexara.io

Plexara.io offers fully hosted and managed versions of mcp-data-platform, so you can run the platform without operating it yourself.

§ 01 / install · run

Two ways to use it.

Run mcp-data-platform as a standalone server with a YAML config and wire it to Claude, Cursor, or any MCP client. Or import the Go packages and compose a custom platform with your own toolkits, providers, and middleware. Same orchestration, two surfaces.

SRV-001 · go · server docs ↗

standalone platform

One binary, one YAML. Its own catalog, Trino and S3 behind one MCP endpoint.

Install with go install, Docker, or grab a release. Point it at PostgreSQL, which holds the catalog, via YAML config. Add Trino for SQL and S3 for objects when you are ready; every connection is scanned into the catalog. Cross-enrichment is on by default. With no warehouse, the catalog, gateways, knowledge layer, memory, and portal run on PostgreSQL alone (see deployment shapes). Run over stdio for Claude Desktop, or http with OAuth 2.1 for hosted MCP clients.

~ / mcp-data-platform
$ go install github.com/txn2/mcp-data-platform/cmd/mcp-data-platform@latest

$ claude mcp add data-platform \
    -e DATABASE_URL=$DATABASE_URL \
    -e TRINO_HOST=trino.example.com \
    -- mcp-data-platform --config platform.yaml
  added: data-platform (catalog + trino + s3, semantic on)

$ claude
# ask: describe the orders table with its owners and tags

LIB-002 · go · library docs ↗

go library

Compose a custom platform. Bring your own toolkits and middleware.

platform.New returns a configured platform from a YAML config or functional options. The ToolkitRegistry loads Trino, S3 and any custom toolkits. Wire Use middleware for redaction, audit, or transformation, then call Run to start the MCP server. No forking required.

~ / library
$ go get github.com/txn2/mcp-data-platform

// main.go
p, err := platform.New(ctx,
    platform.WithConfigFile("platform.yaml"),
    platform.WithToolkit(myToolkit),
)

p.Use(audit.Middleware)
p.Use(redact.Middleware)
p.Run(ctx)

§ 02 / what it does

A platform of tools. Plus context.

mcp-data-platform composes the txn2 MCP toolkits behind one server, then wraps them in the operational layer enterprises need: auth, personas, audit, knowledge, and a gateway for third-party MCPs. Semantic context flows automatically between services so AI responses arrive with meaning, not just rows.

  • semantic cross-enrichment

    Trino results include the catalog's curation (description, owners, tags, glossary terms, open incidents). A dataset read from the catalog says whether and where it can be queried. Lineage is recorded as data moves. Session dedup avoids repeating context already sent.

  • composable toolkits

    The catalog is built in: every connection is scanned into it, and people and agents curate it with versioned, reversible changes. Add mcp-trino for federated SQL and mcp-s3 for object storage when you need them, or run neither and keep the database-backed surfaces. Multi-instance per service, runtime instance selection, isolated failure domains. Add custom toolkits via the Toolkit interface.

  • oauth 2.1, oidc, api keys

    OAuth 2.1 server for inbound (Claude Desktop talks OAuth to the platform). OAuth 2.1 client for outbound to upstream MCPs through the gateway, with encrypted refresh tokens persisted across restarts. OIDC discovery for Keycloak, Auth0, Okta, Azure AD. API keys for service accounts. Fail-closed by default.

  • personas & connection scoping

    The unit of access is the connection, not the end user. Map OIDC roles to personas, then grant each persona the connections it may reach: deny-by-default, enforced on every tool call and on discovery. Several connections can front one system under different credentials, so a read-only and a write-capable Trino account are two grants rather than one. Per-user attribution comes from the audit trail. Description overrides per persona steer the model differently for different audiences.

  • audit & observability

    Every tool call is logged to PostgreSQL with user, persona, tool, parameters (sanitized), duration, enrichment metrics, and result hash. SOC2 and HIPAA-friendly retention. Searchable from the admin portal with event-detail drawers. Activity dashboards for personas, tools, and connections. A search-first gate that refuses query tools until the agent discovers table context.

  • gateway toolkit

    Re-expose any well-behaved third-party MCP server through the platform's auth, persona, and audit pipeline. Connections authored in the admin portal (DB-backed, encrypted credentials). Tools surface as <connection>__<remote_tool>. OAuth 2.1 client_credentials and authorization_code+PKCE grants. Optional declarative cross-enrichment joins proxied responses with Trino or the catalog.

  • admin & user portal

    Built-in web dashboard. Admins manage connections, personas, API keys, configuration entries, audit, knowledge, and gateway connections. Users see their activity, prompts, assets, collections, resources, and shared work. Configurable branding (light/dark logos, implementor brand, public-share notices). Markdown asset viewer with mermaid, GFM tables, and code highlighting.

  • knowledge & memory

    Capture tribal knowledge during AI sessions and write it to the catalog or knowledge pages through a human-in-the-loop governance workflow with changeset rollback. Persistent memory layer (PostgreSQL + pgvector) accumulates preferences, corrections, and domain knowledge across sessions, with staleness detection when referenced entities change.

  • part of the txn2 mcp data platform

    Sister projects: mcp-trino for federated SQL, mcp-s3 for object storage. mcp-data-platform composes both plus the operational layer that turns them into a platform.

// open source

mcp-data-platform is one of several open source components by Craig Johnston, sponsored by Deasil Works, Inc. and Plexara.io. Released under the Apache 2.0 license. Built to give AI assistants a safe, composable, semantic-first bridge to your data infrastructure.