sonsuchup-mcp

sonsuchup-mcp

MCP server for Sonsuchup web tool that allows AI assistants to manage mystery cases, including people, alibis, timelines, and records via natural language.

Category
访问服务器

README

sonsuchup-mcp

npm version license node

손수첩(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.vercel.app.


🇰🇷 한국어

손수첩이 뭔가요?

손수첩은 추리소설·미스터리·실제 사건을 정리하기 위한 개인 웹 도구입니다. 사건 개요, 인물관계도, 알리바이, 타임라인, 기록을 한 곳에서 다룰 수 있습니다. 이 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호 살인 사건"의 알리바이 모순을 찾아줘
"테스트 사건"을 만들고 인물 두 명을 추가해줘

제공 도구 (9개)

이름 용도
list_cases 내 사건 목록 (메타 + 손수첩 웹 링크 동봉)
get_case_detail 사건 한 건의 전체 (인물·알리바이·관계·기록)
create_case 새 사건 생성
update_case_info 사건 개요 부분 수정
add_person 인물 추가
add_alibi 인물에 알리바이 추가
add_record 사건 기록 추가
add_edge 인물 간 관계 추가
delete_case 사건 삭제 (되돌릴 수 없음)

모든 응답에 손수첩 웹의 직접 링크(url)가 포함됩니다 — Claude가 답변에 클릭 가능한 링크로 인용합니다.

환경 변수

이름 필수 설명
SONSUCHUP_TOKEN 손수첩 웹에서 발급한 MCP 토큰
SONSUCHUP_WEB_URL 응답 url의 베이스. 기본 https://sonsuchup.vercel.app
SONSUCHUP_SUPABASE_URL 기본값 = 손수첩 운영 인스턴스
SONSUCHUP_SUPABASE_ANON_KEY 기본값 내장 (anon, 공개 정보)

보안

  • 토큰 평문은 발급 직후 1회만 표시됩니다. DB엔 sha256 해시만 저장됩니다.
  • 분실 시 손수첩 웹에서 폐기 → 재발급 하세요.
  • 패키지 안의 Supabase anon key는 공개돼도 안전합니다 (Row Level Security + MCP 토큰 검증으로 보호).
  • 토큰은 자신의 사건만 접근할 수 있습니다 (RLS).

문제 해결

Server disconnected / Could not attach to MCP server

  • 설정에서 commandnpx가 아니라 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.vercel.app, 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 it

Tools (9)

Name Purpose
list_cases List my cases (meta + direct web links)
get_case_detail Full case content (people, alibis, edges, records)
create_case Create a new case
update_case_info Patch a case's overview fields
add_person Add a person
add_alibi Add an alibi to a person
add_record Add a case record
add_edge Add a relationship between two people
delete_case 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
SONSUCHUP_TOKEN MCP token issued from the Sonsuchup web app
SONSUCHUP_WEB_URL Base URL used in response url fields. Default https://sonsuchup.vercel.app
SONSUCHUP_SUPABASE_URL Defaults to the production Sonsuchup instance
SONSUCHUP_SUPABASE_ANON_KEY 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

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选