TC Tool Compass
MCP Gateway — v2.4

Find tools by intent, not memory.

Semantic search for MCP tools. 95% fewer tokens, ~15ms latency, graceful Ollama-offline fallback, trace IDs you can paste into a bug report.

Install

ollama pull nomic-embed-text pip install tool-compass tool-compass sync

CLI

tool-compass search "generate an AI image" tool-compass describe comfy:comfy_generate tool-compass doctor

MCP tool

compass( intent="generate an AI image", top_k=3 )

Result

# comfy:comfy_generate 0.91 # tokens_saved: 20,500 # trace_id: 9f3a1c7b

Why Tool Compass

Stop loading all 77 tools into context. Find the right one — and keep finding it when things go sideways.

Semantic Discovery

compass(intent) finds tools by meaning. Describe what you want to do — get the right tool, not a list of all of them.

95% Token Savings

38,500 tokens → 2,000 per request. HNSW vector index, nomic-embed-text, ~15ms query latency, ~95% accuracy@3.

Progressive Disclosure

compass() → describe() → execute(). Load only the schema you need, only when you actually need it.

Graceful degradation

Ollama down? Compass falls back to keyword search over the same index, marks results degraded, and tells you exactly what to start.

Trace IDs in every response

Every MCP call gets an 8-char trace_id plumbed into logs, success envelopes, and error envelopes. Paste it into a bug report and grep the logs.

Production observability

/ready does a deep probe (index + Ollama + backends). /metrics emits Prometheus text with embed p95, orphan vectors, per-backend up/down.

What's new in v2.5

Remote HTTP backends, hybrid search, full-schema describe(), per-tool timeouts, allow/deny, and an execute CLI — a 12-feature pass, each closed by an adversarial cross-wave re-audit.

HTTP / remote backends

Front remote and SaaS MCP servers over streamable-http, not just local stdio subprocesses. Optional bearer-token auth on your own gateway endpoint.

Hybrid search + exact-name boost

Semantic (HNSW) and lexical signals fused with Reciprocal Rank Fusion on the healthy path — describe what you want, or paste a tool name and it ranks #1.

Full-schema describe()

The complete inputSchema (required fields, descriptions, enums, defaults) is preserved through sync, so an agent can build a correct execute() call in one hop.

Per-tool timeouts & allow/deny

Override the 15s default per backend or per tool for slow image/video backends; expose a safe subset of a broad backend with allow/deny globs.

execute CLI

tool-compass execute <tool> '<json>' runs a proxied tool call from the terminal — smoke-test a backend without wiring up an agent.

Ops hardening

Active liveness probe surfaces hung-but-connected backends; analytics retention keeps the local DB bounded; schema-aware change detection re-syncs revised tools.

Quick Start

Install & Index

# Prerequisites: Ollama running locally
ollama pull nomic-embed-text

# Install the CLI + gateway
pip install tool-compass

# Build the search index from your configured backends
tool-compass sync

# Start the MCP gateway (or `tool-compass serve`)
tool-compass

One-shot CLI

# Search by intent without starting a server
tool-compass search "generate an AI image" --top 3 --json

# Inspect a tool's schema
tool-compass describe comfy:comfy_generate

# Diagnostics dump — version, config, Ollama reachability
tool-compass doctor

MCP tool call

compass(
  intent="I need to generate an AI image from text",
  top_k=3,
  min_confidence=0.3
)

# Returns (excerpt):
# {
#   "matches": [{
#     "tool": "comfy:comfy_generate",
#     "confidence": 0.912
#   }],
#   "tokens_saved": 20500,
#   "trace_id": "9f3a1c7b"
# }

Graceful Ollama-down

# Ollama stopped mid-session? compass still answers:
compass(intent="read a file")

# Returns:
# {
#   "matches": [{
#     "tool": "bridge:read_file",
#     "degraded": true
#   }],
#   "warnings": [
#     "Semantic search unavailable: Ollama at
#      http://localhost:11434 is unreachable.
#      Try: ollama serve"
#   ]
# }

Gateway Tools

Nine MCP tools — one semantic entry point for your entire MCP ecosystem.

Tool
Description
compass(intent)
Hybrid semantic + lexical search with exact-name boost — describe your intent, or paste a tool name
describe(tool)
Get the full inputSchema (required fields, descriptions, enums, defaults) before calling
execute(tool, args)
Run any indexed tool directly through the gateway
compass_categories()
List all tool categories and connected MCP servers
compass_status(active)
System health; active=True runs a live backend liveness probe
compass_analytics(timeframe)
Usage statistics, accuracy metrics, and performance data
compass_chains(action)
Discover and manage common multi-tool workflows
compass_sync(force)
Rebuild the HNSW search index from connected backends
compass_audit()
Full system diagnostic — index integrity, server health

HTTP Endpoints

Start the gateway in HTTP mode with PORT=8000 tool-compass for operator-grade endpoints.

Endpoint
Purpose
/health
Liveness probe — always 200 if the process is up.
/ready
Deep readiness probe; 503 with a JSON breakdown when a check fails.
/metrics
Prometheus text — search, backend, and embed latency metrics.
MCP JSON-RPC
Standard MCP streamable-http transport at the root. HOST defaults to 127.0.0.1; expose via a reverse proxy or set gateway_auth_token (TOOL_COMPASS_GATEWAY_AUTH_TOKEN) for built-in bearer-token auth.