Wraps
Server Details
Search the Wraps docs and estimate AWS SES costs. Public, read-only, no authentication.
- 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
Scored across 4 tools
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.
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.
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.
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 toolsestimate_costEstimate Wraps + AWS costARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tier | No | Wraps plan. | |
| emails | Yes | Emails sent per month. | |
| events | No | Custom 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. | |
| billing | No | Wraps billing interval. | |
| sesPlan | No | AWS SES pricing plan for that account and Region. New AWS accounts default to 'essentials' ($0.16/1K); 'alacarte' is $0.10/1K. | |
| retention | No | How long email event history is kept. | |
| dedicatedIp | No | Include a dedicated sending IP. |
Output Schema
| Name | Required | Description |
|---|---|---|
| aws | No | AWS-side cost, itemized. |
| input | No | The estimate inputs, after defaults were applied. |
| total | Yes | Wraps fee plus the AWS bill. |
| wraps | No | Flat Wraps platform fee for the plan. Does not vary with volume. |
| period | Yes | Always month. |
| currency | Yes | Always USD. |
| shareUrl | No | Link reproducing this estimate on wraps.dev. |
TDQS
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.
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.
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.
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.
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.
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 pageARead-onlyInspect
Return the full markdown source of one Wraps page. Call list_docs first to see which paths have markdown.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Site path such as /docs/quickstart/email, or the full https://wraps.dev/... URL. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | Canonical URL of the page. |
| path | Yes | Site path that was read. |
| markdown | Yes | Full markdown source. |
TDQS
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.
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.
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.
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.
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.
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 documentationARead-onlyInspect
Return the Wraps llms.txt index: every documentation page, product page, guide, and SDK reference with a one-line description.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| source | Yes | URL the index was read from. |
TDQS
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.
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.
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.
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.
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.
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 docsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum sections to return (default 5). | |
| query | Yes | Words to search for, e.g. 'verify domain', 'send batch', 'bounce handling'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | The query as searched. |
| matches | Yes | Empty when nothing matched; that is a result, not an error. |
TDQS
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.
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.
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.
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.
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.
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.
4 tool updates
- Changed
estimate_cost1 field changed- changed
Output 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" +}
- Changed
get_doc1 field changed- changed
Output 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" +}
- Changed
list_docs1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "source": { + "description": "URL the index was read from.", + "type": "string" + } + }, + "required": [ + "source" + ], + "type": "object" +}
- Changed
search_docs1 field changed- changed
Output 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" +}
4 tool updates
- First observed
estimate_cost - First observed
get_doc - First observed
list_docs - First observed
search_docs
Publisher details
- Operator
- Wraps (FlatironKids LLC) · Publisher source
- Operator website
- https://wraps.dev
- Vendor relationship
- First-party
- Documentation
- https://wraps.dev/docs/mcp-reference
- Trust center
- https://wraps.dev/security
- Restrictions
- None. Public and read-only, with no account, API key, or authentication required. · Publisher source
Related MCP Connectors
Search and fetch AgendaForge public documentation and marketing content. No authentication needed.
Search and read Financier's developer documentation. No credentials needed.
Search and read the public Applivery docs (MDM & app distribution). Read-only, no auth.
Search and read Empryo's documentation. Read-only, no auth, no local access.
Related MCP Servers
- AlicenseAqualityDmaintenanceSearch and fetch MCP protocol documentation using BM25 search with weighted scoring and stemming.233 npm2MIT
- AlicenseAqualityBmaintenanceServes the already-public developer documentation for the DivineAPI REST API, enabling search, endpoint lookup, and example responses without authentication.5MIT
- AlicenseAqualityAmaintenanceSearch and retrieve Agent2Agent (A2A) protocol documentation using full-text search and section filtering.2MIT
- AlicenseAqualityAmaintenanceLive, ranked search across any number of llms.txt documentation sites - Strands, Kiro, the AWS guides, and whatever you add at runtime.737 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.