MCP
Connect the belief layer to Claude Code, Cursor, Codex, or any MCP client.
AskEngine ships a remote MCP server at https://askengine.dev/api/mcp — the same belief layer as the API, packaged as tools your agent discovers on its own. It authenticates with your team API key (from team settings) as a bearer Authorization header. One key maps to one team. Connect once, then ask things like "what do we currently believe about onboarding?" — and compose it with your other servers ("check PostHog for this week's drop-off, then check AskEngine for what users said about it").
Connect
claude mcp add --transport http askengine https://askengine.dev/api/mcp \ --header "Authorization: Bearer YOUR_API_KEY"Replace YOUR_API_KEY with your team API key — except in Codex, which reads the key from an ASKENGINE_API_KEY environment variable you export. Any other client that speaks Streamable HTTP works the same way: point it at the endpoint and send the key as a bearer Authorization header.
Tools
Twenty tools, following the chain: studies produce evidence, evidence supports signals, signals drive recommendations, gaps track the unknowns, and the inbox holds what needs you. They form a funnel: list tools return slim rows that say what exists, get tools take an id from a list and return one object in full with counts for everything beneath it, and the evidence tools serve the verbatim quotes those counts point at. Each id you need comes from the tier above.
Ask
| Tool | Returns | Reach for it when |
|---|---|---|
ask | One synthesized answer with verified citations | The user wants an answer, not a browse — the citations re-enter the funnel via get_signal and get_evidence |
Slower than the other tools (an LLM composes the answer server-side — expect seconds). Citations are verified against the material the model actually saw, so every ref and evidence id is real: get_signal opens the cited belief, get_evidence with the evidenceIds fetches the exact quotes. A refusal means the layer has no material on the question, not that nobody thinks it.
Studies
| Tool | Returns | Reach for it when |
|---|---|---|
list_studies | Every study with status and counts | You need a study's ID, or an overview of the research |
get_study_readout | One study's summary, stats, and themes | "How is this study doing? What did it find?" |
list_study_source_items | A study's interviews with status and quality | You care about individual interviews |
Evidence
| Tool | Returns | Reach for it when |
|---|---|---|
search_evidence | Semantic hits over all evidence quotes | An open question not tied to a known object — "did anyone mention pricing?" |
get_evidence | The attributed quotes behind an object | You need the audit trail for a signal, study, theme, or interview — or hold specific evidence ids from citations or search hits |
Signals
| Tool | Returns | Reach for it when |
|---|---|---|
list_signals | Every belief with stage, trajectory, confidence | "What does the team currently believe?" |
get_signal | One signal's full packet with evidence preview | Drilling into a belief found via list_signals |
Recommendations
| Tool | Returns | Reach for it when |
|---|---|---|
list_recommendations | Every recommendation with lifecycle state | "What should we do next? What's open?" |
get_recommendation | Full body and action items | Before discussing or acting on one |
get_work_packet | Paste-ready markdown brief with evidence | Turning a recommendation into a ticket or agent task |
decide_recommendation ✎ | Decision recorded | The user has decided: accept or dismiss |
record_recommendation_outcome ✎ | Outcome recorded | The user reports shipped, validated, or stale |
reopen_recommendation ✎ | Reopened | Undoing a decision or outcome |
link_recommendation_work_item ✎ | Work item linked | Connecting a ticket, issue, or PR |
Research gaps
| Tool | Returns | Reach for it when |
|---|---|---|
list_research_gaps | Every gap with type and status | "What should we research next?" |
draft_study_from_gap ✎ | A draft study aimed at the gap | The user decides to act on a gap |
Inbox
| Tool | Returns | Reach for it when |
|---|---|---|
list_action_cards | The pending inbox, ranked by priority | "What needs attention? What's new?" |
resolve_action_card ✎ | Card resolved | The user has dealt with an inbox item |
snooze_action_card ✎ | Card snoozed | Deferring an inbox item |
Tools marked ✎ write to the belief layer. They carry write annotations, so clients like Claude Code ask before running them — and decisions are reversible via reopen_recommendation. Every read tool returns a short text summary for navigation plus the full packet as structured content, and list tools carry a total alongside the cursor — count before concluding. When a packet says it is showing 3 of 41 quotes, get_evidence serves the rest.