Skip to main content
Glama

Server Details

Search the Wraps docs and estimate AWS SES costs. Public, read-only, no authentication.

Ownership verified
Status
Healthy
Uptime
100.0% over 23 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
wraps-team/wraps
GitHub Stars
57

TDQS

A4.4/5.0

Scored across 4 tools

Disambiguation5/5

Each tool targets a distinct purpose: cost estimation vs. documentation retrieval (list, get, search). No overlap or ambiguity in selecting the right tool for a given task.

Naming Consistency5/5

All tools follow a consistent verb_noun snake_case pattern (estimate_cost, get_doc, list_docs, search_docs), making the API predictable and easy to learn.

Tool Count5/5

Four tools is well-scoped for a server focused on cost estimation and documentation access—neither sparse nor bloated. Each tool serves a clear need.

Completeness5/5

The documentation surface covers list, get, and search (the full read path), and cost estimation covers the core use case. No obvious gaps for the stated domain.

Available Tools

4 tools
estimate_costEstimate Wraps + AWS costA
Read-only
Inspect

Estimate the real monthly cost of running email on Wraps + AWS: the flat Wraps platform fee for the plan, and the itemized AWS bill (SES, EventBridge, SQS, Lambda, DynamoDB, dedicated IP, WAF). The Wraps fee never varies with volume; the AWS-side event-pipeline line items (EventBridge, SQS, Lambda, DynamoDB) are derived from emails sent and event types per email. The events parameter is accepted for backward compatibility and does not currently affect the estimate. Use this instead of doing the arithmetic — six variables interact, including which SES pricing plan the AWS account is on.

ParametersJSON Schema
NameRequiredDescriptionDefault
tierNoWraps plan.
emailsYesEmails sent per month.
eventsNoCustom events you emit via POST /v1/events per month. Emails sent and SES delivery events (deliveries, opens, clicks, bounces) are not counted and do not affect price.
billingNoWraps billing interval.
sesPlanNoAWS SES pricing plan for that account and Region. New AWS accounts default to 'essentials' ($0.16/1K); 'alacarte' is $0.10/1K.
retentionNoHow long email event history is kept.
dedicatedIpNoInclude a dedicated sending IP.

Output Schema

ParametersJSON Schema
NameRequiredDescription
awsNoAWS-side cost, itemized.
inputNoThe estimate inputs, after defaults were applied.
totalYesWraps fee plus the AWS bill.
wrapsNoFlat Wraps platform fee for the plan. Does not vary with volume.
periodYesAlways month.
currencyYesAlways USD.
shareUrlNoLink reproducing this estimate on wraps.dev.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description adds valuable behavioral context: the Wraps fee never varies with volume, the AWS event-pipeline line items are derived from emails and event types, and the events parameter is ignored. It does not contradict annotations and goes beyond the safety profile to explain the estimation logic.

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 four sentences long, each contributing distinct information: purpose, fee structure, the events note, and a usage recommendation. It is front-loaded with the core purpose and avoids redundant wording, though it is slightly longer than strictly necessary.

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

Completeness4/5

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

Given the tool's complexity (7 parameters, 4 enums, output schema present), the description covers the essential logic, flags the ignored parameter, and explains why to use it. It does not describe the output format, but the output schema exists to cover that, and the description provides enough 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 coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema by noting the events parameter is backward-compatible and ignored, and by hinting that 'six variables interact,' which alerts the agent to parameter interdependencies. This extra semantic context justifies a 4.

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 identifies the tool as a cost estimator for email on Wraps + AWS, specifying the flat Wraps fee and the itemized AWS bill components (SES, EventBridge, SQS, Lambda, DynamoDB, dedicated IP, WAF). It also states it should be used 'instead of doing the arithmetic,' distinguishing it from the sibling document tools, which are entirely unrelated. The purpose is specific and unambiguous.

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

Usage Guidelines5/5

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

The description explicitly instructs to use this tool instead of manual calculation, and it clarifies the events parameter is accepted only for backward compatibility and does not affect the estimate. This provides clear guidance on when to invoke the tool and what to expect, even though siblings are not competing alternatives.

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

get_docRead a Wraps doc pageA
Read-only
Inspect

Return the full markdown source of one Wraps page. Call list_docs first to see which paths have markdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesSite path such as /docs/quickstart/email, or the full https://wraps.dev/... URL.

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYesCanonical URL of the page.
pathYesSite path that was read.
markdownYesFull markdown source.

TDQS

A4.1/5.0
Behavior3/5

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

The description adds useful behavioral context by stating that the tool returns full markdown source for a single page. The readOnlyHint=true annotation already covers the safety profile, so the description does not need to repeat that. No details about error behavior or missing paths are provided, though the output schema likely covers the return shape.

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?

Two tightly written sentences with the core behavior front-loaded and the prerequisite stated second. Every word earns its place, and no redundant phrasing is present.

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 one-parameter read-only tool with annotations and an output schema, this description is complete. It states what the tool does, identifies the prerequisite call, and leaves the return structure to the output schema.

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

Parameters3/5

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

Schema coverage is 100%, and the path parameter already includes a clear description with both site-path and full-URL alternatives. The description itself does not add parameter-level detail, so the 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 uses a specific verb ('Return') and identifies the exact resource ('full markdown source of one Wraps page'). It clearly conveys this is a single-page fetch as opposed to listing or searching docs, making it easy to distinguish from the sibling tools.

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 instructs agents to 'Call list_docs first to see which paths have markdown,' establishing a clear prerequisite and differentiating this tool from list_docs. It does not explicitly mention search_docs or state when not to use it, but for a simple lookup this guidance is adequate.

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

list_docsList Wraps documentationA
Read-only
Inspect

Return the Wraps llms.txt index: every documentation page, product page, guide, and SDK reference with a one-line description.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
sourceYesURL the index was read from.

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds the output scope (a full index with one-line descriptions), but reveals no additional behavioral traits such as rate limits, freshness, or pagination. With annotations present, this is an adequate but not enriched disclosure.

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?

A single, front-loaded sentence that names the action, resource, and output content without any filler. Every element earns its place.

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 low complexity (no parameters, read-only annotation, and an existing output schema), the description sufficiently explains what the tool returns. Nothing essential for an agent to invoke 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?

The tool has zero parameters and the schema coverage is effectively 100%, so there is no parameter burden for the description to carry. The baseline of 4 for no-parameter tools applies here.

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

Purpose5/5

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

The description uses a specific verb ('Return') and identifies a precise resource ('the Wraps llms.txt index'), then enumerates its contents: documentation pages, product pages, guides, and SDK references. This clearly distinguishes it from siblings like get_doc or search_docs, which target individual documents or search results.

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

Usage Guidelines3/5

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

The description implies the tool is for retrieving a complete index of all documentation, which gives some usage context. However, it never explicitly contrasts it with sibling tools like get_doc or search_docs, nor states when not to use this tool in favor of an alternative.

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

search_docsSearch Wraps docsA
Read-only
Inspect

Search the full Wraps documentation (CLI, TypeScript SDKs, infrastructure, guides) and return the matching sections as markdown. Use this first for any 'how do I ... with Wraps' question.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum sections to return (default 5).
queryYesWords to search for, e.g. 'verify domain', 'send batch', 'bounce handling'.

Output Schema

ParametersJSON Schema
NameRequiredDescription
queryYesThe query as searched.
matchesYesEmpty when nothing matched; that is a result, not an error.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already mark the tool as read-only and non-open-world, and the description adds useful context: it searches the full corpus rather than a single known document and returns markdown sections. It does not discuss edge behavior around limits or empty results, but with annotations and an output schema, the remaining burden is low.

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?

A single front-loaded sentence states the action, scope, and output, followed by one short usage directive. There is no filler, repetition, or unnecessarily long detail.

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?

With only 2 simple params, a fully documented schema, an output schema present, and read-only annotations, the description covers what an agent needs to decide when to call it. The usage directive and scope statement fill the remaining selection context.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema already fully documents query and limit with examples and a default. The description adds no parameter-level meaning beyond that, so the 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?

Description names a specific verb ('Search'), a clear resource ('the full Wraps documentation'), enumerates the coverage ('CLI, TypeScript SDKs, infrastructure, guides'), and states the output form ('matching sections as markdown'). This distinguishes it from siblings like get_doc/list_docs, which imply fetching or listing individual docs.

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 phrase 'Use this first for any "how do I ... with Wraps" question' gives an explicit when-to-use trigger for an agent. It does not name exclusion conditions or alternative tools (e.g., get_doc for a known doc), so it misses the 'when-not' half of ideal guidance.

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. 4 tool updates
    • Changedestimate_cost1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "aws": {
        +      "description": "AWS-side cost, itemized.",
        +      "properties": {
        +        "sesPlan": {
        +          "description": "SES pricing plan the estimate assumes.",
        +          "type": "string"
        +        },
        +        "total": {
        +          "type": "number"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "currency": {
        +      "description": "Always USD.",
        +      "type": "string"
        +    },
        +    "input": {
        +      "description": "The estimate inputs, after defaults were applied.",
        +      "type": "object"
        +    },
        +    "period": {
        +      "description": "Always month.",
        +      "type": "string"
        +    },
        +    "shareUrl": {
        +      "description": "Link reproducing this estimate on wraps.dev.",
        +      "type": "string"
        +    },
        +    "total": {
        +      "description": "Wraps fee plus the AWS bill.",
        +      "type": "number"
        +    },
        +    "wraps": {
        +      "description": "Flat Wraps platform fee for the plan. Does not vary with volume.",
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "currency",
        +    "period",
        +    "total"
        +  ],
        +  "type": "object"
        +}
    • Changedget_doc1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "markdown": {
        +      "description": "Full markdown source.",
        +      "type": "string"
        +    },
        +    "path": {
        +      "description": "Site path that was read.",
        +      "type": "string"
        +    },
        +    "url": {
        +      "description": "Canonical URL of the page.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "path",
        +    "url",
        +    "markdown"
        +  ],
        +  "type": "object"
        +}
    • Changedlist_docs1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "source": {
        +      "description": "URL the index was read from.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "source"
        +  ],
        +  "type": "object"
        +}
    • Changedsearch_docs1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "matches": {
        +      "description": "Empty when nothing matched; that is a result, not an error.",
        +      "items": {
        +        "properties": {
        +          "excerpt": {
        +            "description": "Truncated section body.",
        +            "type": "string"
        +          },
        +          "heading": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "heading",
        +          "excerpt"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "query": {
        +      "description": "The query as searched.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "query",
        +    "matches"
        +  ],
        +  "type": "object"
        +}
  2. 4 tool updates
    • First observedestimate_cost
    • First observedget_doc
    • First observedlist_docs
    • First observedsearch_docs

Publisher details

Operator
Wraps (FlatironKids LLC) · Publisher source
Operator website
https://wraps.dev
Vendor relationship
First-party
Restrictions
None. Public and read-only, with no account, API key, or authentication required. · Publisher source

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Search and retrieve Agent2Agent (A2A) protocol documentation using full-text search and section filtering.
    2
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Live, ranked search across any number of llms.txt documentation sites - Strands, Kiro, the AWS guides, and whatever you add at runtime.
    7
    37 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.