LabscoMCP early access ↗
Donnyb369MCP SERVER

MCP Spine

Put one proxy in front of all your MCP servers and get rate limits, an audit trail, semantic tool routing and a token budget you can actually enforce.

by Donnyb369 ↗Agent Guardrails, Content Safety & AuditCommunity

LABSCO SUMMARY

One entry point, and the controls are enforced in the proxy rather than requested in a prompt.

Rate limits, a path jail and confirmation prompts only mean something when a model cannot talk around them, and putting them in the transport is what makes that true. The startup design is worth knowing: it answers the handshake immediately and connects downstream servers in parallel, so a slow server delays its own tools rather than the whole session, with a listChanged notification when it catches up.

What it is

A local-first proxy that sits between your MCP client and the servers you already run. The client sees one entry, Spine holds the downstream connections, and every call passes through security policy, routing, schema minification and audit on the way through.

What you get

  • Semantic routing: only the relevant tools are sent to the model, using local embeddings with no API calls; spine_set_context switches context explicitly
  • Schema minification at four aggression levels — level 2 is reported at 61% token savings on tool schemas
  • A token budget with a daily limit, a warn threshold and a warn-or-block action; spine_budget checks usage mid-conversation
  • Human-in-the-loop: mark a tool require_confirmation and Spine pauses, shows the arguments and waits, with spine_confirm and spine_deny relaying your decision
  • Prompt-injection scanning of tool responses before they reach the model, with a log, strip or block action
  • Security policy: secret scrubbing, per-tool and global rate limits, a symlink-aware path jail with deny patterns for .env, .key and .pem, and an HMAC-fingerprinted SQLite audit trail
  • spine_recall reads a ring buffer of recent tool results, so context is not lost when routing swaps tools between turns
  • A web dashboard on localhost:8777 with live stats, latency per server and a full request log

Requirements

The Python package mcp-spine, version 0.2.5, with the entry point mcp-spine. Install with pip install mcp-spine, or pip install mcp-spine[ml] to enable semantic routing. Run mcp-spine init for the setup wizard, mcp-spine doctor --config spine.toml to check it, then replace your individual client entries with one Spine entry pointing at spine.toml. Downstream servers, their commands and the audit database path require a restart to change; minifier level, rate limits, policies and budget hot-reload.

Setup effort

One command — pip install mcp-spine