Skip to content
Docs
Loading documentation…
Open platform
Documentation

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.

ToolScopePurpose
get_workspace_contextworkspace:readRead workspace identity and projected company context
list_researchesworkspace:readFind accessible research
get_researchworkspace:readRead research metadata
get_reportworkspace:readRead a versioned report as paginated fields
get_evidenceworkspace:readResolve citation IDs to source quotes
list_implementation_taskstasks:readList saved tasks and unclaimed report recommendations
get_implementation_tasktasks:readRead a saved task and its immutable snapshot
start_implementationimplementation:writeClaim a task and persist an accepted plan
report_implementationimplementation:writeRecord progress or a terminal result
release_implementationimplementation:writeCancel 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.

json
{
  "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.