# Pathmark (npm · pathmark)

Local-first intent and provenance for Codex, Claude Code, Cursor, Gemini CLI, and MCP agents.

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

## Components

- npm · `pathmark`: 87/100 (this document), [markdown](https://verifymcp.io/servers/hacksurvivor-pathmark/pathmark.md), [page](https://verifymcp.io/servers/hacksurvivor-pathmark/pathmark)

## Channel facts

- Registry: `npm`
- Package: `pathmark`
- Version: `0.1.15`
- 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-09-20.

- **Supply Chain Security**: 98/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.
  - 31 of 96 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 100/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to hacksurvivor/pathmark).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 15 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 64/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 1657 tokens (~66/item across 25 items; 25 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 87/100
  - Stability observed for 26 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 73/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 19% 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 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "delete_memory" implies "delete" and declares no destructiveHint at all, which the MCP spec reads as destructive by default.
  - An AI judge read all 25 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 Pathmark MCP server?

Pathmark runs locally as an npm package, launched with npx -y pathmark. 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 hacksurvivor-pathmark -- npx -y pathmark
```

### Cursor

```json
{
  "mcpServers": {
    "hacksurvivor-pathmark": {
      "command": "npx",
      "args": [
        "-y",
        "pathmark"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "hacksurvivor-pathmark": {
      "command": "npx",
      "args": [
        "-y",
        "pathmark"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add hacksurvivor-pathmark -- npx -y pathmark
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "hacksurvivor-pathmark": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "pathmark"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add hacksurvivor-pathmark --command npx --arg -y --arg pathmark
```

### Hermes

```yaml
mcp_servers:
  hacksurvivor-pathmark:
    command: "npx"
    args: ["-y", "pathmark"]
```

### Netclaw

```json
{
  "McpServers": {
    "hacksurvivor-pathmark": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "pathmark"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add hacksurvivor-pathmark -t stdio -c npx -a -y pathmark
```

### Other

```json
{
  "mcpServers": {
    "hacksurvivor-pathmark": {
      "command": "npx",
      "args": [
        "-y",
        "pathmark"
      ]
    }
  }
}
```

## 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-09-19 (score 87, +1)

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

### 2026-09-17 (score 86, +1)

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

### 2026-09-14 (score 85, +1)

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

### 2026-09-12 (score 84, +1)

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

### 2026-09-10 (score 83, +1)

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

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

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

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

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

### 2026-09-05 (score 80, +26)

- [security improvement] Malware scan: unverified → pass
- [security improvement] Known CVEs: unverified → pass
- [functional improvement] Dependency health: unverified → 0.84

## MCP tools (25)

### `get_config` (~21 tokens)

Get Pathmark configuration

Show the local Pathmark Memory store location and enabled optional features.

### `remember` (~100 tokens)

Save raw evidence

Save raw searchable evidence. Durable intent should use the approval-gated conclusion workflow.

Input parameters:

- `expiresAt` (string): Optional ISO timestamp after which recall excludes this memory.
- `namespace` (string): Optional project, user, or client namespace.
- `source` (string): Optional source label, such as repo, thread, or tool name.
- `tags` (array): Optional lowercase-ish tags for later filtering.
- `text` (string, required): Memory text to save.

### `create_conclusion` (~90 tokens)

Create conclusion

Propose a durable higher-signal conclusion. Approval is required by default before it can be recalled.

Input parameters:

- `evidenceIds` (array): Raw memory IDs supporting this conclusion. Used for provenance and consolidation coverage.
- `expiresAt` (string)
- `namespace` (string)
- `source` (string)
- `tags` (array)
- `text` (string, required): Conclusion text to save.

### `search_memory` (~58 tokens)

Search memory

Search saved local memories and conclusions.

Input parameters:

- `kind` (string)
- `limit` (integer)
- `namespace` (string)
- `query` (string): Search query. Empty query returns recent records.
- `tags` (array)

### `get_context` (~61 tokens)

Get context

Return compact local memory context for a task or question.

Input parameters:

- `kind` (string)
- `limit` (integer)
- `namespace` (string)
- `query` (string): Task or question to retrieve context for.
- `tags` (array)

### `recall_memory` (~176 tokens)

Recall memory

Transparent recall for any MCP-capable harness. Use this at task start or before answering to show exactly which memories were used.

Input parameters:

- `ids` (array): Exact memory IDs from a prior Pathmark context block. Preserves the original visible-recall set.
- `includeRecords` (boolean): Include a second, untruncated full-record copy alongside usedMemories. Defaults to false: it duplicates data already in context/usedMemories and is unbounded in size. Set true only when full record b…
- `kind` (string)
- `limit` (integer)
- `namespace` (string)
- `query` (string): Task, repo, or question to retrieve memory for. Empty query returns recent records.
- `tags` (array): Optional tags to scope visible recall, such as the current workspace tag.

### `session_trace` (~76 tokens)

Session trace

Show a bounded chronological audit trail for one captured session: prompts, exact injected memory IDs, redacted tool inputs/results, and answers.

Input parameters:

- `includeOutputs` (boolean): Include redacted bounded tool output previews. Defaults to true.
- `limit` (integer)
- `sessionId` (string, required): Exact Codex or harness session ID.

### `rate_recall` (~67 tokens)

Rate recalled memories

Attach explicit relevance labels to one exact Pathmark recall so audit_memory can report measured precision.

Input parameters:

- `irrelevantIds` (array)
- `note` (string)
- `recallId` (string, required): The recallId returned by chat or ask_memory.
- `relevantIds` (array)

### `list_conclusions` (~35 tokens)

List conclusions

List saved durable conclusions.

Input parameters:

- `limit` (integer)
- `namespace` (string)
- `tags` (array)

### `list_pending_conclusions` (~56 tokens)

List pending conclusions

List bounded approval-gated conclusion proposals. Pending records are never returned by normal memory search.

Input parameters:

- `limit` (integer)
- `namespace` (string)
- `offset` (integer)
- `tags` (array)

### `approve_conclusion` (~73 tokens)

Approve conclusion

Approve one pending conclusion, optionally correcting its text or tags. The transition is atomic and auditable.

Input parameters:

- `decidedBy` (string)
- `id` (string, required)
- `namespace` (string)
- `note` (string)
- `tags` (array)
- `text` (string)

### `reject_conclusion` (~49 tokens)

Reject conclusion

Reject one pending conclusion while retaining it in the canonical audit trail and excluding it from recall.

Input parameters:

- `decidedBy` (string)
- `id` (string, required)
- `note` (string)

### `get_memory_snapshot` (~47 tokens)

Get approved memory snapshot

Generate a bounded USER/PROJECT/AGENT snapshot from approved canonical conclusions only.

Input parameters:

- `charLimit` (integer)
- `namespace` (string)
- `tags` (array)

### `delete_memory` (~25 tokens)

Delete memory

Soft-delete a saved memory or conclusion by id.

Input parameters:

- `id` (string, required)

### `update_memory` (~65 tokens)

Update memory

Correct an existing memory while preserving its prior versions in local history.

Input parameters:

- `expiresAt` (string|null)
- `id` (string, required)
- `namespace` (string)
- `source` (string)
- `tags` (array)
- `text` (string)

### `supersede_memory` (~72 tokens)

Supersede memory

Replace an outdated memory with a linked current record while preserving history.

Input parameters:

- `expiresAt` (string)
- `id` (string, required)
- `kind` (string)
- `namespace` (string)
- `source` (string)
- `tags` (array)
- `text` (string, required)

### `purge_memory` (~82 tokens)

Hard purge memory

Preview or permanently remove matching records from the canonical store. A backup is created before an applied purge.

Input parameters:

- `before` (string)
- `confirm` (boolean): False previews the purge; true applies it and creates a backup.
- `id` (string)
- `namespace` (string)
- `source` (string)
- `tags` (array)

### `consolidate_memory` (~108 tokens)

Consolidate raw evidence

Prepare a bounded unsynthesized evidence batch and, when server synthesis is configured, preview or stage evidence-backed conclusion proposals. Proposals are never auto-approved.

Input parameters:

- `apply` (boolean): Stage generated proposals as pending conclusions.
- `cursor` (string): Continue after the last record id from a prior bounded batch.
- `days` (integer)
- `evidenceLimit` (integer)
- `maxProposals` (integer)
- `namespace` (string)
- `tags` (array)

### `audit_memory` (~57 tokens)

Audit memory value

Measure capture-to-recall behavior, unused records, recall age, duplicate rate, stale raw hits, and available precision evidence without changing memory.

Input parameters:

- `days` (integer)
- `namespace` (string)
- `tags` (array)

### `doctor_memory` (~28 tokens)

Diagnose memory store

Report duplicate, deleted, expired, conclusion, invalid-record, and index health counts without changing data.

### `compact_memory` (~65 tokens)

Compact memory store

Preview or apply exact deduplication, expired-record removal, retention, and deleted-record purging. Applied runs create a backup.

Input parameters:

- `confirm` (boolean)
- `dedupe` (boolean)
- `dropDeleted` (boolean)
- `retentionDays` (integer)

### `backup_memory` (~29 tokens)

Back up memory store

Create a point-in-time copy of the canonical local JSONL store.

Input parameters:

- `destination` (string)

### `export_memory` (~78 tokens)

Export memory

Export a scoped, mergeable JSONL bundle for another Pathmark installation or trusted sync transport.

Input parameters:

- `destination` (string, required)
- `encrypted` (boolean): Encrypt the export with PATHMARK_EXPORT_KEY.
- `includeDeleted` (boolean)
- `kind` (string)
- `namespace` (string)
- `tags` (array)

### `ask_memory` (~70 tokens)

Ask memory

Ask approved conclusions first, then scoped or explicitly requested raw evidence. Returns an answer, exact provenance, and a recallId for feedback.

Input parameters:

- `kind` (string)
- `limit` (integer)
- `namespace` (string)
- `question` (string, required)
- `tags` (array)

### `chat` (~69 tokens)

Chat

Chat with Pathmark using approved conclusions first and only scoped or explicitly requested raw fallback. Returns an answer, provenance, and recallId.

Input parameters:

- `kind` (string)
- `limit` (integer)
- `namespace` (string)
- `question` (string, required)
- `tags` (array)

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/hacksurvivor-pathmark/pathmark#diagnostics

## Score history

- 2026-09-20: 87
- 2026-09-19: 87
- 2026-09-18: 86
- 2026-09-17: 86
- 2026-09-16: 85
- 2026-09-15: 85
- 2026-09-14: 85
- 2026-09-13: 84
- 2026-09-12: 84
- 2026-09-11: 83
- 2026-09-10: 83
- 2026-09-09: 82
- 2026-09-08: 82
- 2026-09-07: 81
- 2026-09-06: 81
- 2026-09-05: 80
- 2026-09-04: 54
- 2026-09-03: 79
- 2026-09-02: 79
- 2026-09-01: 78
- 2026-08-31: 78
- 2026-08-30: 78
- 2026-08-29: 77
- 2026-08-28: 77
- 2026-08-27: 76
- 2026-08-26: 65
- 2026-08-25: 75

## Common questions

### What is the Pathmark MCP server?

Pathmark is an MCP server listed in the public MCP registry as io.github.hacksurvivor/pathmark. Local-first intent and provenance for Codex, Claude Code, Cursor, Gemini CLI, and MCP agents. This page covers its npm package (pathmark).

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

Pathmark scores 87 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. 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 Pathmark MCP server expose?

Pathmark exposes 25 tools: get_config, remember, create_conclusion, search_memory, get_context, and 20 more. Their descriptions and schemas cost roughly 1,657 tokens of context every time the server is loaded.

### Is the Pathmark MCP server still maintained?

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

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

Pathmark 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/pathmark
- Socket report: https://socket.dev/npm/package/pathmark
- Repository: https://github.com/hacksurvivor/pathmark
- Changelog RSS feed: https://verifymcp.io/servers/hacksurvivor-pathmark/pathmark.xml
- Changelog JSON feed: https://verifymcp.io/servers/hacksurvivor-pathmark/pathmark.json
- HTML version of this page: https://verifymcp.io/servers/hacksurvivor-pathmark/pathmark
