Skip to main content
Glama

ICCPlus MCP

English | 한국어

스키마 인지형 Model Context Protocol 서버로, ICC Plus 프로젝트를 생성, 검사, 편집, 검증, 패키징하는 데 사용됩니다.

이 프로젝트는 AI 코딩 에이전트와의 협업을 통해 vibe coding으로 만들어졌습니다.

이 서버는 AI 에이전트에게 ICC Plus 소스에서 직접 생성되고 인덱싱된 완전한 ICC Plus 프로젝트 모델을 제공합니다:

  • 프로젝트 스키마와 현재 기본값은 ICC Plus 소스에서 생성됩니다;

  • 선언된 59개의 모델 유형과 1,893개의 고유 필드가 모두 검색 가능합니다;

  • 제작자 및 독립형 뷰어 전반의 227개 소스/빌드/설정/패치 파일과 1,411개의 명명된 함수/메서드가 정확한 소스, SHA-256 증거, 시그니처, 모델 필드 사용 및 줄 범위와 함께 색인됩니다;

  • 요청된 배포 저장소의 총 75개 파일과 공식 뷰어 아카이브 내부의 34개 파일에는 바이트 수와 SHA-256 매니페스트가 있습니다;

  • 고급 도구는 ID, 순서, 부모 링크, 상호 멤버십을 보존합니다;

  • 일반 RFC 6902 패칭으로 새롭거나 흔하지 않은 업스트림 필드에 계속 접근할 수 있습니다;

  • 구조적 및 의미적 검증은 저장 전에 잘못된 참조를 잡아냅니다;

  • 소스 기반 Custom CSS 도구는 공식 뷰어 클래스를 노출하고, 프로젝트 선택자를 해석하며, 저장 전에 구문/폭포(cascade) 위험을 진단합니다;

  • ICC Plus v2.10.1의 행 너비 보존, 빌드 양식 가시성/디버그 제목, 분할 점수 재계산 컨트롤, 숨겨진 행 메뉴, 애드온 상태 CSS 클래스가 모델링되고 검색 가능합니다;

  • 공식 웹/로컬 뷰어 아카이브를 제작자 UI를 열지 않고 빌드할 수 있습니다.

현재 호환성은 ICC Plus v2.10.1, 소스 커밋 b33bfb9b29e0a56d7e1827e42fe0f7000 기준입니다.

이 도구의 목적

agent
  ├─ discover: capabilities, schema, resources, prompts
  ├─ author: create/update/move/duplicate/import entities
  ├─ complete field access: atomic JSON Patch for every schema field
  └─ verify: normalize, validate, evaluate, save, build viewer
                           │
                           ▼
             revisioned in-memory project session
                           │
                           ▼
                ICC Plus JSON / viewer ZIP
git clone https://github.com/Kz2g1ew-commits/ICCPlus-MCP.git
cd ICCPlus-MCP
npm ci
npm run build
codex mcp add iccplus \
  --env ICCPLUS_WORKSPACE=/absolute/path/to/iccplus-workspace \
  -- node /absolute/path/to/ICCPlus-MCP/dist/index.js
[mcp_servers.iccplus]
command = "node"
args = ["/absolute/path/to/ICCPlus-MCP/dist/index.js"]
env = { ICCPLUS_WORKSPACE = "/absolute/path/to/iccplus-workspace" }
startup_timeout_sec = 10
tool_timeout_sec = 60
enabled = true
{
  "command": "node",
  "args": ["/absolute/path/to/ICCPlus-MCP/dist/index.js"],
  "env": {
    "ICCPLUS_WORKSPACE": "/absolute/path/to/iccplus-workspace"
  }
}

Related MCP server: ts-language-mcp

요구 사항

  • Node.js 20 이상

  • ICC Plus 프로젝트 워크스페이스

  • 뷰어 빌드용: ICC Plus 배포 저장소의 web_viewer.zip 또는 local_viewer.zip

설치 및 빌드

npm run analyze:upstream -- --source ../ICC-Plus-Svelte --deployment ../ICCPlus
npm test
npm run check
npm run build

실행 파일은 dist/index.js이며 stdio를 통해 통신합니다. 프로토콜 출력은 stdout을 사용하고 진단은 stderr을 사용합니다.

에이전트 연결

ICCPLUS_WORKSPACE에 서버가 읽거나 쓸 수 있는 유일한 디렉터리를 설정합니다. 상대 프로젝트, 에셋, 템플릿 및 출력 경로는 이 디렉터리 내에서 확인됩니다. 기존 심볼릭 링크는 확인되며 이를 벗어날 수 없습니다.

Codex

agent
  ├─ discover: capabilities, schema, resources, prompts
  ├─ author: create/update/move/duplicate/import entities
  ├─ complete field access: atomic JSON Patch for every schema field
  └─ verify: normalize, validate, evaluate, save, build viewer
                           │
                           ▼
             revisioned in-memory project session
                           │
                           ▼
                ICC Plus JSON / viewer ZIP

codex mcp list로 확인한 후, 클라이언트가 이미 열려 있었다면 다시 시작하세요. 동등한 사용자 또는 신뢰할 수 있는 프로젝트 config.toml 항목은 다음과 같습니다:

git clone https://github.com/Kz2g1ew-commits/ICCPlus-MCP.git
cd ICCPlus-MCP
npm ci
npm run build

Codex CLI, IDE 확장, ChatGPT 데스크톱 Codex 인터페이스는 이 구성을 공유합니다. 프로젝트 범위 항목은 .codex/config.toml에 위치할 수 있으며 신뢰할 수 있는 프로젝트에서만 로드됩니다.

기타 stdio MCP 클라이언트

다음 명령과 함께 클라이언트의 로컬 서버 구성을 사용하세요:

codex mcp add iccplus \
  --env ICCPLUS_WORKSPACE=/absolute/path/to/iccplus-workspace \
  -- node /absolute/path/to/ICCPlus-MCP/dist/index.js

선택적 환경 변수:

  • ICCPLUS_WORKSPACE: 파일 시스템 경계; 기본값은 서버 프로세스 CWD입니다.

  • ICCPLUS_MAX_ASSET_BYTES: 최대 로컬 에셋 크기; 기본값은 26,214,400바이트(25MiB)입니다.

  • ICCPLUS_DUPLICATED_TEXT_LIMIT_BYTES: 도구 결과의 텍스트 폴백에 중복되는 최대 크기; 기본값은 8,192바이트입니다. 더 큰 정확한 결과는 structuredContent에서 계속 사용할 수 있습니다. 레거시 무제한 텍스트를 위해 -1로 설정하세요.

권장 에이전트 워크플로우

  1. 관련 기능 패밀리 또는 필드에 대해 iccplus_capabilities를 호출하세요.

  2. 프로젝트를 생성하거나 열고 project_id와 revision을 유지하세요.

  3. 먼저 참조되는 최상위 엔티티(포인트, 변수, 단어, 그룹, 디자인, 전역 요구사항)를 생성하세요.

  4. 행, 선택지, 가산점, 점수, 요구사항을 생성하세요.

  5. 광범위한 변경에는 expected_revision을 전달하세요. dry_run을 사용하세요.

  6. iccplus_css_analyze로 정확한 선택자를 발견하고, 후보 CSS를 분석한 다음 iccplus_css_set으로 적용하세요.

  7. iccplus_validate와 유용한 경우 iccplus_evaluate_requirements를 호출하세요.

  8. 명시적으로 저장하거나 공식 뷰어 아카이브를 빌드하세요.

번들된 author-iccplus-project 또는 audit-iccplus-project 프롬프트를 요청할 수도 있습니다.

예제 사용자 요청:

10개의 시작 크레딧, 상호 배타적인 세 개의 기원 선택지, 그리고 무기를 선택하면 나타나는 무기 행이 있는 CYOA를 만드세요. projects/origins.json으로 저장하고, 검증한 다음 templates/web_viewer.zip을 사용하여 웹 뷰어를 빌드하세요.

도구

도구

용도

iccplus_capabilities

19개의 기능 패밀리, 유형/필드, 소스 파일 인덱스 또는 배포 아티팩트를 검색합니다.

iccplus_css_catalog

소스 기반 공식 Custom CSS 클래스와 정확한 프로젝트 ID 선택자를 나열합니다.

iccplus_css_analyze

저장 전에 후보 CSS의 구체성, 대상 해석, 종속성, 캐스케이드 충돌을 분석합니다.

iccplus_css_set

프로젝트 Custom CSS를 교체, 앞에 추가, 뒤에 추가 또는 지웁니다(수정 버전, 드라이런, 검증 보호 포함).

iccplus_schema

스키마 요약, 단일 정의 또는 전체 생성된 스키마를 읽습니다.

iccplus_create_project

정확한 현재 업스트림 기본값으로 시작합니다.

iccplus_open_project

프로젝트 JSON을 격리된 세션으로 엽니다.

iccplus_list_projects

세션, 수정 버전, 더티 상태 및 개수를 나열합니다.

iccplus_project_status

검증, 크기, 콘텐츠 수 및 선택적 JSON을 검사합니다.

iccplus_read_project

CSS/HTML/JS 및 알 수 없는 필드를 포함한 정확한 JSON 포인터를 읽고, 기본적으로 자산을 수정합니다.

iccplus_query

유형, ID 또는 텍스트로 모든 모델링된 엔티티를 검색합니다.

iccplus_update_entity

기본값으로 엔터티를 생성하고, 부모 링크를 복구합니다.

iccplus_duplicate_entity

엔터티를 복제하고 내부 참조를 재매핑합니다.

iccplus_move_entity

엔터티를 새 위치로 이동합니다.

iccplus_delete_entity

매달린 참조를 거부하면서 삭제합니다.

iccplus_patch

모든 프로젝트 필드에 JSON Patch를 원자적으로 적용합니다.

iccplus_normalize

레거시 형태를 정규화하고 ID를 재생성하며 참조를 복구합니다.

iccplus_validate

스키마, 참조, 의미론적 제약 조건을 검증합니다.

iccplus_evaluate

제공된 상태에 대해 요구사항 트리를 평가합니다.

iccplus_export_fragment

하위 트리를 고유한 조각으로 내보냅니다.

iccplus_import_fragment

안전한 ID 재생성과 함께 조각을 가져옵니다.

iccplus_set_asset

워크스페이스 파일, URL 또는 데이터 URL에서 문자열 필드를 설정합니다.

iccplus_save_project

워크스페이스 내부에 원자적으로 검증된 JSON을 저장합니다.

iccplus_build_viewer

공식 뷰어 템플릿에서 배포 가능한 아카이브를 빌드합니다.

iccplus_history

세션 변경 사항을 실행 취소하거나 다시 실행합니다.

iccplus_close_project

저장되지 않은 변경 사항을 보호하면서 세션을 닫습니다.

  • 중복되거나 누락된 ID 및 위치 인덱스 불일치;

  • 애드온 부모 링크;

  • 모델링된 모든 행, 선택지, 포인트, 그룹, 변수, 단어, 디자인, 사운드 및 전역 요구사항 참조;

  • 점수-포인트 및 포인트 활성화 참조;

  • 중첩 요구사항, 임계값 및 전역 요구사항 순환;

  • 그룹 및 디자인 그룹 상호 소속;

  • 호환되지 않는 뷰어 내보내기 모드;

  • Custom CSS 구문, 위험한 레거시 구조, 해결되지 않은 ICC Plus ID 선택자, 광범위한 범위, 외부 자산 및 예상되는 인라인 스타일 충돌;

  • 포인트 정수/부동소수점 및 초기화 불변식.

요구사항 평가기는 id(/ON#N 포함), points, pointCompare, or, selFromGroups, selFromRows, selFromWhole, gid, word, 부정, 연산자 및 중첩 전제조건을 구현합니다. 부울 값만 반환하는 대신 설명 가능한 트레이스를 반환합니다.

고급 Custom CSS

ICC Plus는 CSS를 최상위 customCSS 필드에 저장하고, 공식 크리에이터/뷰어에서 textContent를 사용해 style#customCSS로 주입합니다. MCP는 row-{id}, row-{id}-bg, row-{id}-header, choice-{id}, 선택지 상태 클래스, addon 및 선택 가능한 addon-{id}를 포함한 고정된 독립형 뷰어 마크업에서 카탈로그를 도출합니다.

iccplus_css_catalog는 열린 프로젝트의 모든 행, 선택지 및 선택 가능한 애드온에 대한 CSS 이스케이프 처리된 선택자를 반환할 수 있습니다. iccplus_css_analyze는 중첩 규칙을 구문 분석하고, 특이성 및 일치하는 엔터티를 보고하며, 선언이 ICC Plus 인라인 스타일에 밀릴 가능성이 있을 때 경고합니다. iccplus_css_set은 다른 프로젝트 변경과 동일한 리비전 트랜잭션 및 검증 정책을 통해 결과를 영속화합니다.

v2.10+부터 카탈로그는 기존 행 선택자 표기법을 유지하면서 .row-bg-{rowId}, .row-header-{rowId}, .choice, .addon-selectable 및 .addon-enabled, .addon-disabled, .addon-selected, .addon-unselected 상태 클래스도 포함합니다.

이는 의도적으로 정적 분석입니다. 계산된 스타일, 반응형 레이아웃 및 상호작용 상태 렌더링은 공식 뷰어의 책임으로 남습니다. 브라우저 자동화 런타임이나 관련 없는 브라우징 도구는 번들로 포함되지 않습니다.

뷰어 빌드

iccplus_build_viewer는 작업 공간 내의 공식 템플릿 ZIP을 받아들입니다.

  • 웹 모드는 project.json을 작성합니다.

  • 로컬 모드는 프로젝트를 js/app.js에 내장합니다.

  • 로딩 제목, 텍스트, 색상, 파비콘, 배경, 글꼴 및 프로젝트 Custom CSS는 패키징된 프로젝트에 유지됩니다.

  • 선택적 이미지 분리는 전역 스타일, 행, 백팩 행, 디자인 그룹 및 뷰어 설정에서 data URL을 추출합니다. 동일한 자산은 중복 제거됩니다.

템플릿의 뷰어 JavaScript는 런타임의 소스 오브 트루스로 유지됩니다.

업스트림 동기화

프로젝트 모델은 업스트림 소스에서 직접 생성됩니다. ICC-Plus-Svelte 체크아웃을 대상으로 분석기를 다시 실행하세요:

npm run analyze:upstream -- --source ../ICC-Plus-Svelte --deployment ../ICCPlus
npm test
npm run check
npm run build

분석기는 TypeScript AST를 사용하여 다음을 다시 생성합니다:

  • src/generated/iccplus.schema.json

  • src/generated/default-project.json

  • src/generated/source-analysis.json

  • src/generated/deployment-manifest.json

  • src/generated/third-party-licenses.json

  • analysis/CODEBASE_INVENTORY.md

새로 선언된 업스트림 모델 유형이 기능 패밀리에 할당되지 않으면 테스트가 실패합니다. source-analysis.json은 또한 선언, 임포트, SHA-256으로 주소 지정된 전체 소스 파일, 컴포넌트 레이블, 명명된 모든 소스 함수/메서드, 정확한 함수 본문 및 소스 발생 위치를 기록합니다. 배포 매니페스트는 wahaha303/ICCPlus의 모든 파일과 모든 공식 뷰어 아카이브 항목을 포함합니다. 에이전트는 iccplus_capabilities를 통해 field:<name>, type:<name>, function:<name> 또는 source:<relative-path>를 쿼리할 수 있습니다. deployment:<relative-path>는 배포 증거를 반환합니다. 함수 쿼리는 file, offset 및 limit를 지원하므로 중복된 로컬 이름을 관리하기 쉽습니다. include_source=false는 간결한 메타데이터를 반환합니다.

개발

npm test
npm run test:stdio
npm run verify:upstream -- --source ../ICC-Plus-Svelte --deployment ../ICCPlus
npm run check
npm run build
npm run inspect
npm pack --dry-run

테스트 스위트는 생성 모델 커버리지, 모델 그래프 변형, 정규화, 참조 재작성, 모든 요구사항 패밀리, RFC 6902 원자성, 뷰어 패키징 및 인메모리 MCP 클라이언트/서버 교환을 다룹니다.

전체 의미론적 기능 맵은 analysis/FEATURE_ANALYSIS.md를 참조하세요. 생성된 필드/함수/컴포넌트 증거는 analysis/CODEBASE_INVENTORY.md에 있습니다. 요구사항별 검증 기록은 analysis/COMPLETION_AUDIT.md에 있습니다.

저작자 표시

ICC Plus는 wahaha303에 의해 개발되었습니다. 이 MCP 서버는 독립적인 통합이며 공식 크리에이터/뷰어를 대체하거나 수정하지 않습니다. 두 프로젝트 모두 MIT License로 배포됩니다. LICENSE를 참조하세요. 업스트림 및 벤더 의존성 고지는 THIRD_PARTY_NOTICES.md와 iccplus://licenses 리소스에 보존됩니다.

Available Tools

27 tools
iccplus_build_viewerBuild ICC Plus viewer archiveC
Destructive

Package the project into an official web/local viewer template, applying loading config and optional deduplicated image separation.

ParametersJSON Schema
NameRequiredDescriptionDefault
localNo
overwriteNo
project_idYes
output_pathYes
require_validNo
template_pathYesweb_viewer.zip or local_viewer.zip path inside ICCPLUS_WORKSPACE.
separate_imagesNo
expected_revisionNo

TDQS

C2.9/5.0
Behavior3/5

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

The description adds behavioral details like applying loading config and optional deduplicated image separation, which are not in annotations. However, it does not disclose potential side effects such as overwriting output or modifying the project, and the destructive hint is only in annotations. More transparency about side effects and failure modes would improve.

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, focused sentence with no extraneous content. It efficiently conveys the main action and optional components.

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?

While the main action is clear, the description lacks context about the output format, how parameters affect the result, and any prerequisites. There is no output schema, and the tool has 8 parameters with minimal guidance, making it incomplete for an agent to invoke correctly.

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

Parameters1/5

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

Only template_path has a description; the other seven parameters are undocumented. The description mentions loading config and image separation but does not map them to specific parameters. With low schema coverage, the lack of parameter descriptions leaves the agent guessing about required inputs.

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 function: packaging the project into a viewer template, with specific details about loading config and optional image separation. It distinguishes from sibling tools by focusing on building an archive, not on editing or exporting fragments.

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

Usage Guidelines1/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 over alternatives. It does not mention any conditions or scenarios where this tool is preferred, leaving the agent without selection criteria.

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

iccplus_capabilitiesDiscover ICC Plus capabilitiesB
Read-onlyIdempotent

List feature families or return field, type, function-body, source-file, deployment-artifact, or Custom CSS evidence extracted from ICC Plus.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoOptional relative-file filter for function:<name> when local names have multiple matches.
limitNoMaximum function matches to return.
topicNoFeature id, field:<name>, type:<name>, function:<name>, source:<relative-path>, or deployment:<relative-path>. Omit to list all feature families.
offsetNoFunction-match offset.
include_sourceNoInclude exact bodies for function/source queries; set false for a compact index.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds that the tool extracts evidence from ICC Plus and lists the evidence types, which is consistent with the annotations and provides some context. However, it doesn't describe the return structure, pagination, or what happens when no topic is given beyond listing families. With annotations covering the core behavior, a 3 is appropriate—some added context but not rich behavioral disclosure.

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 a single sentence that front-loads the primary action and then enumerates the evidence types. It's concise and readable, though the long list makes it slightly dense. No wasted words, and the key purpose is stated upfront.

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 optional parameters and no output schema, the description doesn't explain what the response looks like (e.g., a list of families, a structured index, or function bodies). The topic parameter's syntax is covered by the schema, but the description could mention that the result is a list or index to set expectations. Since it's a read-only discovery tool and the schema is rich, a 3 feels adequate—it's not incomplete enough to mislead, but it could give more detail on return format.

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 every parameter (file, limit, topic, offset, include_source) already has a detailed description in the schema. The tool description adds no additional parameter-level semantics beyond what the schema provides. Baseline 3 is correct—the schema does the heavy lifting, and the description doesn't need to compensate.

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 tool's function: 'List feature families or return field, type, function-body, source-file, deployment-artifact, or Custom CSS evidence extracted from ICC Plus.' It names a specific verb and resource, and enumerates the kinds of evidence returned. It distinguishes itself from siblings like iccplus_schema or iccplus_css_catalog by being a broader discovery tool, though it doesn't explicitly name any sibling. Slight ambiguity remains around what 'feature families' means, but the core 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 Guidelines2/5

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

The description gives no guidance on when to use this tool versus its many siblings (e.g., iccplus_schema for schema details, iccplus_css_catalog for CSS specifics). There is no explicit when-to-use or when-not-to-use, nor any mention of alternatives. The only usage hint is 'Omit to list all feature families,' which is a parameter behavior, not a selection guideline. An agent would have to infer from sibling names and the description that this is a general discovery entry point.

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

iccplus_close_projectClose ICC Plus projectA
Destructive

Close an in-memory session. Unsaved sessions require force=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNo
project_idYes
expected_revisionNo

TDQS

A3.5/5.0
Behavior3/5

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

The annotations already indicate destructive behavior, and the description adds that this closes an in-memory session and that unsaved sessions require force=true. It stops short of explicitly disclosing that forcing will discard unsaved changes or what exactly happens to the session state, so the added behavioral context is useful but incomplete.

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 tight sentences with no filler. The core action is front-loaded, and the force requirement is presented as a concise, necessary caveat.

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 that this is a destructive, mutating operation with no output schema, the description is not complete enough for safe invocation. It fails to explain expected_revision, the consequences of force, or any return/error behavior, which are important for an agent deciding whether and how to call this 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 description coverage is 0%, so the description must compensate for parameter meaning. It does clarify the force parameter's key condition, but it gives no guidance on project_id's role and completely omits expected_revision, which is likely a concurrency guard and is left unexplained.

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 ('Close') and resource ('in-memory session'), and the title clarifies the resource is the ICC Plus project. It is clearly differentiated from siblings like open_project, save_project, and read_project.

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 when to use the tool: when closing an in-memory session, with the additional condition that unsaved sessions require force=true. However, it does not explicitly contrast this with save_project or any alternative, nor does it say when closing without force is appropriate.

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

iccplus_create_entityCreate ICC Plus entityB

Create any modeled ICC Plus entity with current project defaults, optional overrides, automatic ids, and normalized memberships.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYes
parentNoParent entity id or JSON Pointer for nested entities.
valuesNo
dry_runNo
positionNo
project_idYes
expected_revisionNo
validation_policyNono_new_errors

TDQS

B3/5.0
Behavior3/5

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

Annotations provide no positive behavioral hints—readOnlyHint, openWorldHint, idempotentHint, and destructiveHint are all false—so the description carries the burden. It does disclose useful creation behavior: current project defaults, optional overrides, automatic ids, and normalized memberships. However, it does not mention side effects, validation behavior, dry_run capability, or persistence implications, which are relevant 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?

The description is a single, focused sentence that front-loads the core purpose and then lists high-level behaviors without wasted words. It is readable and scannable, and every phrase adds meaning about how the tool behaves.

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 8 parameters, low schema coverage, no output schema, and a large sibling set, this description is too thin to fully support correct invocation. It omits the role of validation_policy, dry_run, expected_revision, and position, and does not clarify how 'normalized memberships' or 'overrides' relate to the input structure. An agent would likely need to inspect the schema or experiment to understand critical 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 13%, with only 'parent' documented, so the description must compensate heavily. It introduces concepts like 'overrides', 'automatic ids', and 'normalized memberships', but these are not explicitly mapped to parameters such as values, parent, or expected_revision. Important parameters like dry_run, validation_policy, position, and project_id receive no semantic guidance beyond schema constraints.

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 and resource: 'Create any modeled ICC Plus entity.' It adds behavioral specifics—current project defaults, optional overrides, automatic ids, normalized memberships—that go beyond the title. However, it does not explicitly distinguish itself from siblings like iccplus_create_project or iccplus_duplicate_entity, relying on the word 'entity' to imply the separation.

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 gives no explicit guidance on when to use this tool versus alternatives such as iccplus_duplicate_entity, iccplus_update_entity, or iccplus_patch. It implies broad use for entity creation via 'any modeled ICC Plus entity,' but does not mention prerequisites like having a project open, or when a different creation path would be more appropriate. This leaves selection largely to inference from the sibling names.

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

iccplus_create_projectCreate ICC Plus projectA

Create an in-memory project from current upstream defaults. Nothing is written until save is called.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoOptional future save path inside ICCPLUS_WORKSPACE.
overridesNo

TDQS

A4/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=false, meaning this is not a read-only operation, and the description adds crucial behavioral detail: the project is created in-memory and nothing is written until save is called. This goes beyond what annotations provide and sets accurate expectations about side effects and persistence.

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, front-loaded sentence that conveys the essential operation and a key constraint (in-memory, nothing written until save). Every word earns its place with no fluff or redundancy.

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 no output schema and two optional parameters, the description covers the core concept but leaves some gaps: it does not specify what the tool returns, whether the new project becomes the active project, or how overrides should be structured. The presence of sibling tools like read_project and save_project partially compensates, but the missing return/state-change details make it minimally adequate.

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 50%: the path parameter has a description, but the overrides object is undocumented in the schema and the description does not explain it. The phrase 'from current upstream defaults' hints that overrides may adjust those defaults, but this is implicit and not sufficient for an agent to confidently construct valid override values.

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 ('Create') and resource ('in-memory project from current upstream defaults'), making the operation clear. It also distinguishes itself from save_project by explicitly noting that nothing is written until save is called, and from open_project by implying this creates a new project rather than opening an existing one.

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 when to use this tool—when starting a new project from default upstream values—and hints that a subsequent save_project call is required to persist it. It does not explicitly name alternative tools like open_project or save_project, but the context provides adequate guidance for an agent to choose correctly.

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

iccplus_css_analyzeAnalyze ICC Plus Custom CSSA
Read-onlyIdempotent

Statically analyze stored or candidate CSS for syntax, selector specificity, official classes, project ids, inline-style conflicts, and external assets.

ParametersJSON Schema
NameRequiredDescriptionDefault
cssNoCandidate CSS. Omit to analyze the open project customCSS value.
project_idNoAdds project-aware target resolution; CSS is read from the project when css is omitted.
include_rulesNo
max_diagnosticsNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, and the description adds useful context by saying the analysis is 'static' and applies to 'stored or candidate' CSS. It does not describe the output or diagnostic behavior, but nothing contradicts the 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?

The description is a single, dense, well-structured sentence that front-loads the verb and resource and then lists the analysis dimensions. Every clause adds meaningful information, and there is no repetition of annotation or schema data.

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 read-only static analysis tool, the description covers the main inputs and analysis areas reasonably well. But because there is no output schema, the agent is left without explicit information about what the tool returns, and the two undocumented parameters remain unexplained, leaving gaps in fully anticipating the tool's behavior.

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 schema describes `css` and `project_id`, and the description reinforces those semantics with 'stored or candidate CSS'. However, `include_rules` and `max_diagnostics` have no descriptions in either the schema or the tool description, so the description does not fully compensate for the 50% schema coverage gap.

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 names a specific verb and resource: 'Statically analyze stored or candidate CSS' and enumerates concrete analysis dimensions like syntax, selector specificity, official classes, project ids, inline-style conflicts, and external assets. This makes the tool's purpose clear, though it does not explicitly differentiate it from siblings like iccplus_css_catalog or iccplus_css_set.

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 clear context for when the tool applies: when analyzing either stored project CSS or a candidate CSS string. However, it never names alternatives or states when not to use this tool, so the agent must infer boundaries from the sibling names rather than from explicit guidance.

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

iccplus_css_catalogDiscover ICC Plus Custom CSS targetsB
Read-onlyIdempotent

List official viewer classes with source evidence and project-specific escaped row, choice, and selectable-addon selectors.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNo
limitNo
queryNoFilter selectors, descriptions, ids, titles, paths, or source files.
scopeNoofficial
offsetNo
project_idNoRequired for project or all scope.

TDQS

B3.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds useful context about what the list contains ('source evidence' and 'project-specific escaped selectors'), which goes beyond the schema. It does not mention pagination or result ordering, but given the annotation coverage, this is sufficient.

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 a single, dense sentence that front-loads the primary action and object. It is concise and avoids fluff, though it uses jargon like 'escaped' and 'source evidence' that may require domain knowledge. Still, it earns points for efficiency.

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 6 parameters, no output schema, and low schema coverage, the description is too brief to be fully complete. It does not explain the distinction between 'official' and 'project' scopes, what 'source evidence' means, or what the returned data looks like. An agent would need to infer many details from names and context, which is risky for correct 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 33% (only query and project_id have text). The description does not compensate by explaining kind, scope, limit, or offset semantics. With low coverage and no description-level guidance, parameters like kind and scope remain underdocumented, leaving the agent unsure how to use them effectively.

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 tool lists official viewer classes and project-specific selectors, with a specific verb ('List') and resource. It does not explicitly differentiate from siblings like iccplus_css_analyze or iccplus_css_set, but the purpose is unambiguous and specific enough to be distinguished from them.

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 such as iccplus_css_analyze or iccplus_css_set. There is no mention of typical use cases, prerequisites, or exclusions. An agent must infer usage from the name and sibling context.

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

iccplus_css_setSet ICC Plus Custom CSSA
Destructive

Replace, append, prepend, or clear the official project customCSS field with revision protection, dry-run support, and integrated validation.

ParametersJSON Schema
NameRequiredDescriptionDefault
cssNoRequired unless mode is clear.
modeNoreplace
dry_runNo
project_idYes
expected_revisionNo
validation_policyNono_new_errors

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and readOnlyHint=false, and the description adds genuinely useful behavioral context beyond them: revision protection (concurrency guard), dry-run support (preview before applying), and integrated validation (policy-gated writes). It clearly identifies the affected field ('customCSS'), so the destructive scope is disclosed. It doesn't detail rollback or failure semantics, but the safety mechanisms are well surfaced.

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?

A single 22-word sentence that front-loads the action verbs, names the exact target field, and appends the three distinguishing features. Every phrase earns its place with zero filler or repetition of schema details.

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 destructive 6-parameter mutation tool with no output schema, the description covers the core concepts (modes, revision guard, dry-run, validation) but omits operational details an agent needs: what the return value looks like, what happens when the revision check fails or validation fails, and whether the project must be open first. Adequate conceptually, but with clear gaps at the edges.

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?

With only 17% schema description coverage, the description carries most of the burden and partially compensates: the verbs map directly to the mode enum values, and 'revision protection', 'dry-run support', and 'integrated validation' correspond to expected_revision, dry_run, and validation_policy. However, it leaves the validation_policy levels (strict vs no_new_errors vs none) and the exact revision-mismatch behavior unexplained, so compensation is high-level rather than complete.

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 names multiple specific verbs (Replace, append, prepend, clear) targeting a precise resource (the official project customCSS field). The 'official' qualifier distinguishes this field-level mutation from sibling CSS tools like iccplus_css_catalog (listing) and iccplus_css_analyze (analysis), so an agent can tell them apart without opening schemas.

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 implies the operation modes via the verbs, but gives no explicit when-to-use guidance, prerequisites, or exclusions relative to siblings. It never names alternatives such as iccplus_css_analyze for validation-only workflows or iccplus_read_project for viewing current CSS, leaving routing entirely to inference.

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

iccplus_delete_entityDelete ICC Plus entityB
Destructive

Delete one entity. The default policy rejects deletions that create dangling references.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNo
dry_runNo
referenceYes
project_idYes
expected_revisionNo
validation_policyNono_new_errors

TDQS

B3/5.0
Behavior3/5

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

Annotations already carry the destructive profile (destructiveHint=true, readOnlyHint=false), and the description adds one useful behavioral context: the default policy rejects deletions that create dangling references. However, it does not disclose whether deletions are reversible, what happens to dependent entities beyond the rejection, or what a successful delete 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 short sentences, front-loaded with the operation and then the key behavioral constraint, with zero filler. Every clause 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 six parameters, no output schema, zero schema descriptions, and a destructiveHint, the definition should explain parameter meaning, dry_run semantics, and success/failure behavior — none of which are present. This is comparable to the update_drive calibration case (4 params, 50% coverage, no annotations), which was also scored 2 for incompleteness.

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 0%, so the description bore the duty to explain reference, type, dry_run, expected_revision, and validation_policy — and it explains none of them by name. The default-policy sentence does give practical meaning to the default validation_policy value ('no_new_errors'), but that is partial credit at best.

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?

States a specific verb ('Delete') and resource ('one entity'), and the 'one' qualifier rules out bulk deletion, adding precision over the title. The operation is unambiguous among the sibling set, which contains only create/update/duplicate/move/patch as mutation alternatives, though the description does not explicitly name a sibling to differentiate from.

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?

Provides no explicit when-to-use guidance and names no alternatives such as update_entity or patch for modifying rather than removing an entity. The dangling-reference note hints at validation considerations but does not tell the agent when to prefer this tool or how to avoid the default rejection (e.g., via dry_run).

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

iccplus_duplicate_entityDuplicate ICC Plus entityB

Duplicate an entity and nested content with fresh ids; optionally remap references within the clone.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNo
dry_runNo
positionNo
referenceYes
project_idYes
expected_revisionNo
validation_policyNono_new_errors
remap_internal_referencesNo

TDQS

B3.1/5.0
Behavior3/5

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

It mentions 'fresh ids' and 'remap references' but does not state side effects on the original entity (e.g., whether it is left unchanged). The annotations indicate destructiveHint=false and readOnlyHint=false, which are consistent but the description itself provides only partial transparency.

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 concise sentence that front-loads the primary action. It omits unnecessary details and is immediately comprehensible.

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?

The description does not cover return values, failure modes, or the purpose of parameters like expected_revision and validation_policy. With no output schema and vague parameter hints, context is incomplete for a complex operation.

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

Parameters1/5

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

The description mentions none of the eight parameters, despite the schema defining required fields like project_id and reference, and enums for type and validation_policy. No parameter is explained, leaving users to guess their 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 the tool duplicates an entity with nested content, assigns fresh ids, and optionally remaps references. The verb 'duplicate' is specific and distinct from other entity operations like create or update, so purpose is unambiguous.

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 explains what it does but gives no guidance on when to use it versus alternatives (e.g., when to duplicate vs create). It lacks explicit conditions like 'use this when you need a deep copy without affecting the original.'

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

iccplus_evaluate_requirementsEvaluate ICC Plus requirementsB
Read-onlyIdempotent

Evaluate an entity or supplied requirement tree using ICC Plus operator semantics and return an explainable trace.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNo
entityNoEntity id or JSON Pointer. Omit when requirements is supplied.
project_idYes
requirementsNo

TDQS

B3.2/5.0
Behavior4/5

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

Annotations already indicate read-only, idempotent, non-destructive behavior; description adds that it returns an explainable trace, providing additional clarity on output.

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 well-structured, conveying the essential action and output in one sentence.

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

Completeness1/5

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

Without an output schema, the description gives only a vague notion of the return (explainable trace); it fails to describe error handling, detailed behavior, or parameter interdependencies for a complex tool.

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

Parameters1/5

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

Schema coverage is only 25% with only entity having a description; the tool description adds no parameter explanations, leaving state, project_id, and requirements ambiguous.

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 evaluates an entity or requirement tree using ICC Plus operator semantics and returns an explainable trace, distinguishing it from other tools like validate or normalize.

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 evaluation but does not explicitly contrast with alternatives like iccplus_validate or iccplus_normalize; the purpose is clear enough but guidance is implicit.

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

iccplus_export_fragmentExport ICC Plus fragmentB
Read-onlyIdempotent

Return a row, choice, addon, score, requirement, or feature entity as reusable JSON.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNo
referenceYes
project_idYes
include_embedded_assetsNoReturn raw data URLs. Leave false unless their exact encoded contents are explicitly required.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already convey the safety profile: readOnlyHint=true, openWorldHint=false, idempotentHint=true, destructiveHint=false. The description adds only that the tool returns reusable JSON, which is modest but consistent. No additional behavioral details such as output shape, error conditions, or asset handling are disclosed, though annotations lower this burden.

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, direct sentence with no filler. The core action and result are front-loaded, making it easy for an agent to quickly parse the tool's 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?

With no output schema, low parameter coverage, and a wide enum of possible type values, the description should explain more about what 'reusable JSON' contains and how to construct the reference. It leaves important operational details such as how to identify the target entity and what the exported JSON looks like entirely unstated.

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% because only include_embedded_assets has a description. The description lists some entity kinds but does not explain the meaning of 'reference', the format of project_id, or how type values map to behavior. The schema's enum already lists valid types, so the description adds little semantic value for the parameters.

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 a specific action ('Return') and resource ('a row, choice, addon, score, requirement, or feature entity as reusable JSON'), which makes the tool's basic function obvious. However, it does not explicitly differentiate this from siblings like iccplus_query or iccplus_read_project, and the term 'feature' is not actually present in the type enum.

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 'as reusable JSON' implies this is intended for serializing/exporting a fragment for later reuse, giving some contextual signal about when to use it. But it does not explicitly say when to prefer this over alternatives like query, read_project, or import_fragment, and provides no exclusion criteria.

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

iccplus_historyUndo or redo ICC Plus mutationA
Destructive

Undo or redo one in-memory mutation while keeping revision conflict protection.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
project_idYes
expected_revisionNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate destructiveHint=true, and the description adds useful context beyond that: 'in-memory' clarifies the mutation is not persisted, and 'while keeping revision conflict protection' signals that revision checks are enforced. This goes beyond the structured annotations without contradicting them.

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?

A single sentence that immediately names the operation and the most important constraint. Every word earns its place; there is no wasted text or repetition of title/schema information.

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?

Core behavior and safety profile are covered, making the tool usable for basic invocation. However, it omits prerequisites like an open project, potential errors (e.g., nothing to undo), and the meaning of expected_revision. For a destructive tool with no output schema, this is 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?

Schema description coverage is 0%, so the description must compensate, but it does not explain any of the three parameters. It only alludes to revision conflict protection without clarifying expected_revision's role or how action enumerations map to behavior. The schema's self-explanatory names and enum provide some guidance, but the description itself adds little.

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?

States a specific verb and resource: 'Undo or redo one in-memory mutation.' This clearly identifies the operation and scope, and it is easily distinguished from sibling tools because none of the siblings mention undo/redo functionality.

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?

Provides clear context that the tool operates on in-memory mutations of the current project, which implies when it should be used relative to other mutation tools. It does not explicitly mention alternatives or exclusions, but the unique purpose among siblings makes this acceptable.

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

iccplus_import_fragmentImport ICC Plus fragmentB

Import a fragment through the same parent/default/normalization layer used for normal entity creation.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYes
valueYes
parentNo
dry_runNo
positionNo
project_idYes
preserve_idsNo
expected_revisionNo
validation_policyNono_new_errors

TDQS

B3.1/5.0
Behavior3/5

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

Annotations indicate a write operation that is not idempotent and not destructive, which already covers the basic safety profile. The description adds some behavioral context by mentioning the normalization layer and parent/default handling, but does not disclose side effects, validation behavior, or how the fragment is persisted or returned.

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 a single sentence with no filler and the core action is front-loaded. It is appropriately terse, though the phrase 'parent/default/normalization layer' is slightly dense and could be simplified without losing meaning.

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 9 parameters, a nested value object, multiple enums, no output schema, and a broad sibling set, the one-sentence description is substantially incomplete. It does not mention return values, failure modes, dry-run semantics, or what differentiates this from create_entity, making it insufficient for confident invocation without external schema exploration.

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 0% with 9 parameters, so the description carries the burden of explaining parameters, but it only alludes to parent/default/normalization. It does not clarify the 'value' fragment structure, 'type' enum semantics, dry_run behavior, preserve_ids, expected_revision, or validation_policy, leaving most parameters underspecified.

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 names a specific verb ('Import') and resource ('ICC Plus fragment'), and adds context about using the same normalization layer as normal entity creation. It is clear enough to distinguish from export_fragment, though it does not explicitly contrast with create_entity or other sibling import-like operations.

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 'same parent/default/normalization layer used for normal entity creation' implies this tool is for importing fragments with consistent behavior to entity creation, but it never states when to use this over create_entity, normalize, or export_fragment. No alternatives are named and no exclusions or preconditions are given, so usage guidance is only implied.

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

iccplus_list_projectsList open ICC Plus projectsA
Read-onlyIdempotent

List in-memory project sessions, revisions, dirty state, and compact summaries.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

The description adds meaningful behavioral context beyond the annotations: the listing is in-memory only, includes dirty state, and returns compact summaries rather than full project content. It does not contradict the readOnly/idempotent/destructive hints.

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?

A single sentence efficiently conveys the action, scope, and output content without redundancy. All elements earn their place and the most important 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?

For a zero-parameter read-only listing tool, the description is largely complete. It identifies what is listed and the nature of the output. It could be slightly clearer about the exact shape of the summaries, but the lack of parameters and strong annotations keep the burden low.

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 tool has zero parameters, so there is nothing to explain. The baseline of 4 applies; the description adds no parameter semantics because none are needed.

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 states the specific verb 'list', the resource 'in-memory project sessions', and the contents of the listing ('revisions, dirty state, and compact summaries'). This clearly distinguishes it from tools like read_project or project_status, which operate on individual projects rather than enumerating open sessions.

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 makes the tool's scope clear: list in-memory project sessions. However, it does not explicitly say when to use this tool instead of siblings such as iccplus_project_status, iccplus_read_project, or iccplus_query. Usage guidance is implied rather than stated with alternatives.

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

iccplus_move_entityMove ICC Plus entityA

Move an entity within its current ordered container and repair stored indices.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNo
dry_runNo
positionYes
referenceYes
project_idYes
expected_revisionNo
validation_policyNono_new_errors

TDQS

A3.5/5.0
Behavior4/5

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

The annotations only provide false hints for readOnly, idempotent, and destructive, so they do not characterize this as a mutation. The description steps in by explicitly stating the move effect and the 'repair stored indices' side effect. It also narrows scope to the current container, adding useful behavioral context beyond annotations. It does not discuss effects on sibling ordering or reversibility, but core behavior is transparent.

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, front-loaded sentence containing no filler. Every phrase adds value: the verb, the container scope, and the index-repair effect are all present with zero waste.

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?

For a 7-parameter mutation tool with no output schema and zero parameter descriptions, an 11-word description is materially incomplete. An agent would not know how reference and type relate, what dry_run does, when validation_policy matters, or whether prerequisites like an open project apply.

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 0%, so the description carries the burden of explaining 7 parameters. It only weakly implies that 'position' is the target index and 'reference' identifies the entity. It says nothing about type, dry_run, expected_revision, or validation_policy, leaving the agent without meaningful parameter guidance.

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 ('Move'), a precise resource ('an entity within its current ordered container'), and a relevant side effect ('repair stored indices'). This clearly distinguishes it from sibling operations like create_entity, update_entity, or delete_entity.

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?

There is no guidance on when to use this tool versus alternatives. Sibling tools such as update_entity and duplicate_entity exist, but the description never explains what makes move the right choice or mentions any conditions/exclusions. Usage must be inferred entirely from the name and context.

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

iccplus_normalizeNormalize ICC Plus projectC

Migrate legacy shapes, generate missing ids, repair indices/parents, and rebuild reciprocal group/design memberships.

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNo
project_idYes
expected_revisionNo
validation_policyNono_new_errors

TDQS

C2.2/5.0
Behavior2/5

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

Annotations offer no hints (readOnlyHint=false, destructiveHint=false), so the description must carry the burden. It implies mutation through actions like 'migrate', 'repair', and 'rebuild', but omits critical safety context such as the dry_run default, validation_policy behavior, and potential side effects on existing data.

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 concise sentence, but it lists four actions without prioritizing the most critical behavioral elements. It is not front-loaded with the dry_run safety mechanism or validation policy, so while compact, it lacks effective structure for agent decision-making.

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

Completeness1/5

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

With four parameters, no output schema, and no supporting annotations, the description is far too thin. It omits the dry-run default, validation policy semantics, expected_revision's role, and any warnings about non-idempotency or potential data loss, leaving the agent to guess at safe usage.

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

Parameters1/5

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

Schema description coverage is 0%, and the description mentions none of the four parameters (dry_run, project_id, expected_revision, validation_policy). The agent must rely solely on parameter names and schema defaults, which is insufficient given the safety implications of dry_run and validation_policy.

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 lists four concrete operations—migrate legacy shapes, generate missing ids, repair indices/parents, and rebuild memberships—clearly indicating the tool's purpose. It is specific enough to distinguish it from generic validation or update tools, though it does not explicitly contrast with siblings.

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

Usage Guidelines1/5

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

There is no guidance on when to use this tool versus alternatives like iccplus_validate, iccplus_patch, or iccplus_project_status. The description provides no context on the appropriate conditions or scenarios for running normalization.

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

iccplus_open_projectOpen ICC Plus projectA
Read-onlyIdempotent

Open a project JSON file from ICCPLUS_WORKSPACE into an isolated revisioned session.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
normalizeNoApply compatible migrations and reciprocal membership repair in memory.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds that the session is 'isolated' and 'revisioned', which are behavioral details not in annotations. It does not contradict annotations and provides useful context about session semantics.

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 with no redundant phrases. It front-loads the core action and location, and 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 simple open operation with two parameters and no output schema, the description covers the essential context: where the file comes from (ICCPLUS_WORKSPACE) and the nature of the session (isolated, revisioned). The normalize parameter is documented in the schema, so nothing critical is missing for the agent to invoke correctly.

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 50% – only normalize has a description. The description implies path is a JSON file path (from ICCPLUS_WORKSPACE), which adds some meaning beyond the bare 'path' parameter. However, it doesn't elaborate on normalize, and the description does not fully compensate for the missing path description, though it partially does.

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 ('open') and resource ('project JSON file from ICCPLUS_WORKSPACE'), and states the outcome ('into an isolated revisioned session'). This clearly distinguishes it from siblings like read_project (which likely just reads) and create_project (which creates new projects).

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 (workspace location, isolated revisioned session) but does not explicitly compare to alternatives or state when not to use it. Given the sibling list includes read_project, save_project, and close_project, an agent can infer usage, but there is no direct guidance on choosing this over others.

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

iccplus_patchPatch ICC Plus projectB
Destructive

Atomically apply RFC 6902 JSON Patch operations for any current or future ICC Plus field.

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNo
patchesYes
project_idYes
expected_revisionNo
validation_policyNono_new_errors

TDQS

B3/5.0
Behavior3/5

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

Annotations already provide destructiveHint=true, so the mutation risk is known. The description adds the valuable behavioral detail of atomicity and references the RFC 6902 standard, which informs expected patch semantics. However, it does not mention revision conflicts, validation behavior, or dry-run effects, which are relevant for a destructive patch 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?

The description is a single, front-loaded sentence with no filler. It communicates the core action, the atomicity guarantee, and the scope in a compact and scannable way.

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?

For a destructive, multi-parameter patch tool with no output schema, a one-line description is under-specified. It omits important context around revision handling, validation policies, dry-run behavior, and what the operation returns or affects, leaving the agent to infer critical execution details.

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 0%, so the description must compensate, but it only clarifies the nature of 'patches' by referencing RFC 6902. The other parameters—project_id, dry_run, expected_revision, validation_policy—receive no explanation beyond their names and schema constraints, leaving significant semantic gaps for the agent.

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 tool applies RFC 6902 JSON Patch operations, identifying both the mechanism and the target resource. It conveys atomicity and a broad field scope, which helps distinguish it from entity-specific or field-specific siblings, though it does not explicitly name any sibling alternative.

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?

There is no guidance on when to choose this tool over alternatives like iccplus_update_entity, iccplus_css_set, or iccplus_set_asset. The phrase 'for any current or future ICC Plus field' hints at broad applicability, but no when-to-use or when-not-to-use conditions are stated.

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

iccplus_project_statusInspect ICC Plus project statusA
Read-onlyIdempotent

Return revision, dirty state, summary, Custom CSS analysis, validation counts, and optionally project JSON.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
include_projectNoReturn the complete project. Prefer iccplus_read_project with exact paths to keep responses small.
include_embedded_assetsNoReturn raw data URLs. Leave false unless their exact encoded contents are explicitly required.

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the output contents but not much beyond that, such as potential payload size or cost of including the project JSON. There is 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?

The description is one tight sentence that front-loads the action and lists the full scope of returned information without filler. Every clause contributes meaning, and the optional project JSON is cleanly signaled.

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, non-destructive status tool with only one required parameter, the description plus schema guidance is mostly sufficient: the agent knows what will be returned and how to avoid expensive optional payloads. It is not a 5 because the description does not explicitly distinguish status inspection from the validation or CSS-analysis siblings, and there is no output schema to clarify return shape.

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 67%; the two boolean parameters are well documented in the schema, including strong guidance to prefer iccplus_read_project and to avoid embedded assets unless required. The main description adds only 'optionally project JSON,' which maps to include_project. The project_id parameter lacks prose but has type/format/pattern constraints, so a 3 is appropriate.

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 names a specific verb ('Return') and enumerates concrete status artifacts: revision, dirty state, summary, Custom CSS analysis, validation counts, and optional project JSON. The schema parameter description further distinguishes it from iccplus_read_project by steering bulk project reads to that sibling, so an agent can tell which tool to use.

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 main description gives clear context about the status payload, and the parameter descriptions provide useful routing guidance: prefer iccplus_read_project for complete project reads and keep embedded assets false unless exact encoded contents are needed. It stops short of explicitly stating when to choose this over iccplus_validate or iccplus_css_analyze, so it is not a full 5.

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

iccplus_queryQuery ICC Plus entitiesC
Read-onlyIdempotent

Search rows, choices, addons, scores, requirements, points, groups, designs, words, variables, sound effects, and categories.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNo
limitNo
queryNo
typesNo
offsetNo
project_idYes
include_valuesNoSet false for a compact metadata-first search, then fetch values for exact ids.
include_embedded_assetsNoReturn raw data URLs. Leave false unless their exact encoded contents are explicitly required.

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description's 'Search' is consistent with those. However, the description adds no behavioral context beyond that: it does not mention result shape, pagination, matching semantics, or the effect of include_values/include_embedded_assets, which are already partially described in the schema.

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 a single sentence with no wasted words and front-loads the core action ('Search'). It is concise, but the brevity sacrifices the behavioral and parameter guidance needed for a tool with eight parameters.

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?

For an 8-parameter, no-output-schema tool in a crowded sibling set, this description is not complete enough. It fails to specify return shape, pagination, query semantics, or when this search tool should be chosen over read/schema/export siblings, leaving agents to rely on inference.

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 25% schema description coverage, the description needed to compensate, but it barely does. It lists plural entity categories such as 'designs', 'addons', and 'requirements' that map imprecisely to the schema's enum values (e.g., row_design_group vs choice_design_group, addon vs selectable_addon), and it gives no meaning for project_id, ids, query, limit, or offset.

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 uses the verb 'Search' and identifies the resource as ICC Plus entities, then lists the entity kinds it covers. This differentiates it from mutation tools like iccplus_update_entity or iccplus_delete_entity, though it does not explicitly contrast with iccplus_schema or iccplus_read_project.

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?

There is no guidance on when to prefer this tool over siblings such as iccplus_schema, iccplus_read_project, or iccplus_export_fragment. The verb 'Search' implies a read/list use case, but no context, exclusions, or alternative routing is provided.

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

iccplus_read_projectRead exact ICC Plus project pathsA
Read-onlyIdempotent

Read one or more RFC 6901 JSON Pointers without returning the complete project; preserves exact CSS, HTML, JS, and unknown fields while redacting embedded assets by default.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathsYesExact JSON Pointers. Use an empty string for the root only when the complete project is truly required.
project_idYes
include_embedded_assetsNoReturn raw data URLs. Leave false unless their exact encoded contents are explicitly required.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, non-destructive behavior, and the description adds meaningful behavioral context beyond those hints: it guarantees exact preservation of CSS, HTML, JS, and unknown fields, and explicitly discloses that embedded assets are redacted by default. There is no contradiction between the description and the 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?

The description is a single information-dense sentence that front-loads the action and resource before delivering the key constraints. It includes no filler and every clause earns its place, making it easy for an agent to parse quickly.

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?

With no output schema, the description could go further in stating the response shape or behavior for invalid/inaccessible paths, but the tool's purpose is simple enough that an agent can reasonably infer it returns the values at the requested pointers. The schema and annotations provide strong coverage of parameters and safety, and the description fills the important behavior gaps around exactness and asset redaction.

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 schema covers paths and include_embedded_assets, and the description reinforces and extends this by explaining that JSON Pointer reads preserve exact fields and redact embedded assets by default. This adds practical meaning to the include_embedded_assets parameter that the schema only describes as 'Return raw data URLs.' project_id is only constrained by pattern in the schema and not semantically described, but it is a standard identifier.

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 names a specific verb ('Read'), a precise resource ('RFC 6901 JSON Pointers' within an ICC Plus project), and immediately distinguishes the behavior from a full project read with 'without returning the complete project.' It also communicates the exactness guarantees (CSS, HTML, JS, unknown fields) and default redaction, leaving no ambiguity about the tool's core purpose.

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 when to use the tool—when an exact, targeted read is needed rather than the full project—via 'without returning the complete project.' It does not explicitly name alternatives among siblings such as iccplus_query or state when this tool should be preferred, nor does it describe excluded use cases, so the usage guidance is only implicit.

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

iccplus_save_projectSave ICC Plus projectC
Destructive

Atomically save project JSON inside ICCPLUS_WORKSPACE after optional strict validation.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo
prettyNo
overwriteNo
project_idYes
require_validNo
expected_revisionNo
create_directoriesNo

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already mark this as destructive and non-read-only. The description adds value by noting atomicity and optional validation, which are not in the annotations. However, it omits key behavioral traits such as overwrite semantics, conflict handling via expected_revision, and what happens on failure. While it supplements annotations, the coverage is incomplete for a destructive operation.

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 a single, efficient sentence with no filler. It front-loads the primary purpose and includes two key qualifiers (atomic, optional validation). While it could benefit from a list of parameters or more detail, the structure is clean and the text is appropriately terse.

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 7 parameters, no output schema, and destructive annotations, the description is far too brief. It doesn't explain return values, error handling, or the behavior of overwrite, expected_revision, or create_directories. The atomicity and validation mentions are useful but insufficient for an agent to safely invoke this tool without additional context.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must explain the parameters, but it doesn't. It only hints at 'strict validation' which maps loosely to require_valid. The other six parameters (path, pretty, overwrite, expected_revision, create_directories) remain entirely unexplained, leaving the agent to guess their meaning from names and defaults alone.

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 action (atomically save), the resource (project JSON), and the location (inside ICCPLUS_WORKSPACE). It goes beyond a tautology by adding atomicity and validation context. However, it doesn't differentiate from sibling tools like create_project or update_entity, which might also save project data, leaving some ambiguity about when this specific save operation is intended.

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 mentions 'optional strict validation' but doesn't clarify under what circumstances validation should be skipped or enabled, nor does it name alternative tools or exclusions. An agent would struggle to decide between this and similar operations like create_project or patch.

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

iccplus_schemaRead ICC Plus project schemaA
Read-onlyIdempotent

Read the generated JSON Schema summary, one definition, or the complete project schema.

ParametersJSON Schema
NameRequiredDescriptionDefault
fullNoReturn the complete generated schema.
definitionNoSchema definition such as Choice, Row, Requireds, Score, or Styling.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds the 'generated' provenance and the summary/definition/full scoping, but does not describe output details or how the two optional parameters interact.

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 focused sentence with no filler. It front-loads the action and clearly enumerates the three read modes without redundancy.

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 simple read-only tool with only two optional parameters and strong readOnly/idempotent/destructive annotations, the description is largely complete. It does not specify the exact JSON return shape or combined-parameter behavior, but the 'or' phrasing and JSON Schema context make the intended usage reasonably clear.

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 baseline is 3; the schema already explains `full` and `definition` with useful examples. The tool description maps those parameters to three modes but adds little meaning beyond what the input 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 ('Read') and resource ('generated JSON Schema summary, one definition, or the complete project schema'), giving three clear scopes. It is not tautological and the title reinforces the purpose, but it does not explicitly differentiate from sibling tools like iccplus_read_project or iccplus_capabilities.

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 three usage modes matching the optional parameters: summary, a single definition, or the complete schema. However, it gives no explicit when-to-use guidance, no exclusions, and no mention of when a sibling tool would be more appropriate.

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

iccplus_set_assetSet ICC Plus image or audio assetC

Set any string field from a workspace file as a data URL, or from an external/data URL, using an exact JSON Pointer.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNo
dry_runNo
media_typeNo
project_idYes
source_pathNo
target_pathYes
expected_revisionNo
validation_policyNono_new_errors

TDQS

C2.7/5.0
Behavior2/5

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

The description discloses that the tool mutates a field, but it does not say whether it overwrites existing values, whether the project must first be open or saved, how revision checks or validation policies affect the write, or what side effects a successful set has. Annotations are all false and carry no safety or idempotency information, so the description bears the full burden and does not meet it.

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 one efficient sentence that front-loads the core action and key constraint. It is not padded, but the awkward 'from a workspace file as a data URL' phrasing slightly hurts readability and precision.

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?

For a mutation tool with 8 parameters, no output schema, no parameter descriptions, and no helpful annotations, this one-sentence description is insufficient. It establishes intent but omits critical operational details such as the source_path vs url distinction, media_type requirements, dry_run behavior, and validation/revision semantics.

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 0% schema description coverage across 8 parameters, the description must compensate, but it only clarifies the idea of a JSON Pointer target and data-URL source. It leaves url, source_path, media_type, dry_run, expected_revision, and validation_policy essentially unexplained, so an agent cannot reliably distinguish source_path from url or know why validation_policy and expected_revision exist.

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 action ('Set'), the target resource ('any string field ... using an exact JSON Pointer'), and the two source modes ('workspace file' or 'external/data URL'). It is specific enough to distinguish this from generic patch/update tools, though the phrase 'from a workspace file as a data URL' is slightly tangled and the title's 'image or audio asset' sounds narrower than 'any string field'.

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 gives no when-to-use guidance, no conditions, and no mention of alternative tools such as iccplus_css_set, iccplus_patch, or iccplus_update_entity. It only states the mechanism ('using an exact JSON Pointer'), which is a requirement rather than a usage criterion.

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

iccplus_update_entityUpdate ICC Plus entityB

Deep-merge fields into one entity and optionally unset fields. ID changes can rewrite all modeled references.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNo
unsetNo
valuesYes
dry_runNo
referenceYesEntity id or exact JSON Pointer.
project_idYes
expected_revisionNo
validation_policyNono_new_errors
rewrite_id_referencesNo

TDQS

B3.4/5.0
Behavior4/5

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

The description goes beyond the sparse annotations by disclosing that updates are deep merges, that fields can be unset, and that ID changes may rewrite all modeled references—a meaningful side-effect warning. It does not use destructiveHint despite potential reference rewrites, but this is not necessarily a contradiction because the operation updates rather than deletes. It could add dry-run or validation behavior, but the annotation set is minimal.

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 zero filler, front-loaded with the main action and then a critical side effect. 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 nine parameters, nested values, no output schema, and sparse annotations, the short description leaves important context unexplained: return values, failure or validation behavior, and when to use this versus iccplus_patch. It also does not mention dry_run or validation_policy, which are significant for safely exercising this mutation.

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?

It adds semantics for 'values' (deep-merged rather than replaced), 'unset' (explicit field removal), and ID/reference rewriting, which are not obvious from the bare schema. However, schema coverage is only 11%, and several parameters such as dry_run, expected_revision, validation_policy, and type receive no explanatory benefit from the 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 names a specific operation—deep-merging fields into an entity and optionally unsetting fields—and adds a notable side effect about ID changes rewriting modeled references. It clearly identifies 'one entity' as the resource, though it does not explicitly distinguish itself from the similar sibling iccplus_patch.

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?

There is no explicit guidance about when to choose this tool over siblings such as iccplus_patch or iccplus_create_entity. The 'update' title and merge semantics imply it is for modifying an existing entity, but the description does not state exclusions, prerequisites, or alternative selection criteria.

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

iccplus_validateValidate ICC Plus projectB
Read-onlyIdempotent

Run generated structural schema checks plus ids, references, requirements, memberships, cycles, Custom CSS, and export invariants.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
structuralNo
max_diagnosticsNo

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context by listing the concrete invariant categories checked and noting the checks are 'generated.' It does not describe the return shape, but that is secondary given the strong annotation 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?

The description is a single, front-loaded sentence with no filler. Every phrase adds a distinct validation category, and the verb-object relationship is immediately clear. It is appropriately sized for the tool's straightforward scope.

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 description provides a thorough inventory of what is validated, and the annotations cover side-effect safety. However, it lacks output expectations and any usage context, and with zero parameter semantics an agent can select the tool but must rely on schema defaults and inference to invoke it correctly.

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

Parameters1/5

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

Schema description coverage is 0% and the description contributes almost no parameter information. It does not explain what `structural` toggles, what `max_diagnostics` limits, or how `project_id` is used beyond being the project identifier. The agent is left to infer parameter meaning from property names alone.

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 opens with a specific verb ('Run') and a clear object: generated structural schema checks for an ICC Plus project. It then enumerates the exact categories (ids, references, requirements, memberships, cycles, Custom CSS, export invariants), making its scope distinct from siblings like iccplus_evaluate_requirements or iccplus_project_status.

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. There is no mention of conditions, prerequisites, exclusions, or a preferred workflow such as running validation before export. The description states what the tool does but not when an agent should choose it over other validation-related siblings.

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. 27 tool updatesv0.1.0
    • First observediccplus_build_viewer
    • First observediccplus_capabilities
    • First observediccplus_close_project
    • First observediccplus_create_entity
    • First observediccplus_create_project
    • First observediccplus_css_analyze
    • First observediccplus_css_catalog
    • First observediccplus_css_set
    • First observediccplus_delete_entity
    • First observediccplus_duplicate_entity
    • First observediccplus_evaluate_requirements
    • First observediccplus_export_fragment
    • First observediccplus_history
    • First observediccplus_import_fragment
    • First observediccplus_list_projects
    • First observediccplus_move_entity
    • First observediccplus_normalize
    • First observediccplus_open_project
    • First observediccplus_patch
    • First observediccplus_project_status
    • First observediccplus_query
    • First observediccplus_read_project
    • First observediccplus_save_project
    • First observediccplus_schema
    • First observediccplus_set_asset
    • First observediccplus_update_entity
    • First observediccplus_validate

TDQS

B3.2/5.0

Scored across 27 tools

Disambiguation4/5

Most tools target distinct resources and actions, such as project lifecycle, entity CRUD, CSS, validation, and import/export. The main ambiguities are update_entity versus patch and import_fragment versus create_entity, but the descriptions provide enough scope detail to choose correctly.

Naming Consistency4/5

All tools share the iccplus_ prefix and snake_case, and the majority follow a verb_noun pattern such as create_project, delete_entity, and set_asset. A few noun-only or verb-only names like capabilities, schema, query, and history are minor deviations from an otherwise consistent convention.

Tool Count3/5

27 tools is above the typical well-scoped range and sits just past the heavy 16-25 band. The broad domain—project sessions, entity modeling, CSS management, validation, and viewer building—justifies much of the surface, but some operations could potentially be consolidated.

Completeness4/5

The tool set covers the main project lifecycle, entity CRUD, querying, validation, normalization, import/export, CSS, assets, and viewer building. Minor gaps include no explicit project deletion/rename and no direct get-entity-by-id helper, though JSON Pointer reads and query cover most practical needs.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables local-first book writing with AI assistance, allowing users to scaffold, create, search, validate, and enrich a book repository through natural language using OpenCode or Claude.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI coding agents to interact with TypeScript projects through compiler-level code intelligence, providing tools for navigation, type information, diagnostics, refactoring, and semantic search.
    29
    332 npm
    4
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP service for AI-assisted reasoning and editing on long-form fiction projects. It builds a structured index from scene files for targeted context retrieval.
    138 npm
    1
    AGPL 3.0