# com.adrianczuczka/mason (npm · mason-context)

Context engineering MCP server — generates CLAUDE.md files via structured codebase analysis

- Trust score: 78/100 (medium)
- Change this week: +34
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `mason-context`: 78/100 (this document), [markdown](https://verifymcp.io/servers/com-adrianczuczka-mason/mason-context.md), [page](https://verifymcp.io/servers/com-adrianczuczka-mason/mason-context)

## Channel facts

- Registry: `npm`
- Package: `mason-context`
- Version: `0.6.0`
- 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-08-03.

- **Supply Chain Security**: 88/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (121 of 125), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (121 of 125), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 97/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to adrianczuczka/mason).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 11 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 66/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 3089 tokens (~171/item across 18 items; 18 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 99/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 98% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add com-adrianczuczka-mason -- npx -y mason-context
```

### Codex

```bash
codex mcp add com-adrianczuczka-mason -- npx -y mason-context
```

### opencode

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

### OpenClaw

```bash
openclaw mcp add com-adrianczuczka-mason --command npx --arg -y --arg mason-context
```

### Hermes

```yaml
mcp_servers:
  com-adrianczuczka-mason:
    command: "npx"
    args: ["-y", "mason-context"]
```

### Other

```json
{
  "mcpServers": {
    "com-adrianczuczka-mason": {
      "command": "npx",
      "args": [
        "-y",
        "mason-context"
      ]
    }
  }
}
```

## 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-08-03 (score 78, +4)

- [functional improvement] Stability: unverified → 0.27

### 2026-08-02 (score 74, +55)

- [security improvement] Known CVEs: unverified → partial
- [security improvement] Install scripts: unverified → pass
- [security improvement] Provenance: unverified → pass
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [security] The attested source repository moved: adrianczuczka/mason
- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] Schema quality: unverified → excellent
- [functional improvement] License: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional] Licence: MIT

### 2026-08-01 (score 19, +14)

- [functional improvement] Tool coverage: unverified → 100

### 2026-07-31 (score 5, −21)

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

### 2026-07-30 (score 26, −18)

- [security regression] Malware scan: pass → unverified

### 2026-07-27 (score 44)

First indexed and scored.

## MCP tools (18)

### `mason_init` (~94 tokens)

Start here. Checks if Mason is set up for this project. If not, returns a `playbook` of questions the assistant must walk the user through (concept map + optional Confluence sync). Once the walkthrough is done, call `mason_complete_init`. Idempotent: re-running on an already-initialized project just returns the current state.

Input parameters:

- `dir` (string, required): Absolute path to the project root directory

### `mason_complete_init` (~104 tokens)

Mark the project as initialized. Call this after walking the user through the playbook returned by `mason_init`. Writes `.mason/project.json` so future tool calls don't re-run the wizard. Pass `confluenceConfigured: true` if Phase 3 of the playbook ended with Confluence credentials saved.

Input parameters:

- `confluenceConfigured` (boolean): True if Confluence was successfully configured during init
- `dir` (string, required): Absolute path to the project root directory

### `mason_set_confluence` (~228 tokens)

Configure Confluence credentials. Two-step flow: (1) call without `spaceKey` to validate the credentials and receive a list of available spaces — relay them to the user. (2) call again with the same `baseUrl`/`email`/`apiToken` plus the chosen `spaceKey` to persist. Credentials are stored in `~/.mason/config.json`. Warn the user that the API token will be visible in chat history before they paste it.

Input parameters:

- `apiToken` (string, required): API token from id.atlassian.com/manage-profile/security/api-tokens
- `baseUrl` (string, required): Confluence base URL. Accepts `acme`, `acme.atlassian.net`, or `https://acme.atlassian.net` (normalized automatically).
- `email` (string, required): User's Atlassian account email
- `parentPageId` (string): Optional parent page ID under which Mason's index page is created
- `spaceKey` (string): Confluence space key. Omit on the first call to list available spaces.

### `full_analysis` (~85 tokens)

One-shot orientation for a project WITHOUT a concept map (get_snapshot returned exists:false). Returns git history stats, project structure with file counts, curated code sample previews (~60 lines each), and test-to-source mapping. On a mapped project, prefer get_snapshot — it is cheaper and answers feature/architecture questions directly.

Input parameters:

- `dir` (string, required): Absolute path to the project root directory

### `analyze_project` (~60 tokens)

Run git history analysis on a codebase. Returns commit convention patterns, stale directories, and frequently changed files. These are aggregate stats across hundreds of commits that would be expensive to compute manually.

Input parameters:

- `dir` (string, required): Absolute path to the project root directory

### `get_code_samples` (~91 tokens)

Get previews (first ~60 lines) of representative source files from the codebase. Includes entry points, config files, hot files (frequently changed), test examples, and one file per directory for breadth. Read files natively for full content.

Input parameters:

- `count` (number): Maximum number of files to sample (default: 15)
- `dir` (string, required): Absolute path to the project root directory

### `get_snapshot` (~167 tokens)

CALL THIS FIRST — before grep, glob, or reading files — for any question about what this codebase does, its features, architecture, data flows, or where something is implemented ('where is X handled?', 'how does Y work?', 'what implements Z?'). Returns the persistent feature-to-file concept map in one cheap, instant, LLM-free call, replacing 5-10 exploration round-trips. Example: 'home screen' → [HomeScreen.kt, HomeViewModel.kt, HomeModule.kt]. Then read only the mapped files. If the map has drifted it says so (with a diff) — trust the freshness signal. If exists:false, the project isn't set up; offer mason_init.

Input parameters:

- `dir` (string, required): Absolute path to the project root directory

### `get_context` (~226 tokens)

CALL THIS FIRST when given a task to implement, a bug to fix, a ticket, or a change request ('add X', 'fix Y', 'refactor Z'). One call returns everything needed to start: the matching features/flows with their files, related tests, blast radius for the key files (git co-change + references), and per-entry freshness — replacing a get_snapshot + get_impact + test-hunting sequence. Cheap, instant, LLM-free. Pass the task in natural language; optionally pass `files` (e.g. from a diff) to anchor the match. For open-ended architecture questions with no task, use get_snapshot instead.

Input parameters:

- `dir` (string, required): Absolute path to the project root directory
- `files` (array): Optional file paths already known to be involved (e.g. from a diff or stack trace). Entries containing them are boosted above pure text matches.
- `task` (string, required): The task, bug, or change request in natural language — e.g. 'add rate limiting to the API client' or a ticket description

### `generate_snapshot_batch` (~238 tokens)

Map step of the concept-map build. Returns one batch of source files (skeletons of every file in the batch plus a few deeper-read bodies for grounding), along with a system prompt instructing you to derive features and flows for ONLY this batch. Call repeatedly with the returned `nextOffset` until it is null, calling `save_partial_snapshot` between each call. Use product-natural feature names so partials merge cleanly in the reduce step.

Input parameters:

- `batchSize` (integer): Files per batch. Defaults to 50.
- `dir` (string, required): Absolute path to the project root directory
- `files` (array): Scope the batch walk to this explicit file list — e.g. the drift set from mason_check_drift (changedFiles + unmappedFiles). Pass the SAME list on every batch call of one refresh run. Triggers refresh…
- `offset` (integer): 0-indexed file offset to start the batch at. Omit on the first call; pass the `nextOffset` from the previous response for subsequent calls.

### `save_partial_snapshot` (~173 tokens)

Persist the partial concept map you derived for one batch. Call this once per batch, with the `batchId` from the `generate_snapshot_batch` response. Partials accumulate in `.mason/partial-snapshots/` and are merged in the reduce step.

Input parameters:

- `batchId` (string, required): The `batchId` returned by `generate_snapshot_batch`.
- `dir` (string, required): Absolute path to the project root directory
- `features` (object, required): Partial features for this batch only — files outside the batch will be added by other partials.
- `flows` (object, required): Partial flows whose entire chain is in this batch. Cross-batch flows are reconstructed in reduce.
- `offset` (integer, required): The `offset` returned by `generate_snapshot_batch`. Used to order partials in the reduce step.

### `reduce_snapshot` (~93 tokens)

Reduce step of the concept-map build. Returns every partial snapshot plus a system prompt asking you to merge them into one coherent project-wide map. Resolve platform variants into single product features, dedupe near-duplicates, and ensure no file is dropped. After producing the unified map, call `save_snapshot` to persist it (this also clears the partials).

Input parameters:

- `dir` (string, required): Absolute path to the project root directory

### `save_snapshot` (~170 tokens)

Save a concept-to-files map as a persistent project snapshot. Maps feature names and data flows to the files that implement them. Persists across conversations — future sessions can call get_snapshot to instantly find relevant files. No API key needed — you are the LLM generating the map.

Input parameters:

- `dir` (string, required): Absolute path to the project root directory
- `features` (object, required): Map of feature names to their implementing files
- `flows` (object, required): Map of flow names to ordered file chains
- `removeFeatures` (array): Feature names to delete from the existing map — for features that were renamed or no longer exist. Applied before merging; only meaningful on incremental saves.
- `removeFlows` (array): Flow names to delete from the existing map. Applied before merging; only meaningful on incremental saves.

### `save_decision` (~326 tokens)

CALL THIS when you learn something about this codebase that the code alone can't tell you: a failed approach ('we tried X, it broke Y'), a deprecation ('don't extend Z'), a workaround and its reason, or a convention settled in review. Best moments: the end of a debugging session, right after a design choice. Records are git-committed to .mason/decisions/ and PR-reviewed like code; get_context surfaces them on matching tasks. Do NOT record anything derivable by reading the code, session trivia, or secrets. Also handles updates (pass id), re-verification (same id + content re-pins to HEAD), and supersession (pass supersedes).

Input parameters:

- `body` (string, required): The knowledge itself: what was tried/decided, why, and what to avoid. Must contain information NOT derivable by reading the code.
- `category` (string, required)
- `dir` (string, required): Absolute path to the project root directory
- `files` (array): Repo-relative files this applies to. Anchors drift-checking: if these change, the decision is flagged for re-verification.
- `force` (boolean): Save even when a near-duplicate was detected
- `id` (string): Existing decision id to update. Passing id with unchanged content re-verifies it (re-pins refreshedHash to HEAD).
- `supersedes` (string): Id of a decision this one replaces — the old record is kept but marked superseded
- `title` (string, required): Short, specific headline — becomes the stable record id

### `mason_check_drift` (~148 tokens)

Check how far the concept map has drifted from HEAD. Deterministic (git + filesystem, no LLM). Returns which features/flows are stale and the changed files behind them, new source files not yet mapped, ghost files (mapped but deleted), renames, and a `recommendation`: `up-to-date` (nothing to do), `incremental` (update just the stale entries via save_snapshot), or `full-rebuild` (re-run the Map-Reduce build). Call this before trusting the map in a long session, or periodically to keep the map and any synced wikis fresh.

Input parameters:

- `dir` (string, required): Absolute path to the project root directory

### `verify_snapshot` (~125 tokens)

Spot-check the concept map's CORRECTNESS (drift checks freshness; this checks entries were right to begin with). Returns a sample of entries — always the never-verified and least-recently-verified first — with skeletons of their claimed files, for you to judge whether the files actually implement what the entry claims. Report verdicts back via save_verification. Run periodically, or after an automated refresh wrote entries no human reviewed.

Input parameters:

- `dir` (string, required): Absolute path to the project root directory
- `sample` (integer): Entries to sample (default 5)

### `save_verification` (~83 tokens)

Record verify_snapshot verdicts. Entries judged ok are stamped verifiedAt; failures are flagged verificationFailed with your note and surface in mason_check_drift until re-mapped. Verdict notes are required for failures.

Input parameters:

- `dir` (string, required): Absolute path to the project root directory
- `verdicts` (object, required): Entry name → verdict, exactly as returned by verify_snapshot

### `get_impact` (~136 tokens)

CALL THIS BEFORE editing, refactoring, or assessing the blast radius of any file. Returns three signals you cannot get by reading the file itself: git co-change history (files that historically change in the same commits), references (files that mention the target by name), and related tests. One call replaces a manual sweep of grep + git log. Also the right tool for 'what would break if I changed X?' questions.

Input parameters:

- `dir` (string, required): Absolute path to the project root directory
- `files` (array, required): File paths or names to analyze (e.g., ['WeatherRepository.kt'] or ['src/services/auth.ts'])

### `export_to_confluence` (~191 tokens)

Sync the project's concept map to Confluence as product-readable wiki pages: an index page, one page per feature (PM-language descriptions, no file paths), and a changelog page. Hand-edits outside `<!-- mason:start/end:* -->` markers are preserved across syncs. Requires `mason_set_confluence` to have been called first.

Input parameters:

- `changelogPageTitle` (string): Title of the changelog page (default: 'Mason — Changelog')
- `dir` (string, required): Absolute path to the project root directory
- `featurePagePrefix` (string): Prefix for each feature page title (default: 'Feature: ')
- `indexPageTitle` (string): Title of the index page (default: 'Mason — System Map')
- `parentPageId` (string): Override the configured parent page ID
- `spaceKey` (string): Override the configured space key

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/com-adrianczuczka-mason/mason-context#diagnostics

## Score history

- 2026-08-03: 78
- 2026-08-02: 74
- 2026-08-01: 19
- 2026-07-31: 5
- 2026-07-30: 26
- 2026-07-28: 44
- 2026-07-27: 44

## Links

- npm package: https://www.npmjs.com/package/mason-context
- Socket report: https://socket.dev/npm/package/mason-context
- Repository: https://github.com/adrianczuczka/mason
- Changelog RSS feed: https://verifymcp.io/servers/com-adrianczuczka-mason/mason-context/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-adrianczuczka-mason/mason-context/changelog.json
- HTML version of this page: https://verifymcp.io/servers/com-adrianczuczka-mason/mason-context
