Skip to main content
Glama
etoyama

insight-blueprint

by etoyama

insight-blueprint

PyPI CI License: MIT Python 3.11+ Buy Me A Coffee

A Python MCP server for hypothesis-driven data analysis. Manage analysis designs, data catalogs, and review workflows through Claude Code or any MCP-compatible client.

Installation

# Option 1: From the official marketplace
claude plugin install etoyama/insight-blueprint

# Option 2: Via custom marketplace (permanent install)
/plugin marketplace add etoyama/insight-blueprint
/plugin install insight-blueprint@insight-blueprint-marketplace

# Option 3: From a local clone (session only)
git clone https://github.com/etoyama/insight-blueprint.git
claude --plugin-dir ./insight-blueprint

All options provide 8 analysis skills and auto-configure the MCP server. A WebUI dashboard opens automatically at http://127.0.0.1:3000.

Tip: Option 3 loads the plugin for the current session only. Add a shell alias for convenience:

alias claude-ib='claude --plugin-dir /path/to/insight-blueprint'

Alternative: Direct Execution

# Start the server without plugin (zero-install)
uvx insight-blueprint --project /path/to/my-analysis

# Or install permanently
uv tool install insight-blueprint
insight-blueprint --project /path/to/my-analysis

Updating

When a new version is published, run the following from within Claude Code to pull the latest plugin (auto-update is off by default for third-party marketplaces):

/plugin marketplace update insight-blueprint-marketplace
/plugin update insight-blueprint@insight-blueprint-marketplace

See CHANGELOG.md for release notes.

Optional: Python Package

For data-lineage tracking with tracked_pipe in your notebooks/scripts:

uv add insight-blueprint

This is optional but recommended for analysis pipeline transparency. MCP tools work without it.

Related MCP server: Dataiku DSS MCP Server

Features

MCP Tools

insight-blueprint exposes 18 tools via the Model Context Protocol, allowing AI assistants to manage your analysis workflow:

Category

Tools

Analysis Design

create_analysis_design, update_analysis_design, get_analysis_design, list_analysis_designs

Data Catalog

add_catalog_entry, update_catalog_entry, get_table_schema, search_catalog

Domain Knowledge

get_domain_knowledge, extract_domain_knowledge, save_extracted_knowledge, suggest_knowledge_for_design, suggest_cautions

Review Workflow

transition_design_status, save_review_comment, save_review_batch, get_review_comments

Project

get_project_context

WebUI Dashboard

A browser-based dashboard (http://127.0.0.1:3000) with two tabs:

  • Designs -- Browse analysis designs, view details (overview + history), and track status transitions

  • Catalog -- Search domain knowledge, browse data sources, and check cautions

Bundled Skills

The plugin provides 10 analysis skills that are automatically available after installation:

  • /rq-problematization -- Generate impactful research questions by problematizing the assumptions in prior research (upstream of framing)

  • /analysis-framing -- Explore available data and existing analyses to frame a hypothesis direction

  • /analysis-design -- Guided workflow for creating hypothesis documents

  • /analysis-journal -- Record reasoning steps during analysis (observations, evidence, decisions, questions)

  • /analysis-reflection -- Structured reflection to draw conclusions or branch hypotheses

  • /analysis-revision -- Guided revision workflow for addressing review comments

  • /catalog-register -- Step-by-step data source registration

  • /data-lineage -- Track data transformations and export lineage diagrams (Mermaid)

  • /batch-analysis -- Overnight batch execution of queued designs (headless notebooks, self-review, journal recording)

  • /premortem -- Pre-flight risk evaluation of queued designs with approval token issuance (gates /batch-analysis)

Skills support both English and Japanese trigger phrases.

Analysis Workflow

Skills chain together to support the full hypothesis-driven analysis lifecycle:

/rq-problematization (problematize assumptions → research questions)  ← optional upstream
    ↓ (RQ Brief)
/analysis-framing (explore data, frame direction)
    ↓
/analysis-design (create hypothesis)
    ↓ (interactive)          ↓ (batch)
/analysis-journal        /batch-analysis (overnight headless)
    ↓                        ↓
    ↓
/analysis-reflection (reflect → conclude or branch)      ← morning review
    ↓ ↗ back to /analysis-framing (new direction needed)
    ↕ WebUI review → /analysis-revision (address review comments)
/catalog-register (register findings as domain knowledge)

Each design has an analysis_intent field (exploratory, confirmatory, or mixed) to distinguish whether you're testing a specific hypothesis or exploring data for patterns. The Insight Journal (.insight/designs/{id}_journal.yaml) tracks your reasoning process with 8 event types mapped to the Narrative Scaffolding framework (Huang+ IUI 2026).

Overnight Operation

Batch analysis runs overnight via a two-step workflow: risk evaluation followed by headless execution.

Workflow

/premortem --queued --yes --mode review
    ↓ (exit 0: token issued)
    ↓ (exit 2: HIGH detected, human triage needed)
/batch-analysis --approved-by TOKEN
    ↓
Morning review: summary.md + /analysis-reflection per design

Automation Modes

Mode

HIGH Risk Handling

Human Interaction

manual

Interactive prompt for every design

Required

review

Blocks on HIGH (exit 2), auto-approves LOW/MEDIUM

Only when HIGH detected

auto

Includes HIGH in approved set with warning

None

Set the mode in .insight/config.yaml under batch.automation (default: review).

Phased Rollout of --approved-by

The --approved-by TOKEN argument is introduced in two phases:

  • Phase A (batch.approved_by_required: false): Omitting the flag prints a warning and runs in legacy mode. Existing workflows are not broken.

  • Phase B (batch.approved_by_required: true): Omitting the flag causes exit 1. All batch runs must go through /premortem first.

Transition from Phase A to Phase B by setting approved_by_required: true in .insight/config.yaml when your team is ready.

CLI Options

insight-blueprint --project /path/to/project   # Specify project directory
insight-blueprint --no-browser                  # Suppress browser auto-open
insight-blueprint --version                     # Show version
insight-blueprint                               # Use current directory

Team Server Mode

Multiple Claude Code instances can share a single insight-blueprint server via MCP SSE (Server-Sent Events).

Server mode (WebUI + MCP SSE)

insight-blueprint --project /path/to/project --mode server --port 4000

Each Claude Code instance connects by adding to .claude/settings.json:

{
  "mcpServers": {
    "insight-blueprint": {
      "type": "sse",
      "url": "http://<host>:4000/mcp/sse"
    }
  }
}

Headless mode (MCP SSE only, no WebUI)

insight-blueprint --project /path/to/project --mode headless --port 4000

Options

Option

Default

Description

--mode full

(default)

stdio MCP + WebUI on localhost:3000. Standard single-user mode

--mode server

-

HTTP MCP SSE + WebUI on the same port. For team/multi-client use

--mode headless

-

HTTP MCP SSE only (no WebUI). Lightweight deployment

--host

0.0.0.0

Bind address (server/headless mode only)

--port

4000

Listen port (server/headless mode only)

--no-browser

false

Suppress browser auto-open in full mode

WARNING: No authentication. Phase 1 does not include authentication. Run the server on a trusted network only, or bind to localhost with --host 127.0.0.1.

Migration Guide (from v0.3.x)

If you previously used insight-blueprint without the plugin system, clean up the old skill copies:

# Remove old skill copies (now provided by the plugin)
rm -rf .claude/skills/analysis-design .claude/skills/analysis-framing \
       .claude/skills/analysis-journal .claude/skills/analysis-reflection \
       .claude/skills/analysis-revision .claude/skills/catalog-register \
       .claude/skills/data-lineage

# Remove old rule copies (now integrated into skill definitions)
rm -rf .claude/rules/analysis-workflow.md .claude/rules/catalog-workflow.md \
       .claude/rules/insight-yaml.md .claude/rules/extension-policy.md

The plugin's skills take precedence, so old copies won't cause errors but should be removed to avoid confusion.

Development

Requires Python 3.11+, uv, and Node.js (for frontend build).

git clone https://github.com/etoyama/insight-blueprint.git
cd insight-blueprint
uv sync --all-extras

# Build frontend assets (required for WebUI)
poe build-frontend

# Run lint + typecheck + test
poe all

See CONTRIBUTING.md for setup instructions, code style, and how to submit pull requests.

Tech Stack

Tool

Purpose

uv

Package management

ruff

Linting and formatting

ty

Type checking

pytest

Testing

FastMCP

MCP server framework

FastAPI

WebUI backend

Support

If you find this project useful, consider buying me a coffee.

Buy Me A Coffee

License

MIT

Available Tools

18 tools
add_catalog_entryC

Register a new data source in the catalog.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
tagsNo
typeYes
columnsNo
source_idYes
connectionYes
descriptionYes
primary_keyNo
row_count_estimateNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.3/5.0
Behavior2/5

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

No annotations are provided, and the description is minimal. It conveys that this tool creates a new catalog entry, but it does not disclose any behavioral details such as duplicate handling, required permissions, side effects, or return behavior. It adds little beyond the tool's name.

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

Conciseness2/5

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

The description is a single short sentence, which is concise in length but under-specified. It does not provide enough information to be useful, so it is not 'appropriately sized' for a tool with 9 parameters.

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?

For a complex creation tool with 9 parameters, nested objects, and an output schema, this description is severely incomplete. It lacks context about what constitutes a valid entry, how connection info is structured, and what happens on success or failure. The agent would be unable to select or invoke the tool correctly without additional knowledge.

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 provides no explanation of parameters like source_id, connection, columns, or row_count_estimate. The description does not compensate for the schema's lack of parameter documentation, leaving the agent to guess the meaning of nested objects and optional fields.

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 'Register a new data source in the catalog' clearly identifies the action (register/add) and the resource (data source in catalog). It distinguishes from update_catalog_entry by emphasizing 'new', though it does not explicitly name that sibling. This is clear but lacks explicit differentiation.

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 like update_catalog_entry or search_catalog. The phrase 'new data source' implies it is for initial registration only, but there is no explicit when-to-use or when-not-to-use context.

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

create_analysis_designA

Create a new analysis design document.

Creates a YAML file in .insight/designs/ with 'in_review' status. theme_id must match [A-Z][A-Z0-9]* pattern (e.g., 'FP', 'TX', 'DEFAULT').

methodology: Analysis method dict with required 'method' key. Example: {"method": "OLS", "package": "statsmodels", "reason": "..."} WARNING: Should rarely be None — methodology is a core design field.

Returns: dict with id, title, status, message

ParametersJSON Schema
NameRequiredDescriptionDefault
chartNo
titleYes
metricsNo
theme_idNoDEFAULT
parent_idNo
explanatoryNo
methodologyNo
next_actionNo
analysis_intentNoconfirmatory
hypothesis_statementYes
referenced_knowledgeNo
hypothesis_backgroundYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses the side effect (creating a YAML file), the initial status, the theme_id pattern validation, the methodology structure and warning, and the return value. It does not mention overwrite behavior or authorization, but provides solid behavioral detail beyond a simple create statement.

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 front-loaded with purpose, then provides essential details in a structured, line-broken format. Each sentence adds value: file location/status, theme_id pattern, methodology guidance with warning, and return type. 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?

Given the tool's complexity (12 params, no schema descriptions, no annotations), the description offers important context like file creation and return value. However, it omits explanation for most parameters and does not cover required fields. It is adequate but incomplete, earning a 3 for missing significant portions of the parameter space.

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. It explains only theme_id and methodology in detail, with an example and pattern. However, the other 10 parameters (including required title, hypothesis_statement, hypothesis_background) are not described at all, leaving a significant gap for a 12-param tool with no property descriptions.

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

Purpose5/5

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

The description explicitly states the tool creates a new analysis design document, with a specific verb and resource. It further distinguishes from siblings by noting it creates a YAML file in a specific directory with 'in_review' status, making it unique from get/update/list tools.

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 creating new designs without explicit alternatives. It mentions the initial status 'in_review' and warns about methodology, but does not explicitly state when to use this over update_analysis_design or transition_design_status. This is implied rather than explicit.

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

extract_domain_knowledgeA

Extract domain knowledge from review comments as preview.

Returns extracted entries for user review before persistence. Call save_extracted_knowledge() to persist confirmed entries.

Returns: dict with design_id, entries, count, message

ParametersJSON Schema
NameRequiredDescriptionDefault
design_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It clearly states the tool does not persist data (preview only) and describes the return structure. It does not mention permissions or side effects, but for a preview operation, the key non-persistence behavior is explicitly disclosed.

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: four sentences with no wasted words. The first sentence states the core action, the middle sentences explain the preview-then-persist workflow, and the last sentence lists the return keys. Every sentence adds value.

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 adequately covers purpose, workflow, and return structure, especially given the output schema is available. The only gap is the unexplained design_id parameter, which slightly reduces completeness, but overall it provides enough context for correct usage.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain what design_id refers to or its format. It only mentions design_id in the return dict, which hints at its role but does not define it. With a single required parameter, the description should clarify its meaning, and it does not.

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 extracts domain knowledge from review comments as a preview, with an explicit verb and resource. It distinguishes itself from the sibling save_extracted_knowledge by noting it returns entries for review before persistence and instructs calling save_extracted_knowledge to persist.

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

Usage Guidelines4/5

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

The description provides clear context: use this tool for previewing extracted knowledge before persisting, and explicitly names save_extracted_knowledge as the persistence step. However, it does not contrast with other related tools like get_domain_knowledge, leaving some usage ambiguity for alternatives.

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

get_analysis_designA

Retrieve an analysis design by ID.

Returns the full design as a dict, or an error dict if not found.

ParametersJSON Schema
NameRequiredDescriptionDefault
design_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

There are no annotations, so the description must disclose behavior. It states that the tool returns the full design as a dict and returns an error dict if not found, which covers the main behavioral traits. It does not discuss permissions, rate limits, or side effects, but for a retrieval operation the disclosed behavior 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.

Conciseness5/5

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

The description is two short sentences with no filler. It is front-loaded with the verb and resource, and every word contributes.

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

Completeness5/5

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

Given the low complexity (one parameter, no nested objects) and the presence of an output schema, the description is complete for a simple getter. It covers purpose, parameter role, and return behavior, making it sufficient for an agent to select and invoke the tool.

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 only provides parameter name and type, with 0% description coverage. The description's phrase 'by ID' maps directly to design_id and clarifies its role, but it does not provide additional format or source information. Since the parameter is self-explanatory from the name, the description adds minimal but adequate 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 uses the specific verb 'Retrieve' and clearly identifies the resource ('an analysis design') and the lookup mechanism ('by ID'). This distinguishes it from sibling tools like create_analysis_design, update_analysis_design, and list_analysis_designs.

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 when you have a specific design ID, but it does not explicitly mention alternatives or exclusion criteria. It does not reference list_analysis_designs for browsing or clarify when not to use this tool. The 'by ID' phrase gives some context, but there is no explicit guidance.

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

get_domain_knowledgeC

Get domain knowledge entries for a data source.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNo
source_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. The description only says 'Get domain knowledge entries' with no details on permissions, filters, pagination, or what 'entries' entail. The optional 'category' parameter is not mentioned, leaving the behavior partially unknown. This is minimal and lacks useful context beyond the tool's basic function.

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, front-loaded sentence with no superfluous words. It is concise and easy to parse. However, its brevity borders on under-specification, but it still earns its place by stating the core purpose clearly.

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

Completeness3/5

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

The tool is simple and has an output schema, so return values need not be explained. However, the description lacks information about the optional category parameter and does not differentiate from closely related siblings like extract_domain_knowledge. This makes it minimally adequate but with clear gaps in 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%, and the description does not explain any parameters. The two parameters, source_id and category, are entirely undocumented in the description. The phrase 'for a data source' vaguely maps to source_id, but category is completely ignored. This fails to compensate for the schema's lack of descriptive text.

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 action ('Get') and resource ('domain knowledge entries for a data source'). It is unambiguous but does not explicitly differentiate from siblings like 'extract_domain_knowledge', which might also relate to domain knowledge. The verb and resource are specific enough for basic understanding.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. There is no mention of when to prefer this over extract_domain_knowledge or other sibling tools, nor any exclusions or prerequisites. It simply states what the tool does without context.

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

get_project_contextA

Get aggregated project context including all domain knowledge.

Returns sources, knowledge entries, rules, and counts from both catalog and review-extracted knowledge.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the burden of disclosing behavioral traits. It clearly describes the output contents, which is useful, but it does not mention that this is a read-only operation (though 'Get' implies safety) or potential performance/large-response considerations. Not misleading, 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 concise sentences with no redundancy. It front-loads the primary purpose ('Get aggregated project context') and then provides a compact list of returned elements. 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?

The tool is simple with no parameters, and the description succinctly summarizes the scope and return types. An output schema exists, so detailed return values are documented elsewhere. It does not mention potential data size or aggregation specifics, but this is acceptable given the low complexity.

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 the baseline score of 4 applies. The schema coverage is trivially 100% and there is no parameter information to add, so the description does not need to compensate.

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 with a specific verb ('Get') and resource ('aggregated project context'), and enumerates the returned content (sources, knowledge entries, rules, counts) from both catalog and review-extracted knowledge. This distinguishes it from sibling tools like get_domain_knowledge by emphasizing aggregation.

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 aggregated project context is needed) but does not explicitly contrast it with alternatives or provide exclusions. It lacks direct guidance such as 'use this instead of X' but the aggregated scope makes the use case reasonably clear.

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

get_review_commentsA

Get review comments for a design.

Returns all review batches sorted by created_at descending (newest first). Returns empty list if no reviews exist or file is corrupted.

ParametersJSON Schema
NameRequiredDescriptionDefault
design_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral disclosure burden. It proactively states the sorting order (newest first) and the edge-case behavior of returning an empty list when no reviews exist or the file is corrupted, which is valuable transparency beyond the basic 'get' 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 extremely concise—two sentences total—yet packs in the core purpose, sorting behavior, and edge case handling. There is no fluff or repetition; every sentence earns its place.

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

Completeness4/5

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

Given the simple single-parameter schema and the presence of an output schema, the description covers the essential context: what the tool returns, ordering, and empty/corrupted behavior. It does not explain the return item structure, but that is documented by the output schema, so the description is sufficiently complete.

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

Parameters2/5

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

The schema has 0% description coverage, so the description must compensate. It mentions 'for a design' but does not explain what design_id should be (e.g., format, meaning) or how it is used. The parameter is intuitive from the tool name, but the description adds no substantive semantics beyond the schema.

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

Purpose5/5

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

The description clearly states 'Get review comments for a design' using a specific verb and resource. It also clarifies that it returns all review batches sorted by created_at descending, which distinguishes it from sibling tools like save_review_comment and save_review_batch.

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

Usage Guidelines2/5

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

No explicit guidance is given about when to use this tool versus alternatives. The description implies it is the read counterpart to the save review tools, but it does not state explicit when-to-use/when-not-to-use scenarios or name any alternatives.

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

get_table_schemaA

Get the column schema for a data source.

ParametersJSON Schema
NameRequiredDescriptionDefault
source_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the burden of disclosing behavior. The verb 'Get' implies a read-only operation, but the description does not mention error behavior, permissions, or whether the schema is fetched live or cached.

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 redundant words. It is appropriately concise for a simple getter tool with one parameter.

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 is adequate for a simple read operation, but it lacks context about what happens if the source_id is invalid or not found, and whether any permissions are required. The output schema likely covers the return structure, but the description does not address the tool's full behavioral context.

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

Parameters3/5

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

The schema has no description for source_id, and the tool description adds some meaning by referring to 'a data source', indicating that source_id identifies the data source. However, it does not explain how to find or format source_id, leaving some ambiguity.

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

Purpose5/5

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

The description clearly states the action ('Get') and the resource ('column schema for a data source'), which is specific and distinct from sibling tools focused on analysis designs, catalog entries, or review comments.

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, nor any mention of prerequisites or exclusions. The description only states what the tool does, leaving the agent to infer usage context.

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

list_analysis_designsA

List all analysis designs, optionally filtered by status.

Args: status: Optional filter (in_review|revision_requested|analyzing|supported|rejected|inconclusive)

Returns: dict with 'designs' list and 'count' integer

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden of behavioral disclosure. It states the return structure and the listing behavior, but does not mention pagination, result limits, ordering, or any access restrictions. For a list operation, pagination is a common behavioral trait that is absent.

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 brief and well-structured: a one-line summary followed by concise Args and Returns sections. Every sentence adds value, with no repetition or extraneous detail.

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 list tool with one optional parameter, the description covers the core functionality and return format. However, it omits details about pagination or sorting behavior, which are often relevant for listing tools. The existence of an output schema mitigates the need to describe return values, but the pagination question remains a 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?

The schema provides only the parameter name and type with no description or enum. The description compensates by listing the allowed status values (in_review|revision_requested|analyzing|supported|rejected|inconclusive) and explaining it is an optional filter. This adds meaningful semantic information beyond the schema.

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

Purpose5/5

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

The description uses a specific verb and resource ('List all analysis designs') and clearly notes the optional status filter. This distinguishes it from sibling tools like get_analysis_design (singular) and create/update operations.

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 conveys clear context for use (listing designs, optionally filtering by status) but does not explicitly mention when not to use it or what alternatives to consider. The sibling names (e.g., get_analysis_design) imply differentiation, but the description itself does not state exclusions.

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

save_extracted_knowledgeA

Persist user-confirmed knowledge entries to extracted_knowledge.yaml.

Call extract_domain_knowledge() first to get preview entries, then pass confirmed (optionally adjusted) entries here.

Args: design_id: The design ID the entries were extracted from entries: List of dicts with keys: key, content, category, affects_columns

Returns: dict with design_id, saved_entries, count, message

ParametersJSON Schema
NameRequiredDescriptionDefault
entriesYes
design_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior3/5

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

No annotations are provided, so the description must fully disclose behavior. It states persistence and gives input/output structure, but it does not mention side effects like whether existing entries are overwritten/appended, whether mutations are reversible, or any permission requirements. This is a moderate gap for a write 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 front-loaded with the core purpose, then the usage workflow, then arg/return details. Every sentence adds value, and it is succinct without unnecessary verbosity.

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 tool has an output schema, so return details are optional but provided. The description covers the workflow, input structure, and resource destination. It could be more complete by noting behavior on repeated saves (append vs overwrite), but for a persistence tool of confirmed entries, it is largely sufficient.

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

Parameters5/5

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

Schema coverage is 0%, so the description must compensate. It does so thoroughly by explaining design_id as the source design ID and specifying the exact required keys (key, content, category, affects_columns) for each entry dict, adding meaning well beyond the bare schema.

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

Purpose5/5

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

The description states a specific verb ('Persist') and resource ('user-confirmed knowledge entries to extracted_knowledge.yaml'), making the tool's purpose unmistakable. It also distinguishes from siblings like save_review_comment/save_review_batch by focusing on knowledge entries rather than review comments.

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?

The description explicitly instructs to call extract_domain_knowledge() first, then pass confirmed entries here, providing a clear workflow and prerequisite. This effectively tells the agent when to use this tool (after extraction) and implies it is for confirmed entries only.

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

save_review_batchA

Save a batch of review comments and transition the design status.

The design must be in reviewable status (in_review or revision_requested). Each comment can optionally include target_section and target_content for inline anchoring.

Valid status_after values: revision_requested, analyzing, supported, rejected, inconclusive.

Returns: dict with batch_id and status_after on success; {error} on failure

ParametersJSON Schema
NameRequiredDescriptionDefault
commentsYes
reviewerNoanalyst
design_idYes
status_afterYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well by stating the required design status, valid status transitions, optional inline anchoring fields, and the return format (batch_id and status_after, or error). It does not disclose atomicity/side effects, but it provides essential behavioral context beyond a mere mutation.

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 well-structured and concise: a one-line summary, followed by a prerequisite, optional comment detail, valid status values, and return behavior. Each sentence earns its place without redundancy, and it's front-loaded with the primary function.

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 key aspects for a batch operation: prerequisites, valid transitions, optional parameters, and return values. It lacks details on partial failure behavior or explicit permissions, but given the tool's moderate complexity and the inclusion of a return format, it is reasonably complete.

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

Parameters3/5

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

The input schema has 0% description coverage, so the description must compensate. It adds meaning for comments (optional target_section, target_content) and enumerates valid status_after values, but it does not explain the structure of individual comments beyond those optional keys, nor does it clarify the reviewer or design_id semantics beyond what the schema names imply.

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 dual function: saving a batch of review comments and transitioning the design status. It is specific about the resource (design) and the action (save/transition), and it distinguishes itself from siblings like save_review_comment (batch vs. single) and transition_design_status (combined action).

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 a clear precondition (design must be in reviewable status) and lists valid status_after values, which helps the agent decide when to use it. However, it does not explicitly mention alternatives or when not to use it, though the batch nature implies use for multiple comments. This is clear context without explicit exclusions.

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

save_review_commentA

Save a review comment and transition the design status.

The design must be in reviewable status (in_review or revision_requested). Valid post-review statuses: revision_requested, analyzing, supported, rejected, inconclusive.

Returns: dict with comment_id, design_id, status_after, message

ParametersJSON Schema
NameRequiredDescriptionDefault
statusYes
commentYes
reviewerNoanalyst
design_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden of disclosing behavioral traits. It states that the operation both saves a comment and transitions status, outlines prerequisite conditions, and lists possible resulting statuses. It also specifies the return keys. This is sufficient transparency for a mutation tool, though it does not mention error handling or permissions.

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

Conciseness5/5

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

The description is concise and well-structured: a two-sentence main body followed by a returns line. It front-loads the core action and adds necessary details without any fluff, 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?

The description covers the core behavior, prerequisites, possible statuses, and return structure. Since an output schema exists, the return details are over-specified but still helpful. It does not address error scenarios or side effects beyond the status transition, but for a tool of this complexity, it is reasonably complete.

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 has no property descriptions, so the tool description must add context. It does so by clearly enumerating valid values for the 'status' parameter and implying the role of design_id through the reviewable-status prerequisite. The other parameters (comment, reviewer, design_id) are self-explanatory from their names, and the default for reviewer is clear from the schema.

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

Purpose5/5

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

The description clearly states the tool's purpose: to save a review comment and transition the design status. It is specific and distinguishes from siblings like transition_design_status (which only changes status) and save_review_batch (which handles batch operations).

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

Usage Guidelines4/5

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

The description provides clear context on when to use the tool: when a design is in reviewable status (in_review or revision_requested). It also lists valid post-review statuses, giving guidance on expected use. However, it does not explicitly name alternative tools for cases where only a status change or batch saving is needed.

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

search_catalogC

Search the data catalog using full-text search.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNo
queryYes
source_typeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It only states 'full-text search' but doesn't disclose whether results are paginated, how tags/source_type filters behave, or any access limitations.

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, front-loaded sentence with no wasted words. It is concise but lacks sufficient detail to be considered complete.

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

Completeness2/5

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

Given the existence of an output schema, the description doesn't need to explain return values, but it fails to define how the search behaves across the three parameters. The tool is more complex than the one-liner implies.

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 omits any explanation of the three parameters. It does not clarify that query is the search term and tags/source_type are optional filters.

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

Purpose5/5

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

Clearly states the tool searches the data catalog via full-text search. This uniquely distinguishes it from sibling tools like get_table_schema and catalog entry management tools.

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

Usage Guidelines2/5

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

No guidance on when to use this search versus inspecting a specific table schema or adding catalog entries. No alternatives or exclusion criteria mentioned.

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

suggest_cautionsA

Suggest cautions for the given table/source names.

Searches all domain knowledge entries (catalog and extracted) by matching affects_columns against provided table names.

Args: table_names: Comma-separated string of table/source names

Returns: dict with table_names, cautions, count

ParametersJSON Schema
NameRequiredDescriptionDefault
table_namesYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses that it searches 'all domain knowledge entries (catalog and extracted)' via affects_columns matching, and specifies the return dict with table_names, cautions, and count. This provides useful transparency for a read-only suggestion tool, though edge cases are not discussed.

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 well-structured with a purpose sentence, a behavior sentence, and clear Args/Returns sections. There is no wasted text; every sentence adds value.

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

Completeness5/5

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

For a simple one-parameter tool with an output schema, the description is complete: it explains the search behavior, the argument format, and the return structure. No critical aspects are missing for an agent to invoke it correctly.

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

Parameters5/5

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

Schema describes table_names only as a string with no description. The description adds that it is a 'comma-separated string of table/source names', fully clarifying the expected format and meaning beyond the schema. This compensates for the 0% schema coverage.

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

Purpose5/5

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

The description clearly states the tool 'suggests cautions for the given table/source names', a specific verb+resource. It further differentiates from siblings by describing the matching against affects_columns in domain knowledge entries, distinguishing it from generic search or knowledge retrieval tools.

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?

Usage context is implied: when you have table/source names and need cautions, this tool searches domain knowledge. However, there is no explicit mention of when not to use it or alternatives like search_catalog or get_domain_knowledge, so guidance is not fully developed.

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

suggest_knowledge_for_designA

Suggest knowledge entries relevant to a design section.

Filters by category via SECTION_KNOWLEDGE_MAP, then applies per-category matching strategies (theme_id, source_ids, FTS5, lineage).

Args: section: Design section name (e.g., hypothesis_statement, metrics) theme_id: Theme ID to match findings/context by source_ids: Comma-separated source IDs for caution/definition matching hypothesis_text: Text to search via FTS5 for methodology matching parent_id: Design ID to walk ancestor chain for finding collection

Returns: dict with section, suggestions, total

ParametersJSON Schema
NameRequiredDescriptionDefault
sectionNo
theme_idNo
parent_idNo
source_idsNo
hypothesis_textNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

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

There are no annotations, so the description bears the full burden of behavioral disclosure. It explains the internal mechanism (SECTION_KNOWLEDGE_MAP, FTS5, lineage) and the return format, which is helpful. However, it does not explicitly state whether the operation is read-only or whether there are side effects, permissions, or prerequisites. Since the tool name suggests a read-only action, the omission is notable but not misleading.

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 well-structured with a brief summary, a short explanation of the matching process, an Args list, and a Returns line. It uses information-dense language without redundant fluff, making it easy to parse. The format is appropriate for an API reference.

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 covers the general purpose and parameter roles, and the existing output schema helps define return values. However, with all parameters optional and no required fields, it does not specify the default behavior when no arguments are provided (e.g., does 'section' default to something, or does an empty filter return all knowledge?). This missing edge-case behavior leaves an important gap for agent decision-making.

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

Parameters5/5

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

Schema description coverage is 0%, yet the description documents all five parameters with meaningful details. It provides an example for 'section', explains the format for 'source_ids' (comma-separated), clarifies 'theme_id' matching, and describes 'hypothesis_text' and 'parent_id' with their matching strategies. This fully compensates for the lack of schema descriptions.

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 ('Suggest') and resource ('knowledge entries') with a clear scope ('relevant to a design section'), which makes the tool's function immediately understandable. It also differentiates from the sibling 'suggest_cautions' by focusing on knowledge entries rather than cautions.

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

Usage Guidelines4/5

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

The description provides clear context about when to use the tool: when knowledge entries related to a design section are needed. It does not explicitly mention exclusions or alternatives, but the context is sufficient for an agent to infer the appropriate scenario. No explicit when-not guidance is given, so it falls short of a 5.

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

transition_design_statusA

Transition a design to the given target status.

Valid transitions depend on the current status:

  • in_review -> revision_requested, analyzing, supported, rejected, inconclusive

  • revision_requested -> in_review

  • analyzing -> in_review

  • supported, rejected, inconclusive -> (terminal, no transitions)

Returns: dict with design_id, status on success; {error} on failure

ParametersJSON Schema
NameRequiredDescriptionDefault
statusYes
design_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It details legal state changes, lists terminal statuses, and specifies return format on success and failure, giving agents a clear model of the tool's effect. It does not cover permissions, but the essential 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 compact and well-structured with a single-sentence action statement, a bulleted transition table, and a return description. No redundant sentences.

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

Completeness5/5

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

Given the tool's moderate complexity and the presence of an output schema, the description adequately covers the state machine, return values, and error case. It lacks permission details but that's not essential for this operation based on sibling norms.

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 0% and the description doesn't explicitly define each parameter, but it embeds the allowed status values within the transition arrows (e.g., in_review, revision_requested), so the status parameter's domain is inferable. design_id is self-explanatory. However, it could more explicitly enumerate the allowed status values for the status parameter.

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 'Transition a design to the given target status,' clearly specifying the verb and resource. It distinguishes from sibling CRUD tools by listing explicit state transitions, making its unique role among create/update tools apparent.

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 valid transition list provides explicit when-to-use information based on current status, including terminal states that indicate when the tool cannot be used. It doesn't name alternative tools but the transition rules serve as clear usage constraints.

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

update_analysis_designA

Partially update an existing analysis design.

Only provided fields are updated. Returns the updated design as a dict, or an error dict if design_id not found. Status changes must go through transition_design_status.

ParametersJSON Schema
NameRequiredDescriptionDefault
chartNo
titleNo
metricsNo
design_idYes
explanatoryNo
methodologyNo
next_actionNo
analysis_intentNo
hypothesis_statementNo
referenced_knowledgeNo
hypothesis_backgroundNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses partial-update behavior, return value (updated dict or error dict), and the status-change constraint. However, it does not mention potential side effects, idempotency, permissions, or validation behavior. It adds some behavioral context beyond the schema but not comprehensive.

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 three sentences, front-loaded with the primary purpose, and contains no filler. Each sentence adds meaningful information: what it does, partial-update semantics, and the status-change exclusion. It is appropriately sized for the tool's complexity.

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

Completeness4/5

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

Given the output schema exists, the description does not need to detail return structure, but it does mention error dict. It explains partial update and design_id requirement implicitly. It also navigates the sibling tool space by pointing to transition_design_status. However, it could mention prerequisites (e.g., design must already exist) or field constraints, but the core usage is sufficiently covered.

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. It only states 'Only provided fields are updated,' which gives a general semantics for all parameters but does not explain any individual field. The schema itself has descriptive names and defaults, but the description adds minimal value beyond that. For a tool with 11 parameters, this is insufficient.

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 'Partially update an existing analysis design,' which is a specific verb+resource combination. It clearly distinguishes from create_analysis_design and transition_design_status, the latter explicitly mentioned as a separate path for status changes. Sibling tool names reinforce the differentiation.

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 it: when you need to update an existing design without changing status. It explicitly states 'Status changes must go through transition_design_status,' giving an explicit alternative. However, it does not fully enumerate all situations (e.g., when to create vs update), but the partial-update phrasing and exclusion provide strong context.

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

update_catalog_entryC

Update an existing data source in the catalog.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
tagsNo
columnsNo
source_idYes
connectionNo
descriptionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description must disclose behavioral traits. It only states that the tool updates, but doesn't mention permissions, reversibility, side effects, or whether updates overwrite or merge. This is a significant transparency gap 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.

Conciseness4/5

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

The description is a single, efficient sentence that is front-loaded with the verb. It contains no unnecessary words, though it is perhaps too terse for the tool's complexity.

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

Completeness2/5

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

Given the tool has six parameters and no annotation support, the description is severely under-specified. It doesn't clarify what fields can be updated, whether partial updates are allowed, or how source_id is used. The existing output schema cannot compensate for the lack of input 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 compensate by explaining parameters. It doesn't mention any of the six parameters (name, tags, columns, source_id, connection, description) or their semantics, providing zero value beyond the raw schema.

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

Purpose5/5

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

The description clearly states the action ('Update') and the resource ('an existing data source in the catalog'), and the word 'existing' distinguishes it from sibling tools like add_catalog_entry. This meets the criteria for a specific verb+resource+scope.

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

Usage Guidelines2/5

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

No explicit guidance is provided on when to use this tool versus alternatives such as add_catalog_entry. The usage is only implied by the verb 'update' and the word 'existing', but there are no preconditions, exclusions, or alternative tool mentions.

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. Dates show when Glama detected each change.

  1. 18 tool updatesv0.6.0
    • First observedadd_catalog_entry
    • First observedcreate_analysis_design
    • First observedextract_domain_knowledge
    • First observedget_analysis_design
    • First observedget_domain_knowledge
    • First observedget_project_context
    • First observedget_review_comments
    • First observedget_table_schema
    • First observedlist_analysis_designs
    • First observedsave_extracted_knowledge
    • First observedsave_review_batch
    • First observedsave_review_comment
    • First observedsearch_catalog
    • First observedsuggest_cautions
    • First observedsuggest_knowledge_for_design
    • First observedtransition_design_status
    • First observedupdate_analysis_design
    • First observedupdate_catalog_entry

TDQS

B3.4/5.0
Disambiguation3/5

Most tools have clear single purposes (get vs list, create vs update), but there is overlap between transition_design_status and save_review_comment/save_review_batch, which also transition status. The suggestion tools (suggest_cautions vs suggest_knowledge_for_design) are distinct in inputs but may be confused in intent.

Naming Consistency5/5

All tool names follow a predictable verb_noun pattern with snake_case (get_*), (create_*), (update_*), (save_*), etc. The convention is uniform and makes it easy to infer functionality.

Tool Count4/5

18 tools is on the higher end but appropriate given the server covers analysis design lifecycle, catalog management, review workflows, and knowledge extraction. Each tool serves a distinct functional area, so the count feels justified rather than bloated.

Completeness3/5

Core workflows for design creation, review, and knowledge extraction are well covered. However, there are no delete operations (e.g., delete_analysis_design, delete_catalog_entry) and no direct way to add domain knowledge manually. These gaps may require workarounds in agent workflows.

Maintenance

ActivityMaintained
ResponsivenessResponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/etoyama/insight-blueprint'

If you have feedback or need assistance with the MCP directory API, please join our Discord server