# com.deerdawn/deerdawn (remote · api.deerdawn.com)

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

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

## Components

- remote · `api.deerdawn.com`: 75/100 (this document), [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, [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

- Endpoint: `https://api.deerdawn.com/api/v1/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.37`

## Trust breakdown

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

- **Endpoint Security**: 94/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
  - The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 40/100
  - AI-judged instruction clarity (poor).
  - Context-footprint check failed: tool/resource definitions use about 2638 tokens (~114/item across 23 items; 23 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**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http com-deerdawn-deerdawn https://api.deerdawn.com/api/v1/mcp
```

### Codex

```toml
[mcp_servers.com-deerdawn-deerdawn]
url = "https://api.deerdawn.com/api/v1/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-deerdawn-deerdawn": {
      "type": "remote",
      "url": "https://api.deerdawn.com/api/v1/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-deerdawn-deerdawn --url https://api.deerdawn.com/api/v1/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-deerdawn-deerdawn:
    url: "https://api.deerdawn.com/api/v1/mcp"
```

### Other

```json
{
  "mcpServers": {
    "com-deerdawn-deerdawn": {
      "type": "http",
      "url": "https://api.deerdawn.com/api/v1/mcp"
    }
  }
}
```

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

## 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 75, +1)

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

### 2026-08-01 (score 74, +1)

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

### 2026-07-31 (score 73, +6)

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

### 2026-07-30 (score 67, +1)

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

### 2026-07-29 (score 66, +1)

- [functional regression] Schema quality: 2196 → 2638
- [functional] New tool “cleanup_context”
- [functional] New tool “mark_resolved”
- [functional] New tool “list_skills”
- [functional] New tool “get_skill”
- [functional] New tool “get_next_best_context”
- [cosmetic] “update_context” added an optional parameter “commands”

### 2026-07-27 (score 65, +1)

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

### 2026-07-26 (score 64)

First indexed and scored.

## MCP tools (23)

### `start_session` (~43 tokens)

Call at the start of every session. Returns your active project context — current task, recent decisions, open questions — so you can resume without re-explaining the project.

Output parameters:

- `text` (string): The formatted brief, ready to read.

### `list_projects` (~23 tokens)

List all your DeerDawn projects with their current task and project ID.

Output parameters:

- `projects` (array)

### `create_project` (~118 tokens)

Create a new DeerDawn project to track a codebase, feature, or initiative. Pass parent_project_id to create it as a subproject under an umbrella (e.g. a workstream of a larger product) — subprojects keep their own task and board.

Input parameters:

- `description` (string): Brief description of what this project is
- `parent_project_id` (string): Optional. Create this as a subproject under the given top-level project. The hierarchy is one level deep.
- `project_name` (string, required): Name of the project

Output parameters:

- `parent_project_id` (string)
- `project_id` (string)
- `project_name` (string)

### `switch_subproject` (~119 tokens)

Set which subproject is active for this codebase, so start_session, update_context, and manage_todos target it by default. The choice is remembered per workspace until you switch again. Keyed to the codebase (workspace_key), which the Claude Code / Cursor MCP sends automatically.

Input parameters:

- `project_id` (string, required): The subproject (or project) to make active for this workspace.
- `workspace_key` (string, required): Repo identity for the codebase this pin applies to (normalized git remote or root). Sent automatically by the local MCP.

Output parameters:

- `project_id` (string)
- `project_name` (string)
- `workspace_key` (string)

### `archive_project` (~92 tokens)

Archive a dead or finished project so it stops cluttering list_projects and never auto-resolves as the active project. Preserves all history. Pass unarchive:true to restore it. 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 instead of archiving.

Output parameters:

- `archived` (boolean)
- `project_id` (string)
- `project_name` (string)

### `set_project_parent` (~115 tokens)

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

Input parameters:

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

Output parameters:

- `parent_project_id` (string)
- `project_id` (string)
- `project_name` (string)

### `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.

Output parameters:

- `project_id` (string)
- `project_name` (string)

### `get_context` (~111 tokens)

Get the current context for a specific project — task, status, decisions, goals, and open questions. If you have not called start_session yet this session, call it first. Call list_projects if you don't have a project_id.

Input parameters:

- `project_id` (string, required): Project ID from list_projects
- `sections` (array): Which sections to include. Omit for task+status. Use board (or todos) for the task board.
- `verbosity` (string): How much detail to return per section.

Output parameters:

- `project_id` (string)
- `text` (string): The formatted project context.

### `update_context` (~101 tokens)

Update the context for a project. Call this after a decision is made, a task changes, or a feature ships.

Input parameters:

- `commands` (array): Key runnable commands to store. Stored by label — overwrites existing entry with the same label.
- `project_id` (string, required): Project ID to update
- `summary` (string, required): What changed or was decided — 1-2 sentences
- `tool` (string): Which tool surface the update originated from.

Output parameters:

- `last_updated` (string)
- `project_id` (string)
- `project_name` (string)

### `manage_todos` (~209 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), complete (shorthand for → Done), remove (delete a mistaken card), list (show the board grouped by column). 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).
- `project_id` (string): Optional project ID. Omit to use the active project.
- `todos` (array): For add: card titles. For move/complete/remove: card IDs or title substrings to match.

Output parameters:

- `action` (string): The action performed.
- `affected` (array): Requested cards that actually matched and were changed by add/move/complete/remove.
- `board` (array): Present for action=list — the board grouped by phase column.
- `phase` (string)
- `unmatched` (array): Requested cards (move/complete/remove) that matched no existing card — a no-op, distinct from a real change.

### `search_context` (~92 tokens)

Search across all your DeerDawn projects by keyword or topic. If you have not called start_session yet this session, call it first — it may already answer the question without a search.

Input parameters:

- `limit` (number): Maximum number of results to return (1-10, default 5).
- `query` (string, required): What to search for — e.g. "auth decisions" or "projects using PostgreSQL"

Output parameters:

- `results` (array)

### `get_workspace_overview` (~59 tokens)

Get a full overview of your workspace — all projects, durable knowledge, and capabilities.

Input parameters:

- `mode` (string): startup for a compact brief, overview for full details
- `verbosity` (string): How much detail to include in the overview.

Output parameters:

- `text` (string): The formatted brief, ready to read.

### `get_project_map` (~87 tokens)

Return the durable project map: hot paths, entrypoints, named surfaces, and recent debugging notes. Call this BEFORE searching the codebase — the file may already be known. Omit project_id to use the active project.

Input parameters:

- `project_id` (string): Project ID. Omit to use the active project.
- `verbosity` (string): How much of the project map to return.

Output parameters:

- `project_id` (string)
- `text` (string): The formatted project map.

### `find_known_paths` (~86 tokens)

Search durable path memory (hot paths, surfaces, debugging notes) before doing a repo-wide search. Use a path-oriented query like "auth modal" or "signup route".

Input parameters:

- `limit` (number): Maximum number of paths to return (default 10).
- `project_id` (string): Optional project ID to scope the search.
- `query` (string, required): Path-oriented query.

Output parameters:

- `paths` (array): Matching hot paths, surfaces, and debugging notes.

### `get_workspace_entities` (~138 tokens)

Query typed workspace knowledge — services, capabilities, patterns, environments, and workflows — for architecture-level orientation.

Input parameters:

- `limit` (number): Maximum number of entities to return (default 10).
- `project_id` (string): Optional project to rank against.
- `query` (string): Optional text query.
- `scope` (string): Limit to workspace-wide or project-scoped entities.
- `status` (string): Optional status filter (active, shipped, planned, stale, resolved).
- `surface` (string): Optional surface filter (mcp_tool, api, dashboard, …).
- `types` (array): Optional entity types to filter.

Output parameters:

- `entities` (array)

### `record_hot_paths` (~75 tokens)

Record durable file/folder hot paths AFTER you discover them, so future sessions find them before searching. Append nodes — do not restate the whole tree.

Input parameters:

- `items` (array, required): Hot paths to append — one entry per file or folder worth remembering.
- `project_id` (string, required): Project ID to attach hot paths to.

Output parameters:

- `project_id` (string)
- `project_name` (string)
- `recorded` (number): Number of hot paths recorded.

### `upsert_workspace_entities` (~65 tokens)

Create or update typed workspace entities (services, capabilities, patterns) and relationships. Use for durable architecture knowledge 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 entities.

Output parameters:

- `entities_upserted` (number)
- `relations_recorded` (number)

### `record_debug_finding` (~120 tokens)

Record a durable debugging finding, optionally tied to file paths and a commit/diff ref, 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/ref containing the fix.
- `diff_ref` (string): Optional PR/diff URL or identifier.
- `paths` (array): Optional related file paths.
- `project_id` (string, required): Project ID to attach the finding to.
- `summary` (string, required): Concise factual finding.

Output parameters:

- `project_id` (string)
- `project_name` (string)
- `recorded` (boolean)

### `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.

Output parameters:

- `text` (string): The formatted brief, ready to read.

### `get_next_best_context` (~78 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:

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

Output parameters:

- `suggestions` (array): Ranked next-best context suggestions.
- `text` (string): Formatted summary + ranked suggestions.

### `cleanup_context` (~94 tokens)

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

Input parameters:

- `ask_questions` (boolean): Include open follow-up questions that should be answered.
- `complete_task` (boolean): Force-complete and close the active task now.
- `project_id` (string): Optional project ID. Omit to use the active project.

Output parameters:

- `text` (string): The formatted brief, ready to read.

### `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.

Output parameters:

- `skills` (array)

### `get_skill` (~50 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): Skill slug from list_skills.

Output parameters:

- `name` (string)
- `slug` (string)
- `text` (string): The skill markdown body.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-deerdawn-deerdawn/api-v1-mcp#diagnostics

## Score history

- 2026-08-03: 75
- 2026-08-02: 74
- 2026-08-01: 74
- 2026-07-31: 73
- 2026-07-30: 67
- 2026-07-29: 66
- 2026-07-28: 65
- 2026-07-27: 65
- 2026-07-26: 64

## Links

- Remote endpoint: https://api.deerdawn.com/api/v1/mcp
- Website: https://deerdawn.com/
- Changelog RSS feed: https://verifymcp.io/servers/com-deerdawn-deerdawn/api-v1-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-deerdawn-deerdawn/api-v1-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/com-deerdawn-deerdawn/api-v1-mcp
