mcp-data-platform-v0.17.0
This release delivers the admin REST API, a config store for runtime configuration persistence, and a documentation overhaul.
Admin REST API (pkg/admin/)
A comprehensive management API for operating the platform. All endpoints require API key authentication and return JSON.
System endpoints
| Endpoint | Description |
|---|---|
GET /healthz |
Health check |
GET /api/v1/system/info |
Platform info (version, uptime, transport, registered toolkits) |
GET /api/v1/system/tools |
All registered MCP tools with metadata |
Configuration management
| Endpoint | Description |
|---|---|
GET /api/v1/config |
Export full platform configuration |
GET /api/v1/config/:section |
Get a specific config section (server, auth, personas, semantic, etc.) |
PUT /api/v1/config/:section |
Update a config section at runtime |
Persona CRUD
| Endpoint | Description |
|---|---|
GET /api/v1/personas |
List all persona definitions |
GET /api/v1/personas/:name |
Get a specific persona |
POST /api/v1/personas |
Create a new persona |
PUT /api/v1/personas/:name |
Update an existing persona |
DELETE /api/v1/personas/:name |
Delete a persona |
API key management
| Endpoint | Description |
|---|---|
GET /api/v1/auth/keys |
List API keys (hashes only, not secrets) |
POST /api/v1/auth/keys |
Create a new API key (returns the secret once) |
DELETE /api/v1/auth/keys/:name |
Revoke an API key |
Audit log querying
| Endpoint | Description |
|---|---|
GET /api/v1/audit/events |
Query audit events with filtering by user, tool, time range, and pagination |
OpenAPI spec
The admin API is fully documented with Swagger annotations. The generated OpenAPI spec lives in internal/apidocs/ and is validated on every build via make swagger-check.
Config Store (pkg/configstore/)
A new Store interface with Get, Set, Delete, List, and Watch operations for runtime configuration persistence.
Two implementations:
- File backend — read-only, loads from the YAML config file. Used when no database is configured.
- PostgreSQL backend — read-write, stores versioned config entries in a
config_entriestable with full history. Enables runtime config changes via the admin API.
New migration: 000009_config_store — creates the config_entries table with namespace, key, value (JSONB), version tracking, and timestamps.
New config sections
database:
dsn: "${DATABASE_URL}"
admin:
enabled: true
address: ":8081"
config_store:
backend: postgres # or "file"
sessions:
secret: "${SESSION_SECRET}"Bug Fix: Empty Proposed Changes (#88)
When apply_knowledge action=synthesize returns an empty proposed_changes array (because insights were captured without suggested_actions), the response now includes a note field explaining why and guiding the LLM to construct changes manually. Previously this returned an empty array with no explanation.
Documentation
- New page: Admin API (
docs/server/admin-api.md) — full reference for all admin endpoints with examples - New page: Operating Modes (
docs/server/operating-modes.md) — stdio vs HTTP transport, headless operation, admin-only mode - Configuration page restructured — reorganized into How Configuration Works, Database, Admin API, Audit, and Sessions sections
- Mermaid fullscreen viewer — click any Mermaid diagram in the docs to open a fullscreen overlay with zoom, pan, and keyboard dismiss. Works around mkdocs-material's Shadow DOM via fetch+DOMParser. Supports light/dark mode.
llms.txtandllms-full.txtupdated per llmstxt.org spec
Security
- Custom Semgrep rules added (
.semgrep/go-security.yml) for detecting unbounded allocations from user input - Audit store hardened against excessive memory allocation (CodeQL
go/uncontrolled-allocation-size— capped withmaxQueryCapacitybarrier)
Changelog
- fix: synthesize note when proposed_changes is empty (#88) (@cjimti)
- feat: admin REST API, config store, and documentation overhaul (#89) (@cjimti)
Installation
Homebrew (macOS)
brew install txn2/tap/mcp-data-platformClaude Code CLI
claude mcp add mcp-data-platform -- mcp-data-platformDocker
docker pull ghcr.io/txn2/mcp-data-platform:v0.17.0Verification
All release artifacts are signed with Cosign. Verify with:
cosign verify-blob --bundle mcp-data-platform_0.17.0_linux_amd64.tar.gz.sigstore.json \
mcp-data-platform_0.17.0_linux_amd64.tar.gz