mcpField
H
handbook

handbook

Local
github.com/ah-ohMemory & Knowledge0Updated 34w ago

About handbook

handbook is an MCP server for managing entries in the Handbook API. It serves users and agents that need to create, edit, find, and review handbook content through MCP-compatible clients.

Key features

  1. 01List and retrieve entries
  2. 02Create, update, and delete entries
  3. 03Get per-app entry overviews
  4. 04Search tags across entries
  5. 05Authenticate with a bearer token

Use cases

  1. 01Review entries for an app
  2. 02Create or revise handbook content
  3. 03Find entries by tag
  4. 04Remove an outdated entry

MCP support

The server exposes Handbook API operations as MCP tools, including entry CRUD, overview retrieval, and tag search.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"jannks-handbook": {
"command": "npx",
"args": [
"-y",
"@ah-oh/handbook-mcp-server"
],
"env": {
"HANDBOOK_API_TOKEN": "<HANDBOOK_API_TOKEN>",
"HANDBOOK_API_URL": "<HANDBOOK_API_URL>"
}
}
}
}
Run commandnpx -y @ah-oh/handbook-mcp-server
Environment variables to set
HANDBOOK_API_TOKENSecretBearer token for authenticating with the Handbook API
HANDBOOK_API_URLBase URL of the Handbook API (default: https://handbook.ah-oh.com/handbook-api)

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@ah-oh/handbook-mcp-server1.0.1

Tools

7

Saved tool list · updated 2w ago

This tool takes no parameters.

Details

From the project 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
npm install -g @ah-oh/handbook-mcp-server
Option B: Build from source
git clone https://github.com/ah-oh/handbook-mcp-server.git
cd handbook-mcp-server
npm install
npm 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

{
  "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:

{
  "mcpServers": {
    "handbook": {
      "command": "handbook-mcp-server",
      "env": {
        "HANDBOOK_API_TOKEN": "your-bearer-token"
      }
    }
  }
}
Claude Code
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:

{
  "servers": {
    "handbook": {
      "command": "node",
      "args": ["/path/to/handbook-mcp-server/dist/index.js"],
      "env": {
        "HANDBOOK_API_TOKEN": "your-bearer-token"
      }
    }
  }
}
HTTP Mode (Remote)
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:

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

# Linux
find . -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
# Log in to npm (one-time)
npm login

# Publish the package
npm 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
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/

# Verify
mcp-publisher --help
Step 4: Log in to the registry
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/*):

# Generate an Ed25519 keypair
openssl 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
# Dry run first
mcp-publisher publish --dry-run

# Publish for real
mcp-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:
git tag v1.0.0
git 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:
npm version patch   # or minor / major
git 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

# Install dependencies
npm install

# Build TypeScript (one-time)
npm run build

# TypeScript watch mode
npm 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

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.