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.
| Tool | What it answers |
|---|---|
backend_report | Route-granular backend intelligence |
blast_radius | What depends on a file or symbol, and how risky changing it is |
breaking_change_hints | Deprecated |
capabilities | List every Core analysis capability and consent-gated integration with availability and a reason when unavailable |
changed_paths | List workspace-relative paths changed in the working tree, or against an optional git base ref |
configure | Read or update gitignored Dispatch settings |
dependency_cycles | Import and re-export cycles, each returned as the list of files forming the loop |
dependency_graph | The import/re-export dependency graph, at file level or aggregated to packages |
dependency_route | Show how one file or symbol reaches another through the dependency graph, with alternative paths |
dispatch_doctor | Check whether Dispatch can run local Cursor workers |
engineering_health | The deep engineering view |
explain_area | Explain what a module or folder does |
explore_code | Everything about one file or symbol in a single call |
feature_graph | Inferred features and how they depend on each other |
find_references | Find resolved references to a symbol — who actually calls or imports it |
find_symbol | Find indexed symbols by exact name, optionally narrowed by file or kind |
health_history | Health score over time from stored index snapshots and optional git backfill |
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 |
job_control | Pause, resume, cancel, or attach extra context to a running Dispatch job |
knowledge_graph | The symbol-level graph — declarations and the references between them — with summary stats |
landmarks | Named entrypoints, package roots and feature anchors — the places a human would open first |
list_features | Inferred features with their member files and a confidence score |
list_jobs | Where are we |
list_packages | List the packages in a monorepo with their roots |
remember | Save, list, or forget scoped memories that Dispatch injects into the next start_job prompt |
rename_impact | Every edit site a rename would touch, plus breaking-change hints for public surface |
repository_dna | Identify what a repository is |
repository_health | Score overall repository health from 0-100 with the per-factor breakdown behind the score |
repository_map | Return the repository's structural map at a zoom level |
repository_overview | The dashboard summary in one call |
review_changes | Review changed paths in one call |
safe_delete | Whether a file or symbol can be deleted safely |
search_symbols | Substring or regex search over indexed symbol names (unlike find_symbol, which is exact-match only) |
security_report | Left-shift security posture |
stack_profile | Detected stack for the workspace or a single package |
start_job | Create a Dispatch job from a ticket or title plus PRD |
start_my_day | Standup briefing for this repository |
test_impact | Which test files transitively cover a change target — the tests worth running after touching it |
testing_report | Test structure and, when coverage artifacts are already on disk, coverage |
workspace_status | Compact 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.