hoshin-kanri

hoshin-kanri

A living X-Matrix your AI agent can read, challenge and update — 3-to-5-year objectives, annual objectives, initiatives, KPIs, correlations, review cadences, and a completeness score. Exposes 11 tools and 9 guided prompts over MCP with local or hosted transports.

Category
Visit Server

README

Hoshin Kanri — MCP server

The MCP server behind hoshin.app: a living X-Matrix your AI agent can read, challenge and update — 3-to-5-year objectives, annual objectives, initiatives, KPIs, the correlations between them, the review cadences that keep them alive, and a completeness score that gives a verdict instead of a vibe.

11 tools · 9 guided prompts · 3 transports · MIT.

Registry entry: io.github.wellknownmcp/hoshin-kanri · npm: hoshin-kanri-mcp

Why this exists

Agents are good at doing the work and bad at knowing which work matters. The missing piece is not more memory — it is structured strategic memory: an object with quadrants, correlations and a score, so an agent can answer "does this initiative actually serve a stated objective?" and be wrong out loud when it does not.

That object is the X-Matrix, a Hoshin Kanri artifact that predates all of this by forty years. This server exposes it over the Model Context Protocol.

Install

Sovereign local mode — nothing leaves your machine

Your matrix lives in plain JSON files on your own disk. No account, no cloud, no telemetry. This is the default binary of the npm package, on purpose.

{
  "mcpServers": {
    "hoshin-kanri": {
      "command": "npx",
      "args": ["-y", "hoshin-kanri-mcp"],
      "env": { "HOSHIN_DATA_DIR": "/path/to/your/data" }
    }
  }
}

HOSHIN_DATA_DIR defaults to ~/hoshin-data/. The files are the export: readable, diffable, versionable, yours. See docs/data-residency.md.

Hosted mode — OAuth 2.1, nothing to install

claude.ai, Claude Desktop and Cursor connect straight to https://hoshin.app/mcp. Dynamic client registration + PKCE, so there is no token to paste and no config file to edit — add the URL as a connector and authorize.

<details> <summary>Or with a static API token, over stdio</summary>

{
  "mcpServers": {
    "hoshin-kanri": {
      "command": "npx",
      "args": ["-y", "-p", "hoshin-kanri-mcp", "hoshin-kanri-mcp-remote"],
      "env": { "AUTH_TOKEN": "hk_..." }
    }
  }
}

</details>

What is in here

Path What
mcp-server/index-local.js stdio transport, local JSON store — the npm default bin
mcp-server/index-stdio.js stdio transport against the hosted API
mcp-server/index-streamable-http.js Streamable HTTP transport, the one serving hoshin.app/mcp
mcp-server/lib/tool-definitions.js the 11 tool schemas, shared by all three transports
mcp-server/lib/prompt-definitions.js the 9 guided prompts, shared by all three transports
mcp-server/lib/completeness.js the completeness score, as pure functions
mcp-server/lib/json-store.js atomic local JSON store (tmp + rename, in-process mutex)
docs/completeness-score.md the score specification — metrics, weights, response shape
docs/data-residency.md where your strategy lives, per transport
server.json the MCP registry manifest

Tool and prompt definitions are shared across transports by design: only the handlers differ. A tool that exists in hosted mode and not in local mode would quietly make the sovereign mode a second-class citizen, so parity is a rule, not an aspiration — with one deliberate exception, documented below.

Tools

get_matrix_data · get_matrix_summary · get_matrix_completeness · list_objectives · update_element_status · add_idea · search_ideas · get_management_architecture · diagnose_theme_deployment · suggest_meeting_for_topic · share_matrix

Two worth calling out:

  • get_matrix_completeness returns a 0–100 score across five metrics (coverage, correlation density, orphan elements, end-to-end strategic chains, leading/lagging indicator balance) with the specific suggestions behind it. This is the part that makes an agent useful rather than agreeable.
  • update_element_status accepts an external_ref — the URL or key of the Linear/Jira/GitHub project implementing that initiative. Strategy lives here, tasks live in your execution tool, and the weekly_sync prompt walks an agent across both.

share_matrix publishes a revocable, read-only public page of a matrix. It is refused in local mode — by design: in sovereign mode there is no cloud for your data to leak into, so there is nothing to publish from.

Prompts

weekly_sync (pull execution progress from your issue tracker's MCP, update statuses, prepare the weekly agenda) · matrix_artifact (a boardroom-ready interactive X-Matrix) · strategic_review · deployment_diagnosis · indicator_balance · meeting_setup_guide · visual_matrix · export_data · idea_triage

Development

cd mcp-server
pnpm install
pnpm start:local    # sovereign JSON mode
pnpm start:stdio    # hosted API mode (AUTH_TOKEN, API_BASE_URL)
pnpm start          # Streamable HTTP (server-side; MCP_PORT, API_BASE_URL, OAUTH_ISSUER)

Smoke-test the local transport without any client:

printf '%s\n' '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"smoke","version":"1"}}}' \
  | HOSHIN_DATA_DIR=/tmp/hoshin-smoke node index-local.js 2>/dev/null

stdout carries JSON-RPC only; logs and the startup banner go to stderr.

This repository holds the MCP server and its specifications. The hosted web application (Next.js, Prisma, the OAuth 2.1 authorization server) is a separate, closed codebase — the MIT code here is what you run, and what you can audit before running it.

Issues and pull requests are welcome, in English or French.

Learn more

MIT — the code is a commodity; your strategy is not.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured