Liminality
远程MCP求解引擎:将复杂请求拆解为可核查的子问题,将每个子问题对应到实际工具,并返回可复用的路径。
文档
Liminal MCP · for businesses and builders
Bring Liminal's reasoning into the tools your team already uses.
Liminal MCP is the shared intelligence workspace behind the Liminal app, served over the Model Context Protocol. Add one remote server to Claude, Cursor, or your own agent and every hard question gets broken down, grounded, and answered with its reasoning attached.
Email and a password. The key is issued immediately. The first 50 solves on a new key are free; no card required.
Set up in three steps
- Get a key.
Create an account with an email and a password. Your key appears on the next screen and in your welcome email. Treat it like a password. It goes in theX-API-Keyheader on every request. - Add the server to your client.
Endpoint:https://liminality.physea.ai/mcp(streamable HTTP). Pick your client below and paste the snippet with your key filled in. - Ask something hard.
Try “Research this decision, show the sources, and stop if evidence is missing.” The answer comes back with its steps, so you can check it and reuse it.
Claude Code
One command
Run it once in a terminal. Claude Code stores the server and header for you. Replace YOUR_KEY with the key from your account.
Copy
claude mcp add liminal --transport http https://liminality.physea.ai/mcp --header "X-API-Key: YOUR_KEY"
Cursor · Windsurf · VS Code · any streamable-HTTP client
One config block
Add this to your client's MCP config (for Cursor: ~/.cursor/mcp.json, or Settings → MCP → Add new server). Same URL and header everywhere.
Copy
{
"mcpServers": {
"liminal": {
"url": "https://liminality.physea.ai/mcp",
"headers": {
"X-API-Key": "YOUR_KEY"
}
}
}
}
Claude Desktop
Through a local bridge
Claude Desktop's config file does not send custom headers to remote servers, so use the small mcp-remote bridge. Add this to claude_desktop_config.json (Settings → Developer → Edit Config) and restart Claude Desktop. Needs Node.js installed.
Copy
{
"mcpServers": {
"liminal": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://liminality.physea.ai/mcp",
"--header",
"X-API-Key:${LIMINAL_KEY}"
],
"env": {
"LIMINAL_KEY": "YOUR_KEY"
}
}
}
}
Generic MCP · OAuth discovery
For your own agent or SDK
Connect with the MCP streamable HTTP transport to the endpoint and send X-API-Key. Without a key the endpoint answers 401 with a WWW-Authenticate header that points to the protected-resource metadata, so OAuth-aware clients can discover the authorization server on their own:
https://liminality.physea.ai/.well-known/oauth-protected-resource/mcp
Machine-readable notes for agents: liminality.physea.ai/llms.txt.
Copy
# Without a key you get 401 and the OAuth discovery pointer. That means the endpoint is up.
curl -i https://liminality.physea.ai/mcp
# With your key: one grounded answer over plain HTTPS (same engine as the MCP).
curl https://liminality.physea.ai/answer \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_KEY" \
-d '{"question":"Which vector database fits our latency, cost, and self-hosting limits?"}'
Check it worked
What you should see
In Claude Code, run /mcp: liminal shows as connected and lists its tools. In Cursor, the server turns green under Settings → MCP. Over curl, a request with a valid key returns 200 and a JSON answer with its sources and steps.
If you get 401, the key or the X-API-Key header is missing or wrong. If you get 402, the free solves on that key are used up; add solves and retry. Still stuck? Tell us what the client printed.
No key sent
HTTP/2 401
WWW-Authenticate: Bearer resource_metadata="https://liminality.physea.ai/.well-known/oauth-protected-resource/mcp"
{"error":"api_key_required","detail":"Send x-api-key: <key> or Authorization: Bearer <key>", ...}
Wrong key
HTTP/2 401
{"error":"invalid_api_key"}
What your agent gets
Same engine as the app. The captures below are from real calls on 2026-09-05.
Tool list
22 tools, one front door.
solve takes a question, a decision, or a multi-step task and returns a checked result with its steps. The rest are for control and reuse: research for a multi-source pass, handoff and delegation for cross-session work, compress_context to turn a long transcript into a brief, export_result and get_result_detail to pull the full record, composio_connect to attach a tool your agent may write to, and report_outcome and report_feedback to tell the route how it held up.
tools/list against https://liminality.physea.ai/mcp, 2026-09-05 (names only)
solveget_capabilitiesget_settingsset_settingsget_result_detailexport_resultcompress_contextdelegationhandoffask_formapply_formreport_outcomereport_feedbackapply_gradeoptimizeresearchcomposio_connectregister_assetset_prioritiestaxiscatalogmanage
Sources
Answers come back with evidence records, not just prose.
Each retrieved source is stored as an evidence record with a hash and the excerpts the answer relied on. Your agent can quote them, and a person can open them. If the request requires evidence and none supports a claim, the grounding validator fails closed and the result is returned as an uncertified candidate rather than a solved answer.
Evidence record returned with a real solve (trimmed)
{
"schema_version": "liminality-evidence-record/1",
"source_id": "retrieved-1",
"kind": "retrieved",
"sha256": "3bfc14c29fdf65925459f3b456043a1d0d6734763e32ac7cebed70ce99349575",
"excerpts": [
"The latest stable major release of PostgreSQL is version 18 [1][2].",
"Sources: https://www.postgresql.org/about/news/postgresql-18-released-3142/; https://www.postgresql.org/docs/18/release-18.html"
],
"provenance": { "origin": "retrieval", "bounded": true }
}
Captured 2026-09-05 from a live solve on liminal.physea.ai (question: the latest major PostgreSQL release). Trimmed to one record for length; nothing rewritten.
Honest states
Blocked is a state your agent can read.
A step that needs a connection your agent has not given is returned as "needs a connection" with a connect link; it is never fired without your go-ahead. A step that could not run is "not run" with the reason. A result that failed certification is returned with status FAIL, state candidate, and the list of unsupported claim IDs, so your agent can decide whether to retry, ask you, or stop.
Certification block from a real solve that did not pass (trimmed)
"certification": {
"status": "FAIL",
"state": "candidate",
"verification": { "status": "independent", "by": "bedrock/converse/nvidia.nemotron-nano-3-30b" },
"attestations": [
{ "validator": "result_integrity", "status": "PASS", "checked": 5 },
{ "validator": "grounding", "status": "FAIL", "checked": 2,
"violations": ["unsupported claims: claim-1, claim-2, claim-5, claim-6"],
"basis": "evidence-required requests fail closed without explicit grounded provenance" }
]
}
Captured 2026-09-05 over the REST endpoint with a live key; the same fields come back over MCP. Refused and failed solves are not billed as completed ones.
See the same state in the app →
Handoffs and delegation
Checkpoint in one session, resume in another.
handoff(action="create") stores the objective, artifact state, evidence, and acceptance criteria under a subject. handoff(action="resume", handoff_id="") returns that frame verified against the store. Resume by the ID you were given to reopen the exact work you meant. handoff_id="latest" resumes the newest unfinished checkpoint; when more than one was created recently, it returns the candidates and asks you which subject to continue instead of guessing. delegation does the same for a bounded packet you hand to a subagent, with a report step to bring the result back without merging its work silently.
Measured on three multi-session coding runs with real checkpoint and resume calls: acceptance 5 of 5 preserved, caller wall time 6% slower. The token and cost figures are being re-derived against a recorded model-only baseline before we print them. One run, our own bench.
Resumed handoff frame (trimmed), created over MCP on 2026-09-05
{
"ok": true,
"frame": {
"schema_version": "liminality-handoff/2",
"handoff_id": "ho-1e4531b4ee964bbb027f",
"subject": "website product pages",
"objective": "Deepen the /liminal/ and /mcp/ product pages so outreach emails can deep-link one feature each.",
"artifact_state": [
"Receipt JSON captured (c4d8b3315757facb)",
"Uncertified-candidate panel captured (916b494e7ac4af41)"
],
"next_action": "Dispatch Astra build in a fresh worktree",
"integrity": "verified_against_store",
"criteria": {
"verified": 0,
"unfinished": [
{ "criterion": "Outreach email can deep-link to a specific feature on /liminal/", "status": "unverified" }
]
}
}
}
Receipts
Every result carries its IDs, its validators, and its cost.
The solve response includes result_id, request_id, the certification record with all eight validators, the grounding status, and the cost line. export_result returns the same record in a portable form. This is what lets a person audit what an agent did after the fact.
Top of a downloaded receipt (trimmed)
{
"schema_version": "liminal-result-receipt/1",
"question": "Should a four-person startup self-host Postgres or use a managed database, given a $200 monthly budget?",
"result_id": "res:c4d8b3315757facb",
"request_id": "req-8fb3f6827371bbee",
"verification": "SELF-CHECKED",
"certification": {
"status": "PASS",
"required_validators": ["result_integrity", "deliverable_completeness", "constraint_consistency", "grounding", "selection", "execution", "verification", "persistence"]
}
}
Get a free keyCopy the MCP commandOpen the Liminal app
50 free solves on every new key. No card.
Before you connect
Plain answers to the questions a security or platform review asks first. Full detail is in the Privacy Policy and Terms of Use.
Hosted
Liminal MCP is a hosted service at liminality.physea.ai, operated by Physea Labs from the United States. There is no self-hosted or on-premises version today. If your policy requires one, contact us before you connect.
What we receive
The question and any context your client sends with it, plus standard request metadata (IP address, client, timing). Each request is metered against your key.
Model providers
Requests are routed to approved model providers through Amazon Web Services. Providers receive the content needed to answer. We do not sell your data or use it for advertising.
Retention
Solve results are kept with your account so you can reuse them, and are deleted or de-identified within 30 days of a verified deletion request. Aggregated analytics may be kept up to 24 months.
Keys and access
One key per account, sent as a header over HTTPS only. Rotate or delete it from your account, or ask us and we revoke it. Never paste a key into a shared config repository.
Not yet
No SOC 2 or ISO 27001 report, no signed DPA or BAA, and no regional residency option. We say so rather than imply otherwise. Ask if one of these blocks your team.
What your client gets
Research
Multi-source retrieval with the sources kept, and a clear missing-evidence state when there is nothing solid to stand on.
Decomposition
A hard question becomes bounded sub-questions, each tied to a real source, then scored into one answer you keep.
Decisions
Frame a choice, score the options, and get a decision with its trade-offs visible.
Handoffs
Create and resume verified checkpoints across sessions, machines, and models.
Visible failures
Blocked, partial, and source-less results stay visible instead of being dressed up as success.
Pricing
Start free. The first 50 solves on a new key cost nothing. They belong to the account that holds the key, not to a network address, and free solves used in the app before signing up carry over. After that, buy solves in packs that never expire or on a monthly plan. One solve is one question start to finish; the follow-up calls inside a solve (a follow-up question that names the earlier result, forms, grounding, execution, verdicts) are included and never billed again.
Free
50 solves on every new key. No card. Get a key.
Packs
$0.50 a solve, never expire. 20 solves for $10 · 100 for $50 · 1,000 for $500.
Monthly
$250 for 500 solves each month, with rollover. Go monthly.
Teams
Use the same email at checkout that you used for your key and the solves land on that key. A team can share one key today, or each person can hold their own free key. Need one invoice for many seats? Ask us.
Checkout is handled by Stripe. Your key is topped up automatically after payment and the receipt goes to the email you used. Unused solves are refundable within 30 days (see the Terms). Comparing options? See all Physea pricing. Questions? Contact us.
Prefer to try it in the browser first?
The Liminal app runs the same engine. Ask one question free, no account needed.
Open Liminal What Liminal is →
Not sure which door you need? Pick a starting point.
Contact
Talk to us
Tell us what you're building.
A real person answers, not a queue. Even if the answer is "not us, try this instead."
NameEmailWhat's on your mind?Send
Or head to our contact page. No list, no autoresponder.
×
Liminality · free account
Solving takes a free account
Email and a password, that's the whole signup. You get a key on the spot and your first 50 solves cost nothing. If you typed a request, we carry it through and run it as soon as your key exists.
Signed up on this browser before? You're already in, no need to sign in again.
◑ theme
{"@context":"https://schema.org","@type":"Organization","name":"Physea Labs","url":"https://physea.ai","logo":"https://physea.ai/favicon.svg","description":"Physea Labs builds Liminal, a shared intelligence workspace for complex work with AI you can inspect and reuse; Liminal MCP, the same workspace inside your tools; Synth, synthetic customer research; and custom models. Start free with Liminal; pay per solve."}