Skip to main content
Glama

Cloudwright

Design a cloud architecture or plan a migration. Get costs, controls, code, and checked evidence.

PyPI CI License: MIT Python 3.12+ xmpuspus/cloudwright MCP server

pip install 'cloudwright-ai[cli]'
export ANTHROPIC_API_KEY=sk-ant-...
cloudwright design "HIPAA healthcare API on AWS with Postgres and Redis"

Cloudwright turns one line of English into a typed spec, a cost breakdown, a control-mapped compliance report, and infrastructure code. A source estate and target become ordered migration waves, explicit costs, and evidence gates. It covers AWS, GCP, Azure and Databricks across 114 service keys. Only design, modify, chat and adr call a model. Every other command runs offline and needs no API key.

Quickstart · Migrations · Compliance · Agents · Docs · Changelog

A prompt produces a spec, a cost, a control-mapped report, and Terraform

  • Spec. Typed YAML you commit, diff and review. Everything below reads from it.

  • Cost. Per component and region-aware, with a confidence flag on every line.

  • Compliance. HIPAA, SOC 2, PCI-DSS, FedRAMP, GDPR, ISO 27001 and NIST 800-53 control IDs.

  • Infrastructure code. Terraform, OpenTofu, Pulumi (TypeScript or Python) and CloudFormation.

  • Diagrams. ASCII, Mermaid, D2, and a web canvas you can edit by hand.

  • An MCP server, so any coding agent runs the same checks inside its own loop.

Exports carry safe defaults. S3 gets a public-access block, SSE and versioning. RDS gets encryption, multi-AZ and deletion protection. EC2 gets IMDSv2. A compliance framework overrides the workload profile, and always forces encryption and high availability.

Related MCP server: insideout-mcp

Quickstart

cloudwright design "HIPAA healthcare API on AWS with Postgres and Redis"
cloudwright cost spec.yaml --workload-profile medium
cloudwright compliance spec.yaml --frameworks hipaa,soc2
cloudwright export spec.yaml --format terraform -o ./infra
cloudwright plan spec.yaml --target terraform          # proves it deploys, never applies
cloudwright migrate demo                               # packaged migration proof, fully offline
cloudwright chat --web                                 # canvas at http://localhost:8765

Add --json before any subcommand for machine-readable output, or --stream to watch tokens arrive. Set ANTHROPIC_API_KEY or OPENAI_API_KEY for the four commands that need a model.

Migration plans stop when evidence is missing

The migration model covers infrastructure, applications, data, platforms, networks, facilities, and business services in one dependency graph. It works for on-premises, cloud, cross-cloud, hybrid, data-center, and application moves. It plans and checks work. It never copies data, applies infrastructure, switches traffic, or runs a cutover.

cloudwright migrate plan examples/migrations/ph-telco-project.yaml -o assessment.yaml
cloudwright migrate verify examples/migrations/ph-telco-project.yaml examples/migrations/ph-telco-evidence.yaml

The core has no telco fields. The first proof project selects an external ph_telco pack for subscriber, billing, usage-record, number-porting, privacy, recovery, and source-shutdown gates. A manufacturing ERP fixture proves the same planner works without that pack. Missing blocking evidence changes the result to closed: false and makes migrate verify exit with code 2. Each evidence file carries the deterministic assessment ID, so observations from an older target or cutover plan cannot close a revised assessment.

MCP clients use the same engine through plan_migration and verify_migration in the migration tool group.

See Migration planning and evidence for the file contract, Python API, HTTP routes, domain-pack format, limits, and recording commands.

Every finding carries the control ID it violates

Other tools scan infrastructure after you deploy it. Cloudwright maps each finding to its control before any resource exists. The fix then costs a spec edit instead of a change ticket. HIPAA 164.312(a)(2)(iv), SOC 2 CC6.1 and FedRAMP SC-28 come from the built-in scanner, with no extra tooling. Checkov folds into the same report when it sits on your PATH.

  • --oscal writes an OSCAL 1.1.2 component-definition with deterministic UUIDs.

  • --traceability prints the chain from component to resource to control to status.

  • cloudwright plan runs terraform validate against the export, and never applies.

The review needs no API key and no network

cloudwright review runs the scorer, the linter and the validator over a spec, and returns one severity-ranked report. The same three critics run inside cloudwright design. When blocking findings survive generation, the architect repairs the spec once and records the change in spec.metadata.critique. Pass Architect(repair=False) to turn that off.

Canvas edits never call the model, so they are instant and free

Add, drag, connect, edit and delete are deterministic frontend mutations. The Catalog drawer serves the resource list per provider and five approved multi-resource modules. Its standards check flags orphan connections, partial modules and missing tags. An intact module exports as a single Terraform module block, with the catalog's pinned source and version.

One MCP server reaches 11 coding agents

cloudwright integrate --harness claude-code       # exact wiring, in that client's format
cloudwright integrate --harness cursor --write    # merge it into the right file
cloudwright integrate --rules --agent-file claude # a gate block for CLAUDE.md

Do not hand-write the config. cloudwright integrate emits it for Claude Code, Cursor, Cline, Windsurf, GitHub Copilot, Zed, Codex CLI, Junie, Kiro and Antigravity. Aider gets a CLI-pipe recipe instead, because it speaks no MCP. Every client wants a different shape: Zed wants context_servers, Copilot wants servers, and Codex wants a TOML table.

The server exposes 24 tools in 10 groups: design, cost, validate, analyze, export, session, review, compliance, plan and migration. Full matrix in docs/integrations.md.

Offline commands grade, scan, compare, and plan

lint runs 10 anti-pattern checks. score grades 5 dimensions. analyze reports blast radius and single points of failure. policy enforces policy-as-code with 9 built-in rules. security scans the spec and the exported HCL. drift compares a design against a tfstate, and --remediate turns the gap into a cost, compliance and plan preview.

review, compliance and plan are above. See docs/cli-reference.md.

Python API

from cloudwright import ArchSpec
from cloudwright.cost import CostEngine
from cloudwright.validator import Validator
from cloudwright.exporter import export_spec

spec = ArchSpec.from_file("spec.yaml")
priced = CostEngine().estimate(spec, workload_profile="medium")
findings = Validator().validate(spec, compliance=["hipaa", "pci-dss"])
hcl = export_spec(spec, "terraform", output_dir="./infra")

v1.10.0 adds migration planning with evidence-based closure

  • One model covers the full estate. Infrastructure, data, applications, platforms, networks, facilities, and business services share one dependency graph.

  • Dependencies determine the waves. The planner schedules prerequisites first, rejects cycles, checks rollback paths, and reports unresolved mappings.

  • Closure needs evidence. Missing or failed blocking observations prevent closure and make migrate verify return exit code 2.

  • Industry rules stay outside the engine. Optional YAML packs add acceptance gates without adding industry fields to the core.

  • PH telco is the first proof. The product remains industry-neutral. A manufacturing ERP fixture runs through the same planner with no domain pack.

Earlier releases added control-ID mapping and plan (v1.5.0), the self-correcting architect and OSCAL (v1.6.0), cloudwright integrate (v1.7.0), the responsive dark-theme canvas (v1.8.0), and measured canvas interaction fixes (v1.9.0). Full history in CHANGELOG.md.

Compatibility

  • Python 3.12+

  • Models: Anthropic (Claude Sonnet, Haiku) and OpenAI (GPT-5+ family), auto-detected from env.

  • Clouds: AWS, GCP, Azure, Databricks. 114 service keys total.

  • Install variants: cloudwright-ai[cli], cloudwright-ai[web], cloudwright-ai-mcp.

Contributing, license, changelog

Available Tools

19 tools
analyze_blast_radiusA

Analyze blast radius and dependency structure of an architecture.

For each component (or just one, if component_id is set): returns direct dependents, transitive dependents, blast-radius size, SPOF status, and tier position. Use this to reason about failure modes — 'if component X dies, what else breaks?'

When to use: You have a spec and want to understand coupling and failure domains before production. Complementary to score_architecture (which gives a summary grade) and lint_architecture (which flags specific anti-patterns).

Behavior: Pure graph computation — no LLM, no network. Read-only. Does not touch cloud resources.

ParametersJSON Schema
NameRequiredDescriptionDefault
spec_jsonYesArchSpec to analyze. Builds a directed dependency graph from the spec's connections and computes reachability per component.
component_idNoOptional: focus analysis on a single component's blast radius (its direct dependents + transitive dependents). When omitted, returns blast-radius metrics for every component.

TDQS

A4.6/5.0
Behavior5/5

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

The description fully discloses behavior: 'Pure graph computation — no LLM, no network. Read-only. Does not touch cloud resources.' This covers all side effects and constraints, compensating for the lack of annotations.

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

Conciseness5/5

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

The description is approximately 100 words, well-structured with sections, front-loaded with core purpose, and every sentence adds value. 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?

Despite having no output schema, the description lists return values (blast-radius metrics, SPOF, tier position). It explains use case and behavior sufficiently for an agent to select and invoke correctly. Minor omission: it could clarify the expected structure of spec_json, but the schema's additionalProperties allows flexibility.

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

Parameters4/5

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

Schema coverage is 100% with clear descriptions for both parameters. The description adds context about how spec_json builds a directed graph and what component_id focuses on, plus lists output fields. This extra context raises the score above the baseline of 3.

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: 'Analyze blast radius and dependency structure of an architecture.' It lists specific outputs (direct/transitive dependents, blast-radius size, SPOF status, tier position) and distinguishes itself from siblings like score_architecture and lint_architecture.

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 explicitly states when to use: 'when you have a spec and want to understand coupling and failure domains before production.' It also mentions complementary tools (score_architecture, lint_architecture) but does not specify when not to use.

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

chat_create_sessionA

Create a new stateful architecture-design conversation session.

Returns {'session_id': <12-char hex>}. The session_id is the handle for subsequent chat_send / chat_delete_session calls.

When to use: Multi-turn architecture design where each turn depends on the prior one (e.g. 'design it', 'now add a cache', 'now move to GCP'). For single-shot design use design_architecture; for one-shot edits of an existing spec use modify_architecture.

Behavior: Writes a new session file to the session store (persisted on disk). Does not call the LLM — the first LLM call happens on the first chat_send. Constraints are frozen at session creation and apply to every turn.

ParametersJSON Schema
NameRequiredDescriptionDefault
providerNoDefault cloud provider for the session. Every subsequent `chat_send` within this session uses this provider unless overridden in the message.aws
budget_monthlyNoOptional monthly budget cap (USD). Applied across all design turns within the session — the architect will bias toward fitting under it.
complianceNoOptional compliance frameworks enforced across the session's design turns. Values: 'hipaa', 'pci-dss', 'soc2', 'fedramp', 'gdpr'.

TDQS

A5/5.0
Behavior5/5

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

No annotations provided, so description must cover behavior. It states 'Writes a new session file to the session store (persisted on disk)' and 'Does not call the LLM — the first LLM call happens on the first chat_send.' Also specifies the return value format. This fully discloses operational traits.

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 7 sentences, well-structured with front-loaded main purpose, then return format, usage guidelines, and behavioral details. Every sentence adds value; no redundancy or fluff.

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

Completeness5/5

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

Given no output schema, the description explains the return value ('session_id'). It covers purpose, when to use, behavioral details, parameter context, and constraints. For a tool with 3 optional params, this is fully complete and leaves no gaps.

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

Parameters5/5

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

Schema coverage is 100%, but the description adds contextual meaning: provider can be overridden per message, budget_monthly is a cap applied across turns, and compliance frameworks are enforced across the session. This goes beyond the schema's property descriptions.

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

Purpose5/5

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

The description clearly states 'Create a new stateful architecture-design conversation session.' The verb 'create' and resource 'session' are specific. It differentiates from sibling tools by mentioning stateful and multi-turn context (vs single-shot design_architecture and modify_architecture).

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?

Explicitly tells when to use this tool: 'Multi-turn architecture design where each turn depends on the prior one.' Provides clear alternatives: 'For single-shot design use design_architecture; for one-shot edits of an existing spec use modify_architecture.' Also explains constraint freezing at creation.

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

chat_delete_sessionA

Delete a conversation session.

Returns {'deleted': True} on success or {'error': ...} if the session did not exist. Destructive: the session's conversation history and any uncommitted spec are lost. There is no undo.

When to use: Clean-up after a completed design, or abandoning a dead-end conversation. Does not affect any deployed infrastructure — cloudwright never deploys anything.

Behavior: Removes the session file from the session store. No LLM, no network.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesSession handle to delete. If the session doesn't exist, the tool returns `{'error': ...}` and does nothing.

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations, the description carries full burden and excels: it discloses return values, destructive nature (history and uncommitted spec lost), irreversibility, and that it only removes a file with no network or LLM calls.

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: purpose, return format, destructive warning, usage guidance, and behavior are each in a short paragraph or bullet, with no wasted words.

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

Completeness5/5

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

Given no output schema, the description thoroughly covers return values (success and error), side effects, and when to use. It provides all necessary context for an agent to safely and correctly invoke this delete 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 parameter is well-documented in the schema. The tool description adds no new per-parameter details but provides overall context about destructiveness, meeting the baseline for high 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 starts with a clear verb and resource: 'Delete a conversation session.' It also provides usage context like 'Clean-up after a completed design, or abandoning a dead-end conversation,' which helps distinguish it from sibling tools like chat_create_session.

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 explicitly states when to use the tool (clean-up, abandoning a conversation) and notes that it does not affect deployed infrastructure. However, it does not explicitly state when not to use it or list alternatives, though the context is clear.

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

chat_list_sessionsA

List all saved conversation sessions.

Returns a list of session metadata: session_id, creation timestamp, last-activity timestamp, cumulative token usage, and whether the session currently owns a spec.

When to use: Resuming prior work, cleaning up abandoned sessions, or auditing session token spend.

Behavior: Pure disk read — no LLM, no network. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.9/5.0
Behavior5/5

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

Discloses that this is a pure disk read with no LLM or network calls, and explicitly states it is read-only. Since no annotations are provided, the description fully covers behavioral traits.

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?

Description is extremely concise: one sentence for purpose, one for return details, one for usage, and one for behavior. No redundant information.

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

Completeness5/5

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

Fully covers what the tool does, what it returns, when to use it, and its behavior. Output schema exists, but description already details return fields.

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?

Input schema is empty (0 parameters). Description adds meaning about the tool's purpose and return data, which is sufficient given no parameters exist.

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

Purpose5/5

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

Description clearly states it lists saved conversation sessions and specifies exact metadata fields returned (session_id, creation timestamp, etc.). Differentiates from siblings like chat_create_session and chat_delete_session by focusing on listing.

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?

Explicitly enumerates three use cases: resuming prior work, cleaning up sessions, and auditing token spend. Provides clear guidance on when to use the tool.

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

chat_sendA

Send a message to an existing conversation session and get a response.

Returns {'response': str, 'spec': dict|None, 'usage': dict, 'cumulative_usage': dict}. spec is populated when the turn produced or modified an ArchSpec. usage reports LLM token counts for this turn; cumulative_usage totals across the whole session.

When to use: Every turn after chat_create_session. For zero-state single-shot calls use design_architecture / modify_architecture instead.

Behavior: Calls an LLM — incurs API costs proportional to the conversation history length (history grows each turn). Persists updated session state back to the session store.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesSession handle returned by `chat_create_session`. Must reference an existing session; otherwise the tool returns `{'error': ...}`.
messageYesUser message for this conversation turn. Can be a design request, a modification instruction, a question about the current spec, or meta-commands (e.g. 'show me the cost').

TDQS

A4.9/5.0
Behavior5/5

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

Discloses that it calls an LLM with API costs, history growth, session state persistence, and error handling for invalid session. No annotations present, so description fully carries the burden.

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

Conciseness5/5

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

Well-organized with separate sections for purpose, return values, usage, and behavior. Every sentence is informative without redundancy.

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

Completeness5/5

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

Despite no output schema, the description fully explains return format, error cases, cost implications, and side effects, making it complete for a conversational tool.

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 already covers both parameters (100% coverage). Description adds examples for message and clarifies session_id requirement, providing extra value beyond schema.

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

Purpose5/5

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

The description clearly states it sends a message to an existing session and gets a response. It distinguishes from siblings like design_architecture and chat_create_session by specifying when to use each.

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?

Explicitly states 'When to use: Every turn after chat_create_session. For zero-state single-shot calls use design_architecture / modify_architecture instead.' Also implies prerequisite of an existing session.

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

compare_provider_costsA

Compare the monthly cost totals of an architecture across cloud providers.

Returns one numeric cost summary per provider (monthly total, per-component breakdown, currency). Use this for cost-focused provider selection.

When to use vs compare_providers: This tool returns only cost numbers. compare_providers returns full alternative architectures (components, connections, tiers). If you want both the re-drawn architecture and its bill, call compare_providers first, then estimate_cost on each returned spec — or call both in parallel.

Behavior: Pure computation — no LLM, no network, no API costs. Uses the same offline catalog as estimate_cost. Does not deploy.

ParametersJSON Schema
NameRequiredDescriptionDefault
spec_jsonYesArchSpec to cost across providers. Services are mapped to cross-cloud equivalents (ec2 <-> compute_engine <-> virtual_machines, etc.) before pricing.
providersYesList of cloud providers to compare pricing across. Values: 'aws', 'gcp', 'azure', 'databricks'.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

No annotations provided, but description discloses it's pure computation, no LLM/no network/no API costs, uses offline catalog, does not deploy. Adds clear behavioral context beyond schema.

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?

Four sentences, front-loaded with purpose, then returns, then usage contrast, then behavioral note. Every sentence adds value, no wasted words.

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

Completeness5/5

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

Given parameter count (2) with full schema coverage, output schema exists, and no missing critical areas: returns are described, behavior clarified, limitations noted (no deploy, no API). Complete for a cost comparison 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%. Description adds context that spec_json maps services to cross-cloud equivalents, but this is mostly reinforcing schema examples. Baseline 3 appropriate.

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

Purpose5/5

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

Clearly states it compares monthly cost totals across cloud providers, and that it returns numeric summaries per provider. Distinguishes from sibling compare_providers by specifying this tool only returns costs, not architectures.

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?

Explicitly says to use for cost-focused provider selection. Contrasts with compare_providers (architectures vs. costs) and suggests workflow: call compare_providers first then estimate_cost, or call in parallel.

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

compare_providersA

Compare an architecture's service mapping across cloud providers.

Returns one translated ArchSpec per target provider, showing which services the original would become on each. Use this to understand architectural portability and equivalent services.

When to use vs compare_provider_costs: This tool returns full alternative architectures (with components, connections, tiers). compare_provider_costs returns only numeric cost totals per provider — use that when you only care about the bill, not the shape.

Behavior: Calls an LLM to resolve ambiguous service mappings where the static equivalence table is insufficient. Does not deploy.

ParametersJSON Schema
NameRequiredDescriptionDefault
spec_jsonYesArchSpec to translate across providers. Original provider's services are mapped to equivalents on each target provider using 22 cross-cloud equivalence pairs (e.g. ec2 <-> compute_engine <-> virtual_machines).
providersYesList of target provider slugs to compare against. Values: 'aws', 'gcp', 'azure', 'databricks'. Returns one result per target.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

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

Discloses that the tool calls an LLM for ambiguous mappings and does not deploy anything. This is beyond basic annotations (none provided). However, it does not explicitly state side effects like whether it modifies data or is read-only, but the nature of comparison implies no mutation. Still, good transparency.

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

Conciseness5/5

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

Well-structured with clear sections: main purpose, when-to-use, behavior. Each sentence is informative and concise. No unnecessary text.

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

Completeness5/5

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

Covers all necessary aspects: purpose, usage guidelines, behavioral traits, and parameter context. Output schema existence means return values need not be detailed. Complete for a comparison tool with complex input.

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

Parameters4/5

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

Schema coverage is 100% but description adds value: explains 'spec_json' is an ArchSpec, 'providers' are target slugs with examples, and mentions the equivalence pairs. This goes beyond schema fields.

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

Purpose5/5

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

Clearly states the tool compares service mappings across cloud providers, returning translated ArchSpecs. The verb 'compare' and resource 'service mapping' are specific, and it distinguishes itself from the sibling 'compare_provider_costs' by detailing the type of output.

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?

Explicitly explains when to use this tool versus 'compare_provider_costs', stating this one returns full architectures while the other returns only cost totals. No alternative tool is left ambiguous.

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

design_architectureA

Design a cloud architecture from a natural-language description.

Primary entry point for greenfield architecture design. Returns a complete ArchSpec (YAML-serializable dict) with components, connections, tier assignments, and a cost estimate.

When to use: You have a requirement (prose) and need a concrete architecture with services, wiring, and cost. Use modify_architecture to iterate on an existing spec, or chat_create_session + chat_send for multi-turn refinement.

Behavior: Calls an LLM provider (Anthropic or OpenAI depending on configured keys) — incurs API costs per invocation. Deterministic post-processing layers (cost engine, catalog lookup) apply safe defaults like encryption-at-rest, multi-AZ on databases, and auto-scaling. Does not deploy or modify any cloud resources.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionYesPlain-English description of the system to design. Include workload type (e.g. 'HIPAA-compliant 3-tier healthcare API'), traffic expectations, and any stack preferences. The LLM uses this to select services, tiers, and connections.
providerNoTarget cloud provider for the generated architecture. Values: 'aws', 'gcp', 'azure', 'databricks'. Default 'aws'.aws
regionNoCloud region for the generated architecture (e.g. 'us-east-1' for AWS, 'us-central1' for GCP, 'eastus' for Azure). Used to set region-aware pricing and compliance constraints (e.g. FedRAMP requires US regions).us-east-1
budget_monthlyNoOptional monthly budget cap in USD. When set, the architect biases toward instance tiers and managed services that fit under this cap.
complianceNoOptional list of compliance frameworks the architecture must satisfy. Values from: 'hipaa', 'pci-dss', 'soc2', 'fedramp', 'gdpr'. Influences service selection (e.g. BAA-eligible services for HIPAA, FIPS-compliant services for FedRAMP) and encryption defaults.

TDQS

A4.6/5.0
Behavior5/5

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

Describes internal behavior: calls an LLM provider incurring costs, deterministic post-processing applies safe defaults, and explicitly states it does not deploy or modify resources. With no annotations provided, this fully covers transparency.

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

Conciseness5/5

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

Description is concise and well-structured: front-loaded with purpose, then output, usage, and behavior. Every sentence adds value without redundancy.

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

Completeness4/5

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

Covers purpose, usage, behavior, and return format despite no output schema. Mentions output is an ArchSpec with components, connections, etc. Minor omissions like error handling or rate limits keep it from a 5.

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

Parameters3/5

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

Schema coverage is 100% with detailed parameter descriptions including examples and defaults. The tool description adds overall context but does not significantly extend per-parameter meaning beyond the schema, hence baseline score of 3.

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: 'Design a cloud architecture from a natural-language description.' It identifies itself as the primary entry point for greenfield architecture design, and distinguishes from siblings like modify_architecture and chat tools.

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 'When to use' section provides clear guidance: use when you have a requirement and need a concrete architecture. It also specifies alternatives such as modify_architecture for iteration and chat sessions for multi-turn refinement.

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

diff_architecturesA

Diff two architecture specs and return a structured change report.

Returns a structured delta: components added / removed / modified, connections added / removed / modified, cost delta (USD/month), compliance-impact flags (e.g. WAF removal, encryption-at-rest turned off), and a human-readable summary.

When to use: You have two versions of a spec (before / after a proposed change) and need a reviewable diff for approval or ADR writing.

Behavior: Pure computation — no LLM, no network. Read-only. Does not modify either spec.

ParametersJSON Schema
NameRequiredDescriptionDefault
old_spec_jsonYesPrevious ArchSpec (baseline). Typically the last deployed version.
new_spec_jsonYesProposed ArchSpec (target). Typically the version about to be deployed.

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations provided, the description fully discloses behavioral traits: it states 'Pure computation — no LLM, no network. Read-only. Does not modify either spec.' This clearly informs the agent about safety and side-effect-free operation.

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

Conciseness4/5

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

The description is well-structured and reasonably concise, with a clear purpose statement, output contents list, usage guideline, and behavior note. It is slightly verbose but still efficient, earning a 4.

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

Completeness5/5

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

Despite no output schema, the description thoroughly explains what the tool returns, listing specific components of the change report. Given the complexity of nested object inputs, this provides enough context for an agent to understand the tool's full behavior.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already provides clear descriptions for both parameters (old_spec_json as baseline, new_spec_json as target). The description adds no additional parameter-specific meaning beyond the schema, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states that the tool diffs two architecture specs and returns a structured change report, listing specific delta items (components, connections, cost, compliance). This distinguishes it from sibling tools like compare_provider_costs or compare_providers, which cover different comparisons.

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 includes an explicit 'When to use' section indicating the tool is appropriate for reviewing before/after spec changes for approval or ADR writing. However, it does not mention when not to use or suggest alternatives, preventing a perfect score.

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

estimate_costA

Estimate the monthly cloud bill for an architecture spec.

Returns a structured estimate with per-component breakdown, total monthly cost, data-transfer costs, and currency. Deterministic: same spec + tier yields same result.

When to use: You need the numeric bill for one architecture on one provider+tier combination. For multi-provider comparison of just the costs, use compare_provider_costs. For side-by-side architecture + cost comparison across providers, use compare_providers + this tool.

Behavior: Pure computation — no LLM, no network, no API costs. Works offline. Does not deploy or touch cloud resources.

ParametersJSON Schema
NameRequiredDescriptionDefault
spec_jsonYesArchSpec to price. Pricing is resolved per-component against a bundled SQLite catalog (no network calls), with formula dispatch for serverless/managed services and a static fallback for rare ones.
pricing_tierNoPricing tier multiplier applied to compute and data-store components. Values: 'on_demand' (1.0x), 'reserved_1yr' (0.6x), 'reserved_3yr' (0.4x), 'spot' (0.3x).on_demand

TDQS

A4.9/5.0
Behavior5/5

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

Since annotations are absent, the description fully discloses behavioral traits: deterministic computation, no LLM/network/API calls, works offline, and does not deploy. This transparency goes well beyond minimal 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 structured with clear sections (overview, return info, determinism, usage, behavior). Every sentence adds value; no fluff. Well front-loaded with the core purpose.

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

Completeness5/5

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

Given the tool's complexity (nested spec_json, pricing tiers), the description covers return structure, determinism, offline operation, and usage boundaries. No output schema is present, but the description describes the output comprehensively, making it complete for agent understanding.

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?

Input schema has 100% parameter coverage, so baseline is 3. However, the description adds meaningful context: explains pricing resolution via a bundled SQLite catalog with formula dispatch and fallback, and describes the pricing tier multiplier values, which adds value beyond schema alone.

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

Purpose5/5

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

The description states 'Estimate the monthly cloud bill for an architecture spec,' specifying the verb (estimate) and resource (monthly cloud bill). It distinguishes from siblings by explicitly naming `compare_provider_costs` and `compare_providers` as alternatives for multi-provider scenarios.

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?

Provides a clear 'When to use' section stating the tool is for a single provider+tier combination, and explicitly names two sibling tools for multi-provider comparisons, offering both inclusion and exclusion criteria.

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

export_architectureA

Export an architecture spec to Terraform, CloudFormation, Mermaid, D2, or other formats.

Returns {'format': str, 'content': str} where content is the ready-to-write payload. Terraform/CFN outputs use variables for sensitive values (no hardcoded credentials), include provider blocks with region configuration, and generate data sources for VPC/subnet discovery.

When to use: You have a finalized ArchSpec and need IaC code, a diagram, or an audit artifact. For multi-format export, call once per format.

Behavior: Pure computation — no LLM, no network. Does not write files or deploy; the caller is responsible for persisting or applying the returned content.

ParametersJSON Schema
NameRequiredDescriptionDefault
spec_jsonYesArchSpec to export. Components are translated to provider-native resources; connections become security-group / firewall / IAM rules.
formatNoTarget output format. Values: 'terraform' (HCL with provider blocks, 24 AWS / 11 GCP / 10 Azure resource types), 'cloudformation' (YAML template with Parameters/Outputs), 'mermaid' (tier-grouped flowchart), 'd2' (D2 diagram), 'sbom' (CycloneDX 1.5 service bill of materials), 'aibom' (OWASP AI bill of materials), 'compliance' (audit-ready markdown report).terraform

TDQS

A4.9/5.0
Behavior5/5

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

No annotations provided; description fully discloses behavior: pure computation, no LLM/network, does not write files or deploy, and details about sensitive value handling. No contradictions.

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?

Well-structured with purpose, return value details, behavioral notes, and usage guideline. Each sentence adds value; no unnecessary information.

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

Completeness5/5

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

Given two well-documented parameters, no output schema but description covers return structure, usage, and behavior. Complete enough for agent to select and invoke correctly.

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

Parameters4/5

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

Schema coverage is 100% with detailed parameter descriptions. Description adds context about return format ('Returns {'format': str, 'content': str}') and guarantees (no hardcoded credentials), providing value beyond schema.

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

Purpose5/5

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

Clearly states the tool exports an architecture spec to multiple formats (Terraform, CloudFormation, Mermaid, etc.). Distinguishes from sibling tools like design_architecture and modify_architecture.

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?

Explicitly provides when-to-use guidance: 'You have a finalized ArchSpec and need IaC code, a diagram, or an audit artifact.' Also advises calling once per format for multi-format export.

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

lint_architectureA

Lint an architecture for anti-patterns and best-practice violations.

Returns a list of warnings with rule name, severity (error / warning), component IDs involved, and a human-readable message.

Errors (production-blocking): unencrypted data stores, single-AZ databases, missing load balancer on public compute, public databases, single point of failure. Warnings (review-worthy): oversized instances (16xlarge+), missing WAF, missing monitoring, missing backups, missing auth.

When to use vs security_scan: lint is about architectural hygiene (is this a sane shape?). security_scan is about threat exposure (can an attacker reach X?). Use both for comprehensive review.

Behavior: Pure computation — no LLM, no network. Does not touch cloud.

ParametersJSON Schema
NameRequiredDescriptionDefault
spec_jsonYesArchSpec to lint. Runs 10 anti-pattern checks covering encryption, redundancy, load balancing, auth presence, and resource sizing.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

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

Discloses that it's pure computation with no LLM, no network, and no cloud interaction. Lists specific checks (errors and warnings) beyond what annotations (none) provide.

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?

Well-structured: uses bullet points for error/warning categories and a separate paragraph for usage guidance. Every sentence is informative and no redundant text.

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

Completeness5/5

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

Given the single parameter and presence of output schema, the description fully explains the tool's behavior, inputs, and outputs. No gaps identified.

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?

Only one parameter 'spec_json' with 100% schema description coverage. The schema already explains its purpose and what checks it runs. The main description adds no further parameter detail, so baseline 3 is appropriate.

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

Purpose5/5

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

Clearly states it lints architecture for anti-patterns and best-practice violations. Distinguishes itself from sibling 'security_scan' by specifying its focus on architectural hygiene.

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?

Explicitly compares with 'security_scan', defining when to use each and recommending both for comprehensive review. Provides clear context for tool selection.

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

list_servicesA

List all cloud services supported for a given provider.

Returns one entry per service with its slug, human-readable name, category (compute / database / storage / networking / etc.), and supported tiers. Use this to discover valid service: keys when hand-authoring ArchSpecs or mapping requirements to services.

Behavior: Pure lookup from the bundled service registry — no LLM, no network, no cloud access.

ParametersJSON Schema
NameRequiredDescriptionDefault
providerNoCloud provider slug. Values: 'aws' (47 services), 'gcp' (25), 'azure' (28), 'databricks'.aws

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

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

Without annotations, the description fully discloses behavior: pure local lookup with no LLM, network, or cloud access. This addresses potential concerns about side effects, latency, or dependencies.

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?

Four succinct sentences: purpose, output details, usage guidance, behavior. No wasted words, front-loaded with key information.

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

Completeness5/5

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

Given the tool's simplicity (one optional parameter, output schema exists), the description covers all necessary context: what it returns, when to use it, and how it behaves. No gaps remain.

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?

With 100% schema coverage, the description adds value by connecting the parameter to the use case of discovering service keys. It doesn't repeat schema details but reinforces the tool's purpose.

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 lists all cloud services for a provider, specifying return fields like slug, name, category, and tiers. It distinguishes itself from sibling tools (e.g., design_architecture, estimate_cost) by being a pure lookup tool.

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 explicitly advises using the tool to discover valid service keys for ArchSpecs or requirement mapping, providing clear context. It could be improved by mentioning when not to use it, but the use case is well articulated.

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

modify_architectureA

Modify an existing architecture with a natural-language instruction.

When to use: You already have an ArchSpec and want to evolve it (add a cache, swap a service, change a region). Returns the updated ArchSpec. For from-scratch design, use design_architecture. For iterative multi-turn editing with conversation memory, use chat_create_session.

Behavior: Calls an LLM provider — incurs API costs. Pure function: returns a new spec without mutating the input. Does not deploy.

ParametersJSON Schema
NameRequiredDescriptionDefault
spec_jsonYesExisting ArchSpec as a dict (typically the output of a prior `design_architecture`, `modify_architecture`, or `chat_send` call). Must contain 'name', 'provider', 'components', and 'connections' keys.
instructionYesPlain-English modification instruction. The LLM interprets it and produces a new ArchSpec with components added, removed, or reconfigured.

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations provided, the description fully discloses behavioral traits: 'Calls an LLM provider — incurs API costs. Pure function: returns a new spec without mutating the input. Does not deploy.' This informs the agent of side effects and safety.

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 six sentences, well-organized with labeled sections ('When to use', 'Behavior'). Every sentence adds essential information; no redundancy or filler.

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

Completeness5/5

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

Given the tool has 2 parameters, no output schema, and no annotations, the description covers purpose, usage, behavior, and return value ('Returns the updated ArchSpec'). It is self-contained and sufficient for correct invocation.

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?

Input schema has 100% coverage with descriptions and examples for both parameters. The description adds value by stating that 'spec_json' is typically the output of prior tool calls and must contain specific keys, which aids agent understanding beyond the schema.

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

Purpose5/5

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

The description clearly states the tool modifies an existing architecture with natural-language instruction. It specifies the resource (existing ArchSpec) and verb (modify). It also distinguishes from siblings: for from-scratch use 'design_architecture', for multi-turn editing use 'chat_create_session'.

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 when-to-use: 'You already have an ArchSpec and want to evolve it.' Explicit alternatives: 'For from-scratch design, use design_architecture. For iterative multi-turn editing..., use chat_create_session.' This leaves no ambiguity.

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

scan_terraformA

Scan Terraform HCL source for security misconfigurations.

Returns findings (severity-graded) tied to specific resource blocks — e.g. aws_s3_bucket with acl = public-read, aws_security_group with cidr_blocks = 0.0.0.0/0 on sensitive ports, aws_rds_instance with storage_encrypted = false.

When to use: You have existing Terraform code (not an ArchSpec) and want an immediate security audit. For ArchSpec-level audit, use security_scan.

Behavior: Pure computation — no LLM, no network. Does not run Terraform or touch cloud. Safe for scanning untrusted HCL.

ParametersJSON Schema
NameRequiredDescriptionDefault
hcl_contentYesRaw Terraform HCL source code to scan. Typically the contents of a `main.tf` file or a concatenated module. The scanner parses resource blocks directly; no terraform binary is invoked.

TDQS

A4.9/5.0
Behavior5/5

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

No annotations provided, so description carries full burden. It discloses that the tool is pure computation with no LLM, no network, does not run Terraform or touch cloud, and is safe for scanning untrusted HCL. No contradiction with annotations.

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

Conciseness5/5

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

Description is well-structured: first sentence states purpose, then examples, when-to-use, and behavior. Every sentence adds value, no fluff. Length appropriate for the information conveyed.

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

Completeness5/5

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

Tool has one parameter and is security-related. Description covers purpose, usage, behavior, and parameter details. Mentions output (severity-graded findings on resource blocks). Complete for this complexity level.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. Description adds significant value by explaining the parameter is raw HCL source code, typical usage (main.tf), and how the scanner works (parses directly, no terraform binary). Just above baseline.

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

Purpose5/5

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

Description clearly states it scans Terraform HCL for security misconfigurations, using specific verb 'scan' and resource 'Terraform HCL'. It distinguishes itself from sibling tool security_scan which is for ArchSpec-level audit.

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 'When to use' section specifies to use this tool when you have existing Terraform code (not an ArchSpec) for an immediate security audit, and directs to security_scan for ArchSpec-level audit. Provides clear context and alternative.

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

score_architectureA

Score an architecture across reliability, security, cost, compliance, and complexity.

Returns the dimension scores, overall weighted score (0-100), letter grade, and per-dimension notes. Weights: Reliability 30% (load balancing, multi-AZ, auto-scaling, CDN, caching), Security 25% (WAF, auth, encryption, HTTPS, DNS), Cost Efficiency 20% (budget compliance, free- tier usage), Compliance 15% (framework validation), Complexity 10% (component count, connection density, tier separation).

When to use: You want a quick quality summary before a design review. For specific findings, use lint_architecture, security_scan, or validate_compliance.

Behavior: Pure computation — no LLM, no network. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
spec_jsonYesArchSpec to score. Scorer evaluates across five weighted dimensions and returns an overall 0-100 score with a letter grade (A/B/C/D/F).

TDQS

A4.7/5.0
Behavior5/5

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

Clearly states behavior as 'Pure computation — no LLM, no network. Read-only.' This fully compensates for missing annotations and discloses that the tool is safe and non-destructive.

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

Conciseness5/5

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

The description is concise with no redundant sentences. Front-loaded with the core action, followed by return details, usage context, and behavioral note.

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

Completeness5/5

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

Despite having no output schema, the description sufficiently explains return values (dimension scores, overall score, letter grade, notes) and covers weights and dimension details. Complete for a simple scoring 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 coverage is 100% with a description for the single parameter. The tool description adds context about scoring dimensions but does not elaborate on the parameter's structure beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states the tool scores an architecture across five dimensions and returns a weighted score, letter grade, and notes. It distinguishes from siblings by specifying when to use and listing alternatives for specific findings.

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?

Explicitly says when to use ('quick quality summary before a design review') and provides exclusions ('For specific findings, use lint_architecture, security_scan, or validate_compliance').

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

security_scanA

Scan an architecture for security anti-patterns and misconfigurations.

Returns a structured report with severity-graded findings (critical / high / medium / low / info), each tied to specific component IDs. Framework- agnostic — use validate_compliance for specific regulatory frameworks.

Checks include: unencrypted data stores, public-facing databases, missing WAF on public HTTP endpoints, weak auth on APIs, SPOFs, overly permissive connection protocols.

Behavior: Pure computation — no LLM, no network. Does not touch cloud.

ParametersJSON Schema
NameRequiredDescriptionDefault
spec_jsonYesArchSpec to scan. The scanner inspects component configs, connection protocols, encryption flags, exposure boundaries, and auth presence.

TDQS

A4.7/5.0
Behavior4/5

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

Discloses that it is pure computation with no network or cloud access, though read-only nature could be explicitly stated.

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?

Concise, front-loaded, and well-structured with no unnecessary information.

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

Completeness5/5

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

Comprehensive description covering input, output, scope, behavioral constraints, and relationship to sibling tools despite lacking output schema.

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 provides 100% coverage for the single parameter, and description adds context on what the scanner inspects, enhancing 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 scans architecture for security anti-patterns, lists example checks, and distinguishes from validate_compliance.

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?

Explicitly directs users to use validate_compliance for specific regulatory frameworks, providing clear guidance on when to use this tool.

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

validate_complianceA

Validate an architecture against compliance frameworks.

Returns one result object per framework with pass/fail status per check, evidence (which components triggered the rule), and remediation hints.

When to use: You have a proposed architecture and need to know whether it satisfies HIPAA / PCI-DSS / SOC 2 / FedRAMP / GDPR before proceeding. Use security_scan for anti-pattern detection (weak auth, public buckets, etc.) which is framework-agnostic.

Behavior: Pure computation — no LLM, no network. Evaluates the spec statically against 30+ rules. Does not access or modify any cloud resources.

ParametersJSON Schema
NameRequiredDescriptionDefault
spec_jsonYesArchSpec to validate. Checks are run against the declared components, connections, and provider settings — no cloud API access required.
frameworksYesList of compliance framework slugs to validate against. Each framework runs 5-7 checks (encryption, logging, access control, etc.). Values: 'hipaa', 'pci-dss', 'soc2', 'fedramp', 'gdpr'.
well_architectedNoWhen True, additionally runs the AWS Well-Architected Framework pillar checks (multi-AZ, auto-scaling, backup, monitoring, SPOF detection, cost optimization). Independent of the `frameworks` list.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.9/5.0
Behavior5/5

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

No annotations provided, so description carries full burden. It details behavior: pure computation, no LLM/network, static evaluation against 30+ rules, no cloud resource access. This fully informs the agent about safety and side effects.

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?

Well-structured with clear sections (purpose, return value, usage, behavior). Every sentence is necessary and concise, no fluff.

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

Completeness5/5

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

Even without viewing output schema, the description explains return format (one result per framework with pass/fail, evidence, remediation hints). Combined with behavior and usage guidelines, it provides full context for correct invocation.

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 has 100% description coverage. The description adds practical context: spec_json is the architecture to validate, frameworks are slugs each with 5-7 checks, well_architected runs additional independent checks. This integrates schema info meaningfully.

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 validates an architecture against compliance frameworks, specifying verb and resource. It distinguishes itself from sibling tool security_scan by noting the latter is for framework-agnostic anti-pattern detection.

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 'When to use' section describes scenarios (verifying HIPAA/PCI-DSS/etc. compliance before proceeding) and suggests an alternative (security_scan for anti-patterns).

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 18 tool updatesv0.1.1
    • Changedanalyze_blast_radius3 fields changed
      • addedInput schema / properties / component_id / description
        Added value: +"Optional: focus analysis on a single component's blast radius (its direct dependents + transitive dependents). When omitted, returns blast-radius metrics for every component."
      • addedInput schema / properties / component_id / examples
        Added value: +[
        +  "api_gateway",
        +  "rds_primary",
        +  null
        +]
      • addedInput schema / properties / spec_json / description
        Added value: +"ArchSpec to analyze. Builds a directed dependency graph from the spec's connections and computes reachability per component."
    • Changedcatalog_search10 fields changed
      • addedInput schema / properties / max_price_per_hour / description
        Added value: +"Optional maximum hourly on-demand price (USD). Returns only instances at or below this price. Useful for budget-constrained sizing."
      • addedInput schema / properties / max_price_per_hour / examples
        Added value: +[
        +  0.1,
        +  0.5,
        +  2
        +]
      • addedInput schema / properties / memory_gb / description
        Added value: +"Optional exact memory-in-GB filter. Returns instances matching this memory size."
      • addedInput schema / properties / memory_gb / examples
        Added value: +[
        +  8,
        +  16,
        +  32,
        +  64
        +]
      • addedInput schema / properties / provider / description
        Added value: +"Cloud provider slug to search within. Default 'aws'."
      • addedInput schema / properties / provider / examples
        Added value: +[
        +  "aws",
        +  "gcp",
        +  "azure"
        +]
      • addedInput schema / properties / query / description
        Added value: +"Optional free-text query matching instance family, generation, or purpose (e.g. 'memory-optimized', 'graviton', 'gpu')."
      • addedInput schema / properties / query / examples
        Added value: +[
        +  "memory-optimized",
        +  "graviton",
        +  "gpu"
        +]
      • addedInput schema / properties / vcpus / description
        Added value: +"Optional exact vCPU count filter. Returns instances matching this vCPU count."
      • addedInput schema / properties / vcpus / examples
        Added value: +[
        +  4,
        +  8,
        +  16,
        +  32
        +]
    • Changedchat_create_session6 fields changed
      • addedInput schema / properties / budget_monthly / description
        Added value: +"Optional monthly budget cap (USD). Applied across all design turns within the session — the architect will bias toward fitting under it."
      • addedInput schema / properties / budget_monthly / examples
        Added value: +[
        +  2000,
        +  5000,
        +  10000
        +]
      • addedInput schema / properties / compliance / description
        Added value: +"Optional compliance frameworks enforced across the session's design turns. Values: 'hipaa', 'pci-dss', 'soc2', 'fedramp', 'gdpr'."
      • addedInput schema / properties / compliance / examples
        Added value: +[
        +  [
        +    "hipaa"
        +  ],
        +  [
        +    "soc2",
        +    "gdpr"
        +  ]
        +]
      • addedInput schema / properties / provider / description
        Added value: +"Default cloud provider for the session. Every subsequent `chat_send` within this session uses this provider unless overridden in the message."
      • addedInput schema / properties / provider / examples
        Added value: +[
        +  "aws",
        +  "gcp",
        +  "azure",
        +  "databricks"
        +]
    • Changedchat_delete_session1 field changed
      • addedInput schema / properties / session_id / description
        Added value: +"Session handle to delete. If the session doesn't exist, the tool returns `{'error': ...}` and does nothing."
    • Changedchat_send3 fields changed
      • addedInput schema / properties / message / description
        Added value: +"User message for this conversation turn. Can be a design request, a modification instruction, a question about the current spec, or meta-commands (e.g. 'show me the cost')."
      • addedInput schema / properties / message / examples
        Added value: +[
        +  "Design a 3-tier web app with PostgreSQL",
        +  "Add a Redis cache in front of the database",
        +  "What's the monthly cost?"
        +]
      • addedInput schema / properties / session_id / description
        Added value: +"Session handle returned by `chat_create_session`. Must reference an existing session; otherwise the tool returns `{'error': ...}`."
    • Changedcompare_provider_costs3 fields changed
      • addedInput schema / properties / providers / description
        Added value: +"List of cloud providers to compare pricing across. Values: 'aws', 'gcp', 'azure', 'databricks'."
      • addedInput schema / properties / providers / examples
        Added value: +[
        +  [
        +    "aws",
        +    "gcp",
        +    "azure"
        +  ],
        +  [
        +    "aws",
        +    "gcp"
        +  ]
        +]
      • addedInput schema / properties / spec_json / description
        Added value: +"ArchSpec to cost across providers. Services are mapped to cross-cloud equivalents (ec2 <-> compute_engine <-> virtual_machines, etc.) before pricing."
    • Changedcompare_providers3 fields changed
      • addedInput schema / properties / providers / description
        Added value: +"List of target provider slugs to compare against. Values: 'aws', 'gcp', 'azure', 'databricks'. Returns one result per target."
      • addedInput schema / properties / providers / examples
        Added value: +[
        +  [
        +    "gcp",
        +    "azure"
        +  ],
        +  [
        +    "aws",
        +    "gcp"
        +  ]
        +]
      • addedInput schema / properties / spec_json / description
        Added value: +"ArchSpec to translate across providers. Original provider's services are mapped to equivalents on each target provider using 22 cross-cloud equivalence pairs (e.g. ec2 <-> compute_engine <-> virtual_machines)."
    • Changeddesign_architecture10 fields changed
      • addedInput schema / properties / budget_monthly / description
        Added value: +"Optional monthly budget cap in USD. When set, the architect biases toward instance tiers and managed services that fit under this cap."
      • addedInput schema / properties / budget_monthly / examples
        Added value: +[
        +  2000,
        +  5000,
        +  10000
        +]
      • addedInput schema / properties / compliance / description
        Added value: +"Optional list of compliance frameworks the architecture must satisfy. Values from: 'hipaa', 'pci-dss', 'soc2', 'fedramp', 'gdpr'. Influences service selection (e.g. BAA-eligible services for HIPAA, FIPS-compliant services for FedRAMP) and encryption defaults."
      • addedInput schema / properties / compliance / examples
        Added value: +[
        +  [
        +    "hipaa"
        +  ],
        +  [
        +    "soc2",
        +    "gdpr"
        +  ],
        +  [
        +    "fedramp"
        +  ]
        +]
      • addedInput schema / properties / description / description
        Added value: +"Plain-English description of the system to design. Include workload type (e.g. 'HIPAA-compliant 3-tier healthcare API'), traffic expectations, and any stack preferences. The LLM uses this to select services, tiers, and connections."
      • addedInput schema / properties / description / examples
        Added value: +[
        +  "HIPAA-compliant 3-tier web app on AWS with PostgreSQL",
        +  "Serverless data pipeline on GCP with Pub/Sub, Dataflow, and BigQuery"
        +]
      • addedInput schema / properties / provider / description
        Added value: +"Target cloud provider for the generated architecture. Values: 'aws', 'gcp', 'azure', 'databricks'. Default 'aws'."
      • addedInput schema / properties / provider / examples
        Added value: +[
        +  "aws",
        +  "gcp",
        +  "azure",
        +  "databricks"
        +]
      • addedInput schema / properties / region / description
        Added value: +"Cloud region for the generated architecture (e.g. 'us-east-1' for AWS, 'us-central1' for GCP, 'eastus' for Azure). Used to set region-aware pricing and compliance constraints (e.g. FedRAMP requires US regions)."
      • addedInput schema / properties / region / examples
        Added value: +[
        +  "us-east-1",
        +  "us-central1",
        +  "eastus",
        +  "eu-west-1"
        +]
    • Changeddiff_architectures2 fields changed
      • addedInput schema / properties / new_spec_json / description
        Added value: +"Proposed ArchSpec (target). Typically the version about to be deployed."
      • addedInput schema / properties / old_spec_json / description
        Added value: +"Previous ArchSpec (baseline). Typically the last deployed version."
    • Changedestimate_cost3 fields changed
      • addedInput schema / properties / pricing_tier / description
        Added value: +"Pricing tier multiplier applied to compute and data-store components. Values: 'on_demand' (1.0x), 'reserved_1yr' (0.6x), 'reserved_3yr' (0.4x), 'spot' (0.3x)."
      • addedInput schema / properties / pricing_tier / examples
        Added value: +[
        +  "on_demand",
        +  "reserved_1yr",
        +  "reserved_3yr",
        +  "spot"
        +]
      • addedInput schema / properties / spec_json / description
        Added value: +"ArchSpec to price. Pricing is resolved per-component against a bundled SQLite catalog (no network calls), with formula dispatch for serverless/managed services and a static fallback for rare ones."
    • Changedexport_architecture3 fields changed
      • addedInput schema / properties / format / description
        Added value: +"Target output format. Values: 'terraform' (HCL with provider blocks, 24 AWS / 11 GCP / 10 Azure resource types), 'cloudformation' (YAML template with Parameters/Outputs), 'mermaid' (tier-grouped flowchart), 'd2' (D2 diagram), 'sbom' (CycloneDX 1.5 service bill of materials), 'aibom' (OWASP AI bill of materials), 'compliance' (audit-ready markdown report)."
      • addedInput schema / properties / format / examples
        Added value: +[
        +  "terraform",
        +  "cloudformation",
        +  "mermaid",
        +  "d2",
        +  "sbom"
        +]
      • addedInput schema / properties / spec_json / description
        Added value: +"ArchSpec to export. Components are translated to provider-native resources; connections become security-group / firewall / IAM rules."
    • Changedlint_architecture1 field changed
      • addedInput schema / properties / spec_json / description
        Added value: +"ArchSpec to lint. Runs 10 anti-pattern checks covering encryption, redundancy, load balancing, auth presence, and resource sizing."
    • Changedlist_services2 fields changed
      • addedInput schema / properties / provider / description
        Added value: +"Cloud provider slug. Values: 'aws' (47 services), 'gcp' (25), 'azure' (28), 'databricks'."
      • addedInput schema / properties / provider / examples
        Added value: +[
        +  "aws",
        +  "gcp",
        +  "azure",
        +  "databricks"
        +]
    • Changedmodify_architecture3 fields changed
      • addedInput schema / properties / instruction / description
        Added value: +"Plain-English modification instruction. The LLM interprets it and produces a new ArchSpec with components added, removed, or reconfigured."
      • addedInput schema / properties / instruction / examples
        Added value: +[
        +  "Add a Redis cache between the API and the database",
        +  "Replace RDS PostgreSQL with Aurora Serverless v2",
        +  "Move the compute tier from ECS to Lambda"
        +]
      • addedInput schema / properties / spec_json / description
        Added value: +"Existing ArchSpec as a dict (typically the output of a prior `design_architecture`, `modify_architecture`, or `chat_send` call). Must contain 'name', 'provider', 'components', and 'connections' keys."
    • Changedscan_terraform1 field changed
      • addedInput schema / properties / hcl_content / description
        Added value: +"Raw Terraform HCL source code to scan. Typically the contents of a `main.tf` file or a concatenated module. The scanner parses resource blocks directly; no terraform binary is invoked."
    • Changedscore_architecture1 field changed
      • addedInput schema / properties / spec_json / description
        Added value: +"ArchSpec to score. Scorer evaluates across five weighted dimensions and returns an overall 0-100 score with a letter grade (A/B/C/D/F)."
    • Changedsecurity_scan1 field changed
      • addedInput schema / properties / spec_json / description
        Added value: +"ArchSpec to scan. The scanner inspects component configs, connection protocols, encryption flags, exposure boundaries, and auth presence."
    • Changedvalidate_compliance4 fields changed
      • addedInput schema / properties / frameworks / description
        Added value: +"List of compliance framework slugs to validate against. Each framework runs 5-7 checks (encryption, logging, access control, etc.). Values: 'hipaa', 'pci-dss', 'soc2', 'fedramp', 'gdpr'."
      • addedInput schema / properties / frameworks / examples
        Added value: +[
        +  [
        +    "hipaa"
        +  ],
        +  [
        +    "soc2",
        +    "pci-dss"
        +  ],
        +  [
        +    "fedramp",
        +    "gdpr"
        +  ]
        +]
      • addedInput schema / properties / spec_json / description
        Added value: +"ArchSpec to validate. Checks are run against the declared components, connections, and provider settings — no cloud API access required."
      • addedInput schema / properties / well_architected / description
        Added value: +"When True, additionally runs the AWS Well-Architected Framework pillar checks (multi-AZ, auto-scaling, backup, monitoring, SPOF detection, cost optimization). Independent of the `frameworks` list."
  2. 19 tool updatesv0.1.0
    • First observedanalyze_blast_radius
    • First observedcatalog_search
    • First observedchat_create_session
    • First observedchat_delete_session
    • First observedchat_list_sessions
    • First observedchat_send
    • First observedcompare_provider_costs
    • First observedcompare_providers
    • First observeddesign_architecture
    • First observeddiff_architectures
    • First observedestimate_cost
    • First observedexport_architecture
    • First observedlint_architecture
    • First observedlist_services
    • First observedmodify_architecture
    • First observedscan_terraform
    • First observedscore_architecture
    • First observedsecurity_scan
    • First observedvalidate_compliance

TDQS

A4.7/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with comprehensive 'When to use' sections that explicitly contrast with similar tools. For example, compare_providers vs compare_provider_costs, design_architecture vs modify_architecture vs chat sessions are all well-differentiated.

Naming Consistency5/5

All 18 tools follow a consistent verb_noun pattern in lowercase snake_case (e.g., design_architecture, chat_create_session, validate_compliance). No deviations or mixed styles.

Tool Count5/5

18 tools is well-scoped for a cloud architecture server, covering design, modification, chat, cost, comparison, scanning, compliance, export, and search without being overwhelming or sparse.

Completeness5/5

The tool surface covers the full lifecycle of cloud architecture analysis and design: greenfield design, iterative modification, multi-turn conversation, cost estimation, multi-provider comparison, security scanning, compliance validation, blast radius analysis, diffing, and IaC export. No obvious gaps for its stated purpose.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/xmpuspus/cloudwright'

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