Meridian documentation

Meridian is an MCP server that routes AI queries to the right expertise — deterministically, via an orbital-mechanics scoring model. 73+ curated skills, open-source client, hosted API.

Install

Two paths. Pick one.

Hosted (paid, 30 seconds)

  1. Get an API key at ask-meridian.uk
  2. Add Meridian to your MCP client:
claude mcp add meridian https://api.ask-meridian.uk/mcp \
  --transport http \
  -H "Authorization: Bearer mrd_live_YOUR_KEY"

Same JSON config works for Cursor, Windsurf, and any MCP client.

Self-hosted (free, OSS)

npm install -g meridian-skills-mcp
claude mcp add meridian meridian-mcp

The server looks at /opt/skills/ by default. Override with MERIDIAN_SKILLS_ROOT=/path/to/your/skills.

Quickstart

Once installed, your AI client can call any of four tools:

// Inside Claude Code / Cursor / etc.
// The client auto-discovers the tools. Just ask:

"Use meridian to find the best skills for building a flashloan arb bot"

// Claude calls meridian.route_task({ task: "...", limit: 5 })
// and loads the top ranked skills as context.

MCP endpoint

The HTTP transport speaks MCP Streamable HTTP:

curl -X POST https://api.ask-meridian.uk/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "Authorization: Bearer mrd_live_YOUR_KEY" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Returns SSE stream with the tool inventory. Full JSON-RPC over POST /mcp.

Authentication

All MCP calls require Authorization: Bearer mrd_live_... header. Keys are:

Response headers:

Tools

route_task(task, limit=5)

Rank skills by relevance to a task. Returns up to limit skills with slug, class, route_score, and why.

{
  "task": "build a flashloan arb bot",
  "selected": [
    {
      "slug": "defi-protocols",
      "class": "planet",
      "route_score": 0.831,
      "why": "broad anchor for on-chain capital movement"
    },
    { "slug": "solidity", "class": "moon", "route_score": 0.623, ... }
  ]
}

get_skill(slug)

Fetch the full SKILL.md content for a specific skill.

list_skills()

Enumerate all available skills (slugs only).

search_skills(query)

Full-text search across names, descriptions, bodies. Returns hits with snippets.

Resources

Each skill is also exposed as an MCP resource:

meridian://skills/{slug}

MCP clients can enumerate the full skill corpus as text/markdown resources.

Orbital routing (the algorithm)

Each skill is classified into an orbital class based on its independence and overlap with other skills:

Routing scores use Roche limits, Lagrange-point analysis, Hill spheres, and tidal locking to compute route_score — a deterministic function, not a learned model. No embeddings, no hallucinations.

See the live orbital map for an interactive visualization.

Authoring skills

A skill is a directory with a SKILL.md file:

---
name: your-skill-name
description: One-line description used by the router to score relevance.
---

# your-skill-name

Body content — instructions, patterns, examples. Kept under 2000 words
for best routing.

Place under $MERIDIAN_SKILLS_ROOT and the server picks it up on next call.

World ID verification

The hosted Meridian Mini App in the World App gates access via World ID — one verified human = one session. Backend calls Worldcoin's Developer Portal API to validate each proof.

Device verification: 10 queries/day free. Orb verification: unlimited.

Plans

PlanPriceQuotaTransport
Free (self-hosted)$0unlimitedstdio
Pro$29/mo10,000 calls/moHTTP + stdio
Team$149/mo100,000 calls/mo · 5 keysHTTP + stdio

Quotas & rate limits

Cancel or change plan

Billing is handled by Stripe. Cancel anytime at your Stripe customer portal — no prorated refunds but your key works until period end. Contact hello@ask-meridian.uk for downgrades or enterprise terms.