sonsuchup-mcp
The sonsuchup-mcp server connects AI assistants to Sonsuchup.com, a tool for organizing mystery/detective case investigations, allowing you to manage case data via natural language.
Account Management
Check the active account (
whoami), list all configured accounts (list_accounts), and switch between accounts (use_account)
Case Management
List cases — retrieve metadata including name, location, summary, person/record counts, and direct web links
Get case detail — fetch complete case content including people, alibis, relationships, and records
Create a case — with name, summary, location, occurrence time, and other fields
Update case info — patch any subset of a case's overview fields
Delete a case — permanently delete a case and all its associated data
People & Relationships
Add a person — with name, gender, role (victim/suspect/witness), birth info, notes, and graph position
Add a relationship edge — define a labeled relationship between two people (e.g. "friends", "coworkers")
Alibis, Clues & Records
Add an alibi — attach a time-ranged alibi to a person with status (claimed/confirmed/false)
Add a clue — record a crime-scene object or observation
Add a record — append a timestamped note or timeline entry to a case
Every response includes a direct URL to the relevant case on Sonsuchup.com for easy access.
Allows reading and writing case investigation data stored in a Supabase database, including cases, people, alibis, records, and relationships, with row-level security enforced by MCP tokens.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@sonsuchup-mcpList all my cases"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
sonsuchup-mcp
손수첩(Sonsuchup) — 추리·사건 정리용 개인 웹 도구를 Claude Desktop, Cursor 등 MCP 클라이언트에 연결하는 stdio 서버. Sonsuchup MCP server — Stdio bridge that lets Claude Desktop, Cursor, and other MCP clients read and write your case-investigation data on https://sonsuchup.com.
🇰🇷 한국어
손수첩이 뭔가요?
손수첩은 추리소설·미스터리·실제 사건을 정리하기 위한 개인 웹 도구입니다. 사건 개요, 인물관계도, 알리바이, 타임라인, 기록을 한 곳에서 다룰 수 있습니다. 이 MCP 서버는 그 데이터를 AI 도구로도 다룰 수 있게 해 줍니다.
시작하기 (30초)
1. 토큰 발급
손수첩 웹 → 회원가입/로그인 → 우측 상단 ⚙ 설정 → MCP 연결 → 새 토큰 발급. 평문 토큰(sonsu_mcp_...)은 발급 직후 한 번만 표시되니 즉시 복사하세요.
2. Claude Desktop에 등록
Claude Desktop 메뉴 → Settings → Developer → Edit Config 클릭. 열린 claude_desktop_config.json에 아래를 추가:
{
"mcpServers": {
"sonsuchup": {
"command": "npx",
"args": ["-y", "sonsuchup-mcp"],
"env": {
"SONSUCHUP_TOKEN": "여기에-발급한-sonsu_mcp_xxx-붙여넣기"
}
}
}
}저장 후 Claude Desktop 완전 종료(Cmd+Q) → 재실행.
3. 사용
새 채팅에서:
sonsuchup MCP로 내 사건 목록 보여줘
"월광 호텔 401호 살인 사건"의 알리바이 모순을 찾아줘
"테스트 사건"을 만들고 인물 두 명을 추가해줘4. 여러 계정 연결 (선택)
계정을 여러 개 쓴다면 env에 SONSUCHUP_TOKEN_2, SONSUCHUP_TOKEN_3 … 을 추가하세요. 각 토큰은 해당 계정으로 손수첩에 로그인한 상태에서 따로 발급해야 합니다.
{
"mcpServers": {
"sonsuchup": {
"command": "npx",
"args": ["-y", "sonsuchup-mcp"],
"env": {
"SONSUCHUP_TOKEN": "sonsu_mcp_개인계정-토큰",
"SONSUCHUP_TOKEN_2": "sonsu_mcp_관리계정-토큰"
}
}
}
}연결 후 대화에서:
지금 어느 손수첩 계정에 연결돼 있어? (→ whoami)
연결된 손수첩 계정 목록 보여줘 (→ list_accounts)
admin@example.com 계정으로 전환해줘 (→ use_account)SONSUCHUP_TOKEN이 기본(활성) 계정이며 use_account로 전환합니다. 활성 계정은 메모리에만 유지되어 Claude Desktop을 재시작하면 다시 기본 계정으로 돌아갑니다.
제공 도구 (13개)
계정
이름 | 용도 |
| 현재 활성 계정(이메일) 확인 |
| 설정된 모든 계정 목록 (활성 표시 포함) |
| 이메일로 활성 계정 전환 |
사건
이름 | 용도 |
| 내 사건 목록 (메타 + 손수첩 웹 링크 동봉) |
| 사건 한 건의 전체 (인물·알리바이·관계·기록) |
| 새 사건 생성 |
| 사건 개요 부분 수정 |
| 인물 추가 |
| 인물에 알리바이 추가 |
| 사건 기록 추가 |
| 단서(현장 물건·관찰) 추가 |
| 인물 간 관계 추가 |
| 사건 삭제 (되돌릴 수 없음) |
모든 응답에 손수첩 웹의 직접 링크(url)가 포함됩니다 — Claude가 답변에 클릭 가능한 링크로 인용합니다.
환경 변수
이름 | 필수 | 설명 |
| ✅ | 손수첩 웹에서 발급한 MCP 토큰 (기본/활성 계정) |
| ❌ | 추가 계정 토큰 (다중 계정 연결용) |
| ❌ | 응답 url의 베이스. 기본 |
| ❌ | 기본값 = 손수첩 운영 인스턴스 |
| ❌ | 기본값 내장 (anon, 공개 정보) |
보안
토큰 평문은 발급 직후 1회만 표시됩니다. DB엔 sha256 해시만 저장됩니다.
분실 시 손수첩 웹에서 폐기 → 재발급 하세요.
패키지 안의 Supabase anon key는 공개돼도 안전합니다 (Row Level Security + MCP 토큰 검증으로 보호).
토큰은 자신의 사건만 접근할 수 있습니다 (RLS).
문제 해결
Server disconnected / Could not attach to MCP server
설정에서
command가npx가 아니라node로 잘못 들어갔는데args에 스크립트 경로가 빠진 경우 자주 발생.npx사용을 권장.또는 Claude Desktop을 창만 닫지 말고 Cmd+Q로 완전 종료 후 재실행.
MCP 토큰이 유효하지 않거나 폐기되었습니다
손수첩 웹에서 새 토큰을 발급하고 config의
SONSUCHUP_TOKEN을 교체. Claude Desktop 재시작.
도구가 안 보임 / 채팅이 커넥터 검색만 시도함
Claude Desktop의 Settings → Developer → Local MCP Servers 화면에서 sonsuchup 상태가
running인지 확인.failed면 "로그 보기" 또는tail ~/Library/Logs/Claude/mcp-server-sonsuchup.log로 원인 확인.
nvm 등으로 node 경로가 비표준일 때
npx로 실행하면 일반적으로 PATH 문제 없음. node 절대경로 방식이 필요하면
which node결과를command값으로 사용.
로컬 개발
git clone https://github.com/dalboki/sonsuchup-mcp.git
cd sonsuchup-mcp
npm install
npm run build
SONSUCHUP_TOKEN=... node dist/index.js # stdio 대기 상태면 정상 (Ctrl+C 종료)Claude Desktop에서 publish 전 버전 테스트하려면:
{
"mcpServers": {
"sonsuchup": {
"command": "node",
"args": ["/절대/경로/sonsuchup-mcp/dist/index.js"],
"env": { "SONSUCHUP_TOKEN": "..." }
}
}
}🇺🇸 English
What is Sonsuchup?
Sonsuchup (손수첩, "hand notebook") is a personal web tool for organizing detective fiction, mysteries, and real-life cases — overview, people graph, alibis, timeline, and field notes in one place. This MCP server exposes that data to AI assistants.
Quick start
1. Issue a token
On sonsuchup.com, sign up / log in → ⚙ Settings → MCP 연결 → 새 토큰 발급. The plaintext token (sonsu_mcp_...) is shown once — copy it immediately.
2. Register with Claude Desktop
Claude Desktop → Settings → Developer → Edit Config → add:
{
"mcpServers": {
"sonsuchup": {
"command": "npx",
"args": ["-y", "sonsuchup-mcp"],
"env": {
"SONSUCHUP_TOKEN": "paste-your-sonsu_mcp_xxx-here"
}
}
}
}Save and fully quit Claude Desktop (Cmd+Q), then reopen.
3. Use it
In a new chat:
Show my Sonsuchup cases via MCP
Find alibi contradictions in the "Moonlight Hotel Room 401" murder case
Create a test case and add two people to it4. Connect multiple accounts (optional)
To use more than one account, add SONSUCHUP_TOKEN_2, SONSUCHUP_TOKEN_3 … to env. Each token must be issued while logged into that account on the Sonsuchup web app.
{
"mcpServers": {
"sonsuchup": {
"command": "npx",
"args": ["-y", "sonsuchup-mcp"],
"env": {
"SONSUCHUP_TOKEN": "sonsu_mcp_personal-account-token",
"SONSUCHUP_TOKEN_2": "sonsu_mcp_admin-account-token"
}
}
}
}Then, in chat:
Which Sonsuchup account am I connected to? (→ whoami)
List my connected Sonsuchup accounts (→ list_accounts)
Switch to admin@example.com (→ use_account)SONSUCHUP_TOKEN is the default (active) account; use_account switches it. The active account lives in memory only and resets to the default when Claude Desktop restarts.
Tools (13)
Accounts
Name | Purpose |
| Show the currently active account (email) |
| List all configured accounts (with the active one marked) |
| Switch the active account by email |
Cases
Name | Purpose |
| List my cases (meta + direct web links) |
| Full case content (people, alibis, edges, records) |
| Create a new case |
| Patch a case's overview fields |
| Add a person |
| Add an alibi to a person |
| Add a case record |
| Add a clue (a crime-scene object/observation) |
| Add a relationship between two people |
| Delete a case (irreversible) |
Every response includes a url to the case page in the Sonsuchup web app so the model can cite a clickable link.
Environment variables
Name | Required | Description |
| ✅ | MCP token issued from the Sonsuchup web app (default/active account) |
| ❌ | Additional account tokens (for multi-account use) |
| ❌ | Base URL used in response |
| ❌ | Defaults to the production Sonsuchup instance |
| ❌ | Built-in default (anon, publishable) |
Security model
Plaintext token is shown once at issue time. Only a sha256 hash is stored server-side.
Lost a token? Revoke it on the web and issue a new one.
The embedded Supabase anon key is safe to publish — protected by Postgres RLS and MCP token verification.
A token can only access its owner's cases (enforced by RLS).
Local development
git clone https://github.com/dalboki/sonsuchup-mcp.git
cd sonsuchup-mcp
npm install
npm run build
SONSUCHUP_TOKEN=... node dist/index.js # Stdio waiting = healthy (Ctrl+C to exit)To test a pre-publish build in Claude Desktop, point command to node and args to the absolute path of dist/index.js.
License
MIT © dalboki
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dalboki/sonsuchup-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server