Clawmarks MCP Server

Local setup required. This server has to be cloned and prepared on your machine before you register it in Claude Code.
1

Set the server up locally

Run this once to clone and prepare the server before adding it to Claude Code.

Run in terminal
npm install -g clawmarks
2

Register it in Claude Code

After the local setup is done, run this command to point Claude Code at the built server.

Run in terminal
claude mcp add clawmarks -- node "<FULL_PATH_TO_CLAWMARKS>/dist/index.js"

Replace <FULL_PATH_TO_CLAWMARKS>/dist/index.js with the actual folder you prepared in step 1.

README.md

Storybook-style annotated bookmarks for code exploration.

Clawmarks

Storybook-style annotated bookmarks for code exploration.

The Problem

Working with an LLM agent on a complex problem often means iterating across multiple files, considering alternatives, making decisions, and building understanding over time. But when the conversation ends, you're left with a wall of chat history and modified files—no clear trail of where you went and why.

Clawmarks solves this by letting agents drop annotated bookmarks as they work. These clawmarks capture the narrative of your exploration: decision points, open questions, alternatives considered, and how they all connect. The result is a navigable map of your coding session, not just a transcript.

What It Does

Clawmarks is an MCP server that gives LLM agents tools to create annotated bookmarks in your codebase. Clawmarks are organized into trails (narrative journeys), can reference each other (knowledge graph style), and are stored in a simple JSON file that any editor can consume.

Each clawmark captures:

  • Where - File, line, column
  • What - An annotation explaining why this location matters
  • Type - Decision, question, change needed, alternative approach, etc.
  • Connections - References to other clawmarks (knowledge graph edges)
  • Context - Tags and trail groupings

Quick Start

  1. Install globally:

    npm install -g clawmarks
    
  2. Add .clawmarks.json to your global gitignore (one-time setup):

    echo ".clawmarks.json" >> ~/.gitignore_global
    git config --global core.excludesfile ~/.gitignore_global
    
  3. Add the MCP server:

    Option A: Claude CLI (recommended)

    claude mcp add --scope user clawmarks -- clawmarks mcp
    

    Option B: Manual configuration

    Add to your project's .mcp.json:

    {
      "mcpServers": {
        "clawmarks": {
          "command": "clawmarks",
          "args": ["mcp"]
        }
      }
    }
    

The server stores .clawmarks.json in the current working directory. To override the project root:

claude mcp add --scope user clawmarks -- clawmarks mcp --env CLAWMARKS_PROJECT_ROOT=/path/to/project

Or in .mcp.json:

{
  "mcpServers": {
    "clawmarks": {
      "command": "clawmarks",
      "args": ["mcp"],
      "env": {
        "CLAWMARKS_PROJECT_ROOT": "/path/to/project"
      }
    }
  }
}

MCP Tools

Trail Management

Tool Description
create_trail Create a new trail to organize related clawmarks
list_trails List all trails (optionally filter by status)
get_trail Get trail details with all its clawmarks
archive_trail Archive a completed trail

Clawmark Management

Tool Description
add_clawmark Add an annotated bookmark at a file location
update_clawmark Update clawmark metadata
delete_clawmark Remove a clawmark
list_clawmarks List clawmarks with optional filters

Knowledge Graph

Tool Description
link_clawmarks Create a reference from one clawmark to another
unlink_clawmarks Remove a reference
get_references Get all clawmarks connected to a clawmark
list_tags List all tags used across clawmarks

Clawmark Types

  • decision - A decision point that was made
  • question - Open question needing resolution
  • change_needed - Code that needs modification
  • reference - Reference point (existing code to understand)
  • alternative - Alternative approach being considered
  • dependency - Something this depends on

Data Format

Clawmarks stores data in .clawmarks.json:

{
  "version": 1,
  "trails": [
    {
      "id": "t_abc123",
      "name": "Auth Refactor Options",
      "description": "Exploring JWT vs session-based auth",
      "status": "active",
      "created_at": "2025-12-17T10:30:00Z"
    }
  ],
  "clawmarks": [
    {
      "id": "c_xyz789",
      "trail_id": "t_abc123",
      "file": "src/auth/handler.ts",
      "line": 42,
      "column": 8,
      "annotation": "Current session logic - could replace with JWT",
      "type": "alternative",
      "tags": ["#security", "#breaking-change"],
      "references": ["c_def456"],
      "created_at": "2025-12-17T10:31:00Z"
    }
  ]

Tools (12)

create_trailCreate a new trail to organize related clawmarks
list_trailsList all trails (optionally filter by status)
get_trailGet trail details with all its clawmarks
archive_trailArchive a completed trail
add_clawmarkAdd an annotated bookmark at a file location
update_clawmarkUpdate clawmark metadata
delete_clawmarkRemove a clawmark
list_clawmarksList clawmarks with optional filters
link_clawmarksCreate a reference from one clawmark to another
unlink_clawmarksRemove a reference
get_referencesGet all clawmarks connected to a clawmark
list_tagsList all tags used across clawmarks

Environment Variables

CLAWMARKS_PROJECT_ROOTOverrides the project root directory for storing .clawmarks.json

Configuration

claude_desktop_config.json
{"mcpServers": {"clawmarks": {"command": "clawmarks", "args": ["mcp"]}}}

Try it

Create a new trail called 'Auth Refactor' to track my progress on the authentication module.
Add a clawmark at the current file location explaining why we chose JWT over session-based auth.
List all open questions in my current 'Auth Refactor' trail.
Link the current clawmark to the previous decision point regarding database schema changes.
Show me all clawmarks tagged with #security.

Frequently Asked Questions

What are the key features of Clawmarks?

Create narrative trails to group related code exploration steps. Annotate specific file locations with context, decisions, and open questions. Build a knowledge graph by linking clawmarks to each other. Store exploration history in a simple, portable JSON file. Support for multiple clawmark types including decisions, alternatives, and dependencies.

What can I use Clawmarks for?

Documenting the reasoning behind complex architectural decisions during a refactor. Tracking open questions and pending tasks across multiple files during a coding session. Creating a navigable map of a codebase for onboarding new developers. Maintaining a trail of alternative approaches considered during bug fixing.

How do I install Clawmarks?

Install Clawmarks by running: npm install -g clawmarks

What MCP clients work with Clawmarks?

Clawmarks works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep Clawmarks docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare