Wraps

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

Should I use this

Quality & Safety

A
Description quality
93%
Schema completeness
83%
Naming quality
95%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'list_docs' description lacks action verbin list_docs

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,076Tokens (tool definitions)
~2.3 KBTypical response size
Moderate attention impact (0.84% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "docs": {
      "url": "https://wraps.dev/mcp"
    }
  }
}

Remote endpoints

https://wraps.dev/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_docs(query, limit)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Words to search for, e.g. 'verify domain', 'send batch', 'bounce handling'."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "description": "Maximum sections to return (default 5)."
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "The query as searched."
    },
    "matches": {
      "type": "array",
      "description": "Empty when nothing matched; that is a result, not an error.",
      "items": {
        "type": "object",
        "properties": {
          "heading": {
            "type": "string"
          },
          "excerpt": {
            "type": "string",
            "description": "Truncated section body."
          }
        },
        "required": [
          "heading",
          "excerpt"
        ]
      }
    }
  },
  "required": [
    "query",
    "matches"
  ]
}
🟢get_doc(path)

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

Input Schema

{
  "type": "object",
  "properties": {
    "path": {
      "type": "string",
      "description": "Site path such as /docs/quickstart/email, or the full https://wraps.dev/... URL."
    }
  },
  "required": [
    "path"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "path": {
      "type": "string",
      "description": "Site path that was read."
    },
    "url": {
      "type": "string",
      "description": "Canonical URL of the page."
    },
    "markdown": {
      "type": "string",
      "description": "Full markdown source."
    }
  },
  "required": [
    "path",
    "url",
    "markdown"
  ]
}
🟢list_docs

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

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "source": {
      "type": "string",
      "description": "URL the index was read from."
    }
  },
  "required": [
    "source"
  ]
}
🟢estimate_cost(emails, events, tier, billing, sesPlan, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "emails": {
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000000,
      "description": "Emails sent per month."
    },
    "events": {
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000000,
      "description": "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."
    },
    "tier": {
      "type": "string",
      "enum": [
        "free",
        "pro",
        "business"
      ],
      "description": "Wraps plan."
    },
    "billing": {
      "type": "string",
      "enum": [
        "monthly",
        "annual"
      ],
      "description": "Wraps billing interval."
    },
    "sesPlan": {
      "type": "string",
      "enum": [
        "alacarte",
        "essentials",
        "pro",
        "enterprise"
      ],
      "description": "AWS SES pricing plan for that account and Region. New AWS accounts default to 'essentials' ($0.16/1K); 'alacarte' is $0.10/1K."
    },
    "dedicatedIp": {
      "type": "boolean",
      "description": "Include a dedicated sending IP."
    },
    "retention": {
      "type": "string",
      "enum": [
        "7days",
        "30days",
        "90days",
        "1year",
        "indefinite"
      ],
      "description": "How long email event history is kept."
    }
  },
  "required": [
    "emails"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "currency": {
      "type": "string",
      "description": "Always USD."
    },
    "period": {
      "type": "string",
      "description": "Always month."
    },
    "input": {
      "type": "object",
      "description": "The estimate inputs, after defaults were applied."
    },
    "wraps": {
      "type": "object",
      "description": "Flat Wraps platform fee for the plan. Does not vary with volume."
    },
    "aws": {
      "type": "object",
      "description": "AWS-side cost, itemized.",
      "properties": {
        "sesPlan": {
          "type": "string",
          "description": "SES pricing plan the estimate assumes."
        },
        "total": {
          "type": "number"
        }
      }
    },
    "total": {
      "type": "number",
      "description": "Wraps fee plus the AWS bill."
    },
    "shareUrl": {
      "type": "string",
      "description": "Link reproducing this estimate on wraps.dev."
    }
  },
  "required": [
    "currency",
    "period",
    "total"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools
verifiedversion not recorded4 tools