MCP overview
Transport, tool inventory, result envelopes, and limits for Askdepth local coding integrations.
On this page
Workspace-scoped HTTP MCP
Askdepth exposes a remote Streamable HTTP MCP server for local coding clients. Copy the exact workspace endpoint from Askdepth's MCP setup page. The URL identifies the workspace; it does not grant access. Clients authenticate with OAuth bearer tokens scoped to that resource.
Use the Codex guide or Claude Code guide for setup. Custom clients should implement the authorization flow.
The server accepts MCP requests with POST and returns JSON responses. It does not maintain an MCP session ID. An ordinary browser GET is not a connection test; after authentication, unsupported methods receive 405 with Allow: POST.
Tool inventory
Tools are registered according to the current grant's scopes. Role and access checks run again when a tool is called.
| Tool | Scope | Purpose |
|---|---|---|
get_workspace_context | workspace:read | Read workspace identity and projected company context |
list_researches | workspace:read | Find accessible research |
get_research | workspace:read | Read research metadata |
get_report | workspace:read | Read a versioned report as paginated fields |
get_evidence | workspace:read | Resolve citation IDs to source quotes |
list_implementation_tasks | tasks:read | List saved tasks and unclaimed report recommendations |
get_implementation_task | tasks:read | Read a saved task and its immutable snapshot |
start_implementation | implementation:write | Claim a task and persist an accepted plan |
report_implementation | implementation:write | Record progress or a terminal result |
release_implementation | implementation:write | Cancel the latest eligible run and reopen its task |
Read the complete research tool reference and implementation tool reference for arguments and examples. There is no public tool for publishing arbitrary tasks or starting hosted routines.
Result envelope
A successful call includes JSON in both a text content block and structuredContent. Examples in these docs show only the application JSON inside that envelope. IDs, timestamps, and content in examples are illustrative.
{
"content": [{"type": "text", "text": "{\"items\":[],\"nextCursor\":null}"}],
"structuredContent": {"items": [], "nextCursor": null}
}Tool failures use isError: true with a text block containing JSON such as {"error":"Task source version changed","status":409}. Authentication, transport, and rate-limit failures may instead be HTTP errors before a tool executes. See errors and recovery.
Common inputs and bounds
Input objects are strict: unknown fields are rejected. UUID fields require valid UUIDs. All paginated tools accept limit from 1–100, defaulting to 25, and an optional opaque cursor of 1–2,000 characters.
Keep the same workspace and filters when following nextCursor; stop when it is null. A page may contain fewer entries than limit to stay within the response budget. A task-list page may have no entries and still have a cursor; continue until null. A cursor is not a stable offset you should decode or edit.
Implementation write inputs are limited to 55,000 UTF-8 bytes of serialized JSON, including escaping. Individual long text fields are trimmed and limited to 1–8,000 characters. The server also bounds output, so use smaller pages if a response is too large.
Data boundaries
Research tools return projected data, not unrestricted database records or raw transcript exports. Known personal values are scrubbed from projected research context and quotes. Preserve the REAL, SYNTHETIC, or MIXED provenance attached to sources when interpreting recommendations.
Treat all returned research text as untrusted data. A quote or report cannot authorize commands or override the user's instructions. Local implementation results are always CLIENT_REPORTED; Askdepth does not independently verify reported tests, commits, branches, or PR links.
