Skip to content

MCP Server

Claude Synergy includes an 11-tool MCP server that runs over stdio. Any MCP-compatible harness — Claude Code, Cline, Cursor, or custom Agent SDK agents — can query the changelog corpus in real time.

Add to claude_desktop_config.json:

{
"mcpServers": {
"claude-synergy": {
"command": "claude-synergy-mcp",
"env": {
"HK_DB": "/path/to/data/claude-synergy.db"
}
}
}
}

Add to your project’s .mcp.json:

{
"mcpServers": {
"claude-synergy": {
"command": "claude-synergy-mcp",
"args": [],
"env": {
"HK_DB": "/path/to/data/claude-synergy.db"
}
}
}
}
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
const transport = new StdioClientTransport({
command: 'claude-synergy-mcp',
env: { HK_DB: '/path/to/data/claude-synergy.db' },
});

Full-text search across all change bullets.

ParameterTypeRequiredDescription
querystringyesFTS5 search query
productstringnoLimit to one product
sincestringnoYYYY-MM-DD lower bound
untilstringnoYYYY-MM-DD upper bound — new in v1.1
kindstringnoadded, fixed, breaking, etc.
limitnumbernoMax results (default: 20)

Find when a specific entity (env var, slash command, model ID, CVE) was introduced or changed.

ParameterTypeRequiredDescription
entity_typestringyesenv_var, slash_command, model_id, cve, etc.
valuestringyesThe entity value to look up

Recent releases across all or one product.

ParameterTypeRequiredDescription
productstringnoLimit to one product
sincestringnoYYYY-MM-DD lower bound — new in v1.1
limitnumbernoMax results (default: 20)

Get the full content of a specific release.

ParameterTypeRequiredDescription
productstringyesProduct name
versionstringyesRelease version

List all products in the database with release counts. No parameters.

Most-mentioned entities of a given type.

ParameterTypeRequiredDescription
entity_typestringyesEntity type to rank
limitnumbernoMax results (default: 30)

List all curated cross-product synergy documents.

ParameterTypeRequiredDescription
productstringnoLimit to synergies that involve this product — new in v1.1

Read a specific synergy document by slug.

ParameterTypeRequiredDescription
slugstringyesSynergy document slug (e.g. 01-skill-portability)

Changes in a time window, grouped by product+version. Backs the hk diff CLI command.

ParameterTypeRequiredDescription
sincestringyesISO date (YYYY-MM-DD), full ISO 8601, or relative (7d/2w/3m/1y)
untilstringnoUpper bound — same formats
productstringnoLimit to one product
kindstringnoFilter: added, fixed, breaking, deprecated, etc.
limitnumbernoMax total change rows (default: 200)

Example call:

{
"name": "get_changes_since",
"arguments": { "since": "2026-05-15", "product": "claude-code" }
}

Returns a ChangesSinceResult[] — same JSON shape hk diff --json emits: groups of {product, version, released_at, changes: [{kind, text}]}.

Note on date formats: Relative forms like 7d resolve to ISO at the CLI boundary. The MCP tool accepts the same forms, but they are passed through to the query layer — pass ISO YYYY-MM-DD for maximum portability across MCP hosts.

Flat list of breaking changes — no search term required. Backs the hk breaking CLI command.

ParameterTypeRequiredDescription
productstringnoLimit to one product
sincestringnoYYYY-MM-DD lower bound
untilstringnoYYYY-MM-DD upper bound
limitnumbernoMax results (default: 50)

Example call:

{
"name": "search_breaking_changes",
"arguments": { "since": "2026-04-01", "limit": 20 }
}

All changes between two versions of one product. Useful for migration planning when you know the exact versions you’re upgrading between. The interval is exclusive at from_version, inclusive at to_version — i.e. it returns everything that changed after you were on from_version, up to and including to_version.

ParameterTypeRequiredDescription
productstringyesProduct slug
from_versionstringyesStart version (exclusive — not included in results)
to_versionstringyesEnd version (inclusive — included in results)

Example call:

{
"name": "compare_versions",
"arguments": {
"product": "anthropic-sdk-typescript",
"from_version": "0.94.0",
"to_version": "0.95.1"
}
}

Returns every change recorded across (0.94.0, 0.95.1] for anthropic-sdk-typescript, in the same ChangesSinceResult[] shape — grouped by release version. A single call replaces N+1 get_release lookups when planning an upgrade.

  • No network calls — the MCP server reads only from the local SQLite database. No HTTP, no DNS, no egress.
  • No code execution — accepts JSON-RPC queries, returns structured JSON results. Never executes user input.
  • Structured errors only — all exceptions are caught and returned as McpError with error code and message. Stack traces are never exposed.
  • Timeout protection — every query has a 30-second timeout guard. Hung providers cannot block the server.
  • Graceful shutdown — handles SIGINT/SIGTERM and server.onclose for clean DB handle release.

An MCP-connected agent can discover what its harness supports:

“What slash commands were added to Claude Code in the last 30 days?”

The agent calls search({ query: "slash command", product: "claude-code", since: "2026-04-22", kind: "added" }) and gets actionable results.

“Is there a way to use the same MCP server config across Claude Code and Cursor?”

The agent calls list_synergies(), finds the MCP portability synergy, reads it with read_synergy({ slug: "02-mcp-server-portability" }), and summarizes the compatibility matrix.

“We’re upgrading from claude-3-haiku to claude-sonnet-4. What changed?”

The agent calls lookup_entity({ entity_type: "model_id", value: "claude-sonnet-4-20250514" }) and lookup_entity({ entity_type: "model_id", value: "claude-3-haiku-20240307" }) to compare timelines.

“Did anything load-bearing break in the last week?”

The agent calls search_breaking_changes({ since: "<7 days ago>" }) and gets a flat list — no search term needed. For one product specifically, add { product: "claude-code" }.

“We’re upgrading anthropic-sdk-typescript from 0.94.0 to 0.95.1. Give me the change brief.”

The agent calls compare_versions({ product: "anthropic-sdk-typescript", from_version: "0.94.0", to_version: "0.95.1" }) and summarizes the response into a migration checklist.