Skip to main content
Glama
dalboki

sonsuchup-mcp

by dalboki

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.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. 여러 계정 연결 (선택)

계정을 여러 개 쓴다면 envSONSUCHUP_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개)

계정

이름

용도

whoami

현재 활성 계정(이메일) 확인

list_accounts

설정된 모든 계정 목록 (활성 표시 포함)

use_account

이메일로 활성 계정 전환

사건

이름

용도

list_cases

내 사건 목록 (메타 + 손수첩 웹 링크 동봉)

get_case_detail

사건 한 건의 전체 (인물·알리바이·관계·기록)

create_case

새 사건 생성

update_case_info

사건 개요 부분 수정

add_person

인물 추가

add_alibi

인물에 알리바이 추가

add_record

사건 기록 추가

add_clue

단서(현장 물건·관찰) 추가

add_edge

인물 간 관계 추가

delete_case

사건 삭제 (되돌릴 수 없음)

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

환경 변수

이름

필수

설명

SONSUCHUP_TOKEN

손수첩 웹에서 발급한 MCP 토큰 (기본/활성 계정)

SONSUCHUP_TOKEN_2SONSUCHUP_TOKEN_20

추가 계정 토큰 (다중 계정 연결용)

SONSUCHUP_WEB_URL

응답 url의 베이스. 기본 https://sonsuchup.com

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": "..." }
    }
  }
}

Related MCP server: mcp-browser-kit

🇺🇸 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 it

4. 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

whoami

Show the currently active account (email)

list_accounts

List all configured accounts (with the active one marked)

use_account

Switch the active account by email

Cases

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_clue

Add a clue (a crime-scene object/observation)

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 (default/active account)

SONSUCHUP_TOKEN_2SONSUCHUP_TOKEN_20

Additional account tokens (for multi-account use)

SONSUCHUP_WEB_URL

Base URL used in response url fields. Default https://sonsuchup.com

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

Available Tools

9 tools
add_alibiA

특정 인물에 알리바이를 추가합니다. status: claimed(주장)/confirmed(확인됨)/false(허위). 기본 claimed.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseIdYes
personLocalIdYes
startNo시작 시각 (datetime-local)
endNo종료 시각 (datetime-local)
contentYes알리바이 내용
statusNo

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose all behavioral traits. It only states it adds an alibi and lists status options, but does not mention consequences like overwriting existing alibis, validation rules, or permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, with the main action in the first sentence and clarifying detail in the second. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple creation tool without output schema or annotations, the description covers purpose and status but lacks information on return values or post-conditions, making it moderately complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds value by explaining the status enum values and indicating the default. However, with 50% schema coverage, the description does not fully compensate for the lack of detail on other parameters like start and end formats.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Add an alibi to a specific person' with verb and resource, and specifies the status enum, distinguishing it from siblings like add_person or add_record.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides the default status but no explicit guidance on when to use this tool versus alternatives or prerequisites. The purpose is clear, but usage context is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_edgeC

두 인물 사이 관계를 추가합니다. from/to는 인물의 local id. label 예: "친구", "직장 동료", "부부".

ParametersJSON Schema
NameRequiredDescriptionDefault
caseIdYes
fromYes
toYes
labelNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavior. It only says 'adds a relationship' but does not mention side effects (e.g., creates records), error conditions, authorization, or idempotency. This is minimal disclosure for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, clear sentences with no extraneous information. The description is appropriately sized and front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the domain (cases, persons), the description lacks context about the caseId parameter and how edges relate to existing data. No output schema, so the agent doesn't know what to expect. The description is insufficient for a complete understanding of the tool's function.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explains the 'from' and 'to' parameters as local IDs and gives label examples, adding value beyond the schema. However, it fails to explain the 'caseId' parameter, which is crucial for the context. Schema coverage is 0%, so the description partially compensates but remains incomplete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'adds' and the resource 'relationship between two people', distinguishing this from other tools like add_person or add_alibi. However, it does not explicitly differentiate from siblings or provide scope. It is specific enough for basic understanding.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, nor any prerequisites or constraints. The description only provides label examples but omits context like required existing persons or case setup. The agent lacks direction for appropriate invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_personB

사건에 인물을 추가합니다. roles 예: ["피해자"], ["용의자"], ["참고인"], ["수사관"]. 추가된 인물의 local id를 반환합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseIdYes
nameYes
genderYes
rolesNo
birthYearNo
birthMonthNo
birthDayNo
noteNo인물 메모
notablesNo특이사항 항목들
xNo인물관계도 X 좌표 (기본 0)
yNo인물관계도 Y 좌표 (기본 0)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must disclose behavioral traits. It mentions returning a local id but does not describe side effects, permissions, or constraints like duplicate name handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loading the purpose and providing a clear example. No redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 11 parameters and no output schema, the description is too brief. It lacks prerequisites, error conditions, and return format beyond 'local id'. Incomplete for a creation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is low (36%), but the description only elaborates on the 'roles' parameter with examples. Other parameters (note, notables, x, y) have schema descriptions, but the description adds no extra meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it adds a person to a case and provides example roles. It distinguishes from siblings like add_alibi by specifying the resource type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like add_alibi or add_edge. The description only states the function without context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_recordC

사건 기록을 추가합니다. time은 datetime-local 문자열 (예: "2026-04-20T14:30") 또는 생략(시간 미지정).

ParametersJSON Schema
NameRequiredDescriptionDefault
caseIdYes
timeNo
contentYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions the action ('add') implying mutation, but does not disclose side effects, permissions required, idempotency, or error behavior. The only behavioral detail is that time can be omitted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: one sentence stating the purpose followed by a clarifying note on the time parameter. It is front-loaded with the core action. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, no annotations, and three parameters, the description is insufficient. It omits return behavior, data constraints for content, and the overall scope of 'record'. An agent would lack enough context to use this tool effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It explains the time parameter (format and optionality), but says nothing about caseId (required it is) or content (required, minLength). The description adds value for time only, leaving two parameters unaddressed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it adds a case record. It uses a specific verb and resource ('add record'), but does not differentiate from sibling tools like add_alibi or add_person, which are more specific record types. The clarity is good but could be more distinguishing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a guideline for the time parameter format ('datetime-local string'), but lacks any guidance on when to use this tool versus alternatives (e.g., add_alibi for alibis). No context on prerequisites or typical use cases is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_caseA

새 사건을 생성합니다. name은 필수, 나머지는 선택. 생성된 사건의 id(UUID)를 반환합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes사건명
occurrenceNo발생 시각, datetime-local 형식 (예: "2026-04-20T14:30")
occurrenceErrorNo발생 시각 오차(분)
reportTimeNo신고/인지 시각
locationNo발생 장소
summaryNo사건 요약

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses basic behavior: creates a case and returns UUID. No annotations provided, so no contradiction. Lacks detail on side effects, idempotency, or authorization.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with action, no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 6 parameters, no output schema, and full schema descriptions, the description is fairly complete. Could mention duplicate name handling or error behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, baseline 3. Description adds meaning by specifying return value and reinforcing optionality of non-name fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Creates a new case' with required vs optional fields and return value. Distinguishes from sibling tools like update_case_info and list_cases.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage: use when creating a new case. No explicit guidance on when not to use or alternatives; e.g., for updates use update_case_info.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_caseA

사건을 영구 삭제합니다. 인물·알리바이·기록 등 자식 데이터도 함께 삭제되며 되돌릴 수 없습니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description effectively discloses that deletion is permanent and cascades to child data (people, alibis, records). This covers the key behavioral traits for a delete operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no superfluous words. The main action is front-loaded, and the critical behavioral warning is provided succinctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple nature of the tool (single param, no output schema), the description covers the essential behavioral aspects. It does not address error handling or how to retrieve the ID, but these are not necessary for basic usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, and the tool description does not explain the 'id' parameter. Although the parameter's purpose is inferable from context, the description fails to add any explicit meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action (permanently delete a case) and the resource (case). It distinguishes from siblings as there are no other delete tools among the listed siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly warns about irreversibility and cascading deletion, guiding the agent to use it only when certain. No explicit 'when not to use' is given, but the context makes it clear this is the dedicated delete tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_case_detailA

사건 한 건의 전체 내용(개요, 인물, 알리바이, 관계, 타임라인 이벤트, 기록)을 반환합니다. 결과의 url은 손수첩 웹에서 이 사건을 바로 여는 링크입니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes사건의 UUID

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It adds behavioral context about the result containing a url link, but does not explicitly state that the tool is read-only or disclose any authorization requirements or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no extraneous words. The first sentence states the main functionality, and the second adds a useful detail about the URL. Information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of returning full case detail and the absence of an output schema, the description adequately lists the components (overview, persons, etc.) and mentions the URL. It does not describe output structure, but the listed components provide sufficient context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with one parameter (id) described as '사건의 UUID'. The description repeats that the tool returns case content but adds no additional semantics about the parameter, such as format or constraints, staying at the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb '반환합니다' (returns) and identifies the resource as '사건 한 건의 전체 내용' (entire content of one case), listing specific components. This clearly distinguishes it from sibling tools like list_cases (which lists cases) and update_case_info (which updates).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not specify that this is for retrieving full detail vs. summary, nor does it mention alternatives like list_cases for overviews.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_casesA

현재 사용자의 사건 목록(메타만)을 반환합니다. 각 항목은 id, name, occurrence, location, summary, 인물·기록 수와 함께 손수첩 웹에서 바로 열 수 있는 url을 포함합니다. 사용자에게 결과를 보여줄 때 각 사건의 url을 함께 노출하세요.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, but the description discloses that it returns metadata only (not full details) and includes a url for direct access. Since it's a read operation, it appropriately avoids side-effect claims. However, it does not mention authentication or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is front-loaded and concise. Every part is meaningful: it states the action, the scope, the content, and an instruction to expose the url.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and no output schema, the description is complete. It specifies the scope ('current user'), the return type (metadata only), the fields, and an actionable instruction for the agent (expose url).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, and schema coverage is 100%. The description adds value by detailing the output structure (id, name, occurrence, location, summary, counts, url) beyond what an empty schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns the current user's case list (metadata only) and enumerates the fields (id, name, occurrence, location, summary, counts, url). It distinguishes from siblings like get_case_detail by specifying 'metadata only'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies it's for listing cases and provides context about the output. It does not explicitly state when not to use it or name alternatives, but from sibling tool names (create_case, delete_case, get_case_detail), the usage is implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_case_infoC

사건 개요의 일부 필드를 수정합니다. 전달한 필드만 변경됩니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
nameNo
occurrenceNo
occurrenceErrorNo
reportTimeNo
locationNo
summaryNo

TDQS

C2.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly states that only passed fields are changed (partial update), which is valuable behavioral information. However, with no annotations and no output schema, it omits details on idempotency, authorization needs, return format, and error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise but arguably too terse. It communicates the core behavior without superfluous content, but could benefit from additional context without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 7 parameters, no output schema, and no annotations, the description fails to provide adequate context. The agent does not know what the tool returns, how to format dates, or what 'occurrenceError' represents. This is insufficient for reliable invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It adds the concept of partial updates but does not describe any individual parameter (e.g., what 'occurrence' or 'occurrenceError' mean). This minimally helps the agent understand the update mechanism but leaves parameter semantics largely unaddressed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool modifies fields of the case summary and specifies partial update behavior. The verb 'modify' and resource 'case info' are distinct from sibling tools like create_case or delete_case. However, it does not enumerate which fields belong to the 'overview', leaving some ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives (e.g., add_record, create_case). The description does not specify prerequisites or situations where this tool is inappropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.7/5.0
Disambiguation5/5

Each tool has a clear, distinct purpose: creating/managing cases, adding persons, relationships (edges), alibis, and records. No two tools overlap in functionality.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern (e.g., add_alibi, create_case, list_cases), making it predictable and easy to navigate.

Tool Count5/5

9 tools is well-scoped for a case management server, covering essential CRUD and relationship operations without being excessive.

Completeness4/5

Core workflows are covered (create, read, update, delete cases; add persons, edges, alibis, records). However, missing operations like delete person, remove edge, or update alibi create minor gaps.

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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