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)
- Get an API key at ask-meridian.uk
- 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:
- Provisioned automatically after successful Stripe checkout
- Shown once on the success page (save it!)
- Hashed with SHA-256 on our side — the raw key never leaves your memory after first display
- Scoped per plan: Pro (10K calls/mo), Team (100K calls/mo)
Response headers:
X-Meridian-Calls-Remaining: 9823— your remaining monthly quota
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:
- Planet — broad independent skill; anchors satellites
- Moon — specialist; useful through a parent domain
- Trojan — permanent L4/L5 companion; auto-injected with parent
- Comet — high-eccentricity dormant skill; burst-activates near perihelion
- Asteroid belt — fragmentary utility; no dedicated parent orbit
- Irregular satellite — niche or high-drag; bursty activation
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
| Plan | Price | Quota | Transport |
|---|---|---|---|
| Free (self-hosted) | $0 | unlimited | stdio |
| Pro | $29/mo | 10,000 calls/mo | HTTP + stdio |
| Team | $149/mo | 100,000 calls/mo · 5 keys | HTTP + stdio |
Quotas & rate limits
- Monthly call quota enforced per key
- Calls-remaining returned in
X-Meridian-Calls-Remaining - Over-quota: HTTP 401 with error hint
- Rate limit: fair-use, not currently hard-enforced per-second
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.