# Prism (npm · @repo-prism/mcp-server)

Local-first repo intelligence for agents: DNA, health, blast radius, and Dispatch jobs.

- Trust score: 84/100 (high trust)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-01

## Components

- npm · `@repo-prism/mcp-server`: 84/100 (this document), [markdown](https://verifymcp.io/servers/shailesh200-prism/repo-prism-mcp-server.md), [page](https://verifymcp.io/servers/shailesh200-prism/repo-prism-mcp-server)

## Channel facts

- Registry: `npm`
- Package: `@repo-prism/mcp-server`
- Version: `1.1.1`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-01.

- **Supply Chain Security**: 99/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 52 of 186 dependencies flagged as unhealthy (1 deprecated).
- **Provenance & Transparency**: 48/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 12 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 82/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 6007 tokens (~136/item across 44 items; 41 tools + 3 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 97/100
  - Stability observed for 29 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 97/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 90% of tool parameters carry a description.
- **Tool Safety**: 75/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "safe_delete" implies "delete" and declares readOnlyHint instead, contradicting what its own name says it does.
  - An AI judge read all 43 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Prism MCP server?

Prism runs locally as an npm package, launched with npx -y @repo-prism/mcp-server. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add shailesh200-prism -- npx -y @repo-prism/mcp-server
```

### Cursor

```json
{
  "mcpServers": {
    "shailesh200-prism": {
      "command": "npx",
      "args": [
        "-y",
        "@repo-prism/mcp-server"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "shailesh200-prism": {
      "command": "npx",
      "args": [
        "-y",
        "@repo-prism/mcp-server"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add shailesh200-prism -- npx -y @repo-prism/mcp-server
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "shailesh200-prism": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@repo-prism/mcp-server"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add shailesh200-prism --command npx --arg -y --arg @repo-prism/mcp-server
```

### Hermes

```yaml
mcp_servers:
  shailesh200-prism:
    command: "npx"
    args: ["-y", "@repo-prism/mcp-server"]
```

### Netclaw

```json
{
  "McpServers": {
    "shailesh200-prism": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@repo-prism/mcp-server"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add shailesh200-prism -t stdio -c npx -a -y @repo-prism/mcp-server
```

### Other

```json
{
  "mcpServers": {
    "shailesh200-prism": {
      "command": "npx",
      "args": [
        "-y",
        "@repo-prism/mcp-server"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-01 (score 84, +1)

No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-30 (score 83, +3)

- [security improvement] CVE-2026-11525 no longer affects this package
- [security improvement] CVE-2026-12151 no longer affects this package
- [security improvement] CVE-2026-15157 no longer affects this package
- [security improvement] CVE-2026-16728 no longer affects this package
- [security improvement] CVE-2026-9679 no longer affects this package
- [security improvement] CVE-2026-6733 no longer affects this package
- [security improvement] CVE-2026-1525 no longer affects this package
- [security improvement] CVE-2026-16729 no longer affects this package
- [security improvement] CVE-2026-22036 no longer affects this package
- [security improvement] CVE-2026-1526 no longer affects this package
- [security improvement] CVE-2026-1527 no longer affects this package
- [security improvement] CVE-2026-2229 no longer affects this package
- [security improvement] Known CVEs: fail → pass

### 2026-09-28 (score 80, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-09-26 (score 79, −3)

- [functional] Stability: pass → 0.80

### 2026-09-25 (score 82, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-09-23 (score 81, +1)

No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-21 (score 80, +1)

No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-19 (score 79, +1)

No change was recorded against any check on this day. Stability & Change Management went from 77 to 80. That category is still filling its 30-day observation window: 23 days of observed history at the previous scan, 24 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (41)

### `start_my_day` (~96 tokens)

Start my day

Standup briefing for this repository: leftover Dispatch jobs, teammates that just finished (what changed or why they failed), 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.

### `init` (~83 tokens)

Set up Dispatch workers

One-time Cursor sign-in so Prism can run local job workers. Opens the Cursor login page in the browser. Speak only the tool message to the user — never mention API keys, mcp.json, host role, or connector counts. If Cursor shows “Authenticating prism…” with Skip, that is host tool-approval: tell the user to click Skip, then retry init.

### `start_job` (~272 tokens)

Start a Dispatch job

Create a Dispatch job from a ticket or title plus a PRD. Starts a local Cursor teammate in its own worktree (host node_modules linked; no shell; no second Prism MCP) and returns immediately. Speak only the tool message: use the job title and canonical id (ticket like AI-971 or slug like audit-issues), never job-<hex>, worktree paths, or API keys. Tell the user to say where are we for live status and the result when it finishes. Default cap is one job at a time. Do not use this for a repo-wide audit or health scan — call repository_health instead. If sign-in is needed, a Cursor login page opens in the browser. If Cursor shows “Authenticating prism…” with Skip, tell the user to click Skip and retry.

Input parameters:

- `branch` (string): Preferred branch when creating a worktree
- `confirmOverlap` (boolean): Set true only after the user confirms a second agent on a shared dirty worktree
- `jobId` (string): Canonical job id; inferred from a ticket or title slug when omitted
- `playbook` (string): Job playbook id, default ticket
- `prd` (string): Product brief / acceptance criteria
- `title` (string, required): Ticket id and/or short job title

### `list_jobs` (~87 tokens)

List Dispatch jobs

Where are we: every Dispatch job with title, canonical id, live activity, and a result or error when a teammate finishes. Speak only the tool message — titles, what they are doing, and what changed, not worktree paths or job-<hex> ids. Call when the user asks where we are, what's running, how a job is going, or whether a teammate finished.

### `job_control` (~107 tokens)

Control a Dispatch job

Pause, resume, cancel, or add context to a running Dispatch job. Speak only the tool message, using the job title and canonical id. jobId may be a ticket, a slug like audit-issues, or the title.

Input parameters:

- `action` (string, required): pause, resume, cancel, or attach_context
- `context` (string): Extra brief text for attach_context or resume
- `jobId` (string, required): Canonical job id (ticket or slug) or the job title

### `remember` (~148 tokens)

Remember for next jobs

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.

Input parameters:

- `action` (string): add (default), list, or forget
- `confirm` (boolean): Required when the text looks like a code-changing rule
- `id` (string): Memory id to forget
- `jobId` (string): Required when scope is job
- `scope` (string): Memory scope, default repo
- `text` (string): Memory text for add, or search text for forget

### `integrations` (~224 tokens)

Connect Dispatch drivers

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. Google’s “hasn’t verified this app” warning is expected until Prism Auth finishes Calendar scope verification — tell the user to click Advanced, then continue. 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).

Input parameters:

- `action` (string): catalog/status, setup, start/connect, or disconnect
- `driver` (string): Driver to connect or disconnect. Canonical ids: github, linear, jira, slack, notion, google-calendar. Phrases like “google calendar” work.

### `configure` (~188 tokens)

Configure Dispatch

Read or update gitignored Dispatch settings: section order, standup template, Slack tracked channel ids, mention window and caps, max parallel jobs (default 1), 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.

Input parameters:

- `action` (string): get (default), set, or export
- `hints` (boolean)
- `includeMemories` (boolean): When exporting, include opted-in user memories
- `maxJobs` (integer)
- `mentionLimit` (integer)
- `mentionWindowHours` (integer)
- `sectionsOff` (array)
- `slackTrackChannelIds` (array)
- `standupTemplate` (string)
- `ticketHost` (string)
- `trackedMessageLimit` (integer)

### `dispatch_doctor` (~48 tokens)

Dispatch doctor

Check whether Dispatch can run local teammates. Speak only the tool message — never mention API keys, mcp.json, host role, or connector counts. If sign-in is missing, call init.

### `repository_dna` (~58 tokens)

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.

### `repository_health` (~95 tokens)

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.

### `repository_map` (~101 tokens)

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.

Input parameters:

- `layers` (array): Optional overlay layer ids to include.
- `zoom` (string): Detail level. Defaults to 'package'.

### `repository_overview` (~119 tokens)

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'.

Input parameters:

- `activityDays` (integer): Commit-activity window in days (default 7).
- `zoom` (string): Map zoom for graph-derived fields. Defaults to feature; echoed on the response.

### `list_packages` (~79 tokens)

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.

Input parameters:

- `limit` (integer): Maximum items to return (default 50, max 500). The response reports totalCount and truncated so you can tell whether you saw everything.

### `stack_profile` (~70 tokens)

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.

Input parameters:

- `packageId` (string): Scope to one package. Omit for the whole workspace.

### `landmarks` (~71 tokens)

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.

Input parameters:

- `limit` (integer): Maximum items to return (default 50, max 500). The response reports totalCount and truncated so you can tell whether you saw everything.

### `explain_area` (~82 tokens)

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.

Input parameters:

- `path` (string, required): Workspace-relative path to a file or directory.

### `workspace_status` (~64 tokens)

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.

### `capabilities` (~60 tokens)

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.

### `dependency_graph` (~195 tokens)

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.

Input parameters:

- `limit` (integer): Maximum items to return (default 50, max 500). The response reports totalCount and truncated so you can tell whether you saw everything.
- `packageAggregation` (boolean): Aggregate file nodes into package nodes. Much smaller output on a monorepo; prefer it unless you need file-level detail.
- `resolveAliases` (boolean): Resolve tsconfig paths and package imports (default true).
- `summaryOnly` (boolean): When true, return counts plus top-degree nodes only (no full edge list). Prefer this for orientation.

### `dependency_cycles` (~109 tokens)

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.

Input parameters:

- `limit` (integer): Maximum items to return (default 50, max 500). The response reports totalCount and truncated so you can tell whether you saw everything.
- `packageAggregation` (boolean): Aggregate file nodes into package nodes. Much smaller output on a monorepo; prefer it unless you need file-level detail.

### `knowledge_graph` (~118 tokens)

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.

Input parameters:

- `limit` (integer): Maximum items to return (default 50, max 500). The response reports totalCount and truncated so you can tell whether you saw everything.
- `path` (string): Workspace-relative file to scope the graph to.

### `feature_graph` (~127 tokens)

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.

Input parameters:

- `limit` (integer): Maximum items to return (default 50, max 500). The response reports totalCount and truncated so you can tell whether you saw everything.
- `summaryOnly` (boolean): When true, return counts plus top-degree nodes only (no full edge list). Prefer this for orientation.

### `list_features` (~76 tokens)

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.

Input parameters:

- `limit` (integer): Maximum items to return (default 50, max 500). The response reports totalCount and truncated so you can tell whether you saw everything.

### `find_symbol` (~124 tokens)

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.

Input parameters:

- `kind` (string): Symbol kind filter, e.g. 'function', 'class'.
- `limit` (integer): Maximum items to return (default 50, max 500). The response reports totalCount and truncated so you can tell whether you saw everything.
- `name` (string, required): Exact symbol name to search for.
- `path` (string): Workspace-relative file to restrict the search to.

### `search_symbols` (~141 tokens)

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.

Input parameters:

- `kind` (string): Symbol kind filter, e.g. 'function', 'class'.
- `limit` (integer): Maximum hits to return (default 50, hard max 50).
- `path` (string): Workspace-relative file to restrict the search to.
- `pattern` (string, required): Substring to match (case-insensitive), or RegExp source when regex is true.
- `regex` (boolean): Treat pattern as a JavaScript RegExp source. Default false (substring).

### `find_references` (~121 tokens)

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.

Input parameters:

- `limit` (integer): Maximum items to return (default 50, max 500). The response reports totalCount and truncated so you can tell whether you saw everything.
- `name` (string, required): Symbol name.
- `path` (string): Workspace-relative file declaring the symbol.
- `start` (integer): Declaration start offset, to disambiguate further.

### `dependency_route` (~95 tokens)

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.

Input parameters:

- `from` (object, required): Starting point.
- `maxAlternatives` (integer): How many distinct routes to return.
- `maxHops` (integer): Maximum route length.
- `to` (object, required): Destination.

### `blast_radius` (~232 tokens)

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).

Input parameters:

- `id` (string, required): Workspace-relative file path, or symbol name as returned by find_symbol.
- `intent` (string): Emphasis. 'delete' weighs orphaned code more heavily. Default 'edit'.
- `kind` (string, required): Whether `id` names a file or a symbol.
- `limit` (integer): Maximum items to return (default 50, max 500). The response reports totalCount and truncated so you can tell whether you saw everything.
- `path` (string): File declaring the symbol, when kind is 'symbol'.

### `safe_delete` (~112 tokens)

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.

Input parameters:

- `id` (string, required): Workspace-relative file path, or symbol name as returned by find_symbol.
- `kind` (string, required): Whether `id` names a file or a symbol.
- `path` (string): File declaring the symbol, when kind is 'symbol'.

### `rename_impact` (~115 tokens)

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.

Input parameters:

- `id` (string, required): Workspace-relative file path, or symbol name as returned by find_symbol.
- `kind` (string, required): Whether `id` names a file or a symbol.
- `newName` (string): Proposed new name, to sharpen the hints.
- `path` (string): File declaring the symbol, when kind is 'symbol'.

### `test_impact` (~139 tokens)

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).

Input parameters:

- `id` (string, required): Workspace-relative file path, or symbol name as returned by find_symbol.
- `kind` (string, required): Whether `id` names a file or a symbol.
- `limit` (integer): Maximum items to return (default 50, max 500). The response reports totalCount and truncated so you can tell whether you saw everything.
- `path` (string): File declaring the symbol, when kind is 'symbol'.

### `breaking_change_hints` (~124 tokens)

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.

Input parameters:

- `id` (string, required): Workspace-relative file path, or symbol name as returned by find_symbol.
- `kind` (string, required): Whether `id` names a file or a symbol.
- `path` (string): File declaring the symbol, when kind is 'symbol'.

### `changed_paths` (~102 tokens)

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.

Input parameters:

- `base` (string): Optional git base ref (e.g. origin/main). Omit for the working tree (staged, unstaged, and untracked).

### `review_changes` (~127 tokens)

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.

Input parameters:

- `base` (string): Git base ref for auto-discover, or a display label when paths are provided explicitly.
- `paths` (array): Workspace-relative paths that changed. Omit to auto-discover from git (working tree, or base when set).

### `engineering_health` (~59 tokens)

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.

### `health_history` (~73 tokens)

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.

Input parameters:

- `maxPoints` (integer): Maximum history points to return, most recent first.

### `explore_code` (~167 tokens)

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.

Input parameters:

- `kind` (string, required): What the target is.
- `limit` (integer): Maximum items to return (default 50, max 500). The response reports totalCount and truncated so you can tell whether you saw everything.
- `name` (string): Symbol name. Required when kind is 'symbol'.
- `path` (string): Workspace-relative path. Required when kind is 'file'.
- `start` (integer): Declaration start offset, to disambiguate a symbol.

### `backend_report` (~80 tokens)

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.

Input parameters:

- `packageId` (string): Scope to one package in a monorepo. Omit for the whole workspace.

### `testing_report` (~43 tokens)

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.

### `security_report` (~50 tokens)

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.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/shailesh200-prism/repo-prism-mcp-server#diagnostics

## Score history

- 2026-10-01: 84
- 2026-09-30: 83
- 2026-09-29: 80
- 2026-09-28: 80
- 2026-09-27: 79
- 2026-09-26: 79
- 2026-09-25: 82
- 2026-09-24: 81
- 2026-09-23: 81
- 2026-09-22: 80
- 2026-09-21: 80
- 2026-09-20: 79
- 2026-09-19: 79
- 2026-09-18: 78
- 2026-09-17: 78
- 2026-09-16: 77
- 2026-09-15: 77
- 2026-09-14: 76
- 2026-09-13: 76
- 2026-09-12: 76
- 2026-09-11: 75
- 2026-09-10: 75
- 2026-09-09: 74
- 2026-09-08: 74
- 2026-09-07: 73
- 2026-09-06: 73
- 2026-09-05: 72
- 2026-09-04: 72
- 2026-09-03: 72
- 2026-09-02: 68

## Common questions

### What is the Prism MCP server?

Prism is an MCP server listed in the public MCP registry as io.github.Shailesh200/prism. Local-first repo intelligence for agents: DNA, health, blast radius, and Dispatch jobs. This page covers its npm package (@repo-prism/mcp-server).

### Is the Prism MCP server safe to use?

Prism scores 84 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 1 October 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Prism MCP server expose?

Prism exposes 41 tools: start_my_day, init, start_job, list_jobs, job_control, and 36 more. Their descriptions and schemas cost roughly 4,581 tokens of context every time the server is loaded.

### Is the Prism MCP server still maintained?

Prism is still listed as active in the MCP registry. We last reached this channel on 1 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the Prism MCP server under?

Prism declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/@repo-prism/mcp-server
- Socket report: https://socket.dev/npm/package/@repo-prism/mcp-server
- Repository: https://github.com/Shailesh200/prism
- Website: https://www.prismhq.in/
- Changelog RSS feed: https://verifymcp.io/servers/shailesh200-prism/repo-prism-mcp-server.xml
- Changelog JSON feed: https://verifymcp.io/servers/shailesh200-prism/repo-prism-mcp-server.json
- HTML version of this page: https://verifymcp.io/servers/shailesh200-prism/repo-prism-mcp-server
