MCP tools

Every tool the Prism MCP server exposes, generated from the tool registry.

Every tool the Prism MCP server exposes, generated from the tool registry the server is built from.

Intelligence tools are read-only Core adapters. Dispatch tools (jobs, OAuth, memory, configure) write gitignored state under .prism/dispatch/ and do not index. Completing OAuth in the browser is the human grant for Dispatch drivers. Core analysis APIs stay ungated from MCP. See Consent and privacy and Dispatch.

Tools that return a list accept limit and answer with totalCount and truncated, so an agent can tell the first 20 of 340 from all 20 there are.

ToolWhat it answers
backend_reportRoute-granular backend intelligence
blast_radiusWhat depends on a file or symbol, and how risky changing it is
breaking_change_hintsDeprecated
capabilitiesList every Core analysis capability and consent-gated integration with availability and a reason when unavailable
changed_pathsList workspace-relative paths changed in the working tree, or against an optional git base ref
configureRead or update gitignored Dispatch settings
dependency_cyclesImport and re-export cycles, each returned as the list of files forming the loop
dependency_graphThe import/re-export dependency graph, at file level or aggregated to packages
dependency_routeShow how one file or symbol reaches another through the dependency graph, with alternative paths
dispatch_doctorCheck whether Dispatch can run local Cursor workers
engineering_healthThe deep engineering view
explain_areaExplain what a module or folder does
explore_codeEverything about one file or symbol in a single call
feature_graphInferred features and how they depend on each other
find_referencesFind resolved references to a symbol — who actually calls or imports it
find_symbolFind indexed symbols by exact name, optionally narrowed by file or kind
health_historyHealth score over time from stored index snapshots and optional git backfill
integrationsCatalogue what Dispatch can connect, start OAuth for GitHub (user), Linear, Jira, Slack (mentions + tracked channels), Notion, or Google Calendar, or disconnect a driver
job_controlPause, resume, cancel, or attach extra context to a running Dispatch job
knowledge_graphThe symbol-level graph — declarations and the references between them — with summary stats
landmarksNamed entrypoints, package roots and feature anchors — the places a human would open first
list_featuresInferred features with their member files and a confidence score
list_jobsWhere are we
list_packagesList the packages in a monorepo with their roots
rememberSave, list, or forget scoped memories that Dispatch injects into the next start_job prompt
rename_impactEvery edit site a rename would touch, plus breaking-change hints for public surface
repository_dnaIdentify what a repository is
repository_healthScore overall repository health from 0-100 with the per-factor breakdown behind the score
repository_mapReturn the repository's structural map at a zoom level
repository_overviewThe dashboard summary in one call
review_changesReview changed paths in one call
safe_deleteWhether a file or symbol can be deleted safely
search_symbolsSubstring or regex search over indexed symbol names (unlike find_symbol, which is exact-match only)
security_reportLeft-shift security posture
stack_profileDetected stack for the workspace or a single package
start_jobCreate a Dispatch job from a ticket or title plus PRD
start_my_dayStandup briefing for this repository
test_impactWhich test files transitively cover a change target — the tests worth running after touching it
testing_reportTest structure and, when coverage artifacts are already on disk, coverage
workspace_statusCompact workspace readiness

backend_report

Route-granular backend intelligence: HTTP endpoints, auth posture, data layer, environment variables and background jobs. Use when the question is specifically about the server side. Static heuristics over Express, Nest and Fastify — nothing is executed.

Arguments: packageId.

blast_radius

What depends on a file or symbol, and how risky changing it is: direct and transitive dependents, confidence lanes, evidence and a risk band. Results are import/soft-lane based — coverageLimitations lists classes it cannot see (DI containers, string-keyed registries, event buses, template/i18n refs, runtime-loaded config, generated-code consumers). Call this before editing or deleting code you did not write. Use intent 'delete' when removing rather than modifying. affectedFiles and testsLikelyAffected are bounded (default 50).

Arguments: kind, id, path, intent, limit.

breaking_change_hints

Deprecated: breaking-change hints are included in blast_radius (and review_changes). Prefer those tools. Heuristic hints about what a change to this target could break for consumers — exported surface, widely imported modules, public entrypoints. Heuristic by design: treat as prompts to check, not as findings.

Arguments: kind, id, path.

capabilities

List every Core analysis capability and consent-gated integration with availability and a reason when unavailable. Use this to tell 'not supported by this build' apart from 'not consented / not exposed via MCP' — never guess why a network or build feature is missing.

Takes no arguments.

changed_paths

List workspace-relative paths changed in the working tree, or against an optional git base ref. Use before review_changes when you need the path list alone, or let review_changes auto-discover by omitting paths. Fails when git is unavailable — that is not the same as an empty change set.

Arguments: base.

configure

Read or update gitignored Dispatch settings: section order, standup template, Slack tracked channel ids, mention window and caps, max parallel jobs (default 5), hint policy, and whether the tickets slot is Linear or Jira. action=export returns a non-secret template (no tokens) for sharing. Chat only — there is no settings UI in v1.

Arguments: action, maxJobs, hints, ticketHost, standupTemplate, slackTrackChannelIds, mentionWindowHours, mentionLimit, trackedMessageLimit, sectionsOff, includeMemories.

dependency_cycles

Import and re-export cycles, each returned as the list of files forming the loop. Use when investigating build order, flaky module initialisation, or before extracting a package.

Arguments: packageAggregation, limit.

dependency_graph

The import/re-export dependency graph, at file level or aggregated to packages. Includes unresolvedImports { count, sample } for specs that did not resolve into the graph. Bounded by default (limit 50 nodes); use summaryOnly for counts + top-degree nodes. Prefer packageAggregation, or use blast_radius if your question is about one file rather than the whole graph.

Arguments: packageAggregation, resolveAliases, limit, summaryOnly.

dependency_route

Show how one file or symbol reaches another through the dependency graph, with alternative paths. Use to answer 'how is this connected to that?' — an empty result means no path exists, which is itself an answer.

Arguments: from, to, maxAlternatives, maxHops.

dispatch_doctor

Check whether Dispatch can run local Cursor workers: CURSOR_API_KEY, @cursor/sdk import, host vs worker role, and active job count versus the configured cap. Use when start_job is blocked or the user asks if Dispatch is set up.

Takes no arguments.

engineering_health

The deep engineering view: hotspots, churn, complexity, ownership concentration, knowledge decay and debt indicators in one report. Use when asked to find what needs attention. Git-derived sections fail soft on repositories without history. For the single headline number use repository_health.

Takes no arguments.

explain_area

Explain what a module or folder does: domain overlap, dependency in/out degree and local ownership. Use before editing an unfamiliar directory. For a single file target prefer explore_code (richer usages/ownership/timeline). Deterministic — derived from the index and local git, never generated prose.

Arguments: path.

explore_code

Everything about one file or symbol in a single call: usages, ownership, related and similar code, and a change timeline. Usages are bounded (default 50) via a nested envelope so large files do not drown the response. Use when asked to understand a specific thing rather than the repository as a whole.

Arguments: kind, path, name, start, limit.

feature_graph

Inferred features and how they depend on each other. Features are heuristic groupings of files, not a declared structure, so treat them as a starting point rather than ground truth. Bounded by default (limit 50 nodes); use summaryOnly for counts + top-degree nodes.

Arguments: limit, summaryOnly.

find_references

Find resolved references to a symbol — who actually calls or imports it. Pass path (and start when several symbols share a name) to disambiguate. Use before renaming or deleting anything.

Arguments: name, path, start, limit.

find_symbol

Find indexed symbols by exact name, optionally narrowed by file or kind. Use to locate a definition before asking about its impact. For substring or regex search use search_symbols.

Arguments: name, path, kind, limit.

health_history

Health score over time from stored index snapshots and optional git backfill. Use to answer 'is this getting better or worse?'. Points carry provenance: backfilled points are estimated from history, not measured at the time, and say so.

Arguments: maxPoints.

integrations

Catalogue what Dispatch can connect, start OAuth for GitHub (user), Linear, Jira, Slack (mentions + tracked channels), Notion, or Google Calendar, or disconnect a driver. No connector is on by default. Connect uses Prism Auth (auth.prismhq.in). Cursor shows a native Authenticate control and a short step list; Claude opens the auth page. Never ask the user to create an OAuth app or paste a client id. Aliases like “google calendar” map to google-calendar. Tokens go in the OS keychain. Workers cannot start OAuth. Call when the user asks what we can connect or says connect Slack (or another driver).

Arguments: action, driver.

job_control

Pause, resume, cancel, or attach extra context to a running Dispatch job. Pause and cancel map to the Cursor SDK run.cancel() when the run supports it. Resume uses Agent.resume after an MCP restart. attach_context sends more text to the existing local agent.

Arguments: jobId, action, context.

knowledge_graph

The symbol-level graph — declarations and the references between them — with summary stats. Requires path (scope to one file) or limit (bound nodes). Very large on a big repository. If you are looking for one symbol use find_symbol or search_symbols, and for its callers use find_references.

Arguments: path, limit.

landmarks

Named entrypoints, package roots and feature anchors — the places a human would open first. Use to pick a starting file in an unfamiliar repository.

Arguments: limit.

list_features

Inferred features with their member files and a confidence score. Cheaper than feature_graph when you only need the list. Low confidence means the grouping is a guess.

Arguments: limit.

list_jobs

Where are we: every Dispatch job with status, worktree path, source (cursor / claude / prism), git status in that tree, and last known Cursor agent status. Call when the user asks where we are, what's running, or to list jobs.

Takes no arguments.

list_packages

List the packages in a monorepo with their roots. Call this first in a monorepo so later tools can be scoped with packageId instead of returning the whole workspace.

Arguments: limit.

remember

Save, list, or forget scoped memories that Dispatch injects into the next start_job prompt. Scope is job, repo, or user. Does not auto-save code-changing rules; those need confirm=true. Call when the user says remember this, forget that, or list memories.

Arguments: action, text, id, scope, jobId, confirm.

rename_impact

Every edit site a rename would touch, plus breaking-change hints for public surface. Use before renaming an exported symbol or moving a file. A report only — Prism never edits.

Arguments: kind, id, path, newName.

repository_dna

Identify what a repository is: detected languages, frameworks, package manager, architecture hints, test runners and ranked domains, each with the evidence behind it. Start here when you know nothing about a codebase. Local index only; no network.

Takes no arguments.

repository_health

Score overall repository health from 0-100 with the per-factor breakdown behind the score. Includes graphCoveragePct (share of inventory files in the TS/JS dependency graph) and a 'TS/JS import coupling' factor. Use to judge whether a codebase is in good shape or to find which factor drags it down. For the deeper engineering view (hotspots, churn, ownership, debt) call engineering_health instead.

Takes no arguments.

repository_map

Return the repository's structural map at a zoom level: nodes, edges and regions. Use to orient yourself or to find where a concern lives. Defaults to 'package' zoom (bounded). 'file' and 'symbol' can be very large on a big repository, so prefer the coarsest zoom that answers your question.

Arguments: zoom, layers.

repository_overview

The dashboard summary in one call: totals, coupling density and band, the largest regions with health scores, the most connected nodes (with map kind), and recent commit activity. Use when you want a single orienting snapshot rather than four separate calls. Region scores are null where there is no evidence — that means 'not measured', not 'zero'.

Arguments: zoom, activityDays.

review_changes

Review changed paths in one call: blast radius, test impact and breaking-change hints per path, rolled up with an overall risk band. Omit paths to auto-discover via git (same as changed_paths); pass base to compare against a ref. Use for 'review my branch' rather than calling the per-file tools repeatedly.

Arguments: paths, base.

safe_delete

Whether a file or symbol can be deleted safely: blockers that still depend on it, and files that would be orphaned if it went. A report only — Prism never deletes anything. Prefer this over blast_radius when the question is specifically about removal.

Arguments: kind, id, path.

search_symbols

Substring or regex search over indexed symbol names (unlike find_symbol, which is exact-match only). Optional kind/path filters. Hard-capped at 50 hits.

Arguments: pattern, regex, path, kind, limit.

security_report

Left-shift security posture: which tooling is configured, which fundamental checks are present or missing. A checklist against local configuration, not a vulnerability scan — it will not find CVEs and does not claim to.

Takes no arguments.

stack_profile

Detected stack for the workspace or a single package: frameworks, runtimes, build tooling and the signals each was detected from. Use when you need to know what a package is built with before changing its configuration.

Arguments: packageId.

start_job

Create a Dispatch job from a ticket or title plus PRD. Adopts an existing Cursor or Claude git worktree when one matches the ticket; otherwise creates .prism/dispatch/worktrees/<id>. Starts a local Cursor SDK agent in that tree with Prism MCP in worker role, and returns the job id immediately without waiting for the agent to finish. Requires CURSOR_API_KEY to actually spawn the worker.

Arguments: title, prd, jobId, branch, playbook, confirmOverlap.

start_my_day

Standup briefing for this repository: leftover Dispatch jobs, local git, then any connected drivers (GitHub reviews, Linear or Jira tickets, Slack mentions plus tracked channels, Notion, Google Calendar). Unconnected tools appear as named connect CTAs. Does not index the repo. Call this when the user says start my day, standup, or what's waiting on me.

Takes no arguments.

test_impact

Which test files transitively cover a change target — the tests worth running after touching it. Prism reports which tests are relevant; it does not run them. The tests list is bounded (default 50).

Arguments: kind, id, path, limit.

testing_report

Test structure and, when coverage artifacts are already on disk, coverage. Use to judge how well tested an area is. Prism reads existing artifacts; it never runs your tests.

Takes no arguments.

workspace_status

Compact workspace readiness: path, whether an index is loaded, indexedAt, freshness, git availability, whether a .prism/cache directory exists, and dependency-graph node/edge counts. Call this when a previous tool failed or to confirm the session is ready before a review.

Takes no arguments.

On this page