insight-blueprint
Allows export of data lineage diagrams in Mermaid format for visualizing data transformations.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@insight-blueprintcreate a new analysis design for customer churn"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
insight-blueprint
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
Recommended: Claude Code Plugin
# 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-blueprintAll 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-analysisUpdating
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-marketplaceSee CHANGELOG.md for release notes.
Optional: Python Package
For data-lineage tracking with tracked_pipe in your notebooks/scripts:
uv add insight-blueprintThis 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 |
|
Data Catalog |
|
Domain Knowledge |
|
Review Workflow |
|
Project |
|
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 designAutomation Modes
Mode | HIGH Risk Handling | Human Interaction |
| Interactive prompt for every design | Required |
| Blocks on HIGH (exit 2), auto-approves LOW/MEDIUM | Only when HIGH detected |
| 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/premortemfirst.
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 directoryTeam 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 4000Each 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 4000Options
Option | Default | Description |
| (default) | stdio MCP + WebUI on localhost:3000. Standard single-user mode |
| - | HTTP MCP SSE + WebUI on the same port. For team/multi-client use |
| - | HTTP MCP SSE only (no WebUI). Lightweight deployment |
|
| Bind address (server/headless mode only) |
|
| Listen port (server/headless mode only) |
|
| 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.mdThe 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 allSee 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.
License
MIT
Available Tools
18 toolsadd_catalog_entryC
Register a new data source in the catalog.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| tags | No | ||
| type | Yes | ||
| columns | No | ||
| source_id | Yes | ||
| connection | Yes | ||
| description | Yes | ||
| primary_key | No | ||
| row_count_estimate | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| chart | No | ||
| title | Yes | ||
| metrics | No | ||
| theme_id | No | DEFAULT | |
| parent_id | No | ||
| explanatory | No | ||
| methodology | No | ||
| next_action | No | ||
| analysis_intent | No | confirmatory | |
| hypothesis_statement | Yes | ||
| referenced_knowledge | No | ||
| hypothesis_background | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| design_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| design_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | ||
| source_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| design_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| source_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| status | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| entries | Yes | ||
| design_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| comments | Yes | ||
| reviewer | No | analyst | |
| design_id | Yes | ||
| status_after | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | ||
| comment | Yes | ||
| reviewer | No | analyst | |
| design_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | ||
| query | Yes | ||
| source_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| table_names | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| section | No | ||
| theme_id | No | ||
| parent_id | No | ||
| source_ids | No | ||
| hypothesis_text | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | ||
| design_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| chart | No | ||
| title | No | ||
| metrics | No | ||
| design_id | Yes | ||
| explanatory | No | ||
| methodology | No | ||
| next_action | No | ||
| analysis_intent | No | ||
| hypothesis_statement | No | ||
| referenced_knowledge | No | ||
| hypothesis_background | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| tags | No | ||
| columns | No | ||
| source_id | Yes | ||
| connection | No | ||
| description | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
18 tool updates
v0.6.0- First observed
add_catalog_entry - First observed
create_analysis_design - First observed
extract_domain_knowledge - First observed
get_analysis_design - First observed
get_domain_knowledge - First observed
get_project_context - First observed
get_review_comments - First observed
get_table_schema - First observed
list_analysis_designs - First observed
save_extracted_knowledge - First observed
save_review_batch - First observed
save_review_comment - First observed
search_catalog - First observed
suggest_cautions - First observed
suggest_knowledge_for_design - First observed
transition_design_status - First observed
update_analysis_design - First observed
update_catalog_entry
TDQS
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.
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.
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.
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
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
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
MCP server for querying and analyzing data from ad platforms, analytics tools, and spreadsheets
MCP server for generating rough-draft project plans from natural-language prompts.
Related MCP Servers
AlicenseNot gradedqualityFmaintenanceA Python-based MCP server that allows Claude and other LLMs to execute arbitrary Python code directly through your desktop Claude app, enabling data scientists to connect LLMs to APIs and executable code.26MIT- AlicenseBqualityDmaintenanceA comprehensive MCP server for Dataiku DSS integration, providing Claude Code with direct access to manage recipes, datasets, and scenarios.4451Apache 2.0
- AlicenseAqualityAmaintenanceAn extensible MCP server that provides intelligent Python code analysis, navigation, and understanding capabilities for AI assistants like Claude.25MIT
- FlicenseNot gradedqualityFmaintenanceAn MCP server for coordinating multiple Claude Code sessions across related projects.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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