Skip to main content
Glama

ChatStack - App Cost Estimator

Server Details

Estimate development costs and hours, scope an MVP, and write a PRD with user stories and specs.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.4/5.0

Scored across 5 tools

Disambiguation3/5

The lifecycle tools are mostly distinct, but send_turn and send_action both submit user input and can advance the flow. The descriptions require lengthy rules to separate action payloads, free text, mode selection, and milestone advancement, so misselection remains likely.

Naming Consistency5/5

All tool names follow a consistent snake_case verb-first pattern: get_estimate_status, send_action, send_turn, start_session, submit_prd. The shared send_ prefix slightly blurs two tools semantically, but the naming convention itself is predictable.

Tool Count5/5

Five tools is well-scoped for a guided estimation workflow. Each tool appears to represent a necessary lifecycle step: starting, checking status, sending input, submitting, and handling gated actions.

Completeness4/5

The surface covers the full guided flow from start through status checks, iterative interaction, PRD submission, and post-submit links. Minor gaps exist around explicit cancel/reset or standalone retrieval of a submitted PRD, but the core lifecycle is covered.

Available Tools

5 tools
get_estimate_statusGet app estimate progressA
Read-only
Inspect

Read the current app cost estimate without advancing it. Returns flow_stage, pending_gate, and pending_gate_payload. After submission it also returns post_submit_notice and post_submit_links: relay the notice verbatim, keep every URL, and do not add an email-delivery caveat. Pass the thread_id and interview_handle from the Session section. Do not call start_session to recover a session, and do not use this tool to approve, edit, or submit.

NameRequiredDescriptionDefault
thread_idYesInterview thread id from start_session.
interview_handleYesOpaque interview handle from start_session. Pass it on every later tool.

Output Schema

NameRequiredDescription
resultNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/destructiveHint=false, so the bar is lower, yet the description adds real behavioral context: the read is non-advancing, post-submission calls return post_submit_notice and post_submit_links, and the notice must be relayed verbatim with URLs preserved. It still omits failure behavior (expired/invalid handle) and whether reads are idempotent across polls.

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

Conciseness4/5

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

Front-loaded with the core action and scope, then output behavior, then input provenance, then exclusions. Four dense sentences with no filler, though the 'do not add an email-delivery caveat' instruction is idiosyncratic and sits awkwardly mid-paragraph.

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?

An output schema exists, so return values need not be explained, and annotations cover the safety profile. The description still supplies the things structured fields cannot: non-advancing semantics, post-submit handling rules, input provenance, and explicit non-uses.

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 both params are documented at the source, so the schema does the heavy lifting. The description adds only a mild locational hint ('from the Session section') and otherwise restates that both values must be passed; baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('Read the current app cost estimate') plus a crucial scope qualifier ('without advancing it'). It also implicitly distinguishes itself from the mutating siblings (submit_prd, send_action) by naming what it must not be used for.

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 excludes two wrong paths: 'Do not call start_session to recover a session' and 'do not use this tool to approve, edit, or submit.' Combined with 'read without advancing,' an agent knows exactly when this tool applies and which sibling to pick instead.

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

send_actionSubmit the pending choiceAInspect

Submit the user's pending choice. Set action_type to a value from pending_gate_payload.allowed_actions. In Review each step, action_type is required; confirmed_by_user=true is preferred and is not a substitute for it. In Run it for me, omit action_type and payload to advance one milestone, and do not ask the user to choose – show the user that milestone's Auto-complete decision receipt and pipe-table. Do not ask them to approve it. Call send_action once per result, and only again on the next result while next_tool is send_action. When next_tool is submit_prd, stop and offer submission. An approve moves one phase: stories to requirements, requirements to the technical spec, then the tech spec to the estimate. In Review each step, stories_reject, requirements_reject, and techspec_reject show the current table again and wait. When the user describes the change, call send_turn with their exact words and show the regenerated table that comes back. mode_select_a, mode_select_b, and mode_select_c are only the How much time pick: Normal, Quick estimate, or Detailed. Do not use them for Review each step or Run it for me. That choice is send_turn with interaction_mode. For clarifying_questions_submit, set payload.answers by question id with the letter only, such as {"q1":"A","q2":"B"}, not "1A". A plain reply such as "1B, 2A, 3C", or any wording that combines options, goes through send_turn. Do not split one question into several letters.

NameRequiredDescriptionDefault
payloadNo
thread_idYesInterview thread id from start_session.
action_typeNoWidget action type from allowed_actions. Optional in auto_complete; defaults fill the pending gate.
interview_handleYesOpaque interview handle from start_session. Pass it on every later tool.
confirmed_by_userNoPreferred when the user explicitly chose. Not required when action_type is already set to an allowed_actions value with a complete payload.

Output Schema

NameRequiredDescription
resultNo

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only declare non-read-only, non-destructive, closed-world; the description adds what actually happens: one call per result, re-call only while next_tool is send_action, an approve advances exactly one phase, and reject actions re-display the current table and wait. It also covers the auto-complete path's receipt/pipe-table behavior and the instruction not to ask for approval.

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 purpose and the required-input rule are front-loaded, and nearly every sentence carries a routing or formatting constraint. It is dense and full of chained conditionals that would read better as a short list, but there is no 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?

For a stateful widget-submission tool with an output schema and nested payload, it covers mode differences, the next_tool handoff, rejection loops, and the exact answer format. Nothing an agent needs in order to call it correctly is missing.

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 80%, but the description still adds meaning the schema lacks: action_type must come from allowed_actions, action_type and payload are omitted in auto-complete, confirmed_by_user is preferred but not a substitute, and payload.answers must be keyed by question id with letter-only values like {"q1":"A"}. That last example directly disambiguates a nested-object parameter the schema leaves as untyped additionalProperties.

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 opening sentence states a specific verb and resource ('Submit the user's pending choice') and immediately narrows the action_type source to pending_gate_payload.allowed_actions. It explicitly distinguishes itself from siblings by naming send_turn and submit_prd and describing the handoff conditions.

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

Usage Guidelines5/5

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

It spells out both modes: in Review each step action_type is required, in Run it for me omit action_type and payload. It names the alternative (send_turn with interaction_mode) and the exact cases where mode_select_* must not be used, and tells the agent to stop and offer submission when next_tool is submit_prd.

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

send_turnContinue app estimate or revise scopeAInspect

Continue an app cost estimate by sending the user's answers or requested changes to the MVP scope, user stories, requirements, or technical specification. Pass their exact words in input_as_text, even when next_tool is send_action. Compact replies such as "1A, 2B" are valid. Preserve the user's selections; in interaction mode Review each step do not choose answers for them. In interaction mode Review each step, relay the pipe-table and wait for approval. In Run it for me, relay the table and the decision receipt, then continue. After the user picks Review each step or Run it for me, set interaction_mode to clarify_first or auto_complete on this call. Include input_as_text when their reply also contains an idea or an answer. Omit input_as_text only when the reply is just the mode. Do not use send_action or mode_select_* for that choice. If no mode is set yet and the user continues without choosing, omit interaction_mode and the server accepts clarify_first. Phrases like "Run it for me" or "auto-complete" in input_as_text switch the thread to auto_complete.

NameRequiredDescriptionDefault
thread_idYesInterview thread id from start_session.
input_as_textNoUser message text; omit for a style-only interaction_mode switch.
interaction_modeNoInterview style: clarify_first (Review each step) or auto_complete (Run it for me). Required for a style-only switch; when omitted with input_as_text, clarify_first is accepted by default.
interview_handleYesOpaque interview handle from start_session. Pass it on every later tool.

Output Schema

NameRequiredDescription
resultNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations only declare readOnly=false, destructive=false, openWorld=false, so the description adds real value: it discloses a hidden side effect (phrases like 'Run it for me' inside input_as_text silently switch the thread to auto_complete) and a server default (clarify_first is accepted when interaction_mode is omitted). It does not describe the response shape, but an output schema exists, so that omission is acceptable.

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

Conciseness3/5

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

Content is largely load-bearing, but the interaction-mode guidance is restated almost verbatim ('In interaction mode Review each step...' appears twice), and the unquoted enum-style phrasing ('Review each step', 'Run it for me') is dense to parse. The core instruction to pass exact words is front-loaded, but tightening would materially help readability.

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

Completeness4/5

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

For a 4-parameter mutation-ish tool with an output schema and full annotation coverage, the description covers the awkward part — thread mode handoff and verbatim input handling. Only minor gaps remain, such as what happens to the table/decision receipt on the next turn, which the output schema presumably covers.

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 the baseline would be 3, and the description earns above that by adding omission semantics the schema only hints at: omit input_as_text *only* when the reply is just the mode, and omit interaction_mode when no mode is set yet. It also clarifies that compact replies like '1A, 2B' are valid verbatim input.

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?

Opens with a specific verb+resource ('Continue an app cost estimate') and enumerates exactly what payload it carries: answers or scope changes to MVP scope, user stories, requirements, or tech spec. It also explicitly carves itself away from siblings ('Do not use send_action or mode_select_* for that choice'), so an agent can route correctly without opening the schema.

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

Usage Guidelines5/5

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

Gives when-to-use (sending user answers or requested changes), when-not (mode selection alone goes elsewhere; do not use send_action or mode_select_*), and explicit fallback behavior when no mode has been chosen yet. It also branches guidance by interaction mode ('Review each step' vs 'Run it for me'), which is precisely the decision an agent needs to make.

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

start_sessionStart an app cost estimateAInspect

Start a guided session to estimate app development cost, scope an MVP, and generate a software PRD. No portal account or personal access token is required. Call it with no arguments unless the user already named Review each step (clarify_first) or Run it for me (auto_complete). Do not choose an interaction mode on the user's behalf — wanting an estimate or a fast answer is not auto_complete. If interaction_mode_question is returned, show both Review each step and Run it for me, with Review each step as the default, and wait for the user's pick before send_turn. The text result has a Session section with thread_id and interview_handle. Copy those into every later tool. Preserve an explicitly selected mode without asking the user to choose again.

NameRequiredDescriptionDefault
interaction_modeNoOmit this. Set it only when the user explicitly named a mode (e.g. "use auto-complete"): clarify_first reviews every gate, auto_complete advances on its own and reports each decision.

Output Schema

NameRequiredDescription
resultNo

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only say this is a non-read-only, non-destructive, closed-world call; the description supplies the real behavioral context: no portal account or token is needed, the call can return interaction_mode_question to prompt the user, and the text result carries a Session section with thread_id and interview_handle that must be copied into later tools. That is material state-handoff information an agent could not infer from the annotations.

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?

Purpose is front-loaded in the first sentence and the operational rules follow in a logical order. There is some redundancy — 'Do not choose an interaction mode on the user's behalf' and the closing 'Preserve an explicitly selected mode without asking the user to choose again' restate the same rule — and the clause 'unless the user already named Review each step' is grammatically truncated, slightly slowing parsing.

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?

An output schema exists, so return values need not be explained, and the description still covers the important dynamic parts: the conditional question turn, the handle propagation, and mode persistence. The one soft spot is that the conditional trigger is described only loosely ('If interaction_mode_question is returned'), and the truncated mode-selection clause leaves a small ambiguity for a first-time caller.

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% and the enum is documented inline, so the schema already carries the definition. The description still adds decision semantics the schema lacks: omit it by default, set it only when the user explicitly named a mode, and never infer auto_complete from a request for speed.

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

Purpose5/5

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

Names a specific verb and outcome set: start a guided session to estimate app development cost, scope an MVP, and generate a software PRD. That is clearly distinct from the siblings (get_estimate_status, send_turn, submit_prd), and the follow-on reference to send_turn reinforces where this tool sits in the flow.

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 the default invocation (no arguments), the two exceptions that justify passing interaction_mode, and a hard when-not: do not pick a mode on the user's behalf, since wanting an estimate or a fast answer is not auto_complete. It also scripts the interaction_mode_question branch, including which option is the default and that the agent must wait before send_turn.

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

submit_prdSubmit PRD and app estimateA
Destructive
Inspect

Submit the completed software PRD and app development estimate for email delivery and portal project creation. Call it only after user stories, requirements, tech specs, and the estimate exist. (flow_stage estimate). Run it for me stops at this tool. Offer submission and wait for the user. Do not submit it the way an empty send_action advances a milestone. Before calling, tell the user it emails the pack and creates a portal project. Propose first_name, last_name, email, country, and project_name already provided by the user, or a project name suggested by the tool. Show those values for confirmation and ask only for missing fields; if none are known, ask for all five. Set confirmed_by_user=true only after they confirm. Offer optional feedback and omit it if they skip. Never invent a contact field. If they decline, do not call this tool. Omit contact arguments the thread already collected. Pass the thread_id and interview_handle from the Session section. Success is only a ### PRD submitted receipt that includes project_id and version_id. Relay post_submit_notice verbatim, including every URL, and do not add an email-delivery caveat. A missing next_tool, a timeout, or an error is not success. If the result is unclear, call get_estimate_status. Do not call submit_prd again while that check is still unclear. Do not call submit_prd again after a receipt with both ids.

NameRequiredDescriptionDefault
emailNoSuggested or confirmed email from user context.
countryNoSuggested or confirmed home country from user context.
feedbackNoOptional notes from the user (scope, questions, extra context). Ask, but omit if they skip. Never invent this.
last_nameNoSuggested or confirmed surname from user context.
thread_idYesInterview thread id from start_session.
first_nameNoSuggested or confirmed first name from user context.
project_nameNoSuggested or confirmed project name. Prefer values the user stated.
interview_handleYesOpaque interview handle from start_session. Pass it on every later tool.
confirmed_by_userNoSet true only after the user confirms the contact details (or corrects them).
interview_summaryNoOptional override; normally loaded from the thread

Output Schema

NameRequiredDescription
resultNo

TDQS

A4.8/5.0
Behavior5/5

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

Annotations declare destructiveHint=true and openWorldHint=true, and the description is consistent with that while adding substantial detail the annotations cannot convey: it emails the pack, creates a portal project, requires telling the user beforehand, requires showing contact values for confirmation, relays post_submit_notice verbatim, and defines a strict success criterion (a ### PRD submitted receipt with project_id and version_id) while treating timeout or missing next_tool as failure. It also adds an idempotency guard against re-calling after a receipt.

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

Conciseness4/5

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

Front-loaded with purpose, then proceeds through preconditions, confirmation flow, success criteria, and retry limits in a workable order. It is dense and a few sentences are grammatically broken ('Run it for me stops at this tool', 'Do not submit it the way an empty send_action advances a milestone'), which costs some parseability, but almost every sentence carries an operative rule.

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?

An output schema exists so return values need no explanation, yet the description still defines exactly what a success receipt looks like and what to do when it is absent. For a destructive, open-world, 10-parameter submission tool with a human confirmation gate, nothing an agent needs in order to call it correctly is missing.

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% and the field descriptions already say 'suggested or confirmed' and 'set true only after the user confirms,' so much of the parameter guidance is restated. The description still adds non-schema rules that change invocation behavior: omit contact arguments the thread already collected, never invent a contact field, ask only for missing fields, and pass thread_id and interview_handle from the Session section.

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

Purpose5/5

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

States a specific verb and compound resource: submit the completed PRD and app estimate for email delivery and portal project creation. It also distinguishes itself from siblings by naming get_estimate_status as the fallback check and by warning against the empty send_action milestone advance, so an agent can tell the three apart without opening a schema.

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

Usage Guidelines5/5

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

Gives an explicit precondition (only after user stories, requirements, tech specs, and the estimate exist), an explicit refusal path (if they decline, do not call this tool), and an explicit alternative when the outcome is ambiguous (call get_estimate_status). When-to-use, when-not-to-use, and the alternative are all present.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updates
    • First observedget_estimate_status
    • First observedsend_action
    • First observedsend_turn
    • First observedstart_session
    • First observedsubmit_prd

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    B
    maintenance
    Enables converting software development requirements into traceable estimates, WBS breakdowns, PERT calculations, risk registers, roadmaps, quotations, and professional PDF proposals or action plans. It supports reviewing assumptions, exclusions, scope gaps, and commercial documentation before sending deliverables to clients.
    14
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources