https://mcp.research.prbe.ai/mcp. It ships inside the tracking plugin, so a plugin install needs no extra step.
Six tools
Thin harness, fat skills. Coverage grows through
entity’s view and filters parameters, never through more tools. browse is the one addition that cleared that bar, because search ranks by relevance to a query and therefore needs you to already know what to search for.probe_procedures may be absent
It is behind a per-user feature flag, and the hosted server does not advertise it to accounts outside the rollout. Its absence from the tool list is the gate working.
It distinguishes four ways of returning zero rules in completeness — no engine wired, the workspace never opted in, nobody seeded the vocabulary, and the team has not written one down. Only the last is an answer.
find_papers
Modes: search, read, similar.
Use the host agent’s own web tools for general web search and opening URLs.
Budgets and pagination
Every tool acceptstoken_budget and cursor.
The frozen
o200k_base encoding ships in the package and works offline. These are tool-text reference counts, not model-specific billing.
A fitting result keeps its view shape. A larger one returns bounded pages plus an opaque next_cursor: resume by passing it back as cursor with the same tool, references, view, filters and other arguments. token_budget may change between pages.
Fragments
An oversized document or record usesdata.format="text_fragment" or "json_fragment". Within one fragment sequence, concatenate data.text in offset order; total_chars, sha256 and complete describe that sequence. Decode JSON only after its sequence is complete. The outer next_cursor can still lead to another source page or batch item.
Document reads use a saved version when one exists, or pin the original text prefix — so later appends are allowed while edits or deletions of that prefix are rejected. Full JSON reads reject substantive changes rather than splicing different records together.
entity
kind: prefix on the slug or UUID that browse and search return; team-note addresses the shared team document.
card is the default and returns available_views for that entity — so one call tells you what else you can ask for. The matrix above is documentation, not something to memorise. An unrecognised ref kind is rejected outright rather than guessed at.
Selecting a field
Notes and summaries
notes reads operational notes. summary reads the authored Overview Markdown with a bounded notes caveat alongside status and headline context. An excerpt reports truncated: false when complete, or truncated: true with a detail door.
Artifact notes are read as view="record", view_options={"field": "notes"} — artifacts have no notes view.
Artifacts resolve by name
Because the reuse check has a name and not an id. The lookup runs against the shared, lab-wide level, which is where an official artifact is promoted to.">=2.0" is rejected rather than silently matching nothing. A name that exists with no satisfying version returns state="no_match" with the versions that do exist, so you can see the real ceiling. A name carried by more than one shared artifact is an error naming both ids.
metrics
One question about grain, asked with an argument rather than three tools.
browse
Defaults to limit=10 per source list and uses backend-issued positions, so nested children and independent project lists are preserved under one output cap. Its backend must support continuation handles; legacy browse cursors require a fresh read.
Removed tools
get_metrics_grouped, get_run_coordinates, export_metric_points, research_context, research_search, research_get, research_compare and research_resolve have been removed. They answered as delegations or aliases for one release; that window has closed and calls to them now fail as unknown tools.
There is no trace-file tool — no backend trace index has ever existed, so it answered matches: [] to every query, which agents read as “this file has no lineage”. To trace a path, URI or hash, use search_knowledge (its exact channel matches artifacts) and follow entity(view="lineage").