Handbook

io.github.jannksPublished by GitHub account jannksv1.0.1Updated Nov 3, 2026

MCP server for the Handbook API – manage handbook entries via CRUD, overview and tag search.

Overview

AI-generated overview

MCP server for the ah-oh Handbook API that lets an assistant list, read, create, update, delete and tag-search handbook entries.

What you can do
  • List and read handbook entries, including markdown content of a single entry by ID
  • Create and update entries, and delete entries by ID
  • Get a compact overview of all entries grouped per app
  • Search tags across all entries
When to use it
Useful when you keep documentation or notes in the ah-oh Handbook and want an assistant to look them up, draft new entries, or keep existing ones current from a chat client such as Claude Desktop, Claude Code or VS Code.
Requirements
Runs locally as a Node.js (18 or newer) process, installed from the npm package or built from source. Requires a Handbook API bearer token in HANDBOOK_API_TOKEN; HANDBOOK_API_URL optionally overrides the default API base URL. Network access to the Handbook API is needed.
Before you install
The token in HANDBOOK_API_TOKEN grants access to your Handbook data and is stored in the client configuration file. The server can create, update and delete entries, so assistant actions can change or remove documentation; review write and delete requests before approving them. Entry content is sent to the configured Handbook API endpoint.

Installation

In SourceWeft

  1. Open Handbook in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

handbook-mcp-server

An MCP (Model Context Protocol) server for the Handbook API by ah-oh.com. Enables full management of handbook entries directly from Claude Desktop, Claude Code, VS Code Copilot, and other MCP-compatible clients.


Features

ToolDescription
handbook_list_entriesList all handbook entries
handbook_get_entryRetrieve a single entry by ID (including markdown content)
handbook_create_entryCreate a new entry
handbook_update_entryUpdate an existing entry
handbook_delete_entryDelete an entry
handbook_get_overviewCompact overview of all entries per app
handbook_search_tagsSearch tags across all entries

Prerequisites

  • Node.js >= 18
  • Bearer Token for the Handbook API

Installation

Option A: Install from npm

bash
npm install -g @ah-oh/handbook-mcp-server

Option B: Build from source

bash
git clone https://github.com/ah-oh/handbook-mcp-server.gitcd handbook-mcp-servernpm installnpm run build

Configuration

Environment Variables

VariableRequiredDefaultDescription
HANDBOOK_API_TOKENYes–Bearer token for the Handbook API
HANDBOOK_API_URLNohttps://handbook.ah-oh.com/handbook-apiBase URL of the API
TRANSPORTNostdioTransport mode: stdio or http
PORTNo3000Port for HTTP transport

Usage

Claude Desktop

Add the following to your claude_desktop_config.json:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

json
{  "mcpServers": {    "handbook": {      "command": "node",      "args": ["/absolute/path/to/handbook-mcp-server/dist/index.js"],      "env": {        "HANDBOOK_API_TOKEN": "your-bearer-token"      }    }  }}

If installed globally via npm:

json
{  "mcpServers": {    "handbook": {      "command": "handbook-mcp-server",      "env": {        "HANDBOOK_API_TOKEN": "your-bearer-token"      }    }  }}

Claude Code

bash
claude mcp add handbook -- node /path/to/handbook-mcp-server/dist/index.js \  --env HANDBOOK_API_TOKEN=your-bearer-token

VS Code (Copilot / Continue)

In .vscode/mcp.json:

json
{  "servers": {    "handbook": {      "command": "node",      "args": ["/path/to/handbook-mcp-server/dist/index.js"],      "env": {        "HANDBOOK_API_TOKEN": "your-bearer-token"      }    }  }}

HTTP Mode (Remote)

bash
TRANSPORT=http HANDBOOK_API_TOKEN=your-token PORT=3000 npm start

The server will listen on http://localhost:3000/mcp.


Examples

Once the MCP server is connected, you can ask Claude things like:

  • "Show me all handbook entries"
  • "Create a new entry titled 'Onboarding Guide' for the app szales"
  • "Update the entry with ID 65c4e1f5... – set the content to ..."
  • "Which tags start with 'meet'?"
  • "Give me an overview of all entries for the app sethub"
  • "Delete entry 65c4e1f5..."

Publishing to the MCP Registry

The official MCP Registry makes your server discoverable by all MCP clients. Here's the step-by-step guide:

Step 1: Replace placeholders

Replace ah-oh everywhere in the project with your GitHub username:

bash
# macOSfind . -type f \( -name "*.json" -o -name "*.md" \) \  -exec sed -i '' 's/ah-oh/my-github-user/g' {} +
# Linuxfind . -type f \( -name "*.json" -o -name "*.md" \) \  -exec sed -i 's/ah-oh/my-github-user/g' {} +

This affects the following files:

  • package.json – fields name, mcpName, repository, homepage, bugs
  • server.json – fields name, repository, packages[0].identifier
  • README.md – links and install command

Step 2: Publish to npm

bash
# Log in to npm (one-time)npm login
# Publish the packagenpm publish --access public

Note: The MCP Registry only hosts metadata, not the code itself. Your package must first be available on npm (or PyPI, Docker Hub, etc.).

Step 3: Install the mcp-publisher CLI

bash
curl -L \  "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" \  | tar xz mcp-publisher && sudo mv mcp-publisher /usr/local/bin/
# Verifymcp-publisher --help

Step 4: Log in to the registry

bash
mcp-publisher login github

This opens the browser for GitHub OAuth. You'll get access to the namespace io.github.ah-oh/*.

Alternative (custom domain, e.g. com.ah-oh/*):

bash
# Generate an Ed25519 keypairopenssl genpkey -algorithm Ed25519 -out key.pem
# Host the public key at https://ah-oh.com/.well-known/mcp-registry-auth# Then:mcp-publisher login http --domain=ah-oh.com --private-key=HEX_KEY

Step 5: Publish

bash
# Dry run firstmcp-publisher publish --dry-run
# Publish for realmcp-publisher publish

Your server will then be discoverable at registry.modelcontextprotocol.io and automatically picked up by downstream registries (GitHub, VS Code, etc.).

Step 6 (Optional): Automation via GitHub Actions

The project includes a ready-made workflow file at .github/workflows/publish.yml. It automatically publishes to npm and the MCP Registry on every git tag (v*).

Setup:

  1. Go to npmjs.com → Access Tokens → Create a new token
  2. In GitHub → Repository → Settings → Secrets and Variables → Actions → Add NPM_TOKEN as a secret
  3. Tag a release and push:
bash
git tag v1.0.0git push origin v1.0.0

The pipeline takes care of the rest.

Updating the version

For new versions:

  1. Bump the version in package.json and server.json
  2. Create and push a new tag:
bash
npm version patch   # or minor / majorgit push origin v$(node -p "require('./package.json').version")

Project Structure

handbook-mcp-server/├── .github/workflows/│   └── publish.yml          # CI/CD: npm + MCP Registry├── src/│   ├── index.ts             # Entry point (stdio + HTTP)│   ├── constants.ts         # API URL, limits│   ├── types.ts             # TypeScript interfaces│   ├── schemas/│   │   └── handbook-entry.ts # Zod validation schemas│   ├── services/│   │   ├── api-client.ts    # HTTP client for the Handbook API│   │   └── formatting.ts    # Markdown formatting│   └── tools/│       └── handbook-entry.ts # Tool registrations├── dist/                    # Compiled JS files├── package.json├── tsconfig.json├── server.json              # MCP Registry metadata└── README.md

Development

bash
# Install dependenciesnpm install
# Build TypeScript (one-time)npm run build
# TypeScript watch modenpm run dev
# Start server (stdio)npm start
# Start server (HTTP)TRANSPORT=http npm start

API Reference

Based on the Handbook OpenAPI specification.

All endpoints require Bearer token authentication. The MCP server handles auth headers automatically – you only need to set HANDBOOK_API_TOKEN.


License

MIT

Source: README.md at commit f5bd345

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.0.1LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts