Skip to main content
Glama
Eurobertics

mcp-rpg-worldstate

by Eurobertics

MCP RPG Worldstate

로컬, 시스템 중립적 MCP 서버로, AI 게임 마스터에게 롤플레잉 세계를 위한 영구 기억을 제공합니다. 서술적 콘텐츠는 대부분 자유 텍스트로 저장하며, 검색과 일관성에 중요한 것만 구조화합니다: 세계 소속, 엔티티 유형, 장소, 장면, 참가자, 활성 상태.

기본 원칙

일시적이거나 서술적으로 관련 없는 관찰이 아닌, 영구적이거나 서술적으로 중요한 사실만 저장합니다. 고장난 행성 기상 제어 장치는 중요할 수 있지만, 바람에 흐트러진 헤어스타일은 일반적으로 중요하지 않습니다.

일반적인 조회는 의도적으로 단계적으로 이루어집니다:

  1. list_worlds는 기존 세이브를 표시합니다.

  2. get_world_overview는 간결한 세이브 미리보기를 제공합니다.

  3. get_current_context는 즉시 플레이 가능한 장면을 로드합니다.

  4. search_entities는 필요할 때만 추가 세부 정보를 가져옵니다.

변경 사항은 apply_world_changes를 사용하여 단일 원자적 호출로 묶을 수 있습니다.

새로 생성된 엔티티는 동일한 호출 내에서 로컬 참조를 통해 서로를 참조할 수 있습니다. 간결한 이벤트 및 체크포인트 아카이브는 필요 시 현재 상태가 어떻게 형성되었는지 설명하지만, 권위 있는 세계 상태를 대체하지는 않습니다.

Related MCP server: Librarian

요구 사항 및 설치

  • Node.js 24 이상 (통합 SQLite 모듈용)

  • npm

npm install
npm run build
npm test

서버는 기본적으로 작업 디렉터리의 rpg-worldstate.sqlite를 사용합니다. 안정적이고 명시적인 저장 위치를 위해서는 RPG_WORLDSTATE_DB를 절대 경로로 설정해야 합니다.

MCP 구성

로컬 MCP 클라이언트는 stdio를 통해 서버를 시작할 수 있습니다. 일반적인 구성 패턴은 다음과 같습니다:

{
  "mcpServers": {
    "rpg-worldstate": {
      "command": "node",
      "args": [
        "/home/eurobertics/projects/mcp_rpg_worldstate/dist/index.js"
      ],
      "env": {
        "RPG_WORLDSTATE_DB": "/home/eurobertics/projects/mcp_rpg_worldstate/rpg-worldstate.sqlite"
      }
    }
  }
}

이 구성의 정확한 위치는 사용 중인 MCP 클라이언트에 따라 다릅니다. 서버는 MCP 프로토콜이 stdout에서 깨끗하게 유지되도록 프로토콜 메시지를 stderr에만 기록합니다.

Windows의 Claude Desktop, 서버는 WSL에 있는 경우

Claude Desktop이 Windows에서 실행되고 MCP 서버가 WSL 내부에 설치된 경우, Claude는 wsl.exe를 통해 서버를 시작할 수 있습니다. 구성은 일반적으로 다음 위치에 있습니다:

%APPDATA%\Claude\claude_desktop_config.json

예시:

{
  "mcpServers": {
    "rpg-worldstate": {
      "command": "wsl.exe",
      "args": [
        "-d",
        "Ubuntu",
        "--exec",
        "bash",
        "-lc",
        "cd /home/eurobertics/projects/mcp_rpg_worldstate && RPG_WORLDSTATE_DB=/home/eurobertics/projects/mcp_rpg_worldstate/rpg-worldstate.sqlite exec node dist/index.js"
      ]
    }
  }
}

Ubuntu는 사용 중인 WSL 배포판의 정확한 이름과 일치해야 합니다. 설치된 배포판은 PowerShell에서 다음 명령으로 확인할 수 있습니다:

wsl.exe --list --quiet

bash -lc는 로그인 셸을 로드합니다. 이는 특히 Node.js가 fnm이나 nvm 같은 버전 관리자를 통해 설치된 경우 중요합니다. 프로젝트 및 데이터베이스 경로는 WSL 내부의 Linux 경로입니다. 전체 셸 명령문은 JSON 구성에서 args의 단일 요소로 유지되어야 합니다.

시작은 Claude 구성 전에 PowerShell에서 직접 확인할 수 있습니다:

wsl.exe -d Ubuntu --exec bash -lc "cd /home/eurobertics/projects/mcp_rpg_worldstate && RPG_WORLDSTATE_DB=/home/eurobertics/projects/mcp_rpg_worldstate/rpg-worldstate.sqlite exec node dist/index.js"

성공적으로 시작되면 stderr에 예를 들어 다음과 같이 표시됩니다:

mcp-rpg-worldstate is using /home/eurobertics/projects/mcp_rpg_worldstate/rpg-worldstate.sqlite

이후 프로세스는 활성 상태를 유지하며 stdin을 통해 MCP 메시지를 기다립니다. 이것이 예상된 동작입니다. 구성 파일을 변경한 후에는 Claude Desktop을 완전히 종료하고 다시 시작해야 합니다.

ChatGPT 참고: 이 구성은 Claude Desktop의 로컬 stdio 전송을 사용합니다. ChatGPT Desktop에는 그대로 적용할 수 없습니다. 그러려면 서버가 ChatGPT가 지원하는 HTTP 전송과 접근 가능한 URL을 통해 추가로 제공되어야 합니다.

도구

도구

용도

list_worlds

모든 세이브의 간결한 목록

create_world

새로운 격리된 세계/캠페인 생성

update_world

영구 세계 설명 또는 요약 변경

delete_world

세계를 포함한 모든 종속 데이터 재귀적 삭제

apply_world_changes

엔티티를 모아서 생성, 변경 또는 삭제

search_entities

캐릭터, 장소, 플롯, 메모 및 아이템 검색

set_current_scene

현재 장면과 참가자를 간결하게 기록

get_world_overview

토큰 효율적인 세이브 미리보기 로드

get_current_context

현재 플레이 가능한 컨텍스트 로드

create_checkpoint

플레이어 안전 회고와 선택적 GM 메모 저장

get_recent_events

관련 이벤트를 페이지네이션 또는 체크포인트 이후부터 읽기

list_checkpoints

이전 세션 및 챕터 상태를 페이지네이션으로 로드

random_numbers

서술적 결정을 위한 중립적 난수

엔티티 유형은 character, location, plot, note, item입니다. 캐릭터나 아이템은 locationId를 통해 현재 위치를 가질 수 있습니다. 장소는 parentId로 중첩될 수 있습니다. 장면 참여는 이와 별개입니다: 짧은 공동 장면 전환이 모든 영구 위치를 자동으로 변경할 필요는 없습니다.

배치 내 로컬 참조

Create 작업은 호출 내에서 고유한 ref를 정의할 수 있습니다. 다른 변경 사항은 참조된 Create 작업이 배열에서 나중에 있더라도 locationRef 또는 parentRef로 이를 사용할 수 있습니다:

{
  "worldId": 1,
  "changes": [
    {
      "action": "create",
      "ref": "mara",
      "kind": "character",
      "name": "Mara",
      "locationRef": "tavern"
    },
    {
      "action": "create",
      "ref": "cellar",
      "kind": "location",
      "name": "Weinkeller",
      "parentRef": "tavern"
    },
    {
      "action": "create",
      "ref": "tavern",
      "kind": "location",
      "name": "Zum hinkenden Drachen"
    }
  ],
  "summary": "Mara und ihr Gasthaus wurden eingeführt."
}

응답에는 생성된 숫자 ID가 포함된 createdRefs가 포함됩니다. 알 수 없거나, 중복되거나, 순환적인 참조 및 예를 들어 locationId와 locationRef를 동시에 지정하는 경우 전체 트랜잭션이 중단됩니다.

이벤트, 비밀 및 체크포인트

apply_world_changes의 summary는 간결한 역사적 이벤트 항목을 생성합니다. 배치가 비밀 엔티티와 관련된 경우 요약은 eventSecret: true로 비밀로 표시되거나 생략되어야 합니다. 이렇게 하면 비밀 변경이 실수로 공개 이벤트 기록에 나타날 수 없습니다.

get_recent_events는 기본적으로 id DESC 순서로 이벤트를 제공하며, 역방향 페이지네이션을 위한 beforeId, 텍스트 검색 및 sinceCheckpointId를 지원합니다. 각 체크포인트는 내부적으로 당시의 이벤트 상태를 저장하므로 "이 체크포인트 이후로 무엇이 있었나?"라는 질문에 명확하게 답할 수 있습니다.

list_checkpoints는 이전 체크포인트도 최신순으로 제공하며 beforeId로 페이지네이션합니다.

플레이어 안전 체크포인트

각 새 체크포인트는 두 가지 정보 채널을 분리합니다:

{
  "worldId": 1,
  "title": "Die Nacht im hinkenden Drachen",
  "playerRecap": "Bernd fand im Keller eine königliche Münze. Mara behauptete, sie noch nie gesehen zu haben.",
  "gmNotes": "Mara ist die verschwundene Königin."
}
  • playerRecap은 필수이며 이미 관찰되었거나, 공개되었거나, 합리적으로 알려진 사실만을 위한 것입니다.

  • gmNotes는 선택 사항이며 항상 게임 마스터 전용입니다.

  • 숨겨진 정체성, 동기, 원인, 계획, 장소 및 미래 전개는 절대 playerRecap에 속하지 않습니다.

  • 의심스러운 경우 정보는 gmNotes, 비밀 엔티티 또는 비밀 이벤트에 속하며 공개 회고에 속하지 않습니다.

서버는 콘텐츠를 자동으로 분류하거나, 정리하거나, 재구성하지 않습니다. 호출하는 AI가 올바른 분류를 담당합니다. 엔티티와 이벤트는 권위 있는 소스로 남아 있으며, 체크포인트는 간결한 내러티브 세이브 미리보기입니다.

get_world_overview와 list_checkpoints는 기본적으로 playerRecap만 반환합니다. gmNotes는 includeSecrets: true일 때만 별도 필드로 출력됩니다. 이 옵션은 권한이 있는 게임 마스터 컨텍스트에서만 사용해야 합니다. 두 텍스트는 서버에서 절대 병합되지 않습니다.

create_checkpoint에 대한 이전 입력 summary는 더 이상 허용되지 않습니다. 따라서 모든 새 클라이언트는 명시적으로 플레이어 안전 회고를 만들어야 합니다.

데이터베이스 마이그레이션

스키마는 SQLite PRAGMA user_version을 통해 버전이 관리됩니다. 서버 시작 시 이전 데이터베이스는 트랜잭션 내에서 자동으로 최신 상태로 마이그레이션됩니다. 이전 체크포인트 summary 내용은 안전을 위해 잠재적으로 비밀로 간주됩니다: gmNotes로 이동되며 공개적으로는 중립적인 알림으로만 대체됩니다. 이전 요약은 자동으로 플레이어 지식으로 공개되지 않습니다. 버전 전환 전에는 SQLite 파일의 백업을 권장합니다.

선택적 Codex 스킬

skills/rpg-worldstate-gm 아래에 절약형 로딩, 관련 상태 변경, 비밀 및 체크포인트에 대한 규칙이 포함된 작은 보조 스킬이 있습니다. MCP 서버나 다른 클라이언트에는 필요하지 않습니다.

로컬 설치를 위해 폴더를 개인 Codex 스킬 디렉터리에 복사할 수 있습니다:

cp -R skills/rpg-worldstate-gm ~/.codex/skills/

삭제 및 일관성

delete_world는 안전을 위해 정확한 확인 DELETE: <세계 이름>을 요구합니다. 그 후 SQLite는 외래 키 캐스케이드를 통해 해당 세계의 모든 캐릭터, 장소, 플롯, 장면, 체크포인트 및 이벤트를 제거합니다.

서로 다른 세계 간의 연결은 거부됩니다. 묶인 변경 사항은 트랜잭션으로 실행됩니다: 하나의 변경이 유효하지 않으면 그 중 어떤 것도 저장되지 않습니다.

개발

npm run dev
npm run check
npm test

주요 파일은 다음과 같습니다:

  • src/store.ts: SQLite 스키마, 검증 및 쿼리

  • src/server.ts: 공개 MCP 도구 및 입력 스키마

  • src/index.ts: 로컬 stdio 진입점

  • src/*.test.ts: 데이터베이스 및 MCP 프로토콜 테스트

Available Tools

13 tools
apply_world_changesApply relevant world-state changesA

Create, update or delete several durable entities atomically in one call. Create operations may define local refs used by locationRef or parentRef, including forward references. Store only lasting or story-relevant changes, preferably together at natural story boundaries.

ParametersJSON Schema
NameRequiredDescriptionDefault
changesYes
summaryNoOptional concise event summary explaining this group of changes.
worldIdYesNumeric world ID from list_worlds or create_world.
eventSecretNoMark the event summary as GM-only. Required when a summarized batch affects any secret entity.

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries full behavioral burden. It discloses atomicity ('atomically') and durability ('durable entities'), which are critical operational traits. It also explains local refs and forward references, clarifying how changes can reference each other. Missing details like failure modes or rollback behavior are partially covered by atomicity, but not fully elaborated. Overall, it provides enough behavioral context for safe invocation.

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, both dense with information. Key operational details (atomicity, refs) are front-loaded, followed by usage guidance. No wasted words; every clause earns its place. Ideal conciseness.

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?

For a complex batch tool with three action types and nested object schemas, the description covers the essential operating contract: atomicity, refs, and appropriate usage. It does not mention the 100-item limit or the eventSecret secret-entity rule, but those are schema-encoded. Given the schema's richness and the description's focus on behavior, it is sufficiently complete for an agent to understand the tool's purpose and constraints, though a note on error handling would elevate it.

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 covers 75% of parameters (summary, worldId, eventSecret have descriptions; changes does not). The description adds a nuance about local refs and forward references beyond the schema's generic ref mentions. However, it does not specify how 'changes' should be structured overall, and the schema already documents most parameter semantics. The added value is marginal but non-zero.

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 action (create, update, delete) and resource (durable entities) performed atomically in one call. It distinguishes itself from sibling tools like update_world or create_checkpoint by emphasizing batch atomicity and multi-entity support. The verb-resource pair is specific and unambiguous.

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 provides guidance on when to use the tool: 'Store only lasting or story-relevant changes, preferably together at natural story boundaries.' This implies batching at narrative milestones and filtering for durable changes. However, it does not explicitly name alternative tools or state when NOT to use it (e.g., for single-entity updates), leaving some inference to the agent.

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

create_checkpointCreate save-game checkpointA

Create a checkpoint with strictly separated player-safe recap and optional GM-only notes. The server does not classify or rewrite content; entities and events remain authoritative.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
gmNotesNoOptional GM-only checkpoint notes for concealed information relevant to continuing the campaign. Never returned unless secrets are explicitly requested.
worldIdYesNumeric world ID from list_worlds or create_world.
playerRecapYesConcise player-safe recap. Include only facts explicitly observed, learned, or reasonably known by the player characters. Never include concealed identities, motives, causes, plans, locations, future developments, or other unrevealed GM information.

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden. It goes beyond the schema by stating that the server does not classify or rewrite content, making it clear that the tool stores what it is given. The 'strictly separated' and GM-only phrasing also signals access semantics and data-handling behavior.

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 deliver the core behavior, content separation, and the server's non-rewriting guarantee with no wasted wording. The sentence is front-loaded and free of tautology.

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 tool's simple flat parameter set, no output schema, and no enums or nested structures, the description plus schema supplies what a caller needs for a correct create operation. A missing explicit usage boundary and a description of the returned checkpoint identifier prevent a perfect score.

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 input schema already provides detailed guidance for worldId, gmNotes, and playerRecap, covering 75% of parameters; title is self-explanatory. The description adds orientation about recap and GM-note separation but does not introduce new parameter-level semantics.

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 explicitly states it "Create[s] a checkpoint" and characterizes its two core content types: player-safe recap and GM-only notes. This is a clear verb+resource statement and it is naturally distinguished from siblings like list_checkpoints or update_world.

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 create a checkpoint versus setting current scene, listing checkpoints, or applying world changes. The intended usage must be inferred entirely from the tool name and the word 'checkpoint.'

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

create_worldCreate RPG worldB

Create an isolated RPG world/campaign. Description holds its durable tone, setting, rules and boundaries as free text.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
summaryNoShort save-preview premise, ideally a few sentences.
descriptionNo

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are present, so the description carries full burden. It reveals that the 'description' parameter holds tone/settings, but doesn't disclose persistence, side effects, authorization, or what 'isolated' means operationally. For a create/mutation tool this is under-transparent.

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?

Two short sentences, efficient and front-loaded, but at the expense of needed context.

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?

A create tool with no annotations and no output schema needs to explain return value or side effects. None provided. Sibling context (update_world, set_current_scene) raises questions about whether creation also activates the world, which isn't addressed.

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?

With only 33% schema coverage, the description should compensate. It only clarifies the 'description' parameter ('holds its durable tone...'). No help for 'name' (required) or 'summary' beyond 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?

Clearly states the verb 'Create' and resource 'RPG world/campaign'. Calls it 'isolated' adding scope. Distinguishes from sibling 'create_checkpoint' and update/delete siblings.

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?

Implies usage for creating a new world but provides no explicit when-to-use or alternatives. The word 'isolated' hints at separation but no routing guidance.

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

delete_worldPermanently delete RPG worldA
Destructive

Permanently delete a world and all related entities, scenes, checkpoints and events. Requires exact confirmation 'DELETE: '.

ParametersJSON Schema
NameRequiredDescriptionDefault
worldIdYesNumeric world ID from list_worlds or create_world.
confirmationYes

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the destructiveHint annotation, the description reveals that deletion cascades to all related entities, scenes, checkpoints and events, and requires an exact confirmation string. This is valuable behavioral context that prevents accidental destructive calls and explains the guardrail.

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 deliver the key behavior, scope, and confirmation requirement without redundancy. The destructive nature is front-loaded, making it immediately visible to an agent.

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 the destructiveHint annotation, two simple parameters, and no output schema, the description is sufficiently complete. It explains what gets deleted, the confirmation safeguard, and how to identify the world, leaving no critical gap for correct invocation.

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 only 50% because the confirmation parameter lacks a description. The description compensates by specifying the exact required format: 'DELETE: <world name>'. It also references list_worlds and create_world indirectly through the schema description for worldId, so the essential parameter semantics are covered.

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 ('delete') and resource ('world'), and specifies the full scope of deletion ('all related entities, scenes, checkpoints and events'). This clearly differentiates it from siblings like update_world and create_world, making the tool's purpose unambiguous.

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 clearly implies this is the tool for permanently removing an entire world, and the confirmation requirement is a concrete usage instruction. It does not explicitly name alternatives or state when not to use the tool, but the context is clear enough that an agent can identify the right invocation scenario.

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

get_current_contextLoad current playable contextA
Read-only

Load world framing plus current scene, its location, characters currently assigned there and active plots. Use after the compact overview when continuing play.

ParametersJSON Schema
NameRequiredDescriptionDefault
worldIdYesNumeric world ID from list_worlds or create_world.
includeSecretsNo

TDQS

A3.9/5.0
Behavior3/5

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

The annotation readOnlyHint=true indicates the tool is read-only, and the description does not contradict this (annotation_contradiction=false). The description adds behavioral context about what data is loaded (world framing, scene details), which goes beyond the annotation, but it does not disclose potential performance implications or the exact structure of the returned context. Given the read-only annotation, the bar is lowered, but the description could add more depth about the returned data.

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 concise and front-loaded with the core purpose, followed by a usage hint. Every sentence adds value, and there is no redundancy with the schema or annotations. It is appropriately sized for the tool's complexity.

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 tool is a read-only context loader with a relatively simple input schema (one required param, one optional boolean), the description is fairly complete. It indicates the type of information returned (framing, scene, location, characters, plots) and the usage context. However, it does not explain the behavior of includeSecrets (e.g., whether it loads hidden plots or character secrets), which could be important for correct invocation. There is no output schema, but the description partially compensates by listing the content types. Minor gaps remain, but overall it is sufficient.

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?

The input schema covers half of the parameters: worldId is described as a numeric ID from list_worlds or create_world, with exclusiveMinimum and maximum. However, includeSecrets lacks a description. The tool description does not explicitly explain the parameters, but given the 50% schema coverage, the description adds some context by implying that the loaded context might include secrets (from the parameter name). The description partially compensates for the missing schema documentation.

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 identifies the tool as loading world framing, current scene, location, characters, and plots, with a specific verb and resource. It distinguishes itself from the compact overview and from siblings like get_world_overview and get_recent_events by focusing on the current playable context.

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 includes a clear usage hint: 'Use after the compact overview when continuing play.' This provides context for when to call the tool, though it does not explicitly mention alternatives or exclusions. It effectively instructs on the intended sequencing.

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

get_recent_eventsRead recent relevant eventsA
Read-only

Read a compact newest-first history explaining how the authoritative current state developed. Supports backward pagination and events since a checkpoint; do not use it instead of current context.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo
worldIdYesNumeric world ID from list_worlds or create_world.
beforeIdNo
includeSecretsNo
sinceCheckpointIdNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true. The description adds meaningful behavioral context beyond that: newest-first ordering, compactness, backward pagination, checkpoint-based filtering, and the relationship to current context. No contradiction with annotations.

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 with no wasted words. The core purpose is front-loaded, and the exclusion is stated immediately after the capabilities. Every sentence earns its place.

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?

With no output schema and low parameter documentation, the description leaves out important invocation details: return shape, what 'relevant events' means, how query filtering works, what includeSecrets does, and how pagination parameters interact. An agent would still have to guess at several behaviors.

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 description coverage is only 17%, so the description must compensate for undocumented parameters. It mentions backward pagination and checkpoint filtering, which hints at beforeId and sinceCheckpointId, but it does not explain limit, query, includeSecrets, or pagination mechanics. This is insufficient for a 6-parameter tool with mostly undocumented 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 uses a specific verb ('Read') and resource ('compact newest-first history') and explains the tool's purpose: showing how the authoritative current state developed. It also distinguishes itself from current context, which is a sibling tool, so an agent can tell them apart.

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 gives concrete usage context: backward pagination and events since a checkpoint. It also explicitly warns 'do not use it instead of current context,' providing a when-not. It does not name all alternative siblings or broader selection criteria, but the guidance is clear enough.

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

get_world_overviewLoad compact save previewA
Read-only

Load a token-conscious save preview. The latest checkpoint contains only playerRecap by default; GM notes and other secret records require explicitly authorized secret access.

ParametersJSON Schema
NameRequiredDescriptionDefault
worldIdYesNumeric world ID from list_worlds or create_world.
includeSecretsNoReturn separately stored GM-only information. Use only in an authorized gamemaster context.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds meaningful behavioral context: the latest checkpoint contains only playerRecap by default, and GM notes/secret records require explicitly authorized secret access. This goes beyond the annotation and clarifies what the tool actually returns.

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 with no filler. The core purpose is front-loaded, and the important caveat about secret access is stated directly. Every sentence earns its place.

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?

For a read-only preview tool with two well-documented parameters and no output schema, the description plus schema is sufficient for an agent to call it correctly. It could optionally describe the return shape, but that is not necessary given the compact nature of the tool and the existing annotations.

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 description coverage is 100%, so the schema already documents both parameters. The description reinforces includeSecrets' default behavior by explaining the default playerRecap-only content, but it adds no new parameter syntax, format, or additional semantic detail beyond what the schema provides.

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 states a specific verb and resource: 'Load a token-conscious save preview.' It also clarifies the default content (playerRecap only) and the secret-access requirement, which helps distinguish it from siblings like list_checkpoints and get_current_context, though it does not explicitly name alternatives.

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 implies usage for a compact, token-conscious preview and warns that secrets require authorized access, but it does not explicitly state when to use this tool versus siblings such as list_checkpoints or get_current_context. The context is present but the exclusion/alternative guidance is left to inference.

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

list_checkpointsList earlier save checkpointsA
Read-only

List player-safe checkpoint recaps newest first. GM notes remain absent unless includeSecrets is explicitly true in an authorized GM context.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
worldIdYesNumeric world ID from list_worlds or create_world.
beforeIdNo
includeSecretsNoReturn gmNotes as a separate field. Use only in an authorized gamemaster context.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already mark this as read-only (readOnlyHint=true), and the description adds meaningful behavior beyond that: results are ordered newest first, GM notes are excluded by default, and includeSecrets controls their visibility. It does not discuss rate limits or error conditions, but for a read-only list tool this is solid coverage.

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, zero filler. The core behavior ('player-safe checkpoint recaps newest first') is front-loaded, and the security-sensitive GM note caveat is placed immediately after. Every word earns its place.

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?

For a read-only list with no output schema, the description covers the essential contract: what is listed, in what order, and under what conditions secret content appears. The only minor gap is the lack of explicit guidance on pagination, but 'newest first' plus the beforeId field make it inferable.

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 input schema documents worldId and includeSecrets but leaves limit and beforeId undocumented (50% coverage). The description partially compensates by clarifying includeSecrets semantics ('in an authorized GM context') and implying cursor behavior via 'newest first', but it never explains how beforeId or limit affect the response.

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 specifies the action ('List'), the resource ('player-safe checkpoint recaps'), and adds ordering ('newest first'). It clearly distinguishes the read operation from siblings like create_checkpoint and apply_world_changes, though it does not explicitly name alternative tools to differentiate.

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 phrase 'player-safe' and the note about 'authorized GM context' imply the player vs. gamemaster use case, but the description never explicitly says when to use this tool versus alternatives like get_recent_events or get_world_overview. The usage context is clear by implication, not by directive.

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

list_worldsList RPG worldsA
Read-only

List compact save-game entries. Use this first in a new chat; it never loads full world data.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description doesn't need to repeat that. It adds the behavioral detail that it never loads full world data, which is useful. However, it doesn't describe the return format or any pagination, but for a zero-parameter list tool this is acceptable.

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 sentences with no waste. The key usage guidance is front-loaded, and the behavioral note is concise.

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?

For a zero-parameter, read-only list tool with no output schema, the description covers the essential usage and behavior. It could mention what 'compact' means or the return format, but it's adequate for an agent to call it correctly.

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?

There are zero parameters, so the schema is trivially complete. The description adds the semantic that it returns compact entries, which is useful context beyond the empty schema. Baseline 4 for zero params is appropriate.

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 states a specific verb ('List') and resource ('compact save-game entries'), and distinguishes it from siblings by noting it never loads full world data. It doesn't explicitly name a sibling, but the purpose is clear.

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?

It explicitly says to use this first in a new chat, which is a clear usage context. It doesn't mention alternatives or when not to use it, but the guidance is sufficient for a simple list tool.

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

random_numbersGenerate neutral random integersA
Read-only

Generate random integers for unbiased narrative decisions. This is not a rules or dice system.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxYes
minYes
countNo

TDQS

A3.8/5.0
Behavior3/5

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

The readOnlyHint annotation already signals that this is a safe read-only operation. The description adds useful context about neutrality and narrative use, but it does not disclose behavioral details such as whether min and max are inclusive, how count affects the result, or what distribution is used.

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 short sentences with no filler. The primary action is front-loaded, and the boundary-setting exclusions are concise.

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?

The tool is simple and read-only, so the description covers the core purpose well. However, the lack of output schema and parameter semantics leaves some ambiguity about return shape and bound inclusivity, making it adequate but not fully complete.

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 description provides no explanation of the min, max, or count parameters. With 0% schema description coverage, the description was expected to clarify bounds inclusivity and count behavior, but it does not; it relies entirely on the self-explanatory property names.

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 verb ('Generate'), the resource ('random integers'), and the intended use case ('unbiased narrative decisions'). The second sentence explicitly distinguishes it from rules or dice systems, which removes ambiguity about its role.

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 provides a clear when-to-use signal: unbiased narrative decisions. It also gives an explicit when-not-to-use signal by stating it is not a rules or dice system, though it does not name a specific alternative tool.

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

search_entitiesSearch characters, locations, plots, notes and itemsB
Read-only

Targeted lookup. Supports questions such as all characters in a world, where a character is, or which characters are at a location.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNo
nameNo
limitNo
queryNo
activeNo
worldIdYesNumeric world ID from list_worlds or create_world.
locationIdNo
includeSecretsNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, and the description's words 'lookup' and 'search' are consistent with a read-only operation. However, the description does not disclose additional behavioral traits such as default pagination (limit=50), whether includeSecrets defaults to false, or how active filtering works. The annotation lowers the burden, but the description still adds limited behavioral context.

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—two sentences—and front-loads the core idea ('Targeted lookup') with illustrative examples. It avoids filler, although for a tool with 8 parameters, a bit more structured parameter context would improve clarity without harming conciseness.

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?

With 8 parameters, only 13% schema coverage, no output schema, and minimal annotations, the description leaves major gaps: return format, pagination limits, the role of query vs. name, how active and includeSecrets affect results, and what 'where a character is' means in terms of parameters. The examples are helpful but not enough 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 description coverage is only 13% (only worldId has a description). The description's examples hint at worldId, kind, and locationId, but it does not explain the semantics of query, name, limit, active, or includeSecrets. Since the schema is mostly silent and the description does not compensate, agents will struggle to set parameters correctly.

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 states a specific verb ('search', 'lookup') and resource ('characters, locations, plots, notes and items'), and the example questions clarify the intended function. It is clearly distinct from sibling tools like list_worlds and get_world_overview, which are not targeted searches.

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 implies usage through examples ('all characters in a world', 'where a character is'), but it never explicitly contrasts with sibling read tools like get_current_context or get_world_overview. There is no 'when not to use' guidance, so the agent must infer the appropriate scenario.

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

set_current_sceneSet current story sceneA

Record the compact immediate scene in one operation. Participants describe who is narratively present; this does not move every character permanently.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
summaryYes
worldIdYesNumeric world ID from list_worlds or create_world.
locationIdNo
participantIdsNo

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 must carry the full burden. It discloses that the operation is 'compact' and that it does not permanently move characters, which adds context. However, it does not mention side effects, permissions, or reversibility. The disclosure is partial, hence a 3.

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 with no redundancy; the core purpose and a key caveat are front-loaded. Every word earns its place.

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 tool with 5 parameters and no output schema, the description is adequate but not complete. It clarifies the primary intent and the participant parameter, but does not specify return values, error conditions, or usage prerequisites. Given the tool's moderate complexity, a 3 is appropriate.

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 description coverage is low (20%), so the description must compensate. The description clarifies that 'participants' means 'who is narratively present', which adds meaning beyond the bare parameter name. It does not explain all parameters, but the key one is addressed. Given low coverage, this is a strong contribution.

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 states a clear verb ('Record') and resource ('compact immediate scene'), and explicitly clarifies that it does not move every character permanently, which distinguishes it from potentially similar operations like apply_world_changes. However, it does not explicitly name sibling tools to differentiate further.

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 context that it records the 'immediate scene' and clarifies a limitation (does not move characters permanently), but it does not explicitly state when to use this tool versus alternatives like get_current_context or apply_world_changes. Usage guidance is implied rather than explicit.

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

update_worldUpdate durable world informationB

Update a world's durable framing. Do not record transient narration here.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
summaryNo
worldIdYesNumeric world ID from list_worlds or create_world.
descriptionNo

TDQS

B3/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It conveys that updates are 'durable' and that transient narration is out of scope, but it never states whether the update overwrites or merges existing fields, whether it is destructive, what the response looks like, or any prerequisites. For a mutation tool with zero annotation coverage, this is a significant gap.

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 sentences with zero filler. The first sentence states the action and object, the second adds a meaningful boundary instruction. Every word earns its place, and the durable/transient distinction is front-loaded.

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?

This is a mutation tool with no annotations, no output schema, and three undocumented parameters. The description is too thin to be complete: it omits return value behavior, update semantics (merge vs. overwrite), and any guidance on the content fields. An agent could call this correctly only by opening the schema and guessing at the meaning of the undocumented fields.

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 description coverage is only 25% (only worldId is documented), and per the rubric the description must compensate for the three undocumented parameters (name, summary, description). The phrase 'durable framing' provides only loose thematic context and never maps to individual parameters, so an agent gets little help understanding what to put in name, summary, or description.

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 states a specific verb ('Update') and resource ('a world's durable framing'), and the 'durable' qualifier sets it apart from read-oriented siblings like list_worlds and get_world_overview. However, it does not explicitly differentiate itself from the 'apply_world_changes' sibling, whose name could plausibly describe the same operation, so it falls short of a 5.

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 gives one explicit exclusion: 'Do not record transient narration here,' which implies the tool is reserved for persistent lore rather than scene-level content. But it names no alternatives (e.g., set_current_scene or apply_world_changes for transient work) and provides no positive guidance on when this tool should be selected, leaving usage mostly implied.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 13 tool updatesv2.2.0
    • First observedapply_world_changes
    • First observedcreate_checkpoint
    • First observedcreate_world
    • First observeddelete_world
    • First observedget_current_context
    • First observedget_recent_events
    • First observedget_world_overview
    • First observedlist_checkpoints
    • First observedlist_worlds
    • First observedrandom_numbers
    • First observedsearch_entities
    • First observedset_current_scene
    • First observedupdate_world

TDQS

A3.7/5.0

Scored across 13 tools

Disambiguation4/5

Each tool has a clear, distinct purpose with carefully worded boundaries (e.g., get_current_context vs. get_world_overview vs. get_recent_events). The descriptions are detailed enough that an agent should select correctly, though the overlapping 'get' cluster and create/update endpoints could still cause occasional confusion.

Naming Consistency4/5

The server consistently uses a snake_case verb_noun pattern (create_world, update_world, search_entities, set_current_scene) that makes behavior predictable. The one outlier, random_numbers, breaks the verb-first pattern but is still clear and descriptively named.

Tool Count5/5

13 tools is well within the ideal range for a domain of this scope. The server covers the full CRUD lifecycle for worlds, plus checkpoints, entities, scenes, and context management without accidental bloat or missing essentials.

Completeness4/5

The toolset provides comprehensive coverage of the worldstate domain, including world lifecycle, checkpoints, entity search, scene management, and history navigation. It could be even more complete with granular entity-level operations, but the atomic apply_world_changes and search_entities cover most reasonable workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Provides persistent, local-first AI memory across sessions via MCP tools for storing, searching, and retrieving context from past interactions.
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides AI agents with persistent knowledge storage, enabling them to store, search, and retrieve text, documents, and files using semantic and keyword search via MCP tools.
    32
    Apache 2.0
  • A
    license
    A
    quality
    D
    maintenance
    Provides persistent memory with semantic search for MCP-based AI agents, enabling them to store and recall information across sessions using vector embeddings.
    4
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to store and semantically retrieve durable memories across sessions via MCP or REST, with tools for remembering, recalling, asking, updating, and forgetting memories.
    7 npm
    MIT