Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.pathmodeio/mcp-server

NPM · @PATHMODE/MCP-SERVER

Deterministic intent preflight before your agent builds: six gates, keyless, no model call.

0 this week 81 Trust /100

Last scanned (22 hours ago)

Scores higher than 69% of npm servers

Category Developer Tools

Trust breakdown (7 categories)

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. How we score → Why this is hard to score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 38 of 102 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability60
  • 63% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Partial
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 3171 tokens (~243/item across 13 items; 10 tools + 3 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage98
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 95% of tool parameters carry a description.Partial
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 10 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 12 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 23 Oct 26 0
    • CVE-2026-97058 no longer affects this package ▲ security
    • Known CVEs: partial → pass ▲ security
  • 21 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 20 Oct 26 −15
    • Malware scan: pass → unverified ▼ security
    • Security disclosure: fail → unverified ▼ functional
    • Package version: 1.43.2 → 1.43.3 functional
  • 18 Oct 26 0
    • Stability: pass → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Schema quality: 63 → unverified ▼ functional
    • Schema quality: excellent → good functional
    • Package version: 1.43.0 → 1.43.2 functional
  • 16 Oct 26 0
    • Stability: 0.97 → pass security
  • 15 Oct 26 +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.

  • 14 Oct 26 +42
    • Injection markers: unverified → pass ▲ security
    • Tool coverage: unverified → 100 ▲ functional
    • MCP protocol: unverified → pass ▲ functional
    • Schema quality: unverified → 63 ▲ functional
    • Stability: unverified → 0.93 ▲ functional
    • Schema quality: good → excellent functional
  • 13 Oct 26 0
    • Security disclosure: unverified → fail ▼ functional
    • Package version: 1.42.0 → 1.43.0 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 4 Nov 2026 · Analysed npm/@pathmode/mcp-server@1.43.3

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Dependencies 102 packages
Packages resolved 102
Stale 38
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 10 exposed · ~2,767 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
answer_product_choice ~569

Record a person's answer to one open product choice in the local intent.md, or take an answer back. Local mode only. Call it once per choice the person has explicitly answered, with their own words for THAT choice in answer, parents before the choices that depend on them. One message may answer several choices; each still gets its own call and its own quoted words. A blanket "go with the recommendations" is not an answer to any choice: ask about each one, recommendation first, and never offer to accept them all at once. Set humanApproved only after the person has answered the choice you are recording. The answer is written the way a workspace review writes one (the accepted claims enter the spec, a decision is logged), marked answered locally (unverified), and bound to the choice text: editing the choice afterwards reopens it. It is the local record of a conversation, not verified approval, and it does not authorize anything for a team. A choice whose kind is question has no recommendation: ask it as written, then use change with the person’s answer and the claims it adds. Do not invent explanation fields. Actions: use (accept the recommendation), change (a different answer: pass alternative), exclude (leave the behavior out, with a reason), defer (leave it open), reopen (take a recorded answer back, removing what it added). change is also how a flagged outcome claim is corrected, since a saved choice cannot be edited: keep the person's answer as alternative.answer and give the measurable outcome in alternative.claims. You translate the answer into an observable claim without changing its meaning or inventing thresholds; never ask the person to supply measurable wording. If behavior is still missing, ask a concrete product question. After recording, rerun check_intent_readiness.

NameTypeReqDescription
actionstringyesuse: accept the recommendation. change: record the different answer in alternative. exclude: do not build this behavior. defer: leave it open. reopen: take back a recorded answer.
alternativeobject–change only.
answerstring–The person's own words for this choice, quoted. Required for use, change and exclude.
choiceIdstringyesThe product choice id, as it appears in intent.md productChoices.
humanApprovedboolean–Set ONLY after the person has explicitly answered this choice. Required for use, change and exclude. Recorded as an answer this environment cannot verify.
pathstring–Path to the intent file. Defaults to the one check_intent_readiness reads: intent.md at the root, else the single intent/**/intent.md.
reasonstring–Why, in the person's terms. Required for exclude and for changing a model proposal; optional for a question with no recommendation.

No output schema declared.

No examples provided.

check_intent_readiness ~480

Run the deterministic preflight on an intent spec before handing it to an implementation agent. Six calibrated checks — title, objective, outcomes, constraints, edge cases, verification — computed by pure functions: no model call, no network, the same spec always gets the same verdict. Pass a spec inline to check before saving, pass intentId to check a specific saved intent, pass repoRoot to check the intent.md of the repository you are working in, or pass nothing to resolve the repo-bound intent.md from MCP workspace roots or the launch directory. The repo-bound intent.md is the one at the repository root or, when there is none, the single intent.md in an intent/ folder (intent/intent.md or intent/<feature>/intent.md), where Anthropic's AI-native SDLC playbook keeps it. Pass path to choose among several, or to check a file with another name. When the repository has no intent.md, or cannot be identified, it refuses rather than grading an unrelated intent; pass repoRoot to name the repository, or intentId to check a specific saved intent. A failing verdict names the exact blockers; repair the fields and re-run. This is the gate that runs at preflight.pathmode.io.

NameTypeReqDescription
intentIdstring–Check a specific saved intent by id. Ignored when spec is passed.
pathstring–The intent file to check, when the repository keeps several in intent/ or names it something other than intent.md, e.g. intent/checkout/intent.md. Relative to repoRoot when that is passed, otherwise…
repoRootstring–Absolute path of the repository you are working in; Pathmode checks its intent.md, at the root or in its intent/ folder. Pass it when a no-argument call is refused because your MCP client declares no…
specobject–Check this spec directly (before saving). When omitted, resolve the repo-bound intent.md from MCP roots or cwd. A repository with no intent.md is refused, not answered with the workspace current inte…

No output schema declared.

No examples provided.

confirm_intent_dimension ~431

Resolve an "unconfirmed" readiness dimension, in a local intent.md or in a connected workspace. Use this when check_intent_readiness reports that it READ your objective or outcomes but could not confirm them: the gate matches a fixed English and Finnish vocabulary and misses valid phrasing, including other languages. confirm: state who is affected and what goes wrong for them, in your own words, and the dimension passes. waive: mark the dimension as not applicable to this change (a pure refactor has no product outcome). A waiver is a HUMAN decision, so set humanApproved only after the user has explicitly agreed. Waivers are local-mode only: a workspace will not accept one over an API key, which authenticates as a machine. The confirmation is bound to the exact text it was made against and dies automatically if that text is edited. You cannot confirm a dimension the gate read nothing for; write the field first, save, then confirm.

NameTypeReqDescription
actionstringyesconfirm: vouch that the text names what the gate could not find. waive: this dimension does not apply to this change.
actorstring–confirm + objective: who is affected, in your words.
dimensionstringyesOnly these two are confirmable. Title and verification are never waivable.
humanApprovedboolean–waive only. Set ONLY after the user has explicitly approved the waiver. Recorded as a human decision that this environment cannot verify.
intentIdstring–Cloud mode: confirm on a specific saved intent. Defaults to the current intent.
observablestring–confirm + outcomes: how you would see it.
outcomestring–confirm + outcomes: the observable change.
pathstring–Local mode only: path to the intent file. Defaults to the one check_intent_readiness reads: intent.md at the root, else the single intent/**/intent.md.
problemstring–confirm + objective: what goes wrong for them today.
reasonstring–waive: why this dimension does not apply.

No output schema declared.

No examples provided.

get_current_intent ~243

Get the currently active intent, preferring approved intents with real objective/outcome content over empty stubs. With a workspace connected it chooses across the whole workspace, not by repository, so do not use it to find the intent for the repository you are working in: read intent.md or call check_intent_readiness with no arguments, and when the repository has none, ask which intent the user means. Returns the full IntentSpec plus an evidenceSummary (how many evidence items it cites by ID, across all trust tiers; tier counts come with include_evidence=true). Evidence is referenced by ID; pass include_evidence=true to inline the evidence content grouped by trust tier (backing, unreviewed, assumption) with per-tier counts, or call get_agent_prompt for the full evidence-backed execution prompt.

NameTypeReqDescription
include_evidenceboolean–Inline the actual evidence items (truncated) this intent cites, grouped by trust tier with an evidenceTiers count. Default false — the default response carries only a fetch-free evidenceSummary to ke…
statusstring–Filter by status: draft, validated, approved, shipped, verified

No output schema declared.

No examples provided.

get_intent ~62

Get a single intent by ID with full details including objective, outcomes, constraints, edge cases, and relations. Evidence is referenced by ID; call get_agent_prompt for the full evidence-backed execution prompt.

NameTypeReqDescription
intentIdstringyesThe intent ID to fetch

No output schema declared.

No examples provided.

intent_export ~179

Export an intent spec as .cursorrules, a CLAUDE.md or AGENTS.md section, a Claude Managed Agents Outcomes rubric, or an OpenSpec change folder. Use agents-md for Codex, Cursor, and other AGENTS.md-aware agents. Use openspec to hand the intent to an OpenSpec workflow: it writes proposal.md, a spec delta, and the verification contract in tasks.md, placed where the preflight reader finds them, and never writes into an existing change.

NameTypeReqDescription
formatstringyesExport format
pathstring–Output file path relative to the project root. Must stay inside the project (absolute paths and ".." are rejected). Defaults to .cursorrules, CLAUDE.md, AGENTS.md, or openspec/changes/<change-id>
specobjectyes–

No output schema declared.

No examples provided.

intent_import ~242

Adopt an existing OpenSpec change as the Pathmode intent record. Reads the change folder exactly as the preflight does (proposal.md, spec deltas, design non-goals, verification in tasks.md) and saves it as intent.md — with a workspace key, also as a workspace intent. The change folder is NEVER modified, and field text travels verbatim, so never retype fields from the change yourself. After importing, resolve any unconfirmed dimensions with confirm_intent_dimension.

NameTypeReqDescription
intentPathstring–Where the intent file is written. Defaults to the repository intent file (intent.md at the root, else the single intent/**/intent.md), and import never replaces one that exists.
overwriteboolean–Replace the intent file even when it already holds a DIFFERENT intent. Default false — refused instead.
pathstring–OpenSpec change directory, e.g. openspec/changes/add-export. When omitted the repo is scanned: exactly one active change imports directly; several returns the list to pick from.
productIdstring–Cloud mode: the product this intent belongs to, when the workspace asks for one.

No output schema declared.

No examples provided.

intent_save ~453

Save an intent spec to the repository intent.md — the default choice when you are working inside a repository. With no path it writes the file check_intent_readiness reads: intent.md at the project root, or the single intent.md in an intent/ folder when the root has none. With a Pathmode API key set it ALSO creates or updates the intent in the workspace and records the sync in the file, so the file is the projection of the record rather than a second copy of it. Re-saving the same intent bumps its version and preserves its status; it never silently replaces a different intent. Never block saving a failing spec: it saves, and the reply names its blockers; do not start implementation from it. Use create_intent instead when there is no repository to write into.

NameTypeReqDescription
baseRepoBodyRevisionstring–Exact base revision carried by the change request. Requires changeRequestId.
changeRequestIdstring–Structured PM request this save deliberately applies. Requires baseRepoBodyRevision. A productChoices or decisions request is applied by the server from the request itself; save it with no other body…
localDraftboolean–Save an unconnected local draft, even with an API key. Use before repository adoption. Cannot detach an already connected file or apply a change request. With overwrite: true and a spec without an id…
overwriteboolean–Replace the file even when it already holds a DIFFERENT intent. Default false — the save is refused instead, so an unrelated spec is never clobbered.
pathstring–File path, relative to the project root or absolute inside it; ".." out of the project is rejected. Defaults to the intent file check_intent_readiness reads: intent.md at the root, else the single in…
specobjectyes–

No output schema declared.

No examples provided.

list_intents ~51

List all intents in the workspace. Returns an array of IntentSpecs with their status, objectives, and metadata.

NameTypeReqDescription
statusstring–Filter by status: draft, validated, approved, shipped, verified

No output schema declared.

No examples provided.

search_intents ~57

Search intents by keyword. Searches across user goals, objectives, outcomes, and constraints.

NameTypeReqDescription
querystringyesSearch keyword or phrase
statusstring–Filter by status: draft, validated, approved, shipped, verified

No output schema declared.

No examples provided.

Install

How do I install the io.github.pathmodeio/mcp-server server?

io.github.pathmodeio/mcp-server runs locally as an npm package, launched with npx -y @pathmode/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.

npm · @pathmode/mcp-server

# add to Claude Code
claude mcp add pathmodeio-mcp-server -- npx -y @pathmode/mcp-server
Common questions

What is the io.github.pathmodeio/mcp-server server?

io.github.pathmodeio/mcp-server is listed in the public MCP registry as io.github.pathmodeio/mcp-server. Deterministic intent preflight before your agent builds: six gates, keyless, no model call. This page covers its npm package (@pathmode/mcp-server).

Is the io.github.pathmodeio/mcp-server server safe to use?

io.github.pathmodeio/mcp-server scores 81 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 4 November 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 io.github.pathmodeio/mcp-server server expose?

io.github.pathmodeio/mcp-server exposes 10 tools: get_current_intent, list_intents, get_intent, search_intents, check_intent_readiness, and 5 more. Their descriptions and schemas cost roughly 2,767 tokens of context every time the server is loaded.

Is the io.github.pathmodeio/mcp-server server still maintained?

io.github.pathmodeio/mcp-server is still listed as active in the MCP registry. We last reached this channel on 4 November 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 io.github.pathmodeio/mcp-server server under?

io.github.pathmodeio/mcp-server declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.