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.

Pathrule

REMOTE · MCP.PATHRULE.IO · SCANNED SEP 20

Path-scoped team memories, rules and skills for Claude Code, Cursor, Codex and other MCP clients.

Available components

0 this week 81 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security66
Transport & Reachability100
Schema Quality & AI Usability70
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 5270 tokens (~164/item across 32 items; 32 tools + 0 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 Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 4 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 32 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
Install

How do I install the Pathrule MCP server?

Pathrule is a hosted endpoint at https://mcp.pathrule.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · mcp.pathrule.io

# add to Claude Code
claude mcp add --transport http io-pathrule-pathrule-remote-mcp 'https://mcp.pathrule.io/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "io-pathrule-pathrule-remote-mcp": {
      "url": "https://mcp.pathrule.io/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "io-pathrule-pathrule-remote-mcp": {
      "type": "http",
      "url": "https://mcp.pathrule.io/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.io-pathrule-pathrule-remote-mcp]
url = "https://mcp.pathrule.io/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-pathrule-pathrule-remote-mcp": {
      "type": "remote",
      "url": "https://mcp.pathrule.io/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add io-pathrule-pathrule-remote-mcp --url 'https://mcp.pathrule.io/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  io-pathrule-pathrule-remote-mcp:
    url: "https://mcp.pathrule.io/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "io-pathrule-pathrule-remote-mcp": {
      "Transport": "http",
      "Url": "https://mcp.pathrule.io/mcp"
    }
  }
}
# add to Vellum
assistant mcp add io-pathrule-pathrule-remote-mcp -t streamable-http -u 'https://mcp.pathrule.io/mcp'
// mcp.json
{
  "mcpServers": {
    "io-pathrule-pathrule-remote-mcp": {
      "type": "http",
      "url": "https://mcp.pathrule.io/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

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.

  • 5 Sept 26 0
    • Tool coverage: 79% → 100% functional
    • Tool “pathrule_create_workspace” now declares an output schema functional
    • Tool “pathrule_delete_memory” now declares an output schema functional
    • Tool “pathrule_delete_rule” now declares an output schema functional
    • Tool “pathrule_delete_skill” now declares an output schema functional
    • Tool “pathrule_get_context” now declares an output schema functional
    • Tool “pathrule_get_local_runtime_upgrade” now declares an output schema functional
    • Tool “pathrule_get_node” now declares an output schema functional
    • Tool “pathrule_get_refresh_brief” now declares an output schema functional
    • Tool “pathrule_get_tree” now declares an output schema functional
    • Tool “pathrule_goto” now declares an output schema functional
    • Tool “pathrule_import_pattern” now declares an output schema functional
    • Tool “pathrule_list_memories” now declares an output schema functional
    • Tool “pathrule_list_organizations” now declares an output schema functional
    • Tool “pathrule_list_pending_refreshes” now declares an output schema functional
    • Tool “pathrule_list_snapshots” now declares an output schema functional
    • Tool “pathrule_list_workspaces” now declares an output schema functional
    • Tool “pathrule_log_activity” now declares an output schema functional
    • Tool “pathrule_ping” now declares an output schema functional
    • Tool “pathrule_read_memory” now declares an output schema functional
    • Tool “pathrule_read_rule” now declares an output schema functional
    • Tool “pathrule_read_skill” now declares an output schema functional
    • Tool “pathrule_read_snapshot” now declares an output schema functional
    • Tool “pathrule_remove_pattern” now declares an output schema functional
    • Tool “pathrule_resolve_refresh” now declares an output schema functional
    • Tool “pathrule_setup” now declares an output schema functional
    • Tool “pathrule_take_snapshot” now declares an output schema functional
    • Tool “pathrule_update_memory” now declares an output schema functional
    • Tool “pathrule_update_rule” now declares an output schema functional
    • Tool “pathrule_update_skill” now declares an output schema functional
    • Tool “pathrule_write_memory” now declares an output schema functional
    • Tool “pathrule_write_rule” now declares an output schema functional
    • Tool “pathrule_write_skill” now declares an output schema functional
    • First check of Tool coverage: 100 functional
    • Server version: 0.1.0 → 0.4.0 functional
    • “pathrule_goto” reworded the description of “subtree_limit” cosmetic
    • “pathrule_list_snapshots” reworded the description of “workspace_id” cosmetic
    • “pathrule_log_activity” reworded the description of “action” cosmetic
    • “pathrule_log_activity” reworded the description of “domain” cosmetic
    • “pathrule_log_activity” reworded the description of “files_touched” cosmetic
    • “pathrule_log_activity” reworded the description of “node_path” cosmetic
    • “pathrule_log_activity” reworded the description of “scope” cosmetic
    • “pathrule_log_activity” reworded the description of “subjects” cosmetic
    • “pathrule_log_activity” reworded the description of “task_summary” cosmetic
    • “pathrule_log_activity” reworded the description of “verbose” cosmetic
    • “pathrule_read_snapshot” reworded the description of “include_file_tree” cosmetic
    • “pathrule_read_snapshot” reworded the description of “include_sampled_contents” cosmetic
    • “pathrule_read_snapshot” reworded the description of “snapshot_id” cosmetic
    • “pathrule_read_snapshot” reworded the description of “workspace_id” cosmetic
    • “pathrule_take_snapshot” reworded the description of “branch” cosmetic
    • “pathrule_take_snapshot” reworded the description of “file_count” cosmetic
    • “pathrule_take_snapshot” reworded the description of “git_head” cosmetic
    • “pathrule_take_snapshot” reworded the description of “git_remote_url” cosmetic
    • “pathrule_take_snapshot” reworded the description of “project_name” cosmetic
    • “pathrule_take_snapshot” reworded the description of “top_level_dirs” cosmetic
    • “pathrule_take_snapshot” reworded the description of “total_size_bytes” cosmetic
    • “pathrule_update_rule” reworded the description of “patch” cosmetic
    • “pathrule_write_memory” reworded the description of “allow_duplicate” cosmetic
    • “pathrule_write_memory” reworded the description of “content” cosmetic
    • “pathrule_write_memory” reworded the description of “source” cosmetic
    • “pathrule_write_memory” reworded the description of “title” cosmetic
  • 26 Aug 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 25 Aug 26 +1
    • Stability: 0.97 → pass security
  • 23 Aug 26 +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.

  • 12 Aug 26 0
    • “pathrule_log_activity” made “files_touched” optional cosmetic

    1 cosmetic change on this day. Switch on “Show cosmetic changes” to see it.

  • 11 Aug 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 31 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → 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 20 Sept 2026 · Probed https://mcp.pathrule.io/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=mcp.pathrule.io CN=YR1,O=Let's Encrypt,C=US 19 Sept 2026 18 Dec 2026 RSA 2048 SHA256-RSA 5466e153146fe1b61d85a329b06a7f54ec0
SANs: mcp.pathrule.io
CN=YR1,O=Let's Encrypt,C=US (CA) CN=Root YR,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 RSA 2048 SHA256-RSA a20253f15f2691c05dc1ce13b9bcca4e
CN=Root YR,O=ISRG,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 RSA 4096 SHA256-RSA f24b6d17f9d9ad7cb1c9fea78782699f

Background: What to check on a remote MCP endpoint →

DNSSEC secure

Validation of mcp.pathrule.io. Secure

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
io. present 57355 8 Verified
pathrule.io. present 2371 13 Verified
mcp.pathrule.io. Verified address RRset verified with the apex keys
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=63072000

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.pathrule.io/mcp Verified 200
http (plaintext) http://mcp.pathrule.io/mcp HTTPS enforced 308 https://mcp.pathrule.io/mcp
MCP tools · 32 exposed · ~5,270 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
pathrule_create_workspace ~207

Create a new Pathrule workspace inside an organization. Cloud-only: writes the workspace row through the user's JWT (RLS enforces organization membership). Does NOT attach the workspace to a local folder, does NOT install any AI client config, and does NOT render CLAUDE.md/AGENTS.md or editor companion files — those steps require Pathrule Studio or CLI. After creation, call pathrule_setup with the returned workspace_id to fetch the bootstrap brief.

NameTypeReqDescription
active_agent_targetsarrayAI clients this workspace will be used from. Affects Desktop/CLI companion file rendering when those surfaces attach. Defaults to ['claude-code'].
git_remote_urlOptional git remote URL (HTTPS or SSH form). Stored for reference and surface matching; never used to access the user's machine.
namestringyesHuman-readable workspace name (e.g. the project / repo display name).
organization_idstringyesOrganization UUID from pathrule_list_organizations.
NameTypeReqDescription
dataobjectThe created workspace row.
errorobjectPresent only when ok is false.
human_messagestringOne-line summary of the result, safe to relay to the user verbatim.
local_runtimeobjectPresent on tools that carry the local-runtime upgrade reminder.
next_stepThe call to make next, as { tool, arguments }.
okbooleanyestrue when the call succeeded. false when it did not, in which case `error` carries the reason and the success fields are absent.

No examples provided.

pathrule_delete_memory ~111

Soft-delete a memory by default. Pass hard:true to permanently delete (requires workspace_admin). Cloud-only.

NameTypeReqDescription
expected_version_idstringOptional optimistic-concurrency token from the existing record. Pass it when available to avoid overwriting a newer edit.
hardbooleanFalse or omitted performs a soft delete. True permanently deletes and requires admin rights.
memory_idstringyesMemory UUID to delete.
workspace_idstringyesWorkspace UUID from pathrule_list_workspaces.
NameTypeReqDescription
dataDeleted memory: id, plus the title it had before deletion.
errorobjectPresent only when ok is false.
human_messagestringOne-line summary of the result, safe to relay to the user verbatim.
okbooleanyestrue when the call succeeded. false when it did not, in which case `error` carries the reason and the success fields are absent.

No examples provided.

pathrule_delete_rule ~106

Soft-delete a rule by default. hard:true requires workspace_admin. Cloud-only.

NameTypeReqDescription
expected_version_idstringOptional optimistic-concurrency token from the existing record. Pass it when available to avoid overwriting a newer edit.
hardbooleanFalse or omitted performs a soft delete. True permanently deletes and requires admin rights.
rule_idstringyesRule UUID to delete.
workspace_idstringyesWorkspace UUID from pathrule_list_workspaces.
NameTypeReqDescription
dataDeleted rule: id, plus the name it had before deletion.
errorobjectPresent only when ok is false.
human_messagestringOne-line summary of the result, safe to relay to the user verbatim.
okbooleanyestrue when the call succeeded. false when it did not, in which case `error` carries the reason and the success fields are absent.

No examples provided.

pathrule_delete_skill ~106

Soft-delete a skill by default. hard:true requires workspace_admin. Cloud-only.

NameTypeReqDescription
expected_version_idstringOptional optimistic-concurrency token from the existing record. Pass it when available to avoid overwriting a newer edit.
hardbooleanFalse or omitted performs a soft delete. True permanently deletes and requires admin rights.
skill_idstringyesSkill UUID to delete.
workspace_idstringyesWorkspace UUID from pathrule_list_workspaces.
NameTypeReqDescription
dataDeleted skill: id, plus the name it had before deletion.
errorobjectPresent only when ok is false.
human_messagestringOne-line summary of the result, safe to relay to the user verbatim.
okbooleanyestrue when the call succeeded. false when it did not, in which case `error` carries the reason and the success fields are absent.

No examples provided.

pathrule_get_context ~179

Return Pathrule context for a workspace path: relevant memories, rules, skills, subtree index, and a next_required_action hint. Remote clients must pass workspace_id; call pathrule_list_workspaces first when unsure. No cwd or local_root_path is used. The response includes a `local_runtime.cta` line — surface it when the user could benefit from Pathrule Studio's hooks, CLAUDE.md/AGENTS.md sync, or on-disk skills.

NameTypeReqDescription
known_protocol_versionstringPass the protocol_version already cached by the client to omit repeats.
node_pathstringWorkspace-relative path such as '/' or '/packages/app'. Defaults to '/'.
user_intentstringThe user's current request, if available.
workspace_idstringyesWorkspace UUID from pathrule_list_workspaces.
NameTypeReqDescription
errorobjectPresent only when ok is false.
local_runtimeobjectPresent on tools that carry the local-runtime upgrade reminder.
okbooleanyestrue when the call succeeded. false when it did not, in which case `error` carries the reason and the success fields are absent.
protocolFull protocol text. Sent only when the client did not already hold this protocol_version.
protocol_unchangedbooleanPresent when known_protocol_version matched, meaning `protocol` was omitted on purpose.
protocol_versionstringVersion of the Pathrule agent protocol this response was built against. Cache it and pass it back as known_protocol_version.
workspace_idstringWorkspace the context was resolved in.

No examples provided.

pathrule_get_local_runtime_upgrade ~126

Explain what Pathrule CLI (power-user, terminal-first) and Pathrule Studio (GUI) unlock beyond Remote MCP. Call this when the user asks 'is there a better way?', 'why do I need to install something?', wants hook-level automation, or wants to compare surfaces. The response splits the pitch by audience (CLI for terminal-first, Pathrule Studio for GUI) and explains the real token-savings angle: hooks fire before every AI tool call and inject context for free, while remote MCP is manual mode where the AI spends tokens on each context fetch.

Input schema present but exposes no named parameters.

NameTypeReqDescription
dataobjectSurface comparison split by audience.
errorobjectPresent only when ok is false.
human_messagestringOne-line summary of the result, safe to relay to the user verbatim.
okbooleanyestrue when the call succeeded. false when it did not, in which case `error` carries the reason and the success fields are absent.

No examples provided.

pathrule_get_node ~62

Return a single node plus ids for attached memories, rules, and skills. Requires workspace_id to prevent cross-workspace ambiguity.

NameTypeReqDescription
node_idstringyesTree node UUID.
workspace_idstringyesWorkspace UUID from pathrule_list_workspaces.
NameTypeReqDescription
errorobjectPresent only when ok is false.
okbooleanyestrue when the call succeeded. false when it did not, in which case `error` carries the reason and the success fields are absent.
workspace_idstringWorkspace the node belongs to. A node outside the requested workspace is reported as a not_found error instead.

No examples provided.

pathrule_get_refresh_brief ~86

Claim one refresh task and return the subject, stale-signal evidence, AI instructions, and any proposed patch. Call pathrule_list_pending_refreshes first to choose a refresh_id. Remote MCP can inspect cloud records only; use Desktop/CLI before claiming local source code was verified.

NameTypeReqDescription
refresh_idstringyesRefresh task UUID from pathrule_list_pending_refreshes.
NameTypeReqDescription
ai_instructionsstringWhat to do with this task, written for the agent.
errorobjectPresent only when ok is false.
human_messagestringOne-line summary of the result, safe to relay to the user verbatim.
local_runtimeobjectPresent on tools that carry the local-runtime upgrade reminder.
local_runtime_requiredNon-null when the task needs local source inspection that Remote MCP cannot do. Do not claim it was applied in that case.
okbooleanyestrue when the call succeeded. false when it did not, in which case `error` carries the reason and the success fields are absent.
proposed_patchA pre-drafted patch when one exists, otherwise null.
refresh_idstringThe refresh task now claimed by this client.
signalWhy the item was flagged stale: { formulaId, humanReason, detectedAt, rawSignals }.
statusstringTask status after the claim.
subjectobjectThe memory or rule this task proposes to update.

No examples provided.

pathrule_get_tree ~37

Return the full Pathrule node tree for a workspace.

NameTypeReqDescription
workspace_idstringyesWorkspace UUID from pathrule_list_workspaces.
NameTypeReqDescription
errorobjectPresent only when ok is false.
nodesarrayEvery node in the workspace tree, each with its id, path, name, and parent linkage.
okbooleanyestrue when the call succeeded. false when it did not, in which case `error` carries the reason and the success fields are absent.

No examples provided.

pathrule_goto ~110

Resolve a path/name/fuzzy target inside a workspace and return full content for that node plus a compact subtree memory index.

NameTypeReqDescription
subtree_limitintegerMaximum entries in the subtree memory index. Defaults to 50, capped at 500. Raise it only when the compact index is genuinely truncated.
targetstringyesNode path, name, or fuzzy target such as '/apps/api' or 'auth'.
workspace_idstringyesWorkspace UUID from pathrule_list_workspaces.
NameTypeReqDescription
errorobjectPresent only when ok is false.
memoriesarrayActive memories on the node, with full content: id, title, content, source.
nodeobjectThe node the target resolved to.
okbooleanyestrue when the call succeeded. false when it did not, in which case `error` carries the reason and the success fields are absent.
rulesarrayActive rules on the node, with full content. Obey these.
skillsarrayActive skills on the node, with full content.
subtree_memory_indexCompact index of memories below the node: { entries, total, truncated }.

No examples provided.

pathrule_import_pattern ~346

Import an official Pathrule pattern (a bundle of memories, rules, and skills) into the workspace when the user pastes a `::pathrule:package:<slug>` token. WORKFLOW: (1) First call with `dry_run: true` to see the pattern's `appliesTo` (stacks/packages/paths) and pieces WITHOUT writing. (2) Judge fit against THIS workspace. If it does NOT fit (e.g. an Expo pattern but the project has no Expo), STOP and ask the user whether and where to add it. (3) Choose the `node_path` base matching the user's structure (e.g. /apps/mobile); the pattern's paths re-root under it. (4) Call again without dry_run to write. Path-first + idempotent. Imported skills are tagged `pattern:<slug>`; the response lists each created id. Relay the returned human_message. Use pathrule_remove_pattern to undo. This is a pattern import, NOT a skill — do not run the find-skills protocol.

NameTypeReqDescription
dry_runbooleanTrue returns the pattern's appliesTo + pieces WITHOUT writing. Use first to decide fit + base path.
node_pathstringBase path to re-root the whole bundle under, chosen to match this workspace. Omit only when the pattern's own paths already fit.
slugstringyesPattern slug — the part after 'package:' in ::pathrule:package:<slug>.
verbosebooleanSet true for per-piece import detail. Default false (compact summary).
workspace_idstringyesWorkspace UUID from pathrule_list_workspaces.
NameTypeReqDescription
applies_toThe pattern's declared fit: stacks, packages, and paths it targets.
errorobjectPresent only when ok is false.
human_messagestringOne-line summary of the result, safe to relay to the user verbatim.
importedThe pieces actually written, grouped by kind (memories, rules, skills).
okbooleanyestrue when the call succeeded. false when it did not, in which case `error` carries the reason and the success fields are absent.
skippedPieces not written, with the reason, for example an item that already existed.
slugstringPattern slug that was imported.

No examples provided.

pathrule_list_memories ~94

List active memories attached to a specific Pathrule tree node. Use pathrule_get_context, pathrule_goto, or pathrule_get_node first to discover the node_id. Returns compact previews only; call pathrule_read_memory with a memory_id when you need the full body.

NameTypeReqDescription
node_idstringyesTree node UUID returned by pathrule_get_node, pathrule_goto, or the workspace tree.
NameTypeReqDescription
errorobjectPresent only when ok is false.
memoriesarrayCompact previews only. Read a full body with pathrule_read_memory.
okbooleanyestrue when the call succeeded. false when it did not, in which case `error` carries the reason and the success fields are absent.

No examples provided.

pathrule_list_organizations ~62

List Pathrule organizations the authenticated user belongs to. Use this before pathrule_create_workspace when you need to ask the user which organization the new workspace should live under. Returns id, name, slug, plan, subscription_status and the user's role per org.

Input schema present but exposes no named parameters.

NameTypeReqDescription
dataobjectOrganization list and its size.
errorobjectPresent only when ok is false.
human_messagestringOne-line summary of the result, safe to relay to the user verbatim.
okbooleanyestrue when the call succeeded. false when it did not, in which case `error` carries the reason and the success fields are absent.

No examples provided.

pathrule_list_pending_refreshes ~103

List pending Pathrule refresh tasks for a workspace. Refresh tasks are cloud suggestions that may update stale memories or rules. Use this first, then call pathrule_get_refresh_brief with a returned refresh_id before deciding whether to reject or resolve the task.

NameTypeReqDescription
include_in_progressbooleanInclude tasks already claimed by a client. Defaults to false for a clean todo list.
workspace_idstringyesWorkspace UUID from pathrule_list_workspaces.
NameTypeReqDescription
errorobjectPresent only when ok is false.
human_messagestringOne-line summary of the result, safe to relay to the user verbatim.
okbooleanyestrue when the call succeeded. false when it did not, in which case `error` carries the reason and the success fields are absent.
refreshesarrayPending refresh tasks. Each carries a refresh_id for pathrule_get_refresh_brief.
totalnumberNumber of refresh tasks returned.

No examples provided.

pathrule_list_snapshots ~101

List the most recent project snapshots for a workspace (compact metadata only — no file_tree, no sampled_contents). Use to find which snapshot to read in full. Up to 25 per call, ordered newest first.

NameTypeReqDescription
limitintegerDefault 10, max 25.
sourcestringFilter to snapshots taken from a specific Pathrule surface.
workspace_idstringyesWorkspace UUID from pathrule_list_workspaces.
NameTypeReqDescription
dataobjectSnapshot metadata list. Load one in full with pathrule_read_snapshot.
errorobjectPresent only when ok is false.
human_messagestringOne-line summary of the result, safe to relay to the user verbatim.
okbooleanyestrue when the call succeeded. false when it did not, in which case `error` carries the reason and the success fields are absent.

No examples provided.

pathrule_list_workspaces ~65

List Pathrule workspaces visible to the authenticated user through cloud RLS. Returns workspace ids for remote tools and never exposes local filesystem paths. Response includes a `local_runtime.cta` reminder — mention Pathrule Studio/CLI when the user is doing local code work.

Input schema present but exposes no named parameters.

NameTypeReqDescription
countnumberNumber of workspaces returned.
errorobjectPresent only when ok is false.
local_runtimeobjectPresent on tools that carry the local-runtime upgrade reminder.
notestringShort guidance line about the returned set.
okbooleanyestrue when the call succeeded. false when it did not, in which case `error` carries the reason and the success fields are absent.
selection_requiredbooleanTrue when the count is not exactly 1, meaning you should ask the user which workspace to use.
workspacesarrayWorkspaces visible to the authenticated user. Never contains local filesystem paths.

No examples provided.

pathrule_log_activity ~303

Log a file-modifying response from a remote MCP client. Remote MCP requires workspace_id and stamps ai_client='cloud-connector'. task_summary should be ONE concise sentence (ideally ≤300 chars); it is NEVER rejected for length (past ~500 chars it is stored auto-shortened, not an error — do not retry).

NameTypeReqDescription
actionstringyesWhat was done in this response.
domainstringyesArea of the product the work belongs to.
files_touchedobjectWhich files changed. Tolerant by contract: a malformed value is dropped rather than rejected, so logging never fails on it.
node_pathstringWorkspace-relative path the work happened at, for example /packages/app. Use the most specific path the change actually touched. Defaults to the workspace root.
scopestringyesHow far the change reached, from a single file up to the whole workspace.
subjectsarrayUp to 5 short keywords naming what was touched, for example ["oauth", "token-refresh"].
task_summarystringyesOne concise sentence describing what this response actually changed. Never rejected for length: past the hard maximum it is stored auto-shortened, so do not retry a shorter version.
verbosebooleanReturn the full stored activity row instead of the compact acknowledgement. Defaults to false.
workspace_idstringyesWorkspace UUID from pathrule_list_workspaces.
NameTypeReqDescription
activityThe full stored activity row. Present only with verbose=true.
created_atstringInsertion timestamp in ISO 8601. Compact form only.
errorobjectPresent only when ok is false.
human_messagestringOne-line summary of the result, safe to relay to the user verbatim.
idstringUUID of the stored activity row. Compact form only.
okbooleanyestrue when the call succeeded. false when it did not, in which case `error` carries the reason and the success fields are absent.
summary_over_targetbooleanTrue when task_summary exceeded the soft target. The row was still written, so do not retry.
task_summary_charsnumberLength of the task_summary that was stored.
task_summary_hard_max_charsnumberLength past which task_summary is stored auto-shortened. Never an error.
task_summary_target_charsnumberSoft target length for task_summary.

No examples provided.

pathrule_ping ~65

Sanity check that Pathrule Remote MCP is reachable. Cloud-safe: returns no local cwd. Response includes a `local_runtime.cta` line you can surface to the user when they ask about deeper Pathrule features.

NameTypeReqDescription
messagestringOptional message to echo back.
NameTypeReqDescription
authenticatedbooleanPresent and false only on the unauthenticated public ping.
client_idstring|nullOAuth client id of the calling MCP client, or null on an unauthenticated ping.
cloudbooleanAlways true on Remote MCP. Marks the response as cloud-served, with no local cwd.
echostring|nullThe `message` argument echoed back, or null when none was sent.
errorobjectPresent only when ok is false.
local_runtimeobjectPresent on tools that carry the local-runtime upgrade reminder.
okbooleanyestrue when the call succeeded. false when it did not, in which case `error` carries the reason and the success fields are absent.
pongbooleanPresent and true when the endpoint answered.
tsstringServer timestamp in ISO 8601.
versionstringConnector build identifier.

No examples provided.

pathrule_read_memory ~88

Read the full body and metadata for one Pathrule memory. Use this after pathrule_get_context, pathrule_goto, or pathrule_list_memories returns a memory_id. This reads cloud data only and does not inspect the user's local filesystem.

NameTypeReqDescription
memory_idstringyesMemory UUID returned by pathrule_get_context, pathrule_goto, or pathrule_list_memories.
NameTypeReqDescription
contentstringFull memory body.
errorobjectPresent only when ok is false.
idstringMemory UUID.
node_pathstring|nullWorkspace-relative path of the node this memory hangs on.
okbooleanyestrue when the call succeeded. false when it did not, in which case `error` carries the reason and the success fields are absent.
sourcestringHow the memory was authored, for example claude or manual.
titlestringMemory title.
updated_atstringLast update timestamp in ISO 8601.
version_idstringOptimistic-concurrency token. Pass it as expected_version_id to pathrule_update_memory.

No examples provided.

pathrule_read_rule ~98

Read the full body and metadata for one Pathrule rule. Use this after pathrule_get_context, pathrule_goto, or pathrule_get_node returns a rule_id. Rules are instructions the AI should obey for a project path; this tool only reads the cloud rule record and does not modify anything.

NameTypeReqDescription
rule_idstringyesRule UUID returned by pathrule_get_context, pathrule_goto, or pathrule_get_node.
NameTypeReqDescription
contentstringFull rule body: the constraint to obey.
errorobjectPresent only when ok is false.
idstringRule UUID.
namestringRule name.
node_pathstring|nullWorkspace-relative path the rule applies to.
okbooleanyestrue when the call succeeded. false when it did not, in which case `error` carries the reason and the success fields are absent.
prioritystringOne of high, medium, or low.
scope_typestringOne of project, folder, or file_type.
updated_atstringLast update timestamp in ISO 8601.
version_idstringOptimistic-concurrency token. Pass it as expected_version_id to pathrule_update_rule.

No examples provided.

pathrule_read_skill ~93

Read the approved snapshot for one Pathrule skill. Use this after pathrule_get_context, pathrule_goto, or pathrule_get_node returns a skill_id. Returns the cloud SKILL.md content for the AI to follow; it does not install or materialize files locally.

NameTypeReqDescription
skill_idstringyesSkill UUID returned by pathrule_get_context, pathrule_goto, or pathrule_get_node.
NameTypeReqDescription
contentstringFull SKILL.md body, including its frontmatter.
errorobjectPresent only when ok is false.
idstringSkill UUID.
namestringSkill name, as invoked with ::name.
node_pathstring|nullWorkspace-relative path the skill is attached to.
okbooleanyestrue when the call succeeded. false when it did not, in which case `error` carries the reason and the success fields are absent.
sourcestringOne of manual, template, or github_ref.
updated_atstringLast update timestamp in ISO 8601.
version_idstringOptimistic-concurrency token. Pass it as expected_version_id to pathrule_update_skill.

No examples provided.

pathrule_read_snapshot ~141

Load a single project snapshot in full or partial form. Defaults include file_tree and sampled_contents — pass include_file_tree=false / include_sampled_contents=false to keep the response compact when you only need metadata.

NameTypeReqDescription
include_file_treebooleanInclude the flat file/directory list. Defaults to true. Pass false to keep the response small.
include_sampled_contentsbooleanInclude the truncated bodies of the sampled files. Defaults to true. Pass false when you only need metadata.
snapshot_idstringyesSnapshot UUID from pathrule_list_snapshots.
workspace_idstringyesWorkspace UUID from pathrule_list_workspaces.
NameTypeReqDescription
dataThe snapshot row. Which columns are present depends on include_file_tree and include_sampled_contents.
errorobjectPresent only when ok is false.
human_messagestringOne-line summary of the result, safe to relay to the user verbatim.
okbooleanyestrue when the call succeeded. false when it did not, in which case `error` carries the reason and the success fields are absent.

No examples provided.

pathrule_remove_pattern ~182

Remove a previously-imported Pathrule pattern bundle in one call — the reverse of pathrule_import_pattern. The pattern definition is the manifest, so this finds and deletes the memories/rules/skills whose titles match the pattern's pieces. Pass the SAME `node_path` base used at import (omit if the pattern's own paths were used). Pieces not found are reported, not errors (idempotent). Relay the returned human_message.

NameTypeReqDescription
node_pathstringThe base path the bundle was imported under. Must match the import to locate the pieces.
slugstringyesPattern slug — the part after 'package:' in ::pathrule:package:<slug>.
verbosebooleanSet true for per-piece detail. Default false (compact summary).
workspace_idstringyesWorkspace UUID from pathrule_list_workspaces.
NameTypeReqDescription
errorobjectPresent only when ok is false.
human_messagestringOne-line summary of the result, safe to relay to the user verbatim.
not_foundPieces the bundle declares that were not present under the given node_path.
okbooleanyestrue when the call succeeded. false when it did not, in which case `error` carries the reason and the success fields are absent.
removedThe pieces actually deleted, grouped by kind.
slugstringPattern slug that was removed.

No examples provided.

pathrule_resolve_refresh ~177

Close a Pathrule refresh task after reviewing its brief. Normal remote flow: call pathrule_list_pending_refreshes, then pathrule_get_refresh_brief, then use this tool with status='rejected' when the signal is stale or not actionable. Remote MCP may refuse status='applied' because it cannot verify local source files; use Pathrule Studio/CLI for applied resolutions that require local verification.

NameTypeReqDescription
notestringShort reason for the resolution, especially when rejecting a stale or unsafe refresh.
refresh_idstringyesRefresh task UUID returned by pathrule_list_pending_refreshes or pathrule_get_refresh_brief.
statusstringyesUse 'rejected' from Remote MCP when the signal is stale or cannot be safely applied. 'applied' may be refused unless local verification is available.
NameTypeReqDescription
errorobjectPresent only when ok is false.
human_messagestringOne-line summary of the result, safe to relay to the user verbatim.
okbooleanyestrue when the call succeeded. false when it did not, in which case `error` carries the reason and the success fields are absent.
refresh_idstringThe refresh task that was resolved.
resolved_atstringResolution timestamp in ISO 8601.
statusstringFinal status recorded for the task.

No examples provided.

pathrule_setup ~215

Fetch the active Pathrule bootstrap brief and execute it. Call this ONCE when the user asks to set up / bootstrap / initialize Pathrule for a project (e.g. 'Set up Pathrule for this project', 'Bootstrap Pathrule'). The response `body` is a prompt you must follow immediately — it tells you how to scan the project, propose memories/rules/skills, and write the approved items via pathrule_write_memory / _rule / _skill. Do NOT call this mid-task, for already-populated workspaces, or when the user just wants context — use pathrule_get_context for routine context lookups. If no workspace exists yet, call pathrule_list_organizations + pathrule_create_workspace first.

NameTypeReqDescription
localestringBootstrap brief language code. Defaults to 'en'. Pass 'tr' for Turkish users.
workspace_idstringTarget workspace. Omit only if the user has not picked one yet — you should then call pathrule_create_workspace before continuing the bootstrap.
NameTypeReqDescription
dataobjectThe bootstrap brief.
errorobjectPresent only when ok is false.
human_messagestringOne-line summary of the result, safe to relay to the user verbatim.
local_runtimeobjectPresent on tools that carry the local-runtime upgrade reminder.
okbooleanyestrue when the call succeeded. false when it did not, in which case `error` carries the reason and the success fields are absent.

No examples provided.

pathrule_take_snapshot ~546

Record a point-in-time inventory of the user's project under a workspace. Remote MCP cannot see the filesystem, so YOU (the AI) collect this inventory with your own Read/Glob/Grep tools before calling this. Persist it so future setup, bootstrap, drift detection, and onboarding flows have structured evidence to reason over. Required: workspace_id. Strongly recommended: project_name, file_count, file_tree (cap at ~5000 entries — summarise deeper paths), file_extensions_summary, top_level_dirs, sampled_contents for README, package.json / pyproject.toml / Cargo.toml, CLAUDE.md, AGENTS.md, main config files (truncate each to ~4KB). Optional: git_head / branch / git_log_summary if you can read them, ai_notes for free-form observations.

NameTypeReqDescription
ai_notesstringYour own observations about the project structure, conventions, and obvious workspace seeds.
branchChecked-out branch name at snapshot time.
file_countintegerTotal number of files inventoried, before any file_tree cap is applied.
file_extensions_summaryobjecte.g. {"ts": 412, "tsx": 158, "json": 33}
file_treearrayFlat list of files/directories. Cap at 5000.
git_headCommit SHA that HEAD pointed at when the snapshot was taken.
git_log_summarystringFree-form summary of recent git activity if available (e.g. 'last 50 commits hot paths: src/foo.ts, src/bar.ts; bug fixes in api/').
git_remote_urlOrigin remote URL of the repository, or null when it has none.
metadataobjectFree-form additional structured data.
project_namestringDisplay name of the project, usually the repository or folder name.
root_pathstringAbsolute root path if the AI is running on the user's machine; otherwise omit.
sampled_contentsarrayTruncated contents of up to 50 important files (README, manifest files, CLAUDE.md/AGENTS.md, primary configs). Each content field capped at ~4096 bytes.
sourcestringWhich Pathrule surface produced this snapshot. Defaults to 'mcp-remote'.
top_level_dirsarrayImmediate child directories of the project root with their sizes, so future flows can see the shape of the tree without the full file list.
total_size_bytesintegerCombined size in bytes of the inventoried files.
workspace_idstringyesWorkspace UUID this snapshot belongs to.
NameTypeReqDescription
dataobjectWhat was stored, including the counts after server-side trimming.
errorobjectPresent only when ok is false.
human_messagestringOne-line summary of the result, safe to relay to the user verbatim.
okbooleanyestrue when the call succeeded. false when it did not, in which case `error` carries the reason and the success fields are absent.

No examples provided.

pathrule_update_memory ~216

Update a memory's content or title, optionally moving it. Uses optimistic concurrency via expected_version_id. Cloud-only.

NameTypeReqDescription
allow_duplicatebooleanSet true only when intentionally allowing another memory with the same title.
contentstringyesReplacement memory body in clear project-language prose.
expected_version_idstringOptional optimistic-concurrency token from the existing record. Pass it when available to avoid overwriting a newer edit.
memory_idstringyesMemory UUID returned by pathrule_get_context, pathrule_goto, or pathrule_read_memory.
move_to_pathstringOptional workspace-relative destination path such as /packages/app. Missing nodes are created when allowed by the backend.
related_pathsOptional list of workspace-relative paths this memory is also relevant to. null = unchanged. Pass [] to clear all manual links. Max 32 entries.
titlestringOptional replacement memory title.
workspace_idstringyesWorkspace UUID from pathrule_list_workspaces.
NameTypeReqDescription
dataUpdated memory: id, version_id, and the title it now carries.
errorobjectPresent only when ok is false.
human_messagestringOne-line summary of the result, safe to relay to the user verbatim.
okbooleanyestrue when the call succeeded. false when it did not, in which case `error` carries the reason and the success fields are absent.

No examples provided.

pathrule_update_rule ~178

Update a rule's fields and/or path. Optimistic concurrency via expected_version_id. Cloud-only.

NameTypeReqDescription
allow_duplicatebooleanSet true only when intentionally allowing another rule with the same name.
expected_version_idstringOptional optimistic-concurrency token from the existing record. Pass it when available to avoid overwriting a newer edit.
move_to_pathstringOptional workspace-relative destination path such as /packages/app. Missing nodes are created when allowed by the backend.
patchobjectyesFields to change. Omitted fields are left as they are, so send only what actually differs.
rule_idstringyesRule UUID returned by pathrule_get_context, pathrule_goto, or pathrule_read_rule.
workspace_idstringyesWorkspace UUID from pathrule_list_workspaces.
NameTypeReqDescription
dataUpdated rule: id, version_id, and the name it now carries.
errorobjectPresent only when ok is false.
human_messagestringOne-line summary of the result, safe to relay to the user verbatim.
okbooleanyestrue when the call succeeded. false when it did not, in which case `error` carries the reason and the success fields are absent.

No examples provided.

pathrule_update_skill ~345

Partially update an existing Pathrule skill record. Use pathrule_update_skill only when you already have a skill_id and want to change metadata, SKILL.md content, source/github_url, tags, or move the skill to another workspace path; use pathrule_write_skill to create a new skill, pathrule_read_skill to inspect the current body first, and pathrule_delete_skill to remove one. Requires an authenticated connector token with pathrule:write and an active workspace subscription. Side effects: writes the cloud skill record, may replace fields present in patch, may move the skill when move_to_path is set, and may fail on version conflict; it never installs files into .codex/skills, .claude/skills, or editor folders.

NameTypeReqDescription
expected_version_idstringOptional version UUID from the current skill. Pass it after pathrule_read_skill to prevent overwriting someone else's newer edit; a stale value makes the update fail instead of silently replacing dat…
move_to_pathstringOptional workspace-relative path to move the skill attachment, such as / or /packages/app. When provided, Pathrule moves the skill to that node and may create missing nodes; omit it to keep the curre…
patchobjectyesPartial update object. Include only fields that should change; omitted fields keep their current values. At least one field should be present. Replacing content overwrites the stored approved SKILL.m…
skill_idstringyesSkill UUID returned by pathrule_get_context, pathrule_goto, or pathrule_read_skill.
workspace_idstringyesWorkspace UUID from pathrule_list_workspaces.
NameTypeReqDescription
dataUpdated skill: id, version_id, and the name it now carries.
errorobjectPresent only when ok is false.
human_messagestringOne-line summary of the result, safe to relay to the user verbatim.
okbooleanyestrue when the call succeeded. false when it did not, in which case `error` carries the reason and the success fields are absent.

No examples provided.

pathrule_write_memory ~255

Create a new memory at a workspace path. Missing nodes auto-create. Blocks duplicate titles unless allow_duplicate is set. Cloud-only: never writes to the user's local filesystem. For automatic CLAUDE.md/AGENTS.md sync and on-disk hook injection alongside the write, install Pathrule Studio or CLI.

NameTypeReqDescription
allow_duplicatebooleanSet true only when a second memory with the same title on this node is intentional. Leave unset so near-duplicates are rejected.
contentstringyesThe memory body: the decision, convention, or bug pattern worth remembering, and why it matters.
node_pathstringyesWorkspace-relative path, e.g. /apps/api.
related_pathsOptional list of workspace-relative paths this memory is also relevant to. null = no links. Max 32 entries.
sourcestringWho authored the memory: claude when an agent wrote it, manual when the user dictated it. Defaults to claude.
titlestringyesShort specific title. It is the duplicate key for this node, so make it the thing being remembered, not a category.
workspace_idstringyesWorkspace UUID from pathrule_list_workspaces.
NameTypeReqDescription
dataCreated memory: id, title, node_id, node_path, version_id.
errorobjectPresent only when ok is false.
human_messagestringOne-line summary of the result, safe to relay to the user verbatim.
okbooleanyestrue when the call succeeded. false when it did not, in which case `error` carries the reason and the success fields are absent.
warningsarrayNon-fatal notices, for example a near-duplicate title that was allowed through.

No examples provided.

pathrule_write_rule ~214

Create a new rule at a workspace path. Missing nodes auto-create. Use scope_type/priority honestly: high only when a violation causes a real bug or regression. Cloud-only — Pathrule Studio/CLI also renders the rule into the user's CLAUDE.md/AGENTS.md and editor companion files automatically.

NameTypeReqDescription
allow_duplicatebooleanSet true only when intentionally allowing another rule with the same name.
contentstringyesRule body: the instruction agents must follow.
namestringyesShort human-readable rule name.
node_pathstringyesWorkspace-relative path where the rule applies, e.g. / or /packages/app.
prioritystringyesUse high only for rules whose violation causes bugs, security issues, or real regressions.
scope_typestringyesUse project for global rules, folder for path-specific rules, or file_type when the rule targets a class of files.
workspace_idstringyesWorkspace UUID from pathrule_list_workspaces.
NameTypeReqDescription
dataCreated rule: id, name, node_id, node_path, version_id.
errorobjectPresent only when ok is false.
human_messagestringOne-line summary of the result, safe to relay to the user verbatim.
okbooleanyestrue when the call succeeded. false when it did not, in which case `error` carries the reason and the success fields are absent.

No examples provided.

pathrule_write_skill ~253

Create a new skill at a workspace path. Content is the full SKILL.md body (frontmatter + markdown). For github_ref skills set source='github_ref' and github_url. Cloud-only: does NOT materialize the skill into .codex/skills, .claude/skills, .cursor/skills, etc. — Pathrule Studio or CLI is required for on-disk skill materialization.

NameTypeReqDescription
contentstringyesFull SKILL.md content including frontmatter and markdown.
descriptionstring|nullyesShort summary of when agents should use this skill. Use null only if unknown.
github_urlCanonical GitHub URL for github_ref skills; null or omit for manual/template skills.
namestringyesSkill name, usually kebab-case.
node_pathstringyesWorkspace-relative path where the skill should be offered, e.g. / or /packages/app.
sourcestringSkill source type. Use github_ref only when github_url points to the canonical skill source.
tagsarrayOptional discovery tags such as frontend, database, or release.
workspace_idstringyesWorkspace UUID from pathrule_list_workspaces.
NameTypeReqDescription
dataCreated skill: id, name, node_id, node_path, version_id.
errorobjectPresent only when ok is false.
human_messagestringOne-line summary of the result, safe to relay to the user verbatim.
okbooleanyestrue when the call succeeded. false when it did not, in which case `error` carries the reason and the success fields are absent.

No examples provided.

Common questions

What is the Pathrule MCP server?

Pathrule is an MCP server listed in the public MCP registry as io.pathrule/pathrule-remote-mcp. Path-scoped team memories, rules and skills for Claude Code, Cursor, Codex and other MCP clients. This page covers its hosted endpoint (https://mcp.pathrule.io/mcp).

Is the Pathrule MCP server safe to use?

Pathrule scores 81 out of 100 on VerifyMCP. 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 Pathrule MCP server expose?

Pathrule exposes 32 tools: pathrule_list_workspaces, pathrule_ping, pathrule_get_context, pathrule_goto, pathrule_get_tree, and 27 more. Their descriptions and schemas cost roughly 5,270 tokens of context every time the server is loaded.

Does the Pathrule MCP server require authentication?

No. We connected to Pathrule without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the Pathrule MCP server still maintained?

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