# com.deerdawn/deerdawn (npm · @deerdawn/mcp-server)

AI session memory: the brief your AI reads before every session so no session starts cold.

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

## Components

- remote · `api.deerdawn.com`: 75/100, [markdown](https://verifymcp.io/servers/com-deerdawn-deerdawn/api-v1-mcp.md), [page](https://verifymcp.io/servers/com-deerdawn-deerdawn/api-v1-mcp)
- npm · `@deerdawn/mcp-server`: 61/100 (this document), [markdown](https://verifymcp.io/servers/com-deerdawn-deerdawn/deerdawn-mcp-server.md), [page](https://verifymcp.io/servers/com-deerdawn-deerdawn/deerdawn-mcp-server)

## Channel facts

- Registry: `npm`
- Package: `@deerdawn/mcp-server`
- Version: `1.0.37`
- 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**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (107 of 108), 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 (107 of 108), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 19/100
  - Repository check failed: no source repository is declared.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 11 days ago).
  - Security-disclosure policy not yet verified: we couldn't inspect the source repository.
- **Schema Quality & AI Usability**: 61/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (poor).
  - Context-footprint check failed: tool/resource definitions use about 4315 tokens (~116/item across 37 items; 35 tools + 2 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**: 98/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 95% 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-deerdawn-deerdawn -- npx -y @deerdawn/mcp-server
```

### Codex

```bash
codex mcp add com-deerdawn-deerdawn -- npx -y @deerdawn/mcp-server
```

### opencode

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

### OpenClaw

```bash
openclaw mcp add com-deerdawn-deerdawn --command npx --arg -y --arg @deerdawn/mcp-server
```

### Hermes

```yaml
mcp_servers:
  com-deerdawn-deerdawn:
    command: "npx"
    args: ["-y", "@deerdawn/mcp-server"]
```

### Other

```json
{
  "mcpServers": {
    "com-deerdawn-deerdawn": {
      "command": "npx",
      "args": [
        "-y",
        "@deerdawn/mcp-server"
      ]
    }
  }
}
```

## Changelog

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

### 2026-08-03 (score 61, +4)

- [functional improvement] Stability: unverified → 0.27

### 2026-08-02 (score 57, +22)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] License: unverified → pass
- [functional improvement] Schema quality: unverified → poor
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional] Licence: MIT

### 2026-08-01 (score 35, +15)

- [security improvement] Malware scan: unverified → pass

### 2026-07-31 (score 20, −26)

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

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

First indexed and scored.

## MCP tools (35)

### `get_auth_status` (~51 tokens)

Check DeerDawn authentication status. Call this at the START of every new session before using other tools. If not authenticated, returns a sign-in URL — show it to the user immediately so they can connect.

### `get_setup_status` (~49 tokens)

Check DeerDawn local setup status for authentication, global instruction files, and MCP-capable tool configs. Use this when an agent needs to know how well DeerDawn is connected on this machine.

### `apply_setup` (~80 tokens)

Safely configure or repair DeerDawn setup for a supported local surface. Normally called automatically on first authenticated startup via complete_setup — only call this manually if auto-setup failed or you need to repair a specific surface. Creates a backup before writing config files and can restore the latest backup.

Input parameters:

- `mode` (string)
- `surface` (string, required)

### `complete_setup` (~77 tokens)

Run DeerDawn setup in one call: check auth, apply local surface setup, and run import_local_context preview + confirmed import when local context files are found.

Input parameters:

- `mode` (string)
- `path` (string): Optional override path for import_local_context (defaults to auto-detect in cwd).
- `surface` (string, required)

### `start_session` (~89 tokens)

Required first call each session — reads your brief for this project. Auto-detects project from cwd. Returns active context + compact project map (~100-180 tokens). No arguments needed for the common case. (To re-read the brief mid-session use read_brief; to update it use update_brief.)

Input parameters:

- `verbosity` (string): How much detail for the active project. Default: standard.

### `get_context` (~155 tokens)

Get project context (also available as read_brief). Call this when the user asks about a specific project's status, goals, tech stack, open questions, or recent decisions. By default returns only task+status (~30 tokens). Pass sections=[...] to get targeted data, or sections=["all"] for full context. Use start_session at session start instead of this.

Input parameters:

- `project_id` (string): Specific project ID. Omit to auto-select the most recently active project.
- `sections` (array): Which sections to retrieve. Default: [task, status]. Use ["all"] for everything.
- `tool` (string): Which tool surface to format context for
- `verbosity` (string): How much context to include

### `read_brief` (~142 tokens)

Read your project brief — what you shipped, decided, what's open, and the landmines — the same brief your AI reads at session start. Alias of get_context; returns the 4-slot brief (SHIPPED / DECIDED / OPEN / LANDMINE) with per-item provenance.

Input parameters:

- `project_id` (string): Specific project ID. Omit to auto-select the most recently active project.
- `sections` (array): Which slots/sections to retrieve. Omit for the full 4-slot brief.
- `tool` (string): Which tool surface to format the brief for
- `verbosity` (string): How much detail to include

### `list_context_map` (~54 tokens)

Get a compact index of all DeerDawn projects and available context sections (~30-50 tokens). Call this at the start of a session to see what's available, then call get_context with specific sections for what you need.

### `update_context` (~157 tokens)

Push a context update (also available as update_brief). summary = what changed + why (1-2 sentences). Call immediately when triggered, not batched. Also stores runnable commands (deploy, test, start) via the commands param.

Input parameters:

- `commands` (array): Key runnable commands to store. Stored by label — overwrites existing entry with the same label.
- `project_id` (string): Optional project ID. If omitted, active project for cwd is used.
- `summary` (string, required): What changed or what was learned — current task, decision made, open question asked, question answered, status update, key findings
- `tool` (string): Optional surface hint. Host aliases like claude_desktop are accepted and normalized.

### `update_brief` (~160 tokens)

Update your brief — record a decision, an open question, a landmine, or shipped work. Alias of update_context; summary = what changed + why (1-2 sentences). Call immediately when triggered, not batched.

Input parameters:

- `commands` (array): Key runnable commands to store. Stored by label — overwrites existing entry with the same label.
- `project_id` (string): Optional project ID. If omitted, active project for cwd is used.
- `summary` (string, required): What changed or what was learned — a decision made, an open question, a landmine to watch out for, shipped work, or a status update
- `tool` (string): Optional surface hint. Host aliases like claude_desktop are accepted and normalized.

### `list_projects` (~58 tokens)

List all DeerDawn projects for this workspace. Call this when the user asks what projects they have, what they're working on, or wants an overview of their work. Also use to find the right project_id before calling get_context or update_context.

### `search_context` (~132 tokens)

Search across ALL projects for decisions, goals, tasks, open questions, pending decisions, or any context matching a query. Examples: "decisions about authentication", "projects using PostgreSQL", "what's blocking the billing work", "open questions about the API", "what decisions do I need to make". Use this instead of get_context when you don't know which project holds the information. If you have not called start_session yet this session, call it first.

Input parameters:

- `limit` (number): Max results to return (default: 5)
- `query` (string, required): Natural language search query across all project context

### `get_workspace_overview` (~108 tokens)

Workspace overview. mode=startup for compact session orientation, mode=overview when user asks "what am I working on?" or wants a full picture of all projects.

Input parameters:

- `format` (string): Return formatted text (default) or structured JSON.
- `include` (array): Optional subset of sections to include.
- `mode` (string): Use startup for compact session-start context or overview for the full layered brief.
- `verbosity` (string): How much detail to include in the overview.

### `get_workspace_entities` (~235 tokens)

Query typed workspace knowledge, tools, environments, capabilities, and workflows for drill-down after the overview.

Input parameters:

- `curated_only` (boolean): Only return curated or promoted entities.
- `format` (string): Return formatted text (default) or structured JSON.
- `include_inferred` (boolean): Include inferred capability candidates discovered from project files and routes.
- `include_resolved` (boolean): Include resolved and archived entities (default false). Set true or pass status="resolved" to retrieve closed decisions.
- `limit` (number): Max number of entities to return (default 10).
- `project_id` (string): Optional active project to rank against.
- `query` (string): Optional text query.
- `related_project_id` (string): Filter entities linked to a specific project.
- `scope` (string): Optional scope filter.
- `status` (string): Optional lifecycle/status filter such as active, shipped, planned, stale, or resolved.
- `surface` (string): Optional capability surface filter such as mcp_tool, api, dashboard, desktop, or extension.
- `types` (array): Optional entity types to filter.

### `get_project_map` (~93 tokens)

Return the durable project map for a project: hot paths, entrypoints, named surfaces, and recent debugging notes. Use this before repo-wide search when you need known file-level orientation.

Input parameters:

- `format` (string): Return formatted text (default) or structured JSON.
- `project_id` (string): Optional project ID. Omit to use the active project.
- `verbosity` (string): How much detail to include.

### `find_known_paths` (~112 tokens)

Search DeerDawn durable path memory across hot paths, entrypoints, surfaces, and debugging notes. Use this before repo search when the file might already be known.

Input parameters:

- `format` (string): Return formatted text (default) or structured JSON.
- `limit` (number): Max results to return (default 10).
- `project_id` (string): Optional project ID to scope the search.
- `query` (string, required): Path-oriented query like "auth modal", "signup route", or "workspace setup page".

### `upsert_workspace_entities` (~68 tokens)

Create or update typed workspace entities and relationships. Use this for durable knowledge, tools, environments, capabilities, or workflows that should persist beyond a single project note.

Input parameters:

- `entities` (array, required): Typed workspace entities to create or update.
- `relations` (array): Optional relationships between workspace entities.

### `record_hot_paths` (~61 tokens)

Record durable file or folder hot paths for a project after you discover them. Use this when repo search reveals a path future agents should know up front.

Input parameters:

- `items` (array, required)
- `project_id` (string, required): Project ID to attach hot paths to.

### `record_debug_finding` (~209 tokens)

Record a durable debugging finding for a project, optionally tied to specific paths. Use this after diagnosing a bug or tracing a non-obvious handoff.

Input parameters:

- `added_at` (string): Optional ISO timestamp override.
- `commit_ref` (string): Optional commit SHA or ref that contains the fix, so the finding is replayable.
- `diff_ref` (string): Optional PR/diff URL or identifier for the fix.
- `importance` (string): Optional — higher-importance findings survive cap eviction and surface first.
- `paths` (array): Optional related file paths.
- `pinned` (boolean): Optional — pin a critical finding so it is never evicted at the cap.
- `project_id` (string, required): Project ID to attach the debugging finding to.
- `summary` (string, required): Concise factual finding.
- `supersedes` (string): Optional — a phrase from a prior finding this one corrects; the stale note is removed so the log holds the correction, not the contradiction.

### `confirm_claim` (~131 tokens)

Confirm a stored claim still holds after you actually re-verified it (ran the tests, checked the code/state). Stamps it "verified" so the NEXT session trusts it instead of re-opening the code. Targets a recent decision (matched by a phrase from its summary) or the current status (pass "status").

Input parameters:

- `claim` (string, required): A phrase from the decision summary to confirm, or "status" to confirm the current status.
- `project_id` (string, required): Project ID whose claim you verified.
- `verified_commit` (string): Optional commit SHA you verified against; defaults to the current HEAD.

### `get_next_best_context` (~89 tokens)

Return the most relevant next context to fetch or use for the current task/session, including open questions and pending decisions ranked for relevance and token efficiency.

Input parameters:

- `cwd` (string): Optional current working directory.
- `limit` (number): Max ranked suggestions to return (default 5).
- `project_id` (string): Optional active project override.
- `tool` (string): Optional active tool surface.

### `cleanup_context` (~92 tokens)

Clean up task context at handoff/finish time. Marks finished task as completed, clears open-task command history, and returns unresolved questions that still need answers.

Input parameters:

- `ask_questions` (boolean): Include unresolved questions in the output checklist.
- `complete_task` (boolean): Force-complete and close the active task now.
- `project_id` (string): Optional project ID. Omit to use active project by cwd.

### `create_project` (~109 tokens)

Create a new DeerDawn project. Use this when the user starts working on something new that has no existing project. Pass parent_project_id to create it as a subproject (a workstream under an umbrella project) — subprojects keep their own current task and board.

Input parameters:

- `description` (string): Brief description
- `parent_project_id` (string): Optional. Create as a subproject under this top-level project. One level deep.
- `project_name` (string, required): Name of the project

### `switch_subproject` (~84 tokens)

Set which subproject is active for THIS codebase, so start_session, update_context, and manage_todos target it by default. Remembered per workspace until you switch again. Use when several subprojects share one repo and you want to work in a specific one.

Input parameters:

- `project_id` (string, required): The subproject to make active for this workspace (from list_projects).

### `archive_project` (~84 tokens)

Archive a dead or finished project so it stops cluttering list_projects and never auto-resolves as active. Preserves history; pass unarchive:true to restore. Refuses to archive an umbrella that still has live subprojects.

Input parameters:

- `project_id` (string, required): The project to archive (or restore).
- `unarchive` (boolean): Set true to restore a previously archived project.

### `set_project_parent` (~107 tokens)

Re-parent an existing project: nest it under an umbrella with parent_project_id, or promote it to top-level by omitting parent_project_id. Use to gather related projects under one umbrella after the fact. One level deep; the umbrella must be top-level and the moved project must have no subprojects of its own.

Input parameters:

- `parent_project_id` (string): Umbrella to nest under. Omit to promote to top-level.
- `project_id` (string, required): The project to move.

### `rename_project` (~78 tokens)

Rename a project (umbrella or subproject). Use to tidy inconsistent, unclear, or shouty project names — the change is immediate and flows into every future brief. Junk names (file paths, "Untitled") are rejected.

Input parameters:

- `project_id` (string, required): The project to rename.
- `project_name` (string, required): The new name.

### `import_local_context` (~169 tokens)

Import context from CLAUDE.md, AGENTS.md, or .cursorrules in the current project directory. First call (no confirmed arg) is FREE — no quota used, returns a preview only. Always preview first, show the user, then call again with confirmed=true to actually import. Use proactively on first connection to any project that has these files but no DeerDawn context yet.

Input parameters:

- `confirmed`: Set to true after user has confirmed they want to import. Accepts boolean true/false plus common string or numeric forms for client compatibility. If false or omitted, returns a preview of what would…
- `path` (string): Override file path. Default: auto-detect CLAUDE.md, AGENTS.md, or .cursorrules in cwd.

### `manage_todos` (~224 tokens)

Manage the active project's task board — a scrum-style board where every task is a card that moves across phase columns: Backlog → Blocked → In Progress → Integration → Testing → Done. Actions: add (new cards, default to Backlog or a named phase), move (re-column a card to a different phase), complete (shorthand for moving to Done), remove (delete a mistaken card), list (show the board grouped by column). This is the single task tracker for the project.

Input parameters:

- `action` (string, required): add new cards, move a card to another phase, mark cards complete (→ Done), remove erroneous cards, or list the board.
- `phase` (string): For add: the column new cards land in (default backlog). For move: the destination column. Required for move.
- `project_id` (string): Optional project ID. Omit to use the active project for the current directory.
- `todos` (array): For add: card titles to create. For move/complete/remove: card IDs or title substrings to match.

### `mark_resolved` (~134 tokens)

Mark a knowledge or decision entity as resolved so it stops appearing in normal context loads. Resolved entries are still retrievable via get_workspace_entities({ status: "resolved" }). Use when a decision has been implemented, a known issue has been fixed, or a knowledge entry is no longer relevant.

Input parameters:

- `entity_type` (string): Optional entity type filter. Omit to match any type.
- `notes` (string): Optional brief note on why/how it was resolved.
- `project_id` (string): Optional project ID to scope the search.
- `title` (string, required): Title or key phrase matching the entity to resolve.

### `sync_skills` (~42 tokens)

Flush all enabled shared skills to disk for every connected tool (Claude Code, Cursor, Codex). Run after editing a skill so the on-disk copies refresh.

### `list_skills` (~61 tokens)

List available shared skills (name + description, no body). Use on web tools (ChatGPT, Claude.ai) that cannot read skill files from disk.

Input parameters:

- `project_id` (string): Optional project ID to scope skills. Omit for workspace-wide skills.

### `get_skill` (~49 tokens)

Fetch one shared skill in full (including markdown body) by slug. Call after list_skills when a skill is relevant to the current task.

Input parameters:

- `slug` (string, required): The skill slug to fetch.

### `import_skill_from_github` (~156 tokens)

Set up a shared skill from a GitHub repo. Paste a repo, folder, or SKILL.md URL — DeerDawn fetches the SKILL.md, reads its frontmatter, saves it as a shared skill, and syncs it to disk for every connected tool (Claude Code, Cursor, Codex).

Input parameters:

- `project_id` (string): Optional project ID to scope the skill. Omit for a workspace-wide skill.
- `repo_url` (string, required): A public GitHub URL: https://github.com/owner/repo, a /tree/<ref>/<folder> or /blob/<ref>/<path>/SKILL.md link, git@github.com:owner/repo.git, or owner/repo.

### `inspect_context_graph` (~66 tokens)

Read the Deerdawn context knowledge web for a project, session, or specific graph node.

Input parameters:

- `node_id` (string): Specific graph node id to inspect
- `project_id` (string): Project id to inspect
- `session_id` (string): Session id to inspect

## Diagnostics

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

## Score history

- 2026-08-03: 61
- 2026-08-02: 57
- 2026-08-01: 35
- 2026-07-31: 20
- 2026-07-30: 46
- 2026-07-28: 46
- 2026-07-27: 46

## Links

- npm package: https://www.npmjs.com/package/@deerdawn/mcp-server
- Socket report: https://socket.dev/npm/package/@deerdawn/mcp-server
- Website: https://deerdawn.com/
- Changelog RSS feed: https://verifymcp.io/servers/com-deerdawn-deerdawn/deerdawn-mcp-server/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-deerdawn-deerdawn/deerdawn-mcp-server/changelog.json
- HTML version of this page: https://verifymcp.io/servers/com-deerdawn-deerdawn/deerdawn-mcp-server
