Skip to main content
Glama

Iconsult MCP

Architecture consulting for multi-agent systems, grounded in the textbook.

Iconsult is an MCP server that reviews your multi-agent architecture against a knowledge graph of 141 concepts and 462 relationships extracted from Agentic Architectural Patterns for Building Multi-Agent Systems (Arsanjani & Bustos, Packt 2026). Every recommendation comes with chapter numbers, page references, and concrete code-level changes — not abstract advice.

This project was influenced by Piaget's theories of cognitive development in which learning occurs through the adaptation of schemas.

See It In Action

We pointed Iconsult at OpenAI's Financial Research Agent — a 5-stage multi-agent pipeline from their Agents SDK — and asked it to assess architectural maturity.

Watch the demo

View the full interactive architecture review →

The agent's current architecture

The Financial Research Agent uses a 5-stage sequential pipeline orchestrated by FinancialResearchManager. Search is the only concurrent stage — everything else runs in sequence, and the verifier is a terminal dead end:

flowchart TD
    User(["User Query"]) --> Manager["FinancialResearchManager"]
    Manager --> Planner["PlannerAgent\no3-mini"]
    Planner -->|"FinancialSearchPlan"| FanOut{"Parallel Fan-Out"}
    FanOut --> S1["SearchAgent 1"]
    FanOut --> S2["SearchAgent 2"]
    FanOut --> SN["SearchAgent N"]
    S1 --> Collect["Collect Results"]
    S2 --> Collect
    SN --> Collect
    Collect --> Writer["WriterAgent\ngpt-5.4"]
    Writer -.->|"as_tool"| Fundamentals["FundamentalsAnalystAgent"]
    Writer -.->|"as_tool"| Risk["RiskAnalystAgent"]
    Fundamentals -.-> Writer
    Risk -.-> Writer
    Writer -->|"FinancialReportData"| Verifier["VerifierAgent\ngpt-5.4"]
    Verifier --> Output(["Print Report"])

What Iconsult found

Solid foundation — and Iconsult's knowledge graph traversal identified key opportunities across 7 categories:

Category

Rating

Key Finding

Coordination & Planning

Established

Solid supervisor + agent-as-tool delegation

Human-Agent Interaction

Emerging

Agent delegation works; no HITL checkpoints

Agent Capabilities

Emerging

WebSearchTool + structured outputs in place

Robustness

Not Started

0% failure chain coverage; no retry, no timeout

Explainability

Not Started

No instruction anchoring or fidelity auditing

Infrastructure

Not Started

No event system, no auth, no registry

Continuous Improvement

Not Started

Verification is informational only

The natural next evolution — adding retry logic, checkpointing, shared memory, and a verification feedback loop:

flowchart TD
    User(["User Query"]) --> Manager["FinancialResearchManager"]
    Manager --> Planner["PlannerAgent\no3-mini"]
    Planner -->|"FinancialSearchPlan"| FanOut{"Parallel Fan-Out"}
    FanOut --> S1["SearchAgent 1"]
    FanOut --> S2["SearchAgent 2"]
    FanOut --> SN["SearchAgent N"]
    S1 --> Collect["Collect Results"]
    S2 --> Collect
    SN --> Collect

    FanOut -.-> WD["Watchdog Timeout\nSupervisor"]:::opportunity
    S1 -.-> RT["Adaptive Retry\n+ Prompt Mutation"]:::opportunity
    S2 -.-> RT
    SN -.-> RT

    Collect --> CP1["Checkpoint\nSearch Results"]:::opportunity
    CP1 --> SharedMem[("Shared Epistemic\nMemory")]:::newpattern
    SharedMem --> Writer["WriterAgent\ngpt-5.4"]
    Writer -.->|"as_tool"| Fundamentals["FundamentalsAnalystAgent"]
    Writer -.->|"as_tool"| Risk["RiskAnalystAgent"]
    Fundamentals -.-> Writer
    Risk -.-> Writer

    Writer -->|"FinancialReportData"| Verifier["VerifierAgent\ngpt-5.4\n+ Scoring Rubric"]:::newpattern
    Verifier -->|"Pass"| Output(["Print Report"])
    Verifier -->|"Fail + Feedback"| Writer
    Verifier -.-> Metrics["Custom Evaluation\nMetrics"]:::opportunity

    classDef opportunity fill:none,stroke:#E74C3C,stroke-dasharray:5 5,color:#E74C3C
    classDef newpattern fill:#27AE60,stroke:#333,color:white

How it got there

The consultation followed Iconsult's 7-step guided workflow — view the visual workflow →

Step

Tool(s)

What happened

1. Read codebase

Fetched manager.py, agents/*.py. Identified the orchestrator pattern, .as_tool() delegation, silent except Exception: return None, and terminal verifier.

2. Match concepts

match_concepts

Embedded the project description (OpenAI text-embedding-3-small) and ranked all 141 concepts by cosine similarity against their pre-computed embeddings in the knowledge graph. Same input → same embedding → same ranking — no LLM judgment. Top hits: Multi-Agent Planning, Supervisor Architecture, Agent Delegates to Agent, AgentTool, Hybrid Planner+Scorer.

2b. Plan

plan_consultation

Assessed complexity as complex (score 86/100 — 20 concepts, high relationship density). Generated 11-step adaptive plan. Complexity controls traversal depth: simple (3 concepts, 1 hop, 8 steps) → moderate (5 concepts, 2 hops, adds follow-up questions + optional critique, 10 steps) → complex (8 concepts, 2 hops, parallel subagents, second traversal round, mandatory critique, 11 steps).

3. Traverse graph

get_subgraph, log_pattern_assessment, emit_event

4 parallel subagents explored concept clusters across two traversal rounds (39 nodes, 45 edges). Logged 20 pattern assessments (7 implemented, 3 partial, 7 missing, 3 N/A). Emitted gap_found events for key opportunities.

4. Retrieve passages

ask_book

Book passages scoped to discovered concepts — returned chapter numbers, page ranges, and quotes grounding each recommendation.

5. Coverage + Score + Stress test

consultation_report, score_architecture, generate_failure_scenarios

consultation_report verifies 4 coverage dimensions from logged steps: concept coverage (matched concepts traversed or assessed / total matched), relationship type coverage (edge types seen / 10 possible), passage diversity (chapters + sections retrieved), and critical edge checks (requires/conflicts_with examined). Then score_architecture computed the 7-category maturity scorecard and generate_failure_scenarios produced 5 failure walkthroughs for missing patterns.

5b. Critique

critique_consultation

No LLM — 7 rule-based checks against fixed thresholds (workflow completeness, traversal depth >= 3, assessments >= 5, coverage >= 50%, critical edges examined, etc.). Flagged 2 issues; backfilled 6 unexplored concepts.

6. Render report

render_report

Generated the interactive HTML report server-side — scores, scenarios, and coverage pulled from DB, merged with narrative content.

7. Implementation plan

generate_implementation_plan

Offered step-by-step phased checklist (mechanical code changes vs. design decisions).

Related MCP server: MCP Architect

What It Does

Point it at a codebase (or describe your architecture), and it runs a structured consultation: matching concepts, traversing the knowledge graph for prerequisites and conflicts, scoring maturity against a category-based rubric (7 categories × 3 levels from Ch. 12), and generating an interactive HTML review with before/after architecture diagrams.

Tools (25)

Consultation workflow:

Tool

Role

What it does

match_concepts

Entry point

Embeds a project description → deterministic concept ranking + consultation_id for session tracking

plan_consultation

Planning

Assesses complexity (simple/moderate/complex) and generates an adaptive step-by-step plan

get_subgraph

Graph traversal

Priority-queue BFS from seed concepts — discovers alternatives, prerequisites, conflicts, complements

log_pattern_assessment

Assessment

Records whether each pattern is implemented, partial, missing, or not applicable

ask_book

Deep context

RAG search against the book — returns passages with chapter, page numbers, and full text

consultation_report

Coverage

Computes concept/relationship coverage, identifies opportunities, optionally diffs two sessions

score_architecture

Scoring

Category-based maturity scorecard (7 categories × 3 levels) from logged pattern assessments; pattern ID aliases bridge KG ↔ rubric IDs

generate_failure_scenarios

Resilience analysis

Resilience scenarios for each opportunity — code-grounded or book-grounded, with Ch. 7 recovery chain mapping

critique_consultation

Quality

Structural critique with actionable fix suggestions; multi-iteration mode (1-3 passes) with convergence detection

render_report

Report rendering

Server-side HTML rendering — pulls scores/scenarios/coverage from DB, merges with narrative content, writes complete HTML with CSS/JS/zoom/tooltips

supervise_consultation

Supervision

Tracks workflow progress across 9 phases, suggests next action with tool + params

generate_implementation_plan

Implementation

Phased markdown checklist from consultation results; classifies steps as mechanical or design decision

get_implementation_plan

Implementation

Retrieve a previously generated plan with progress summary

update_plan_step

Implementation

Update step status (pending/in_progress/completed/skipped); recomputes summary

Coordination:

Tool

What it does

write_state / read_state

Shared key-value state for subagent coordination during traversal

assert_fact / query_facts

Blackboard Knowledge Hub — typed, versioned facts with conflict detection, confidence scores, and TTL

emit_event / get_events

Event-driven reactivity — emit events like gap_found, poll with filters, get reactive suggestions

Quality & utility:

Tool

What it does

rate_consultation

Record user quality score (1-5) and/or feedback with metadata snapshot

consultation_analytics

Surface quality trends across consultations (avg rating, coverage, distribution)

list_concepts

Browse/filter the full 138-concept catalogue

validate_subagent

Schema validation for subagent responses; optional semantic validation against the knowledge graph

health_check

Server health + graph stats

Prompt

Prompt

What it does

consult

Kick off a full architecture consultation — provide your project context and get the guided workflow

The Knowledge Graph

141 concepts  ·  786 sections  ·  462 relationships  ·  1,248 concept-section mappings

Relationship types span uses, extends, alternative_to, component_of, requires, enables, complements, specializes, precedes, and conflicts_with.

How it was built

The graph was extracted from the book in 4 phases using Claude and OpenAI embeddings:

Phase

What it does

Output

1a — Parse Index

Extract concept entries from the book's index (OCR-corrected)

138 concepts with page references

1b — Parse Book

Segment the book into sections by heading structure

786 sections across 16 chapters

2 — Tag Concepts

Claude maps each concept to relevant sections using index page numbers + semantic context

1,248 concept-section mappings

3a — Explicit Relationships

Claude identifies relationships between concepts within each chapter

Typed edges (uses, requires, extends, etc.)

3b — Semantic Pairs

OpenAI embeddings find similar concepts across chapters; Claude validates and types the relationship

Cross-chapter semantic edges

3c–3e — Cross-Chapter

Three additional passes: knowledge-based, cross-chapter semantic, and summary-based structural relationships

462 total relationships at avg 0.695 confidence

4 — Build Graph

Deduplicate edges, validate confidence thresholds, compute final embeddings from section content

Production-ready graph on MotherDuck

See docs/development.md for pipeline commands and technical details.

Explore the interactive knowledge graph →

Setup

Prerequisites

  • Python 3.10+

  • A MotherDuck account (free tier works)

  • OpenAI API key (for embeddings used by ask_book)

  • Claude Code (optionally with the visual-explainer skill for ad-hoc diagrams outside consultations)

Database Access

The knowledge graph is hosted on MotherDuck and shared publicly. The server automatically detects whether you own the database or need to attach the public share — no extra configuration needed. Just provide your MotherDuck token and it works.

Install visual-explainer (optional)

The visual-explainer skill is no longer required for consultations — render_report now handles HTML rendering server-side. However, it remains useful for ad-hoc diagrams outside consultations:

git clone https://github.com/nicobailon/visual-explainer.git ~/.claude/skills/visual-explainer
mkdir -p ~/.claude/commands
cp ~/.claude/skills/visual-explainer/prompts/*.md ~/.claude/commands/

Install

pip install git+https://github.com/marcus-waldman/Iconsult_mcp.git

For development:

git clone https://github.com/marcus-waldman/Iconsult_mcp.git
cd Iconsult_mcp
pip install -e .

Environment Variables

export MOTHERDUCK_TOKEN="your-token"    # Required — database
export OPENAI_API_KEY="sk-..."          # Required — embeddings for ask_book

MCP Configuration

Add to your Claude Desktop config (claude_desktop_config.json) or Claude Code settings:

{
  "mcpServers": {
    "iconsult": {
      "command": "iconsult-mcp",
      "env": {
        "MOTHERDUCK_TOKEN": "your-token",
        "OPENAI_API_KEY": "sk-..."
      }
    }
  }
}

Verify

iconsult-mcp --check

License

AGPL-3.0 — see LICENSE for details.

Available Tools

17 tools
ask_bookA

DEEP CONTEXT — RAG search against book sections. Embeds a natural language question and returns the most relevant book passages with full text, chapter, page numbers, and section title. ALWAYS scope with concept_ids from get_subgraph for precision. Returns suggested_questions derived deterministically from graph edges. Pass consultation_id to log retrieval steps.

ParametersJSON Schema
NameRequiredDescriptionDefault
questionYesNatural language question to search for in the book
concept_idsNoOptional: scope search to sections linked to these concept IDs
max_passagesNoMaximum number of passages to return (default: 3)
consultation_idNoOptional consultation ID from match_concepts to log this step

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does well by explaining what the tool returns ('full text, chapter, page numbers, section title, suggested_questions'), the deterministic nature of suggested questions, and the logging capability. However, it doesn't mention potential limitations like rate limits, error conditions, or whether this is a read-only operation (though implied by 'search').

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 appropriately sized with three sentences that each serve a distinct purpose: explaining the core functionality, providing usage guidance, and describing logging. It's front-loaded with the most important information. The 'DEEP CONTEXT' prefix is slightly verbose but doesn't significantly detract from overall efficiency.

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

Completeness3/5

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

For a tool with 4 parameters, no annotations, and no output schema, the description provides adequate coverage of the tool's purpose and usage context. However, it doesn't fully compensate for the lack of output schema by describing the exact structure of returned passages or the format of suggested_questions. The description is complete enough for basic understanding but leaves some implementation details unspecified.

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

Parameters3/5

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

With 100% schema description coverage, the baseline is 3 even without additional parameter information in the description. The description does add some context about 'concept_ids from get_subgraph' and 'consultation_id to log retrieval steps', but doesn't provide significant semantic value beyond what's already documented in the 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 clearly states the tool's purpose with specific verbs ('RAG search', 'embeds', 'returns') and resources ('book sections', 'passages'). It distinguishes from siblings by mentioning 'concept_ids from get_subgraph' and 'consultation_id from match_concepts', showing awareness of related tools. The description goes beyond the name 'ask_book' to explain the retrieval-augmented generation mechanism.

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 for when to use this tool ('ALWAYS scope with concept_ids from get_subgraph for precision') and mentions prerequisites ('Pass consultation_id to log retrieval steps'). However, it doesn't explicitly state when NOT to use it or name specific alternatives among the many sibling tools, which prevents a perfect score.

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

consultation_reportA

COVERAGE CHECK — Compute coverage metrics for a consultation session. Concept coverage counts matched concepts that were either traversed (get_subgraph seeds) or assessed (log_pattern_assessment). Also shows relationship type coverage, passage diversity, prerequisite/conflict edge checks, and specific gaps. Call before synthesizing to ensure thorough coverage. Optionally compare two sessions with the same project fingerprint to see diffs.

ParametersJSON Schema
NameRequiredDescriptionDefault
consultation_idYesThe consultation session to evaluate
compare_toNoOptional second consultation ID to diff against

TDQS

A4.6/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 of behavioral disclosure. It effectively describes what the tool does (computes metrics, shows checks, identifies gaps) and its optional diffing capability. However, it lacks details on output format, error handling, or performance characteristics, which would be needed for a perfect score.

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, followed by specific metrics and usage guidelines in a logical flow. Every sentence adds value—none are redundant or vague—making it efficiently structured and appropriately sized for the tool's complexity.

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

Completeness4/5

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

Given the tool's moderate complexity, no annotations, and no output schema, the description does well by covering purpose, usage, and key metrics. However, it lacks details on the output structure (e.g., what the coverage metrics look like) and any limitations or prerequisites, which would be needed for full completeness in this context.

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 description coverage is 100%, so the baseline is 3. The description adds value by explaining the purpose of the optional 'compare_to' parameter ('to see diffs') and contextualizing 'consultation_id' as part of coverage evaluation. However, it doesn't provide additional syntax or format details beyond what the schema already documents.

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 specific action ('compute coverage metrics') and resource ('for a consultation session'), distinguishing it from siblings like 'score_architecture' or 'validate_subagent' by focusing on coverage analysis rather than scoring or validation. It enumerates specific metrics like concept coverage, relationship type coverage, and gap identification, making the purpose highly specific.

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 provides explicit guidance on when to use this tool ('Call before synthesizing to ensure thorough coverage') and includes an alternative usage scenario ('Optionally compare two sessions with the same project fingerprint to see diffs'). This clearly distinguishes it from tools like 'critique_consultation' or 'supervise_consultation' by focusing on pre-synthesis coverage checks.

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

critique_consultationA

CRITIQUE — Deterministic quality critique of a consultation session. Analyzes logged steps for workflow completeness, traversal depth, pattern assessment coverage, passage diversity, and critical edge checks. Returns issues with severity (error/warning), categories, and actionable suggestions. No LLM calls — pure structural analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
consultation_idYesThe consultation session to critique

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it's a read-only analysis tool (implied by 'critique' and 'analyzes'), deterministic rather than generative, returns structured issues with severity levels and suggestions, and explicitly states it makes no LLM calls. However, it doesn't mention performance characteristics, rate limits, or authentication requirements.

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 efficiently structured in three sentences: purpose statement, analysis dimensions, and behavioral constraints. Every sentence adds value with zero wasted words, and key information is front-loaded with the core function stated immediately.

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 single-parameter analysis tool with no output schema, the description provides good context about what the tool does, how it works (deterministic structural analysis), and what it returns (issues with severity, categories, suggestions). The main gap is lack of output format details, but given the tool's relatively simple function and good behavioral disclosure, it's mostly 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?

Schema description coverage is 100% with a single parameter clearly documented in the schema. The description doesn't add any parameter-specific information beyond what the schema provides (consultation_id as the session to critique), so it meets the baseline for high schema coverage without adding extra value.

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 performs a 'deterministic quality critique of a consultation session' with specific analysis dimensions (workflow completeness, traversal depth, pattern assessment coverage, passage diversity, critical edge checks). It distinguishes from siblings by focusing on structural analysis rather than generation, reporting, or planning functions.

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 context ('analyzes logged steps') and distinguishes from LLM-based approaches ('No LLM calls — pure structural analysis'), but doesn't explicitly state when to use this versus alternatives like consultation_report or supervise_consultation. It provides some guidance but lacks explicit when/when-not comparisons.

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

emit_eventC

EVENT (emit) — Emit a consultation event for reactive processing. Valid types: gap_found, pattern_assessed, coverage_threshold_reached, coverage_dropped, plan_created, state_conflict. Returns a reactive suggestion based on the event type.

ParametersJSON Schema
NameRequiredDescriptionDefault
consultation_idYesThe consultation session ID
event_typeYesType of event to emit
dataNoOptional event payload (JSON object)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool 'emits' an event and returns a 'reactive suggestion', but lacks details on side effects (e.g., if it modifies state), authentication needs, rate limits, or error handling. This is inadequate for a tool that likely triggers downstream processing.

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

Conciseness4/5

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

The description is concise and front-loaded, starting with the core action ('emit a consultation event') followed by key details. Both sentences are informative, though the second sentence could be slightly more structured (e.g., separating the enum list from the return statement).

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 complexity of an event-emitting tool with no annotations and no output schema, the description is incomplete. It doesn't explain what 'reactive processing' entails, what a 'reactive suggestion' looks like, or potential side effects, leaving significant gaps for the agent to understand the tool's behavior and outputs.

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 100% description coverage, clearly documenting all three parameters. The description adds minimal value by listing the valid event types (which are already in the schema's enum) and mentioning the optional 'data' payload, but doesn't provide additional semantics beyond what the schema offers.

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 purpose with a specific verb ('emit') and resource ('consultation event'), and it specifies the valid event types. However, it doesn't explicitly differentiate this tool from its siblings like 'log_pattern_assessment' or 'get_events', which might have overlapping domains.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It mentions 'reactive processing' but doesn't clarify when this emission is appropriate compared to other event-related tools like 'get_events' or 'log_pattern_assessment', leaving the agent without usage context.

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

generate_failure_scenariosA

STRESS TEST — Generate concrete failure scenario walkthroughs for missing/partial patterns. Each scenario shows a realistic cascading failure: trigger event, step-by-step propagation through the architecture (with file:line references when code evidence is available), downstream impact, and book-cited recovery recommendation. Also maps coverage against Ch. 7's five-step failure recovery chain. Flags inverted pyramid warnings when advanced patterns depend on missing foundations. Deterministic — same consultation always produces same scenarios. Requires pattern_assessment steps from step 3.

ParametersJSON Schema
NameRequiredDescriptionDefault
consultation_idYesThe consultation session to analyze
max_scenariosNoMaximum scenarios to return (1-20, default: 5)

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and discloses key behavioral traits: it's deterministic ('same consultation always produces same scenarios'), includes specific outputs (walkthroughs with file:line references, coverage mapping, warnings), and mentions cascading failure analysis. It doesn't cover rate limits or auth needs, but provides substantial operational context.

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

Conciseness4/5

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

The description is appropriately sized and front-loaded with 'STRESS TEST' and key purpose, but could be slightly more concise by integrating some details (e.g., 'Deterministic' note) more seamlessly. Most sentences earn their place by adding 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?

Given no annotations and no output schema, the description does well to explain the tool's behavior, outputs (scenarios with specific elements), and prerequisites. It could improve by hinting at return format or error handling, but covers complexity adequately for a stress-test 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?

Schema description coverage is 100%, so the baseline is 3. The description doesn't add meaning beyond what the schema provides for 'consultation_id' or 'max_scenarios', though it implies 'consultation_id' relates to analysis sessions mentioned in the usage guidelines.

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 with specific verbs ('generate concrete failure scenario walkthroughs') and resources ('missing/partial patterns'), distinguishing it from siblings like 'score_architecture' or 'health_check' by focusing on stress testing and failure analysis rather than evaluation or monitoring.

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

Usage Guidelines5/5

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

It explicitly states when to use this tool ('Requires pattern_assessment steps from step 3') and provides context for its application ('STRESS TEST'), with no misleading guidance. This helps differentiate it from alternatives like 'consultation_report' or 'critique_consultation' by specifying prerequisites.

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

get_eventsA

EVENT (poll) — Poll consultation events with optional filters. Use since_id to get only new events since a previous poll. Use event_type to filter by type.

ParametersJSON Schema
NameRequiredDescriptionDefault
consultation_idYesThe consultation session ID
since_idNoOnly return events with id > since_id
event_typeNoFilter by event type

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the polling behavior and optional filtering, which is useful, but it doesn't cover aspects like rate limits, authentication needs, error handling, or what the return format looks like (e.g., list of events, pagination). For a polling tool with zero annotation coverage, this leaves gaps in understanding its full behavior.

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

Conciseness5/5

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

The description is highly concise and well-structured, consisting of two sentences that efficiently convey the tool's purpose and parameter usage. Every sentence earns its place: the first states the core function, and the second explains key parameters. There is no wasted text, making it easy to parse and understand quickly.

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 moderate complexity (polling with filters), no annotations, and no output schema, the description is somewhat complete but has gaps. It covers the basic purpose and parameter guidance, but it doesn't explain the return values (e.g., event structure, error responses) or behavioral details like polling intervals. For a tool with no output schema, more context on what to expect would improve completeness.

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 100% description coverage, so the schema already documents all parameters ('consultation_id', 'since_id', 'event_type') with clear descriptions. The description adds marginal value by reinforcing the use of 'since_id' for new events and 'event_type' for filtering, but it doesn't provide additional syntax, format details, or examples beyond what the schema states. Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Poll consultation events with optional filters.' It specifies the verb ('poll') and resource ('consultation events'), distinguishing it from siblings like 'emit_event' (which creates events) or 'consultation_report' (which generates reports). However, it doesn't explicitly contrast with all siblings, such as 'read_state', which might also retrieve event-related data.

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 certain parameters ('Use since_id to get only new events since a previous poll. Use event_type to filter by type.'), but it doesn't explicitly state when to use this tool versus alternatives like 'read_state' or 'consultation_report'. It implies usage for polling events with filters, yet lacks explicit exclusions or comparisons to sibling tools.

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

get_subgraphA

QUERY PLANNER — Bounded graph traversal from seed concepts. Given one or more concept IDs (from match_concepts or list_concepts), performs BFS up to max_hops and returns all reachable nodes and edges. Use relationship types to discover what the user is missing: alternative_to for competing approaches, requires for prerequisites, conflicts_with for incompatibilities, complements for synergies. Pass consultation_id to log traversal steps for coverage tracking.

ParametersJSON Schema
NameRequiredDescriptionDefault
concept_idsYesList of concept IDs to start traversal from
max_hopsNoMaximum traversal depth (1-3, default: 2)
confidence_thresholdNoMinimum edge confidence to traverse (0.0-1.0, default: 0.5)
max_edgesNoMaximum edges to return (1-200, default: 50)
include_descriptionsNoInclude edge description text (default: false)
consultation_idNoOptional consultation ID from match_concepts to log this step

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it performs BFS traversal, returns nodes and edges, includes relationship types for discovery (alternative_to, requires, etc.), and mentions logging for coverage tracking. However, it doesn't specify rate limits, error handling, or performance characteristics, leaving some gaps.

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 core functionality, uses bullet-like structure for relationship types, and every sentence adds value (e.g., traversal method, usage context, logging). No wasted words, efficiently conveying necessary information in three focused sentences.

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 6 parameters, 100% schema coverage, no output schema, and no annotations, the description is largely complete: it covers purpose, usage, behavior, and parameters context. However, it lacks details on output format (nodes/edges structure) and error cases, which could be important for a tool with complex traversal logic.

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

Parameters4/5

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

Schema description coverage is 100%, so baseline is 3. The description adds value by explaining the purpose of traversal (to discover what users are missing via relationship types) and linking concept_ids to match_concepts/list_concepts, providing context beyond schema. It doesn't detail individual parameters but enhances overall parameter understanding.

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 performs 'bounded graph traversal from seed concepts' using BFS up to max_hops, returning reachable nodes and edges. It specifies the exact operation (traversal), resource (graph/concepts), and distinguishes from siblings like list_concepts (which lists concepts) or match_concepts (which matches concepts).

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 states when to use this tool: 'Given one or more concept IDs (from match_concepts or list_concepts)' and provides guidance on relationship types to discover what users are missing (e.g., alternative_to, requires). It also mentions passing consultation_id for logging, indicating integration with other tools like match_concepts.

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

health_checkA

Check server health and graph scope. Returns database connection status, graph statistics (concept count, relationship count, avg confidence), and pipeline status. Call this first to understand how large the knowledge graph is and whether the database is reachable.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/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 of behavioral disclosure. It effectively describes what the tool returns (database connection status, graph statistics, pipeline status) and its diagnostic purpose. However, it doesn't mention potential side effects, rate limits, or authentication requirements, leaving some behavioral aspects unspecified.

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 perfectly concise and well-structured in two sentences. The first sentence states what the tool does and returns, while the second provides crucial usage guidance. Every word earns its place with no redundancy or wasted text.

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

Completeness4/5

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

Given the tool's diagnostic nature, 0 parameters, no output schema, and no annotations, the description provides good contextual completeness. It explains what information is returned and when to use it. The main gap is the lack of output format details, but for a health check tool, the described return categories are reasonably sufficient.

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

Parameters4/5

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

The tool has 0 parameters with 100% schema description coverage, so the schema already fully documents the empty input. The description appropriately doesn't add parameter information, maintaining focus on the tool's purpose and usage. A baseline of 4 is appropriate for zero-parameter tools.

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 with specific verbs ('check', 'returns') and resources ('server health', 'graph scope', 'database connection status', 'graph statistics', 'pipeline status'). It distinguishes from siblings by focusing on system diagnostics rather than knowledge graph operations like 'list_concepts' or 'get_subgraph'.

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 states when to use this tool: 'Call this first to understand how large the knowledge graph is and whether the database is reachable.' This provides clear guidance on its initial diagnostic role versus alternatives like data retrieval or analysis tools among siblings.

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

list_conceptsA

BROWSE — List all 138 concepts in the knowledge graph. Returns compact output (id, name, category) by default. Use search to filter by name, and include_definitions for full definition text. Use this to browse the catalogue; for consultation workflows, prefer match_concepts as the entry point.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoFilter concepts by name substring (case-insensitive)
include_definitionsNoInclude definition text in output (default: false)

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses key behavioral traits: the tool returns compact output by default, supports filtering via search, and can include definitions. However, it doesn't mention pagination, rate limits, or error handling, leaving some behavioral aspects unspecified.

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, followed by usage details and alternatives in three concise sentences. Every sentence adds value without redundancy, making it efficient and well-structured.

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

Completeness4/5

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

Given the tool's moderate complexity (2 parameters, no annotations, no output schema), the description is mostly complete. It covers purpose, usage, and key behaviors, but lacks details on output structure beyond compact format, which could be improved since there's no output schema to rely on.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds minimal value beyond the schema by mentioning the default behavior for include_definitions and the purpose of search, but doesn't provide additional syntax or format details. Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose5/5

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

The description clearly states the verb ('List') and resource ('all 138 concepts in the knowledge graph'), specifying the scope and output format. It distinguishes from sibling tools by contrasting with 'match_concepts' for consultation workflows, providing clear differentiation.

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?

Explicit guidance is provided: 'Use this to browse the catalogue; for consultation workflows, prefer match_concepts as the entry point.' This clearly states when to use this tool versus an alternative, with named context and exclusion criteria.

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

log_pattern_assessmentA

LOG ASSESSMENT — Record a pattern assessment for a consultation session. Call this during graph traversal (step 3) for each architectural pattern you identify in the user's codebase or confirm is missing. These stored assessments are what score_architecture uses to compute deterministic maturity scores.

ParametersJSON Schema
NameRequiredDescriptionDefault
consultation_idYesThe consultation session ID from match_concepts
pattern_idYesThe concept ID of the pattern being assessed
pattern_nameYesHuman-readable name of the pattern
statusYesWhether the pattern is implemented, partial, missing, or not_applicable (pattern is irrelevant to this architecture, e.g. Agent Calls Human for a batch pipeline)
evidenceNoFile path or description of what was found (or not found)
maturity_levelNoAssessed maturity level (1-6, default: 1)
failure_contextNoOptional structured failure context for stress test demos. Fields: code_refs (list of {file, line, snippet}), failure_mode (string describing what breaks), depends_on (list of pattern_ids this depends on)

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It explains that the tool stores assessments for later use by 'score_architecture', which implies persistence and data recording behavior. However, it lacks details on potential side effects, error handling, or performance characteristics (e.g., rate limits, idempotency).

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 appropriately sized and front-loaded, with two sentences that efficiently convey purpose and usage. Every sentence adds value without redundancy, making it easy to parse and understand 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?

Given the tool's complexity (7 parameters, including nested objects) and the absence of annotations and output schema, the description is reasonably complete. It explains the tool's role in a workflow and its relationship to other tools, but could benefit from more detail on behavioral aspects like error cases or data persistence guarantees.

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 description coverage is 100%, so the schema already documents all 7 parameters thoroughly. The description does not add any additional meaning or context beyond what the schema provides (e.g., it doesn't explain parameter interactions or provide examples). Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose5/5

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

The description clearly states the tool's purpose with specific verbs ('Record a pattern assessment') and resources ('for a consultation session'), and distinguishes it from sibling tools by explicitly mentioning its relationship to 'score_architecture' (a sibling tool). It goes beyond restating the name by explaining the action and context.

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 provides explicit usage guidelines, specifying when to use it ('Call this during graph traversal (step 3) for each architectural pattern you identify in the user's codebase or confirm is missing') and linking it to another tool ('score_architecture'). It clearly defines the context and purpose without being misleading.

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

match_conceptsA

ENTRY POINT — Deterministically match a project description to knowledge graph concepts via embedding similarity. Returns ranked concepts with scores and creates a consultation_id that tracks the session. The same description always produces the same concept ranking and fingerprint. Pass the returned consultation_id to get_subgraph and ask_book for step logging.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_descriptionYesFree-text description of the user's project, architecture, and pain points
max_resultsNoMaximum concepts to return (1-50, default: 15)
similarity_thresholdNoMinimum cosine similarity to include (0.0-1.0, default: 0.3)

TDQS

A4.4/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 and does well by disclosing key behavioral traits: deterministic matching ('same description always produces the same concept ranking'), embedding similarity method, ranked output with scores, consultation_id creation for session tracking, and fingerprint generation. It doesn't mention rate limits or auth needs, but covers core behavior thoroughly.

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 efficiently structured with three sentences that each serve distinct purposes: stating the core function, explaining deterministic behavior, and providing usage guidance. It's front-loaded with the most important information and contains no wasted words.

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 tool with 3 parameters, 100% schema coverage, but no annotations or output schema, the description provides strong context about behavior, workflow role, and deterministic nature. It could benefit from mentioning output format details (since no output schema exists), but otherwise covers the essential context well given the complexity.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description doesn't add meaningful semantic context beyond what the schema provides about project_description, max_results, or similarity_threshold. It meets the baseline for high 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's purpose with specific verbs ('match', 'returns', 'creates') and resources ('project description', 'knowledge graph concepts', 'consultation_id'). It distinguishes from siblings by mentioning its role as an 'ENTRY POINT' and explicitly naming related tools (get_subgraph, ask_book) for subsequent steps.

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 provides explicit guidance on when to use this tool ('ENTRY POINT'), when to use alternatives (pass consultation_id to get_subgraph and ask_book for step logging), and distinguishes it from siblings like list_concepts. It establishes clear sequencing in a workflow.

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

plan_consultationA

PLAN — Generate an adaptive consultation plan after match_concepts. Assesses project complexity (simple/moderate/complex) based on concept count, description keywords, and relationship density. Returns a step-by-step plan with tool names and parameters. Call once after match_concepts, then follow the generated plan.

ParametersJSON Schema
NameRequiredDescriptionDefault
consultation_idYesThe consultation session ID from match_concepts

TDQS

A4.6/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 of behavioral disclosure. It effectively describes key behaviors: it's a generative tool that creates a plan based on complexity assessment (using concept count, keywords, relationship density), returns structured output (step-by-step plan with tool names/parameters), and has a specific call pattern (once after match_concepts). It doesn't mention error handling or performance characteristics, but covers core operational behavior well.

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 efficiently structured in three sentences: purpose statement, complexity assessment details, and usage instructions. Every sentence adds essential information with zero waste. It's appropriately sized and front-loaded with the core functionality.

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

Completeness4/5

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

Given the tool's complexity (generative planning with assessment logic), no annotations, and no output schema, the description does well by explaining the assessment criteria, output format, and sequencing requirements. However, it doesn't detail the plan structure or potential edge cases, leaving some gaps for a tool with behavioral 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?

Schema description coverage is 100%, so the baseline is 3. The description adds value by explaining that the consultation_id comes 'from match_concepts,' providing context about the parameter's origin and relationship to another tool. This semantic context goes beyond the schema's basic type/requirement documentation, though it doesn't elaborate on format or validation details.

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 with specific verbs ('generate an adaptive consultation plan') and resources ('after match_concepts'), explicitly distinguishing it from siblings by mentioning its dependency on match_concepts. It specifies what it assesses (project complexity) and what it returns (step-by-step plan with tool names and parameters).

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 provides explicit usage instructions: 'Call once after match_concepts, then follow the generated plan.' It clearly states when to use it (after match_concepts) and what to do next (follow the plan), distinguishing it from alternatives like consultation_report or supervise_consultation by specifying its unique sequencing role.

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

read_stateA

SHARED STATE (read) — Read shared state from a consultation. Returns one entry if key is specified, or all entries if omitted. Use for subagent coordination and progress tracking.

ParametersJSON Schema
NameRequiredDescriptionDefault
consultation_idYesThe consultation session ID
keyNoSpecific key to read (omit for all entries)

TDQS

A3.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 carries the full burden. It discloses that the tool returns one entry if a key is specified or all entries if omitted, which adds behavioral context beyond the input schema. However, it doesn't cover aspects like error handling, performance, or authentication needs, leaving gaps for a tool with no annotation support.

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 highly concise and front-loaded: the first part states the core purpose, the second explains parameter behavior, and the third provides usage context. Every sentence earns its place with no wasted words, making it efficient and easy to parse.

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 no annotations and no output schema, the description partially compensates by explaining the return behavior based on the key parameter. However, for a tool that reads shared state in a consultation system, it lacks details on output format, error cases, or coordination specifics, leaving room for improvement in completeness.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema already documents both parameters thoroughly. The description adds marginal value by implying the 'key' parameter's effect on output (single vs. all entries), but doesn't provide additional syntax or format details beyond what the schema specifies.

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 reads shared state from a consultation, specifying the resource (shared state) and action (read). It distinguishes from the sibling 'write_state' by indicating this is a read operation, though it doesn't explicitly contrast with other siblings like 'get_events' or 'get_subgraph' that might also retrieve data.

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

Usage Guidelines3/5

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

The description provides implied usage guidance: 'Use for subagent coordination and progress tracking' suggests a specific context. However, it doesn't explicitly state when to use this tool versus alternatives like 'get_events' or 'get_subgraph', nor does it mention prerequisites or exclusions.

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

score_architectureA

MATURITY SCORECARD — Deterministic architecture scoring from stored pattern assessments. Reads pattern_assessment steps logged during graph traversal and computes: maturity level (L1-L6), pattern status with goals (target status after recommendations), gap analysis with severity, recommended metrics from the book, and implementation roadmap. Same consultation always produces same results. Requires pattern_assessment steps to have been logged during step 3 (traverse graph).

ParametersJSON Schema
NameRequiredDescriptionDefault
consultation_idYesThe consultation session to score
target_levelNoOverride target maturity level (1-6, default: current + 1)
roadmap_levelsNoNumber of maturity levels the roadmap covers (1-6, default: 3). Controls the scope of Goal column and implementation phases.

TDQS

A3.6/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 of behavioral disclosure. It effectively describes key traits: deterministic behavior ('Same consultation always produces same results'), prerequisites ('Requires pattern_assessment steps to have been logged'), and the computational process. However, it doesn't cover aspects like error handling, performance, or output format details, leaving some behavioral gaps.

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 appropriately sized and front-loaded, starting with the core purpose. It uses bullet-like phrasing ('computes: maturity level...') to list outputs efficiently. However, the sentence structure is slightly dense, and some phrasing ('Same consultation always produces same results') could be more streamlined, though all content earns its place.

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

Completeness3/5

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

Given the complexity (scoring tool with 3 parameters, no annotations, no output schema), the description is moderately complete. It covers the purpose, prerequisites, and outputs but lacks details on the return format (e.g., structure of maturity scores or roadmap), which is critical since there's no output schema. This leaves gaps for an AI agent to fully understand what to expect.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema (e.g., it doesn't explain 'consultation_id' further or provide examples). This meets the baseline of 3, as the schema does the heavy lifting, but the description doesn't compensate with extra insights.

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 purpose: 'Deterministic architecture scoring from stored pattern assessments' and details what it computes (maturity level, pattern status, gap analysis, etc.). It distinguishes itself from siblings by focusing on scoring based on logged pattern assessments, though it doesn't explicitly name alternatives. The description is specific about the verb ('computes') and resource ('pattern assessments'), but lacks direct sibling differentiation.

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

Usage Guidelines3/5

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

The description provides some usage context: 'Requires pattern_assessment steps to have been logged during step 3 (traverse graph).' This implies when to use it (after logging assessments) but doesn't explicitly state when not to use it or name alternative tools for similar tasks. The guidance is helpful but incomplete, as it doesn't compare to siblings like 'consultation_report' or 'critique_consultation'.

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

supervise_consultationA

SUPERVISE — Track consultation progress and suggest the next action. Returns workflow phase progress (percent complete), the recommended next tool call with parameters, step summary, recent event alerts, and shared state entries. Call after each major step for guided workflow.

ParametersJSON Schema
NameRequiredDescriptionDefault
consultation_idYesThe consultation session ID

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the return format ('workflow phase progress, recommended next tool call, step summary, recent event alerts, shared state entries') and the tool's role in workflow guidance. However, it doesn't mention error conditions, performance characteristics, or whether this is a read-only operation (though 'Track' implies reading). For a tool with no annotations, this provides useful context but lacks comprehensive behavioral details.

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 efficiently structured in two sentences. The first sentence clearly states purpose and return values. The second sentence provides usage timing. Every element earns its place with no redundant information. It's appropriately sized for a single-parameter tool with clear functionality.

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 1 parameter with 100% schema coverage and no output schema, the description provides good contextual completeness. It explains what the tool returns (progress metrics, recommendations, summaries, alerts, state entries) which compensates for the missing output schema. For a workflow guidance tool, this covers the essential context about what information agents will receive. However, it doesn't mention error handling or edge cases.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents the single parameter 'consultation_id' with its description. The description doesn't add any parameter-specific information beyond what's in the schema. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Track consultation progress and suggest the next action.' It specifies the verb ('Track', 'suggest') and resource ('consultation progress'), and distinguishes it from siblings like 'plan_consultation' or 'consultation_report' by focusing on progress tracking and guidance rather than planning or reporting. However, it doesn't explicitly differentiate from 'get_events' or 'read_state', which could also track progress-related data.

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 usage context: 'Call after each major step for guided workflow.' This gives explicit timing guidance. It doesn't specify when NOT to use it or name alternatives among siblings, but the context implies it's for ongoing consultation tracking rather than initial planning or final reporting, which helps differentiate from tools like 'plan_consultation' and 'consultation_report'.

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

validate_subagentA

VALIDATE — Schema validation for subagent responses from scatter-gather graph traversal. Checks that a subagent response contains the required fields (concept, key_relationships, recommendation, discovered_ids) with correct types. Returns validation result with errors and warnings. No LLM calls — pure structural validation.

ParametersJSON Schema
NameRequiredDescriptionDefault
responseYesThe JSON object returned by a graph-analysis subagent

TDQS

A4/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 of behavioral disclosure. It effectively describes what the tool does (structural validation of specific fields), what it returns (validation result with errors and warnings), and important behavioral constraints ('No LLM calls — pure structural validation'). However, it doesn't mention error handling, performance characteristics, or other operational details.

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 efficiently structured in three sentences that each earn their place: first states the tool's purpose and scope, second specifies what it checks, third describes the return value and important constraint. No wasted words, front-loaded with essential information.

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

Completeness4/5

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

Given the tool's moderate complexity (validation with specific field requirements), no annotations, and no output schema, the description provides good coverage of what the tool does, what it validates, and its behavioral constraints. However, without an output schema, it could more explicitly describe the structure of the validation result it returns.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents the single 'response' parameter. The description adds context that this is 'The JSON object returned by a graph-analysis subagent' and mentions the specific fields being validated, but doesn't provide additional syntax or format details beyond what the schema provides. Baseline 3 is appropriate when schema does the heavy lifting.

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

Purpose5/5

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

The description clearly states the tool's purpose with specific verbs ('validate', 'checks', 'returns') and identifies the resource ('subagent responses from scatter-gather graph traversal'). It distinguishes from siblings by specifying it validates subagent responses rather than performing other operations like asking, consulting, or generating.

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 context ('for subagent responses from scatter-gather graph traversal') but doesn't explicitly state when to use this tool versus alternatives. It mentions 'No LLM calls — pure structural validation' which provides some guidance on its scope, but doesn't name specific sibling tools or provide explicit when/when-not instructions.

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

write_stateA

SHARED STATE (write) — Upsert a key-value pair in consultation shared state. Use for subagent coordination: store discovered concepts, current phase, conflict markers, or any JSON-serializable value. Logs a state_write step to the consultation.

ParametersJSON Schema
NameRequiredDescriptionDefault
consultation_idYesThe consultation session ID
keyYesState key (e.g. 'discovered_concepts', 'current_phase')
valueYesAny JSON-serializable value to store

TDQS

A4.4/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 of behavioral disclosure. It effectively describes the tool's behavior: it performs an upsert operation (implying mutation), logs a state_write step, and handles JSON-serializable values. However, it doesn't mention potential side effects like overwriting existing data or error conditions, leaving some gaps.

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 highly concise and well-structured: it starts with a clear purpose, immediately provides usage guidelines, and includes essential behavioral details without unnecessary elaboration. Every sentence adds value, and there is no wasted text.

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

Completeness4/5

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

Given the tool's complexity (a mutation tool with no annotations or output schema), the description does a good job covering purpose, usage, and key behaviors. However, it lacks details on return values or error handling, which would be helpful for completeness, though not strictly required without an output schema.

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

Parameters3/5

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

The schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description adds minimal value beyond the schema, only reinforcing that the value is 'JSON-serializable' (implied by the schema's description). This meets the baseline for high 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 specific action ('Upsert a key-value pair') and resource ('in consultation shared state'), distinguishing it from sibling tools like read_state (which presumably reads rather than writes). The purpose is precise and unambiguous.

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

Usage Guidelines5/5

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

The description explicitly states when to use this tool ('Use for subagent coordination') and provides concrete examples ('store discovered concepts, current phase, conflict markers, or any JSON-serializable value'), clearly differentiating it from alternatives like read_state for retrieval.

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. 17 tool updatesv0.1.0
    • First observedask_book
    • First observedconsultation_report
    • First observedcritique_consultation
    • First observedemit_event
    • First observedgenerate_failure_scenarios
    • First observedget_events
    • First observedget_subgraph
    • First observedhealth_check
    • First observedlist_concepts
    • First observedlog_pattern_assessment
    • First observedmatch_concepts
    • First observedplan_consultation
    • First observedread_state
    • First observedscore_architecture
    • First observedsupervise_consultation
    • First observedvalidate_subagent
    • First observedwrite_state

TDQS

A3.7/5.0
Disambiguation4/5

Most tools have distinct purposes, but some overlap exists. For example, 'consultation_report' and 'critique_consultation' both analyze consultation sessions, though 'consultation_report' focuses on coverage metrics while 'critique_consultation' focuses on quality critique. Similarly, 'get_events' and 'emit_event' both handle events but for different actions (polling vs. emitting). Descriptions help clarify these distinctions, but an agent might occasionally confuse them.

Naming Consistency3/5

Naming conventions are mixed but generally readable. Most tools use snake_case (e.g., 'ask_book', 'get_subgraph'), but there are deviations like 'health_check' (underscored) and inconsistent verb styles (e.g., 'log_pattern_assessment' vs. 'validate_subagent'). Some names are clear (e.g., 'list_concepts'), while others are less intuitive (e.g., 'emit_event'). Overall, it's a mix that doesn't follow a strict pattern.

Tool Count4/5

With 17 tools, the count is slightly high but reasonable for the server's purpose of architectural consultation and knowledge graph interaction. The tools cover various aspects like entry points, traversal, logging, analysis, and coordination, which aligns with the domain. It might feel a bit heavy, but each tool appears to serve a specific role in the workflow.

Completeness5/5

The tool set provides comprehensive coverage for the consultation domain. It includes entry points (match_concepts, plan_consultation), traversal and querying (get_subgraph, ask_book), logging and assessment (log_pattern_assessment, score_architecture), analysis and reporting (consultation_report, critique_consultation), event handling (emit_event, get_events), state management (read_state, write_state), and validation (validate_subagent). There are no obvious gaps; the tools support a full CRUD-like lifecycle for consultations.

Maintenance

ActivityInactive
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

  • A
    license
    Not graded
    quality
    A
    maintenance
    A temporal knowledge graph system that enables users to record and query architectural decisions, implementation patterns, and project failures. It integrates with Claude to provide hybrid search, timeline tracking, and automated knowledge gap detection using graph analysis.
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides comprehensive architectural expertise through specialized agents, resources, and tools for generating, evaluating, and modifying architectural designs.
    1,853
    ISC
  • A
    license
    Not graded
    quality
    A
    maintenance
    Provides architecture design expertise to AI coding agents, analyzing requirements, selecting architecture patterns, generating concrete designs, and evaluating quality attributes.
    MIT

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/marcus-waldman/Iconsult_mcp'

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