Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
MCP standards client for your own custodial SAIHM operator. Free start: @saihm/mcp-server-pro
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
SAIHM_ENDPOINT_URL, SAIHM_AUTH_HEADER「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"saihm": {
"command": "npx",
"args": [
"-y",
"@saihm/mcp-server"
],
"env": {
"SAIHM_ENDPOINT_URL": "your-value",
"SAIHM_AUTH_HEADER": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add saihm --env SAIHM_ENDPOINT_URL=your-value --env SAIHM_AUTH_HEADER=your-value -- npx -y @saihm/mcp-server動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"saihm": {
"command": "npx",
"args": [
"-y",
"@saihm/mcp-server"
],
"env": {
"SAIHM_ENDPOINT_URL": "your-value",
"SAIHM_AUTH_HEADER": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"saihm": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@saihm/mcp-server"
],
"env": {
"SAIHM_ENDPOINT_URL": "your-value",
"SAIHM_AUTH_HEADER": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント SAIHM-Admin で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:SAIHM_ENDPOINT_URL, SAIHM_AUTH_HEADER
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.3.17)がレジストリに届いたのは27 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Zendesk
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Zendesk MCP Pack — tickets, users, organizations via OAuth.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
The standards client for your own custodial SAIHM operator. It carries no cryptography of its own and expects an operator endpoint URL plus an operator token. If you just want memory working, free, in about a minute, use `@saihm/mcp-server-pro` and ask your agent to *"Join SAIHM"*.
· Apache-2.0
New to SAIHM? Watch the 6-minute overview (captions and transcript), or read the SAIHM manual (PDF).
This package is the standards client: eight memory tools any MCP agent — Claude Code, Claude Desktop, Cursor, or your own — can call. It carries no cryptography of its own. It speaks the publicly documented SAIHM memory protocol over plain MCP and reaches whichever SAIHM operator you point it at.
Which package do I want?
Want to watch it work first? Runnable demos across every major model, offline, no account — [See it run](#see-it-run).
A Model Context Protocol server that exposes eight tools any MCP-capable AI agent (Claude Code, Claude Desktop, custom agents) can call to gain a persistent, encrypted memory layer the user owns:
saihm_remember — store an encrypted memory cellsaihm_recall — retrieve your memories, decrypted by your operatorsaihm_forget — erase a memory; whether erasure is cryptographic or access-control depends on your operator (see its documentation)saihm_status — your protocol-runtime stats and storage tier dashboardsaihm_share / saihm_revoke_share — share chosen memory shards, by shard id, with another agent, and revoke that accesssaihm_governance_propose / saihm_governance_vote — protocol governance; not enabled by default, so expect an error unless your operator has turned it onEach tool forwards to a SAIHM operator endpoint that runs the full protocol stack. The server itself holds no crypto, no storage, and no protocol runtime — those live behind the operator endpoint.
| Tool | Title | Behavior |
|---|---|---|
saihm_remember | Remember | writes a new memory cell |
saihm_recall | Recall | read-only; safe to repeat |
saihm_forget | Forget (GDPR erasure) | destructive — irreversible erasure |
saihm_status | Status | read-only |
saihm_share | Share | writes a sharing contract |
saihm_revoke_share | Revoke share | withdraws a grant |
saihm_governance_propose | Propose (governance) | forwards a proposal; not enabled by default |
saihm_governance_vote | Vote (governance) | forwards a vote; not enabled by default |
Each tool carries MCP annotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) and a human-readable title, so MCP hosts can gate confirmations and agents can select the right tool at reasoning time.
This package speaks MCP and holds no cryptography, so it always needs an operator endpoint and token. Two companions cover the rest:
Runnable, one-command demos ground a memory you own in every major model — Claude, GPT, DeepSeek, Qwen, Kimi, GLM — then prove you can erase it, alongside drop-in adapters for LangChain, LlamaIndex, CrewAI, AutoGen, and LangGraph. Each runs offline in about a minute; no account needed.
Measured — up to ~86% fewer context tokens. Most agents re-send their entire transcript every turn, so context spend grows ~O(N²) over a session; recalling a bounded set of memory cells instead cut input tokens by 62.8%–85.9% across a realistic multi-session coding task. The benchmark is open, offline, and deterministic — reproduce the number rather than trust it:
git clone https://github.com/SAIHM-Admin/saihm-token-benchmark
cd saihm-token-benchmark && npm install && node benchmark.mjs
npm install @saihm/mcp-server
npx @saihm/mcp-server
The server needs two env vars:
SAIHM_ENDPOINT_URL=https://operator.example.com/mcp
SAIHM_AUTH_HEADER=Bearer
Don't have an endpoint and token yet? They're issued by a SAIHM *operator*.
This package is deliberately crypto-free, so it needs a custodial
operator — one that performs cryptography server-side and returns plaintext.
The hosted SAIHM service at [https://saihm.net](https://saihm.net) is not one. It is
non-custodial by design: it stores only ciphertext and never holds your keys,
so cells sealed there can only be opened by a client that holds them. To use
the hosted service — including the free trial (sign in with GitHub, no
card) — use
[`@saihm/mcp-server-pro`](https://www.npmjs.com/package/@saihm/mcp-server-pro),
which seals and opens on your own machine. See
Free trial and
Join SAIHM below.
Use *this* package against a custodial operator you run or subscribe to.
Until one is configured, the tools have nowhere to reach and will return an
error.
Authorization header value the operator expects (typically a Bearer issued to you after key-bound enrolment). The server is authentication-agnostic and never transmits raw private keys; the operator's enrolment flow keeps your signing key on your machine.Both are read from the process environment. This package loads no .env file — it has no dotenv dependency and never reads configuration from disk — so set them in the env block of your MCP host's server configuration, or export them in the shell that launches the server. If you keep them in a .env for your own convenience, source it yourself before launching, and keep it out of version control.
Want to test SAIHM on real infrastructure before you pay? Start a free trial — for testing purposes, no card — by proving you're a unique person once through a GitHub device sign-in. It runs through the non-custodial @saihm/mcp-server-pro client, which seals cells on your own machine so the operator stays blind.
First generate your master secret — it never leaves your machine, and it is the only key to your memory:
openssl rand -hex 32 > saihm-master.key && chmod 600 saihm-master.key
Then activate:
SAIHM_ENDPOINT_URL=https://saihm.net/mcp \
SAIHM_MASTER_SECRET_FILE=./saihm-master.key \ SAIHM_TIER=FREE \ npx -y @saihm/mcp-server-pro free-join
It prints a short code and a link: open https://github.com/login/device in your browser and enter the code. The sign-in stays in your browser — this client never sees or holds your GitHub token; it is exchanged server-side and kept ephemeral. When free-join returns, start the server normally (drop free-join) and it self-onboards on the free trial. No card, and nothing to cancel — it's a fixed, one-time allowance, not an auto-renewing subscription.
Ready for production? Upgrade in place to a monthly plan — same signing key, same memories, no re-onboarding.
Wiring the server in is not the same as using it. The moment that matters is the first recall that returns something — before that you have an empty store and an agent with no particular reason to reach for it.
Here is the whole product in miniature. Once the server is wired in (next section) and your host has restarted, say this to your agent:
Remember that I take my coffee black, and that I'm building a Rust CLI called
ferry.
...then start a new conversation (or restart your host) and ask:
What do you know about me?
The new conversation should come back with both facts, and your host should show a saihm_recall call. That conversation never saw the first one — the memory is what carried them across. Check that round trip before you build anything on top of it.
If the recall comes back empty, it is nearly always one of these:
| what you see | cause | fix |
|---|---|---|
| no SAIHM tools offered at all | the host never started the server | keep timeout in the JSON below, then restart the host |
| tools offered, but the agent never calls them | it has no standing instruction to | see Tell your agent to use it below — this is the common one |
| recall runs but comes back empty | nothing was stored on the first turn | ask for saihm_remember by name, then recall again |
401 or 403, and your endpoint is saihm.net or saihm.coti.global | that service is non-custodial — this client cannot read it | use @saihm/mcp-server-pro instead; see the free trial above |
401 or 403 from your own operator | no valid token | re-issue it with that operator |
could not reach ... | endpoint wrong or unreachable | check SAIHM_ENDPOINT_URL; the message names the cause |
Host note (2026-09-23). The hosted endpoint is
https://saihm.net/mcp. The previous host,saihm.coti.global, serves the identical service until 2026-12-31 and is then discontinued; a configuration that still names it should switchSAIHM_ENDPOINT_URLtohttps://saihm.net/mcp.
{
"mcpServers": { "saihm": { "command": "npx", "args": ["@saihm/mcp-server"], "env": { "SAIHM_ENDPOINT_URL": "https://operator.example.com/mcp", "SAIHM_AUTH_HEADER": "Bearer " }, "timeout": 60 } } }
Keep timeout, and keep the block as strict JSON with no trailing commas. Hosts that don't recognise timeout ignore it, but Cline allows a server only 1.5 s to start — too short for npx to resolve and launch a package — and a server that misses the deadline is skipped silently, with no error in the chat.
Wiring the server in makes the tools available; it does not make an agent reach for them. Say this once, and keep it in w
冒頭だけを表示しています。続きはリポジトリで読めます