Skip to main content
Glama

@putervision/state-memory-mcp

npm version npm downloads CI Node TypeScript Website License: MIT

@putervision/state-memory-mcp는 제로 인프라, 결정론적(deterministic) Model Context Protocol(MCP) 서버로, AI 코딩 어시스턴트(Cursor, Claude Code, Gemini, Copilot 등)에게 작업, 결정, 산출물, 계획, 차단 항목 및 그 의미적 관계와 같은 워크플로 상태를 추적하기 위한 구조화된 영구 SQLite 그래프를 제공합니다.

🌐 공식 문서 및 웹사이트: statememorymcp.com


⚡ 빠른 시작 및 설치

사전 요구사항: Node.js >= 18.18.0

# 1. Install globally
npm install -g @putervision/state-memory-mcp

# 2. Navigate to your project directory
cd your-project

# 3. Initialize state-memory-mcp
# Creates .state-memory-mcp/, updates .gitignore, registers project,
# and scaffolds IDE instructions and MCP configs for Cursor, Claude, VS Code, Windsurf, etc.
state-memory-mcp init

# Done! Restart your IDE or Agent Manager to activate.

대체 옵션

# Run directly via binary (after global install)
state-memory-mcp run

# Re-initialize across all registered workspace projects
state-memory-mcp init-global

Related MCP server: AIVectorMemory

🌟 주요 특징

  • 🧠 결정론적 상태 메모리: 메모리 연산에 LLM이 개입하지 않으며, 빠르고 결정론적인 SQLite 그래프 탐색을 제공합니다.

  • ⚡ 13개의 프로덕션급 통합 MCP 도구: 전체 CRUD, 관계 연결, DAG 사이클 검사, FTS5 검색, TF-IDF RAG, 타임트래블 기록 롤백, 명세 기반 개발(SDD) 및 자동 복구 검증을 지원합니다.

  • 📉 효율적인 컨텍스트 관리: 컨텍스트를 로컬 SQLite 데이터베이스로 오프로드하여 프롬프트 컨텍스트 비대화와 컨텍스트 창 사용량을 줄이는 데 도움을 줍니다.

  • 🚀 67%~74% 지연 시간 단축: 다단계 파일 스캔 루프를 제거하여 에이전트가 차단되지 않은 작업과 차단 항목을 밀리초 단위로 검색할 수 있습니다.

  • 🤝 멀티 에이전트 블랙보드: 병렬 서브에이전트가 결정, 작업 및 차단 항목 업데이트를 안전하게 게시할 수 있는 공유 컨텍스트 저장소입니다.

  • 🎨 인터랙티브 3D 비주얼라이저: 브라우저 기반 다크모드 3D WebGL 힘 기반 그래프 비주얼라이저(state-memory-mcp view)입니다.

  • 🔗 듀얼 MCP 시너지: @putervision/vision-memory-mcp와 연동하여 시각적 상태 캐싱, 지각 해싱, 암호화 멀티모달 증거 팩을 구성할 수 있습니다.

  • 🛡️ 100% 로컬 및 프라이빗: 로컬 우선 아키텍처로, 모든 상태는 작업 공간의 .state-memory-mcp/ 안에 유지됩니다.


🛠️ MCP 도구 모음

@putervision/state-memory-mcp는 5가지 핵심 워크플로 도메인에 걸쳐 구성된 13개의 프로덕션급 통합 MCP 도구를 제공합니다:

  • 그래프 및 관계: manage_nodes(노드 CRUD, FTS5/TF-IDF 벡터 검색, 원자적 배치 변경, 관찰 메모), manage_edges(타입화된 DAG 링크, 멀티모달 시각적 상태 연결).

  • 작업 실행 및 작업 큐: manage_tasks(위상 정렬 의존성 큐, 차단 항목 감지, 산출물 포함 작업 완료, 자동 정리), manage_sessions(에이전트 귀속, 턴 추적, 컨텍스트 부트스트랩).

  • 명세 기반 개발(SDD): manage_specs(PRD/RFC 파싱, 요구사항-작업 분해, 실시간 승인 기준 검증, 준수 점수 산정).

  • 분석, 감사 및 진단: get_analytics(벨로시티, 번다운, 토큰 ROI, 인지 부하, 임계 경로), get_events(SHA-256 변조 방지 이벤트 원장), run_diagnostics(DAG 검증, 상태 점검, AST 참조 무결성).

  • 데이터, 스냅샷 및 멀티 에이전트: manage_snapshots(체크포인트, 타임트래블 실행 취소), manage_database(백업, 체크섬 감사, VCS 브랜치 병합), manage_data(대량 가져오기/내보내기, ML 궤적), query_graph(서브그래프, 의존성 추적, 원시 SQL), use_blackboard(멀티 에이전트 비동기 토픽 보드).

👉 전체 매개변수 사양, 반환 스키마 및 예제 페이로드는 **도구 참조 가이드**와 **공식 API 레퍼런스**를 참조하세요.


🚀 아키텍처 및 상태 그래프 수명주기

                      AI Agent Prompt / Task
                                │
                                ▼
               ┌─────────────────────────────────┐
               │  Agent Session Attribution       │ ──▶ manage_sessions(action: "start")
               └────────────────┬────────────────┘
                                │
                                ▼
               ┌─────────────────────────────────┐
               │  Context & Task Prioritization   │ ──▶ get_analytics(action: "summary")
               │                                 │ ──▶ manage_tasks(action: "next")
               └────────────────┬────────────────┘
                                │
                                ▼
               ┌─────────────────────────────────┐
               │  Deterministic Graph Mutation   │ ──▶ manage_nodes(action: "create"|"update")
               │  (Tasks, Decisions, Blockers)   │ ──▶ manage_edges(action: "add"|"link_visual")
               └────────────────┬────────────────┘
                                │
                                ▼
               ┌─────────────────────────────────┐
               │  Spec & Integrity Verification  │ ──▶ manage_specs(action: "compliance"|"verify")
               │                                 │ ──▶ run_diagnostics(action: "validate")
               └────────────────┬────────────────┘
                                │
                                ▼
               ┌─────────────────────────────────┐
               │  Persistent SQLite Storage      │ ──▶ .state-memory-mcp/graph.db (WAL mode)
               │  Append-Only Event Ledger       │ ──▶ SHA-256 Cryptographic Audit Chain
               └─────────────────────────────────┘

📚 문서 디렉토리

docs/ 디렉토리에서 전용 가이드와 심층 분석을 살펴보세요:

가이드

설명

🏗️ 아키텍처 및 코드베이스 요약

정보 밀도가 높은 아키텍처 개요, 모듈 인벤토리, 데이터 흐름 및 설계 결정 사항.

🚀 v0.10 → v1.0 마이그레이션 가이드

단계별 마이그레이션 가이드, 레거시 도구 매핑 테이블 및 STATE_MEMORY_COMPAT 모드.

💡 가치 제안 및 이론

인지 외부화, FSM 형식주의, 첫 홉 결정론 및 벤치마크 지표.

📋 상태 메모리 개념

노드 유형(task, decision, blocker 등), 상태 값, 타입화된 엣지 및 시딩 가이드라인.

⚙️ 구성 및 IDE 설정

자동 초기화 세부 사항, 환경 변수 테이블 및 에디터 구성(Cursor, VS Code, Claude, Antigravity, Windsurf).

🛠️ CLI 명령어 레퍼런스

CLI 플래그(init, run, view, inspect, metrics, audit, doctor, backup, restore, merge) 및 Git 스캐너.

⏱️ 세션, 스냅샷 및 SDD

세션 수명주기, 이벤트 감사 추적, 스냅샷, 궤적, 하위 디렉토리 지원 및 명세 기반 개발.

🧰 도구, 리소스 및 프롬프트

13개 통합 MCP 도구 전체, 읽기 전용 state-memory:/// 리소스 및 프롬프트 템플릿에 대한 완전한 레퍼런스.

📘 공식 API 레퍼런스

모든 MCP 엔드포인트에 대한 공식 매개변수, 반환 스키마 및 코드 시그니처.

🎨 3D 비주얼라이저 가이드

인터랙티브 WebGL 3D 힘 기반 그래프 비주얼라이저의 조회 및 내보내기.

🗄️ 데이터베이스 스키마

SQLite 테이블, 컬럼, 인덱스 및 스키마 마이그레이션 이력.


📖 에이전트 플레이북: 5단계 표준 워크플로

자율 AI 에이전트가 state-memory-mcp가 포함된 저장소에 진입하면:

1. Orient & Bootstrap ──▶ manage_sessions(action: "start") + get_analytics(action: "summary")
2. Task Selection     ──▶ manage_tasks(action: "next") + manage_tasks(action: "find_blockers")
3. Trace Context      ──▶ query_graph(action: "trace") + manage_specs(action: "compliance")
4. Execute & Record   ──▶ manage_nodes(action: "create", type: "decision") + manage_edges(action: "link_visual")
5. Validate & Close   ──▶ run_diagnostics(action: "validate") + manage_tasks(action: "complete") + manage_sessions(action: "end")

🧪 테스트

# Run full unit, integration, and performance benchmark test suite across all 110 test files (406 tests)
npm run test

⚖️ 라이선스 및 고지 사항

PuterVision에서 개발 및 유지 관리합니다. MIT 라이선스에 따라 배포됩니다.

  • 로컬 저장 보장: 모든 그래프 데이터, 결정 기록 및 이벤트 로그는 작업 공간에 100% 로컬로 유지됩니다. 텔레메트리 또는 프로젝트 데이터가 전송되는 경우는 없습니다.

  • 상표 및 비제휴: 제품 이름(Cursor, Claude Code, Gemini, Windsurf, VS Code, GitHub, SQLite)은 각 소유자의 자산이며 호환성 식별 목적으로만 사용됩니다.

Available Tools

13 tools
get_analyticsA
Read-onlyIdempotent

Compute workflow metrics, velocity, burndown, cognitive load, decision lineages, and contradiction audits (actions: summary, velocity, burndown, value_metrics, cognitive_load, critical_path, context_snapshot, active_context, decision_trail, find_related_decisions, contradictions). Use get_analytics instead of query_graph when calculating high-level progress statistics, ROI metrics, or auditing decision conflicts.

Returns summary dashboard, velocity charts, burndown series, cognitive load metrics, critical path DAG, or contradiction reports.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of historical days for burndown (default: 14).
actionYesThe analytics or decision analysis action to execute: summary, velocity, burndown, value_metrics, cognitive_load, critical_path, context_snapshot, active_context, decision_trail, find_related_decisions, contradictions.
node_idNoDecision node ID for decision_trail.
projectNoTarget project name or slug.
artifact_idNoArtifact node ID for find_related_decisions.
window_daysNoNumber of days to analyze for velocity (default: 14).
milestone_idNoMilestone ID for critical_path calculation.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds useful value by listing the shape of returned artifacts (dashboard, velocity charts, burndown series, DAG, reports) despite no output schema existing, though it does not disclose per-action behavior nuances.

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 routing rule is well front-loaded, but the eleven-action list is repeated twice within the description itself and again in the schema, which is redundant. It is somewhat over-sized for the information conveyed.

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 usefully summarizes the return values, and annotations cover the safety contract. It is close to complete for a multi-action tool, missing only action-level guidance about which parameters apply to which action.

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% and the enum plus per-parameter descriptions fully document the inputs, so the schema carries the burden. The description restates the action list but adds no syntax, defaults, or format detail beyond what the schema already provides.

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

Purpose5/5

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

The description gives a specific verb+resource ('Compute workflow metrics') and enumerates the concrete analytics it produces, so an agent knows exactly what this tool does. It also explicitly distinguishes itself from the similarly-named sibling query_graph.

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

Usage Guidelines4/5

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

It names the alternative (query_graph) and the conditions that select this tool (high-level progress statistics, ROI metrics, decision-conflict auditing). However, the routing guidance only covers the metrics/high-level cases and does not explain when to pick the decision-analysis actions (decision_trail, find_related_decisions, context_snapshot) over other siblings.

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

get_eventsA
Read-onlyIdempotent

Inspect the append-only event audit ledger, query structured changesets, and generate session post-mortems (actions: log, changelog, post_mortem). Use get_events instead of manage_snapshots when examining the granular chronological sequence of mutations rather than restoring state checkpoints.

Returns chronological event array, structured changeset diff, or session post-mortem markdown report.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum events to return (1-1000).
sinceNoISO timestamp or relative duration (e.g. 2h, 1d) for log or changelog.
untilNoEnding ISO timestamp for log.
actionYesThe event query action to execute: log, changelog, post_mortem.
offsetNoPagination offset for log.
projectNoTarget project name or slug.
git_branchNoGit branch filter for changelog.
session_idNoSession ID for log or post_mortem.
since_sessionNoSession ID to diff from for changelog.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description still adds value by characterizing the ledger as 'append-only' (immutability of the underlying data) and by stating the shape of each action's return, which the annotations do not.

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?

Three sentences: purpose plus actions, then sibling routing, then return values. Nothing is redundant, and the routing constraint that determines tool selection is front-loaded rather than buried.

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 9-parameter read-only tool with no output schema, the description covers purpose, selection criteria, and the return format for each action, which is enough to call it correctly. It does not address pagination behavior despite log exposing limit/offset, a minor residual gap.

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

Parameters4/5

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

Schema coverage is 100%, so per-parameter syntax is already documented and the baseline is 3. The description goes beyond the schema by mapping each action value to a distinct output (chronological event array, structured changeset diff, session post-mortem markdown), which is semantics the enum listing alone does not convey.

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 resource ('append-only event audit ledger'), three concrete actions (log, changelog, post_mortem), and the returned artifacts. It is immediately distinguishable from siblings like manage_snapshots, which it explicitly positions itself against.

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

Usage Guidelines5/5

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

It gives an explicit either/or routing rule: use get_events over manage_snapshots when examining the chronological sequence of mutations rather than restoring checkpoints. The parenthetical action list also tells the agent which sub-mode to select without opening the schema.

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

manage_dataA
Destructive

Export and import graph structures, issue tracker items, fine-tuning trajectories, and multimodal synergy metrics (actions: export_graph, export_issues, export_trajectories, export_joint_trajectories, export_synergy_metrics, from_tick, import_graph, import_issues, import_spec). Use manage_data instead of query_graph when bulk-transferring graph data or generating AI training datasets.

Returns serialized graph payload, trajectory dataset, synergy metrics, or import statistics.

ParametersJSON Schema
NameRequiredDescriptionDefault
edgesNoArray of edge objects for import_graph.
forceNoForce overwrite during import.
limitNoMaximum items to export (1-1000).
nodesNoArray of node objects for import_graph.
sinceNoStart timestamp for trajectories.
untilNoEnd timestamp for trajectories.
actionYesThe data export or import action to execute: export_graph, export_issues, export_trajectories, export_joint_trajectories, export_synergy_metrics, from_tick, import_graph, import_issues, import_spec.
formatNoData format.
issuesNoArray of issue objects for import_issues.
offsetNoOffset for trajectories.
projectNoTarget project name or slug.
file_pathNoFile path for import_spec.
session_idNoSession ID filter for trajectories.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=false, and readOnlyHint=false, so the destructive/import consequences are partly carried by structured metadata. The description adds the return payload types (serialized graph, trajectory dataset, synergy metrics, import statistics), which is useful, but it never states that import actions can overwrite or destroy existing data — a notable omission for a destructive tool.

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

Conciseness4/5

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

Two tight sentences: the first front-loads the resource scope and action list, the second routes the agent away from query_graph, and a third short sentence covers return values. Dense but every sentence earns its place; the action enumeration is long yet necessary for a nine-action tool.

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 13 parameters, 100% schema coverage, and no output schema, the description sensibly supplies the return-value summary the output schema lacks and states the resource scope. It is complete enough to call correctly, though it leaves per-action parameter applicability to the schema descriptions.

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 description only restates the action names already enumerated in the action enum and adds no syntax, format, or applicability guidance beyond what the schema documents (e.g., 'edges for import_graph').

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 gives specific verbs (export, import) and enumerates the four resource families (graph structures, issue tracker items, fine-tuning trajectories, synergy metrics) plus the full action list. It clearly differentiates from query_graph. It loses a point only because the tool is a broad nine-action facade whose scope is hard to hold in mind from prose alone.

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

Usage Guidelines4/5

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

It explicitly names the alternative (query_graph) and the condition that selects this tool instead: bulk-transferring graph data or generating AI training datasets. It does not address the other import/export-adjacent siblings (manage_specs, manage_snapshots), so the 'when not' coverage is partial.

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

manage_databaseA
Destructive

Physical SQLite database maintenance, backups, integrity checks, and Git VCS state sync (actions: backup, restore, audit, merge, branch_diff, branch_merge). Use manage_database instead of manage_snapshots when managing physical SQLite files, cross-branch merges, or database corruption audits.

Returns database backup path, foreign key integrity report, branch merge conflict report, or diff.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoForce overwrite during restore or merge.
actionYesThe database administration or VCS sync action to execute: backup, restore, audit, merge, branch_diff, branch_merge.
projectNoTarget project name or slug.
backupPathNoSource backup file path for restore.
outputPathNoTarget destination file path for backup.
sourcePathNoSource SQLite database path for merge.
source_branchNoSource git branch for branch_merge.
target_branchNoTarget git branch to compare or merge against.
resolution_strategyNoConflict resolution strategy for branch_merge.

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false, so the safety profile is covered. The description adds useful context about VCS sync and return types, but it does not go beyond annotations to explain which actions overwrite data, what permissions are needed, or how conflicts are resolved. A 3 is appropriate given the annotations carry the main behavioral 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?

Three sentences, each earning its place: the first scopes the tool and lists actions, the second routes from a sibling, and the third summarizes return values. It is front-loaded and contains no redundant filler.

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?

The description covers the tool's purpose, alternative sibling, and return values, and the annotations plus full schema coverage handle safety and parameter semantics. It does not explicitly map which parameters apply to which action, though the schema descriptions do this adequately. The definition is complete enough for correct invocation.

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 already has a semantic description in the schema. The description lists the actions but does not add syntax, format, or conditional logic beyond what the schema provides, making the baseline 3 correct.

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 and resource ('Physical SQLite database maintenance, backups, integrity checks, and Git VCS state sync') and enumerates all six actions. It also explicitly distinguishes itself from the sibling manage_snapshots, so an agent can tell what this tool does without opening the schema.

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

Usage Guidelines5/5

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

It gives explicit routing guidance: use manage_database instead of manage_snapshots when managing physical SQLite files, cross-branch merges, or database corruption audits. This names the alternative and the condition that selects it, leaving little to inference.

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

manage_edgesA
Destructive

Manage typed graph relationships between nodes (actions: add, remove, batch_add, link_visual). Use manage_edges instead of manage_nodes when creating or modifying relationships between existing entities rather than entity data itself.

Returns created edge record, batch count, or visual link confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoThe semantic relationship type.
edgesNoArray of edge objects for batch_add.
actionYesThe edge management action to execute: add, remove, batch_add, link_visual.
projectNoTarget project name or slug.
metadataNoOptional metadata for link_visual.
source_idNoID of the source node.
target_idNoID of the target node.
propertiesNoOptional metadata properties for the edge.
source_urlNoOptional URL where the visual state was captured.
relationshipNoRelationship type for link_visual (e.g. renders_state, blocked_by_visual_state).
visual_state_idNoVisual Memory snapshot/state ID for link_visual.
visual_descriptionNoOptional text description for the visual state.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=false, and readOnlyHint=false, so mutation semantics are covered structurally. The description adds value beyond that by disclosing the three distinct return shapes (created edge record, batch count, visual link confirmation), which matters because there is no output schema. It stops short of saying what a remove destroys or whether edges are recoverable.

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?

Three sentences with the action list front-loaded and zero filler; each sentence carries distinct information (scope, sibling routing, return shape). The action enumeration is mildly redundant with the schema enum but is defensible as orientation material.

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 12-parameter, nested-object, no-output-schema mutation tool, the description covers scope, sibling disambiguation, and expected returns, which are the main gaps an agent would hit. It leaves the batch_add edge object shape and link_visual prerequisites entirely to the schema, which is acceptable given 100% schema coverage.

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 all 12 parameters carry their own descriptions and the description need not re-document them. The description only restates the four action values already listed in the action enum's own description, adding no syntax or format detail beyond the schema.

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

Purpose5/5

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

States a specific resource ('typed graph relationships between nodes') and enumerates the four supported actions inline. It goes further by explicitly naming the sibling it is not (manage_nodes) and the boundary condition that separates them, so an agent can route correctly without opening either schema.

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 'Use manage_edges instead of manage_nodes when...' sentence gives a clear selection rule against the most confusable sibling. It does not, however, explain when to pick add vs batch_add vs link_visual, leaving intra-tool action selection to the enum names.

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

manage_nodesA
Destructive

Manage graph nodes in the state graph (actions: create, update, get, remove, list, search, batch_create, batch_update, add_note). Use manage_nodes instead of manage_tasks when operating on general node types (decisions, artifacts, plans, milestones, blockers) rather than runnable task workflow states.

Returns node object, edge connections, batch results, or search matches.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoUnique node identifier for get, update, or remove.
idsNoArray of node IDs for batch_update.
tagsNoArray of searchable tags.
textNoText note content for add_note.
typeNoThe type classification of the node.
limitNoMaximum number of items to return (1-1000).
nodesNoArray of node payloads for batch_create.
queryNoSearch term for full-text search.
titleNoTitle or label of the node.
actionYesThe node management action to execute: create, update, get, remove, list, search, batch_create, batch_update, add_note.
offsetNoNumber of items to skip for pagination.
statusNoStatus of the node (e.g. pending, in_progress, done, blocked, active, accepted, current).
compactNoWhether to return a lightweight compact summary.
projectNoTarget project name or slug.
metadataNoArbitrary structured key-value metadata.
algorithmNoSearch algorithm for search action.
attach_toNoNode ID to attach observation note to via references edge.
git_branchNoGit branch filter.
session_idNoActive session identifier for change attribution.
include_edgesNoWhether to include inbound/outbound edges on get.
expected_versionNoOptimistic concurrency version check for update.

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=false and readOnlyHint=false, so the safety profile is partly covered. The description adds the return-shape surface ('Returns node object, edge connections, batch results, or search matches'), which is useful given there is no output schema, but it never warns which actions mutate/destroy data (remove, batch_update) or mention the optimistic concurrency behavior implied by expected_version.

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

Conciseness4/5

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

Two compact sentences plus a short return-shape line, with the action enumeration and the sibling-routing rule front-loaded. No filler, though the parenthetical action list slightly duplicates the action enum in the schema.

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 21-parameter, 9-action, nested-object tool with no output schema, the description covers the action set and the return surface but omits action/parameter coupling (e.g. add_note requires attach_to/text, batch_update requires ids) and any warning that some actions are destructive. Adequate but with clear gaps for a tool this broad.

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% across all 21 parameters, so the schema already carries the parameter semantics; the description adds no per-parameter meaning beyond the action list. Baseline 3 is appropriate when the schema does the heavy lifting.

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+resource ('Manage graph nodes in the state graph') and enumerates the nine supported actions, so an agent knows exactly what surface this tool exposes. It also explicitly distinguishes itself from the closest sibling by routing runnable task states to manage_tasks.

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

Usage Guidelines4/5

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

It gives an explicit when-to-use rule with an alternative named: 'Use manage_nodes instead of manage_tasks when operating on general node types (decisions, artifacts, plans, milestones, blockers) rather than runnable task workflow states.' That is clear routing context, but it offers no guidance on when to pick specific actions versus the overlapping query_graph sibling (e.g. search), and no exclusions for the destructive actions.

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

manage_sessionsA

Manage agent tracking sessions and multi-turn workflow attribution (actions: start, end, list, bootstrap). Use manage_sessions instead of manage_tasks when establishing agent session boundaries and tracking multi-turn workflows rather than individual work items.

Returns session record, bootstrap context snapshot, or active session listing.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of sessions to list (1-1000).
actionYesThe session management action to execute: start, end, list, bootstrap.
projectNoTarget project name or slug.
agent_idNoAgent identifier for session tracking and change attribution.
metadataNoArbitrary session metadata.
session_idNoUnique session identifier for end.
task_limitNoMaximum runnable tasks to return on bootstrap.
active_onlyNoWhether to return only active unclosed sessions on list.

TDQS

A3.9/5.0
Behavior3/5

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

Annotations declare write (readOnlyHint=false), non-destructive, non-idempotent. The description adds the return shapes (session record, bootstrap context snapshot, active session listing), which is useful context. However it does not disclose what 'end' does to state, permission needs, or idempotency behavior, so it stays at baseline-plus.

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?

Three compact sentences, front-loaded with purpose and action list, then routing, then returns. No filler, though the parenthetical action list and schema already overlap slightly.

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 multi-action, 8-parameter tool with no output schema, the description covers purpose, action set, sibling routing, and return shapes. It is largely complete, though the destructive semantics of 'end' and per-action prerequisites remain unstated.

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 all eight parameters (including limit, active_only, session_id scope, task_limit) are already documented in the schema. The description adds no parameter-level meaning beyond that, so the baseline of 3 applies.

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+resource (manage agent tracking sessions / multi-turn workflow attribution), enumerates the four actions (start, end, list, bootstrap), and explicitly contrasts itself with the sibling manage_tasks. An agent can distinguish this from manage_tasks without opening either schema.

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

Usage Guidelines4/5

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

It gives explicit routing: 'Use manage_sessions instead of manage_tasks when establishing agent session boundaries and tracking multi-turn workflows rather than individual work items.' That names the alternative and the deciding condition, but it offers no guidance on choosing among its own actions (start vs. bootstrap vs. list) or other siblings.

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

manage_snapshotsA
Destructive

State checkpointing, time travel, diffing, and undo operations (actions: save, list, diff, get_state, revert, undo, get_history). Use manage_snapshots instead of manage_database when reverting state graph mutations or comparing checkpoints rather than physical database file maintenance.

Returns snapshot record, state graph diff, historical graph state, or node audit history.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoForce snapshot even if node count is high.
limitNoMaximum snapshots to list (1-1000).
actionYesThe snapshot management action to execute: save, list, diff, get_state, revert, undo, get_history.
node_idNoNode ID for undo or get_history.
projectNoTarget project name or slug.
timestampNoISO 8601 timestamp for get_state or revert.
session_idNoOptional session identifier for save.
snapshot_id_aNoFirst snapshot ID for diff.
snapshot_id_bNoSecond snapshot ID for diff.

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false, so the safety profile is covered. The description adds return types but never clarifies that revert/undo mutate state while list/diff/get_state/get_history are safe reads, leaving mixed-action risk unstated.

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

Conciseness4/5

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

Two tight paragraphs with the core capability front-loaded before the alternative and the return summary. The parenthetical action list is mildly redundant with the schema enum, but no sentence is wasted.

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 nine-parameter, seven-action tool with no output schema, the description supplies purpose, differentiation, action inventory, and return types, which is substantial. It lacks per-action parameter applicability (e.g., timestamp for get_state/revert), the one remaining gap for a tool this complex.

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% and each parameter is documented, so the burden is on the schema. The description's restatement of the action list duplicates the enum and adds no mapping of which parameters apply to which action.

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 specific verbs and resources (state checkpointing, time travel, diffing, undo) and enumerates the supported actions, so an agent knows exactly what domain this covers. It explicitly distinguishes itself from the sibling manage_database, making it separable without opening the schema.

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?

Explicitly routes the agent away from manage_database with a concrete condition: use this when reverting state graph mutations or comparing checkpoints rather than physical database file maintenance. It does not advise when to pick among the seven internal actions or when not to snapshot at all, so it stops short of a full 5.

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

manage_specsA

Spec-Driven Development (SDD) lifecycle and workflow template generation (actions: scaffold, ingest, export, compliance, verify, decompose_feature, template). Use manage_specs instead of manage_nodes when authoring, ingesting, or verifying formal SDD specifications against acceptance criteria.

Returns specification AST, compliance matrix, verification verdict, or decomposed feature plan.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName of template or feature.
titleNoTitle of feature spec or template.
actionYesThe specification or template action to execute: scaffold, ingest, export, compliance, verify, decompose_feature, template.
formatNoFormat of spec file.
statusNoVerification status for verify.
projectNoTarget project name or slug.
spec_idNoSpec node ID for export.
subtasksNoArray of subtask titles for decompose_feature.
templateNoTemplate type for template action.
file_pathNoFile path of PRD or Gherkin feature for ingest.
descriptionNoFeature description for decompose_feature.
criterion_idNoAcceptance criterion node ID for verify.
observation_idNoOptional observation node ID containing test proof.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations supply the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=false), so the agent already knows this is a non-destructive mutation surface. The description adds useful return-shape context (AST, compliance matrix, verdict, feature plan), which matters since there is no output schema. However it discloses nothing about per-action side effects, permissions, or whether operations are reversible, so it is only partially transparent.

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

Conciseness4/5

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

Two front-loaded sentences plus a return sentence, no filler. The action list is repeated in the description, the action enum, and the action property description, which is mild redundancy, but each sentence otherwise earns its place.

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

Completeness3/5

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

For a tool with 7 actions and 13 parameters, the description covers the routing question and the return types, and the schema covers parameters fully. What is missing is any per-action contextual detail, for example which parameters apply to ingest versus verify, leaving the agent to infer mappings from parameter names alone.

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 each of the 13 parameters is already documented in the schema, including the action enum. The description only restates the action list and return types, adding no per-parameter meaning or per-action parameter mapping. Baseline 3 is appropriate when the schema does the heavy lifting.

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 domain (Spec-Driven Development) and enumerates the actions the tool performs, so the agent understands it handles SDD spec authoring, ingestion, and verification plus template generation. It distinguishes itself from the closest sibling, manage_nodes, which is strong. It stops short of 5 because the tool is a broad multi-action bundle and the description never sharpens what each action's purpose is.

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

Usage Guidelines4/5

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

It gives an explicit routing rule: use manage_specs instead of manage_nodes when authoring, ingesting, or verifying formal SDD specifications against acceptance criteria. That is a clear when-to-use with a named alternative. It lacks per-action selection guidance (when to use verify vs compliance vs decompose_feature), which keeps it from a 5.

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

manage_tasksA

Task prioritization, workflow execution, blockers, and stale task management (actions: next, complete, find_blocked, find_stale, find_blockers, find_similar_blockers, auto_prune). Use manage_tasks instead of query_graph when querying runnable tasks by priority order or resolving execution blockers.

Returns prioritized runnable tasks, blocker hierarchy, similar resolved blockers, or completion confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoNode type filter for find_stale.
limitNoMaximum tasks to return (1-1000).
queryNoQuery text for find_similar_blockers.
actionYesThe task management action to execute: next, complete, find_blocked, find_stale, find_blockers, find_similar_blockers, auto_prune.
statusNoStatus filter for find_stale.
node_idNoOptional node ID to check blockers for.
projectNoTarget project name or slug.
task_idNoTask node ID to complete.
thresholdNoSimilarity threshold for find_similar_blockers (0.0 - 1.0).
git_branchNoGit branch filter.
older_thanNoDuration threshold for staleness (e.g. 7d, 24h, 30m).
decision_idNoDecision node ID for find_blocked.
target_statusNoTarget status to assign when auto-pruning (e.g. cancelled).
artifact_titleNoOptional title of artifact produced on complete.
include_contextNoWhether to include parent plan/milestone and blocker context on next.
visual_state_idNoOptional visual state ID to link on complete.
artifact_metadataNoOptional metadata for produced artifact.
artifact_file_pathNoOptional file path for produced artifact.
include_transitiveNoWhether to include transitive blockers.
visual_relationshipNoVisual relationship for complete (default: renders_state).

TDQS

A3.6/5.0
Behavior3/5

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

Annotations declare readOnlyHint=false with destructiveHint=false, and the description is consistent with mutation-triggering actions (complete, auto_prune). It adds useful disclosure of what each action returns, which annotations do not cover. However, it says nothing about side effects of auto_prune, whether completion/pruning is reversible, or permission requirements for a tool whose default action set includes mutations.

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?

Three sentences, front-loaded with the action inventory then the routing rule then return values; no filler. It is dense but every sentence carries information, and the action list could arguably be deferred to the schema's enum.

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 20-parameter, multi-action tool with no output schema, the description supplies return-value orientation per action and a sibling-routing rule. The schema's per-parameter action scoping compensates for the missing action-to-parameter mapping. Remaining gap is the absence of any safety/reversibility note around the mutating actions.

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% and each param description already scopes itself to an action (e.g., 'for find_stale', 'for find_similar_blockers'), so the schema does the heavy lifting. The description adds no syntax, format, or default detail beyond the schema, so the baseline 3 applies.

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 enumerates the exact action set (next, complete, find_blocked, find_stale, find_blockers, find_similar_blockers, auto_prune) and names the resource domain, so an agent knows this is a task-lifecycle tool. It also differentiates itself from a sibling by name (query_graph). It stops short of a single crisp verb+resource statement, but coverage is strong.

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

Usage Guidelines4/5

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

It gives an explicit routing rule: use manage_tasks instead of query_graph when querying runnable tasks by priority order or resolving execution blockers. That names an alternative and the selecting condition. It does not, however, explain when to prefer one action over another within the tool, nor any exclusions.

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

query_graphA
Read-onlyIdempotent

Query graph topology, neighborhoods, dependency paths, safe read-only SQL queries, and compact System One task slices (actions: subgraph, trace, raw, natural_language, compact_slice). Use query_graph instead of get_analytics when exploring graph topology and path traversals rather than aggregated numerical metrics.

Returns subgraph nodes and edges, upstream/downstream trace path, raw SQL rows, or compact task slice.

ParametersJSON Schema
NameRequiredDescriptionDefault
sqlNoRead-only SELECT query for raw action.
depthNoMaximum depth for subgraph query (1-10).
queryNoNatural language search query for natural_language action.
actionYesThe graph query action to execute: subgraph, trace, raw, natural_language, compact_slice.
paramsNoQuery parameters for raw action.
node_idNoStarting node ID for trace.
projectNoTarget project name or slug.
root_idNoRoot node ID for subgraph query.
directionNoDirection of dependency traversal for trace.
max_depthNoMaximum traversal depth for trace (1-50).
edge_typesNoAllowed edge types for trace (default: depends_on, blocks, child_of).

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description reinforces 'safe read-only SQL,' which the schema already states, and adds only brief return-shape notes per action without disclosing permissions, limits, or scoping behavior.

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?

Three sentences that are front-loaded with the tool's scope and routing rule. The parenthetical action list duplicates the enum already present in the schema, a minor redundancy, but nothing is bloated.

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 an 11-parameter, multi-action tool with no output schema, the description does summarize the return shapes across actions and gives a routing rule. It falls short on mapping parameters to actions, but the schema covers parameters and the safety profile is fully annotated, making the definition largely sufficient.

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

Parameters3/5

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

Schema coverage is 100%, so all 11 parameters are already documented in the schema, which serves as the baseline 3. The description names the actions but adds no parameter-level detail (e.g., which params apply to which action) beyond what the schema provides.

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

Purpose5/5

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

States a specific verb (Query) plus the resources it operates on (graph topology, neighborhoods, dependency paths, compact task slices) and enumerates its five actions. It explicitly distinguishes itself from the get_analytics sibling, so an agent can route without opening the schema.

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

Usage Guidelines4/5

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

The description gives an explicit when-to-use/when-not rule: use query_graph for topology and path traversals rather than aggregated metrics, naming get_analytics as the alternative. It does not, however, guide selection among its own five actions (subgraph vs trace vs natural_language), leaving that to inference.

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

run_diagnosticsA
Destructive

Run graph sanity checks, health diagnostics, reference validation, audit chain verification, and storage maintenance (actions: validate, doctor, check_refs, audit_chain, compact, archive, prune_events, version, dedupe). Use run_diagnostics instead of get_analytics when performing database repair, AST reference auto-healing, or verifying SHA-256 event hash chains.

Returns validation diagnostics, health report, broken reference repair log, Merkle chain audit, or maintenance stats.

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNoFor dedupe action: whether to apply merging (default: false for dry-run).
actionYesThe diagnostic or maintenance action to execute: validate, doctor, check_refs, audit_chain, compact, archive, prune_events, version, dedupe.
checksNoOptional subset of validation checks.
dry_runNoSimulate event pruning without deleting.
projectNoTarget project name or slug.
auto_healNoAutomatically fix broken file references on check_refs.
older_thanNoAge duration threshold for prune_events (e.g. 90d).
preserve_typesNoEvent types to preserve from pruning.
older_than_daysNoAge threshold in days for archive (default: 30).
prune_orphaned_edgesNoWhether to prune dangling edges during compact.

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false, so the mutation risk is flagged structurally. The description adds useful nuance by separating read-only diagnostics (validate/doctor/check_refs/audit_chain) from maintenance actions (compact/archive/prune_events/dedupe), but it never states that those actions irreversibly delete data, nor does it expose the dry-run default.

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?

Front-loaded with the verb and action set, followed by the sibling comparison and return values. The parenthetical action list largely duplicates the enum, which is mildly redundant, but the structure and length are otherwise efficient.

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 10-parameter, no-output-schema tool, the description covers what actions exist and what each returns (diagnostics, health report, repair log, Merkle chain audit, maintenance stats). It stops short of linking action-specific parameters (apply, auto_heal, dry_run) to their triggering actions, leaving that to the schema.

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 all ten parameters (apply, dry_run, older_than, preserve_types, etc.) are already documented in the schema. The description restates only the action enum and adds no syntax, defaults, or cross-parameter constraints beyond what the schema provides.

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

Purpose5/5

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

States a specific verb (run) plus the resources/actions involved (validate, doctor, check_refs, audit_chain, compact, archive, prune_events, version, dedupe) and explicitly names the sibling it is not (get_analytics). An agent can distinguish it from the other manage_* and query tools without opening a schema.

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?

Explicitly routes the agent: 'Use run_diagnostics instead of get_analytics when performing database repair, AST reference auto-healing, or verifying SHA-256 event hash chains.' This is clear when-to-use guidance, but it does not state when NOT to run destructive actions or any prerequisites (backups, permissions).

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

use_blackboardA
Destructive

Multi-agent shared blackboard for asynchronous coordination and mutex leases (actions: get, set, delete, lease, list, post, read). Use use_blackboard instead of manage_nodes when exchanging transient inter-agent messages or mutex resource leases rather than recording persistent graph knowledge.

Returns blackboard message payload, lease acquisition status, active topic list, or deletion confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoBlackboard entry identifier for get or delete.
modeNoLease action mode: acquire or release (default: acquire).
limitNoMaximum number of items or topics to return.
topicNoBlackboard topic or channel name.
actionYesThe blackboard action to execute: get, set, delete, lease, list, post, read.
contentNoMessage payload to post/set.
projectNoTarget project name or slug.
agent_idNoSender or claiming agent identifier.
agent_roleNoSender agent role (e.g. planner, coder, reviewer).
resource_idNoResource identifier to lease or release.
ttl_secondsNoTime-to-live in seconds (default: 3600).
topic_prefixNoPrefix filter for listing topics.
duration_secondsNoLease hold duration in seconds (default: 60).

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, non-idempotent and closed-world, so the safety profile is partly covered. The description adds genuinely new behavioral context by disclosing the return shapes (message payload, lease acquisition status, topic list, deletion confirmation) and the asynchronous/lease coordination model. It does not, however, say which of the seven actions is destructive or what deletion actually removes, which is the main remaining gap.

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

Conciseness4/5

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

Two sentences, front-loaded with the purpose before the sibling disambiguation and return summary. The parenthetical action list duplicates the action enum verbatim, which is a small but real redundancy rather than a functional defect.

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 13-parameter, 7-action tool with no output schema, the description does carry the return-value information an agent would otherwise lack. What is missing is the mapping of which parameters apply to which action (e.g. id for get/delete, resource_id for lease), leaving the agent to infer that from parameter names alone.

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% across all 13 parameters, so the schema already documents each field including enum values and defaults. The description adds no per-parameter meaning beyond repeating the action enum, so the baseline 3 applies.

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?

Names a concrete verb+resource ('Multi-agent shared blackboard') and enumerates the seven supported actions, which the agent can map directly onto the enum. It also explicitly distinguishes itself from the sibling manage_nodes, so an agent can route between them without opening either schema.

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

Usage Guidelines5/5

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

States an explicit when-to-use and when-not-to-use rule: 'Use use_blackboard instead of manage_nodes when exchanging transient inter-agent messages or mutex resource leases rather than recording persistent graph knowledge.' The alternative and the selecting condition are both named.

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. 1 tool updatev1.4.0
    • Changedmanage_data2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"The data export or import action to execute: export_graph, export_issues, export_trajectories, export_joint_trajectories, export_synergy_metrics, import_graph, import_issues, import_spec."New value: +"The data export or import action to execute: export_graph, export_issues, export_trajectories, export_joint_trajectories, export_synergy_metrics, from_tick, import_graph, import_issues, import_spec."
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "export_graph",
        -  "export_issues",
        -  "export_trajectories",
        -  "export_joint_trajectories",
        -  "export_synergy_metrics",
        -  "import_graph",
        -  "import_issues",
        -  "import_spec"
        -]New value: +[
        +  "export_graph",
        +  "export_issues",
        +  "export_trajectories",
        +  "export_joint_trajectories",
        +  "export_synergy_metrics",
        +  "from_tick",
        +  "import_graph",
        +  "import_issues",
        +  "import_spec"
        +]
  2. 13 tool updatesv1.3.1
    • Changedget_analytics2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"The analytics or decision analysis action to execute."New value: +"The analytics or decision analysis action to execute: summary, velocity, burndown, value_metrics, cognitive_load, critical_path, context_snapshot, active_context, decision_trail, find_related_decisions, contradictions."
      • addedInput schema / properties / action / enum
        Added value: +[
        +  "summary",
        +  "velocity",
        +  "burndown",
        +  "value_metrics",
        +  "cognitive_load",
        +  "critical_path",
        +  "context_snapshot",
        +  "active_context",
        +  "decision_trail",
        +  "find_related_decisions",
        +  "contradictions"
        +]
    • Changedget_events2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"The event query action to execute."New value: +"The event query action to execute: log, changelog, post_mortem."
      • addedInput schema / properties / action / enum
        Added value: +[
        +  "log",
        +  "changelog",
        +  "post_mortem"
        +]
    • Changedmanage_data2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"The data export or import action to execute."New value: +"The data export or import action to execute: export_graph, export_issues, export_trajectories, export_joint_trajectories, export_synergy_metrics, import_graph, import_issues, import_spec."
      • addedInput schema / properties / action / enum
        Added value: +[
        +  "export_graph",
        +  "export_issues",
        +  "export_trajectories",
        +  "export_joint_trajectories",
        +  "export_synergy_metrics",
        +  "import_graph",
        +  "import_issues",
        +  "import_spec"
        +]
    • Changedmanage_database2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"The database administration or VCS sync action to execute."New value: +"The database administration or VCS sync action to execute: backup, restore, audit, merge, branch_diff, branch_merge."
      • addedInput schema / properties / action / enum
        Added value: +[
        +  "backup",
        +  "restore",
        +  "audit",
        +  "merge",
        +  "branch_diff",
        +  "branch_merge"
        +]
    • Changedmanage_edges2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"The edge management action to execute."New value: +"The edge management action to execute: add, remove, batch_add, link_visual."
      • addedInput schema / properties / action / enum
        Added value: +[
        +  "add",
        +  "remove",
        +  "batch_add",
        +  "link_visual"
        +]
    • Changedmanage_nodes2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"The node management action to execute."New value: +"The node management action to execute: create, update, get, remove, list, search, batch_create, batch_update, add_note."
      • addedInput schema / properties / action / enum
        Added value: +[
        +  "create",
        +  "update",
        +  "get",
        +  "remove",
        +  "list",
        +  "search",
        +  "batch_create",
        +  "batch_update",
        +  "add_note"
        +]
    • Changedmanage_sessions2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"The session management action to execute."New value: +"The session management action to execute: start, end, list, bootstrap."
      • addedInput schema / properties / action / enum
        Added value: +[
        +  "start",
        +  "end",
        +  "list",
        +  "bootstrap"
        +]
    • Changedmanage_snapshots2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"The snapshot management action to execute."New value: +"The snapshot management action to execute: save, list, diff, get_state, revert, undo, get_history."
      • addedInput schema / properties / action / enum
        Added value: +[
        +  "save",
        +  "list",
        +  "diff",
        +  "get_state",
        +  "revert",
        +  "undo",
        +  "get_history"
        +]
    • Changedmanage_specs2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"The specification or template action to execute."New value: +"The specification or template action to execute: scaffold, ingest, export, compliance, verify, decompose_feature, template."
      • addedInput schema / properties / action / enum
        Added value: +[
        +  "scaffold",
        +  "ingest",
        +  "export",
        +  "compliance",
        +  "verify",
        +  "decompose_feature",
        +  "template"
        +]
    • Changedmanage_tasks2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"The task management action to execute."New value: +"The task management action to execute: next, complete, find_blocked, find_stale, find_blockers, find_similar_blockers, auto_prune."
      • addedInput schema / properties / action / enum
        Added value: +[
        +  "next",
        +  "complete",
        +  "find_blocked",
        +  "find_stale",
        +  "find_blockers",
        +  "find_similar_blockers",
        +  "auto_prune"
        +]
    • Changedquery_graph2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"The graph query action to execute."New value: +"The graph query action to execute: subgraph, trace, raw, natural_language, compact_slice."
      • addedInput schema / properties / action / enum
        Added value: +[
        +  "subgraph",
        +  "trace",
        +  "raw",
        +  "natural_language",
        +  "compact_slice"
        +]
    • Changedrun_diagnostics2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"The diagnostic or maintenance action to execute."New value: +"The diagnostic or maintenance action to execute: validate, doctor, check_refs, audit_chain, compact, archive, prune_events, version, dedupe."
      • addedInput schema / properties / action / enum
        Added value: +[
        +  "validate",
        +  "doctor",
        +  "check_refs",
        +  "audit_chain",
        +  "compact",
        +  "archive",
        +  "prune_events",
        +  "version",
        +  "dedupe"
        +]
    • Changeduse_blackboard2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"The blackboard action to execute."New value: +"The blackboard action to execute: get, set, delete, lease, list, post, read."
      • addedInput schema / properties / action / enum
        Added value: +[
        +  "get",
        +  "set",
        +  "delete",
        +  "lease",
        +  "list",
        +  "post",
        +  "read"
        +]
  3. 13 tool updatesv1.2.1
    • Changedget_analytics3 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedInput schema / additionalProperties
        Removed value: -true
      • addedInput schema / required
        Added value: +[
        +  "action"
        +]
    • Changedget_events3 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedInput schema / additionalProperties
        Removed value: -true
      • addedInput schema / required
        Added value: +[
        +  "action"
        +]
    • Changedmanage_data6 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedInput schema / additionalProperties
        Removed value: -true
      • removedInput schema / properties / edges / items / additionalProperties
        Removed value: -{}
      • removedInput schema / properties / issues / items / additionalProperties
        Removed value: -{}
      • removedInput schema / properties / nodes / items / additionalProperties
        Removed value: -{}
      • addedInput schema / required
        Added value: +[
        +  "action"
        +]
    • Changedmanage_database3 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedInput schema / additionalProperties
        Removed value: -true
      • addedInput schema / required
        Added value: +[
        +  "action"
        +]
    • Changedmanage_edges6 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedInput schema / additionalProperties
        Removed value: -true
      • removedInput schema / properties / edges / items / additionalProperties
        Removed value: -{}
      • removedInput schema / properties / metadata / additionalProperties
        Removed value: -{}
      • removedInput schema / properties / properties / additionalProperties
        Removed value: -{}
      • addedInput schema / required
        Added value: +[
        +  "action"
        +]
    • Changedmanage_nodes5 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedInput schema / additionalProperties
        Removed value: -true
      • removedInput schema / properties / metadata / additionalProperties
        Removed value: -{}
      • removedInput schema / properties / nodes / items / additionalProperties
        Removed value: -{}
      • addedInput schema / required
        Added value: +[
        +  "action"
        +]
    • Changedmanage_sessions4 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedInput schema / additionalProperties
        Removed value: -true
      • removedInput schema / properties / metadata / additionalProperties
        Removed value: -{}
      • addedInput schema / required
        Added value: +[
        +  "action"
        +]
    • Changedmanage_snapshots3 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedInput schema / additionalProperties
        Removed value: -true
      • addedInput schema / required
        Added value: +[
        +  "action"
        +]
    • Changedmanage_specs3 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedInput schema / additionalProperties
        Removed value: -true
      • addedInput schema / required
        Added value: +[
        +  "action"
        +]
    • Changedmanage_tasks4 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedInput schema / additionalProperties
        Removed value: -true
      • removedInput schema / properties / artifact_metadata / additionalProperties
        Removed value: -{}
      • addedInput schema / required
        Added value: +[
        +  "action"
        +]
    • Changedquery_graph3 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedInput schema / additionalProperties
        Removed value: -true
      • addedInput schema / required
        Added value: +[
        +  "action"
        +]
    • Changedrun_diagnostics3 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedInput schema / additionalProperties
        Removed value: -true
      • addedInput schema / required
        Added value: +[
        +  "action"
        +]
    • Changeduse_blackboard11 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedInput schema / additionalProperties
        Removed value: -true
      • changedInput schema / properties / agent_id / description
        Previous value: -"Sender agent identifier."New value: +"Sender or claiming agent identifier."
      • changedInput schema / properties / content / description
        Previous value: -"Message payload to post."New value: +"Message payload to post/set."
      • addedInput schema / properties / duration_seconds
        Added value: +{
        +  "description": "Lease hold duration in seconds (default: 60).",
        +  "type": "number"
        +}
      • addedInput schema / properties / id
        Added value: +{
        +  "description": "Blackboard entry identifier for get or delete.",
        +  "type": "string"
        +}
      • addedInput schema / properties / limit
        Added value: +{
        +  "description": "Maximum number of items or topics to return.",
        +  "type": "number"
        +}
      • addedInput schema / properties / mode
        Added value: +{
        +  "description": "Lease action mode: acquire or release (default: acquire).",
        +  "enum": [
        +    "acquire",
        +    "release"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / resource_id
        Added value: +{
        +  "description": "Resource identifier to lease or release.",
        +  "type": "string"
        +}
      • addedInput schema / properties / topic_prefix
        Added value: +{
        +  "description": "Prefix filter for listing topics.",
        +  "type": "string"
        +}
      • addedInput schema / required
        Added value: +[
        +  "action"
        +]
  4. 93 tool updatesv1.0.0
    • Removedadd_edge
    • Removedadd_node
    • Removedadd_note
    • Removedarchive_completed_nodes
    • Removedaudit_project_db
    • Removedauto_prune_stale_tasks
    • Removedbackup_project_db
    • Removedbatch_add_edges
    • Removedbatch_create_nodes
    • Removedbatch_update
    • Removedbootstrap_session
    • Removedburndown_chart
    • Removedcompact_graph
    • Removedcomplete_task
    • Removedcritical_path
    • Removeddecision_trail
    • Removeddetect_contradictions
    • Removeddiff_snapshots
    • Removeddoctor_report
    • Removedend_session
    • Removedexport_graph
    • Removedexport_issues
    • Removedexport_joint_trajectories
    • Removedexport_spec
    • Removedexport_trajectories
    • Removedfind_blocked_tasks
    • Removedfind_blockers
    • Removedfind_related_decisions
    • Removedfind_similar_blockers
    • Addedget_analytics
    • Removedget_cognitive_load
    • Removedget_context_snapshot
    • Removedget_event_log
    • Addedget_events
    • Removedget_node
    • Removedget_node_history
    • Removedget_project_summary
    • Removedget_spec_compliance
    • Removedget_stale_nodes
    • Removedget_state_at_timestamp
    • Removedget_subgraph
    • Removedget_synergy_metrics
    • Removedimpact_analysis
    • Removedimport_graph
    • Removedimport_issues
    • Removedingest_spec
    • Removedlink_visual_state
    • Removedlist_nodes
    • Removedlist_sessions
    • Removedlist_snapshots
    • Addedmanage_data
    • Addedmanage_database
    • Addedmanage_edges
    • Addedmanage_nodes
    • Addedmanage_sessions
    • Addedmanage_snapshots
    • Addedmanage_specs
    • Addedmanage_tasks
    • Removedmerge_project_db
    • Removednatural_language_query
    • Removednext_tasks
    • Removedplan_and_decompose_feature
    • Removedpost_blackboard
    • Removedpost_mortem_from_session
    • Removedprune_events
    • Changedquery_graph13 fields changed
      • changedInput schema / additionalProperties
        Previous value: -falseNew value: +true
      • addedInput schema / properties / action
        Added value: +{
        +  "description": "The graph query action to execute.",
        +  "type": "string"
        +}
      • addedInput schema / properties / depth
        Added value: +{
        +  "description": "Maximum depth for subgraph query (1-10).",
        +  "type": "number"
        +}
      • addedInput schema / properties / direction
        Added value: +{
        +  "description": "Direction of dependency traversal for trace.",
        +  "enum": [
        +    "upstream",
        +    "downstream"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / edge_types
        Added value: +{
        +  "description": "Allowed edge types for trace (default: depends_on, blocks, child_of).",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / max_depth
        Added value: +{
        +  "description": "Maximum traversal depth for trace (1-50).",
        +  "type": "number"
        +}
      • addedInput schema / properties / node_id
        Added value: +{
        +  "description": "Starting node ID for trace.",
        +  "type": "string"
        +}
      • changedInput schema / properties / params / description
        Previous value: -"Optional query parameter values."New value: +"Query parameters for raw action."
      • changedInput schema / properties / project / description
        Previous value: -"Optional project identifier."New value: +"Target project name or slug."
      • addedInput schema / properties / query
        Added value: +{
        +  "description": "Natural language search query for natural_language action.",
        +  "type": "string"
        +}
      • addedInput schema / properties / root_id
        Added value: +{
        +  "description": "Root node ID for subgraph query.",
        +  "type": "string"
        +}
      • changedInput schema / properties / sql / description
        Previous value: -"The SELECT SQL query string."New value: +"Read-only SELECT query for raw action."
      • removedInput schema / required
        Removed value: -[
        -  "sql"
        -]
    • Removedread_blackboard
    • Removedremove_edge
    • Removedremove_node
    • Removedrestore_project_db
    • Removedrevert_to_timestamp
    • Addedrun_diagnostics
    • Removedsave_snapshot
    • Removedscaffold_spec
    • Removedscaffold_template
    • Removedsearch_nodes
    • Removedstart_session
    • Removedsubscribe_context_changes
    • Removedtrace_dependencies
    • Removedtraceback_to_node
    • Removedundo_last
    • Removedupdate_node
    • Addeduse_blackboard
    • Removedvalidate_graph
    • Removedvalidate_memory_references
    • Removedvalue_metrics
    • Removedvcs_branch_sync
    • Removedvcs_merge_resolution
    • Removedvelocity_analytics
    • Removedverify_audit_chain
    • Removedverify_requirement
    • Removedwatch_graph_changes
    • Removedwhat_changed
  5. 81 tool updatesv0.9.1
    • First observedadd_edge
    • First observedadd_node
    • First observedadd_note
    • First observedarchive_completed_nodes
    • First observedaudit_project_db
    • First observedauto_prune_stale_tasks
    • First observedbackup_project_db
    • First observedbatch_add_edges
    • First observedbatch_create_nodes
    • First observedbatch_update
    • First observedbootstrap_session
    • First observedburndown_chart
    • First observedcompact_graph
    • First observedcomplete_task
    • First observedcritical_path
    • First observeddecision_trail
    • First observeddetect_contradictions
    • First observeddiff_snapshots
    • First observeddoctor_report
    • First observedend_session
    • First observedexport_graph
    • First observedexport_issues
    • First observedexport_joint_trajectories
    • First observedexport_spec
    • First observedexport_trajectories
    • First observedfind_blocked_tasks
    • First observedfind_blockers
    • First observedfind_related_decisions
    • First observedfind_similar_blockers
    • First observedget_cognitive_load
    • First observedget_context_snapshot
    • First observedget_event_log
    • First observedget_node
    • First observedget_node_history
    • First observedget_project_summary
    • First observedget_spec_compliance
    • First observedget_stale_nodes
    • First observedget_state_at_timestamp
    • First observedget_subgraph
    • First observedget_synergy_metrics
    • First observedimpact_analysis
    • First observedimport_graph
    • First observedimport_issues
    • First observedingest_spec
    • First observedlink_visual_state
    • First observedlist_nodes
    • First observedlist_sessions
    • First observedlist_snapshots
    • First observedmerge_project_db
    • First observednatural_language_query
    • First observednext_tasks
    • First observedplan_and_decompose_feature
    • First observedpost_blackboard
    • First observedpost_mortem_from_session
    • First observedprune_events
    • First observedquery_graph
    • First observedread_blackboard
    • First observedremove_edge
    • First observedremove_node
    • First observedrestore_project_db
    • First observedrevert_to_timestamp
    • First observedsave_snapshot
    • First observedscaffold_spec
    • First observedscaffold_template
    • First observedsearch_nodes
    • First observedstart_session
    • First observedsubscribe_context_changes
    • First observedtrace_dependencies
    • First observedtraceback_to_node
    • First observedundo_last
    • First observedupdate_node
    • First observedvalidate_graph
    • First observedvalidate_memory_references
    • First observedvalue_metrics
    • First observedvcs_branch_sync
    • First observedvcs_merge_resolution
    • First observedvelocity_analytics
    • First observedverify_audit_chain
    • First observedverify_requirement
    • First observedwatch_graph_changes
    • First observedwhat_changed

TDQS

A3.7/5.0

Scored across 13 tools

Disambiguation3/5

The descriptions are unusually thorough with explicit 'use X instead of Y' guidance, which genuinely helps separate tools like manage_nodes vs manage_edges vs use_blackboard and manage_snapshots vs manage_database vs get_events. However, the underlying domain heavily overlaps: nodes/edges/specs/blackboard all manipulate graph-like entities, and query_graph/get_analytics/run_diagnostics all operate on the same graph for read, aggregate, and maintenance purposes. Boundaries are clarified by prose rather than being intrinsically clean.

Naming Consistency3/5

Most tools use a manage_* pattern (manage_data, manage_nodes, manage_edges, manage_sessions, manage_tasks, manage_snapshots, manage_specs, manage_database), which is consistent. But the remaining tools break the pattern with distinct verbs (query_graph, get_analytics, get_events, run_diagnostics, use_blackboard), producing mixed conventions. It remains readable, but there is no single predictable verb_noun scheme.

Tool Count4/5

13 tools is within the well-scoped range and appropriate for a state/memory graph server covering graph, tasks, sessions, specs, analytics, events, and diagnostics. The design consolidates many operations as actions within each tool rather than exploding the tool count, keeping the surface manageable. Slightly heavy given the breadth, but reasonable.

Completeness4/5

Coverage is broad: node/edge CRUD, task workflow, sessions, snapshots/time-travel, specs, database maintenance, graph queries, analytics, event ledger, diagnostics, and multi-agent blackboard. Most lifecycle operations (create, update, get, list, remove, batch) appear across the mutation tools. Minor gaps exist, such as bulk-delete actions being less explicit than bulk-create.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A self-hosted MCP server that provides AI assistants with a shared, persistent SQLite-backed memory for storing and retrieving project context, decisions, and discoveries. It enables cross-session continuity and team-wide knowledge sharing to keep AI coding tools aligned and informed.
    3
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    MCP server that provides cross-session persistent memory for AI coding assistants using local vector database and semantic search, enabling automatic recall of project context, issues, and tasks.
    9
    11 PyPI
    91
    Apache 2.0
  • F
    license
    Not graded
    quality
    D
    maintenance
    Persistent memory server for AI assistants with semantic search and three-layer context (global, project, personality). Works with MCP-compatible AI tools like Claude Code, Cursor, Continue, Cline, and more.
    1
    -