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
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 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는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
이 설정은 제작자의 레지스트리 정보로 만들었어요. 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, Detailing Manager
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도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.
Connect your auto detailing studio's tasks, cars, clients and revenue to Claude or ChatGPT.
제작자의 저장소에서 쓰인 그대로 가져왔어요. 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
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요