Skip to content

Commit 0ad20fe

Browse files
feat(api): api update
1 parent db87453 commit 0ad20fe

File tree

13 files changed

+19
-152
lines changed

13 files changed

+19
-152
lines changed

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 25
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/inbound%2Finbound-0eec7f3925de37b82e56b712404e4e92eaff7e6747dc92e7ba5e9b37be586aec.yml
3-
openapi_spec_hash: b2a2f0862583e7d2111f82b0529c5ef3
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/inbound%2Finbound-8d78f1e2becdde4f43d50a0f21fe546cd01a191cd706734afc8a5a66e1878f79.yml
3+
openapi_spec_hash: df58e6234a3508839ce04e01b10d4ff0
44
config_hash: 7d57a9b08b6a2266096b96cb565245be

packages/mcp-server/README.md

Lines changed: 4 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -246,8 +246,8 @@ The following tools are available in this MCP server.
246246

247247
### Resource `domains`:
248248

249-
- `create_domains` (`write`): Add a new domain for email receiving. Automatically initiates SES verification and returns required DNS records. Subdomains inherit verification from their verified parent domain.
250-
- `retrieve_domains` (`read`): Get detailed information about a specific domain including DNS records. Use `?check=true` for live DNS and SES verification.
249+
- `create_domains` (`write`): Add a new domain for email receiving. Automatically initiates verification and returns required DNS records. Subdomains inherit verification from their verified parent domain.
250+
- `retrieve_domains` (`read`): Get detailed information about a specific domain including DNS records. Use `?check=true` for a live verification check.
251251
- `update_domains` (`write`): Update catch-all email settings for a domain. Catch-all receives emails sent to any address on your domain. Domain must be verified first.
252252
- `list_domains` (`read`): Get paginated list of domains for authenticated user with optional filtering.
253253
- `delete_domains` (`write`): Delete a domain and all associated resources including email addresses, DNS records, and SES configurations. Root domains with subdomains must have subdomains deleted first.
@@ -263,48 +263,16 @@ The following tools are available in this MCP server.
263263

264264
### Resource `email_addresses`:
265265

266-
- `create_email_addresses` (`write`): Create a new email address for an authenticated user's domain. Automatically configures AWS SES receipt rules.
266+
- `create_email_addresses` (`write`): Create a new email address for an authenticated user's domain, optionally routing to a webhook or endpoint.
267267
- `retrieve_email_addresses` (`read`): Get a specific email address by ID with detailed information including routing configuration
268268
- `update_email_addresses` (`write`): Update an email address's routing (endpoint/webhook) or active status. Cannot have both endpoint and webhook.
269269
- `list_email_addresses` (`read`): Get paginated list of email addresses for authenticated user with optional filtering by domain, active status, and receipt rule configuration
270-
- `delete_email_addresses` (`write`): Delete an email address and clean up associated SES receipt rules. Returns cleanup status.
270+
- `delete_email_addresses` (`write`): Delete an email address. Returns cleanup status.
271271

272272
### Resource `emails`:
273273

274274
- `retrieve_emails` (`read`): Retrieve a single email by ID. Works for sent, received, and scheduled emails.
275275
- `list_emails` (`read`): List all email activity (sent, received, and scheduled) with comprehensive filtering options.
276-
277-
**Type Filtering:**
278-
279-
- `all` - Returns sent, received, and scheduled emails combined (default)
280-
- `sent` - Only outbound emails you've sent
281-
- `received` - Only inbound emails you've received
282-
- `scheduled` - Only emails scheduled for future delivery
283-
284-
**Status Filtering:**
285-
286-
- `delivered` - Successfully delivered emails
287-
- `pending` - Emails currently being processed
288-
- `failed` - Emails that failed to deliver
289-
- `bounced` - Emails that bounced (sent only)
290-
- `scheduled` - Emails scheduled for future delivery
291-
- `cancelled` - Cancelled scheduled emails
292-
- `unread` - Unread received emails
293-
- `read` - Read received emails
294-
- `archived` - Archived received emails
295-
296-
**Time Range Filtering:**
297-
298-
- `1h` - Last hour
299-
- `24h` - Last 24 hours
300-
- `7d` - Last 7 days
301-
- `30d` - Last 30 days (default)
302-
- `90d` - Last 90 days
303-
- `all` - All time
304-
305-
**Address Filtering:**
306-
Supports filtering by domain ID, domain name, address ID, or raw email address (e.g., '[email protected]').
307-
308276
- `delete_emails` (`write`): Cancel a scheduled email by ID. Only works for emails that haven't been sent yet.
309277
- `reply_emails` (`write`): Reply to an email or thread. Accepts either an email ID or thread ID (replies to latest message in thread). Supports reply all functionality.
310278
- `retry_emails` (`write`): Retry delivery of a received email. Can retry to a specific endpoint, retry a specific failed delivery, or retry to all configured endpoints.
@@ -325,44 +293,10 @@ The following tools are available in this MCP server.
325293
- `inbound` - Emails you received
326294
- `outbound` - Emails you sent (includes delivery status)
327295

328-
**Message Content:**
329-
Each message includes:
330-
331-
- Full body content (text and HTML)
332-
- Sender and recipient information
333-
- Attachments metadata
334-
- Read status and timestamps
335-
- Threading headers (In-Reply-To, References)
336-
337-
**Typical Workflow:**
338-
339-
1. List threads using `GET /mail/threads`
340-
2. User clicks a thread
341-
3. Fetch full thread using this endpoint
342-
4. Display conversation view with all messages
343-
344296
- `list_mail` (`read`): List email threads (conversations) for your inbox with cursor-based pagination. This is the primary endpoint for building an inbox UI.
345297

346298
**What is a Thread?**
347299
A thread groups related emails together based on the In-Reply-To and References headers, similar to how Gmail groups conversations. Each thread contains both inbound (received) and outbound (sent) messages.
348300

349-
**Filtering:**
350-
351-
- `domain` - Filter by domain ID or name (e.g., 'example.com'). Returns threads where any participant matches the domain.
352-
- `address` - Filter by email address (e.g., '[email protected]'). Returns threads where the address is a participant.
353-
- `search` - Search in subject lines and participant emails.
354-
- `unread` - Set to 'true' to only return threads with unread messages.
355-
356-
**Pagination:**
357-
Uses cursor-based pagination for efficient infinite scroll. Pass `pagination.next_cursor` from the response as the `cursor` parameter to get the next page.
358-
359-
**Response:**
360-
Each thread includes:
361-
362-
- Thread metadata (subject, participants, message count)
363-
- `latest_message` - Preview of the most recent message (inbound or outbound)
364-
- `has_unread` - Whether there are unread inbound messages
365-
- `unread_count` - Number of unread messages
366-
367301
**Use with /mail/threads/:id:**
368302
Use this endpoint to list threads, then use `GET /mail/threads/:id` to fetch all messages in a specific thread.

packages/mcp-server/src/tools/domains/create-domains.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export const metadata: Metadata = {
1818
export const tool: Tool = {
1919
name: 'create_domains',
2020
description:
21-
"When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nAdd a new domain for email receiving. Automatically initiates SES verification and returns required DNS records. Subdomains inherit verification from their verified parent domain.\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/domain_create_response',\n $defs: {\n domain_create_response: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n canReceiveEmails: {\n type: 'boolean'\n },\n createdAt: {\n type: 'string',\n format: 'date-time'\n },\n dnsRecords: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n isRequired: {\n type: 'boolean'\n },\n name: {\n type: 'string'\n },\n type: {\n type: 'string'\n },\n value: {\n type: 'string'\n },\n description: {\n type: 'string'\n }\n },\n required: [ 'isRequired',\n 'name',\n 'type',\n 'value'\n ]\n }\n },\n domain: {\n type: 'string'\n },\n domainProvider: {\n type: 'string'\n },\n hasMxRecords: {\n type: 'boolean'\n },\n providerConfidence: {\n type: 'string'\n },\n status: {\n type: 'string',\n enum: [ 'pending',\n 'verified',\n 'failed'\n ]\n },\n updatedAt: {\n type: 'string',\n format: 'date-time'\n },\n dnsConflict: {\n type: 'object',\n properties: {\n hasConflict: {\n type: 'boolean'\n },\n message: {\n type: 'string'\n },\n conflictType: {\n type: 'string',\n enum: [ 'mx',\n 'cname',\n 'both'\n ]\n },\n existingRecords: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n type: {\n type: 'string'\n },\n value: {\n type: 'string'\n }\n },\n required: [ 'type',\n 'value'\n ]\n }\n }\n },\n required: [ 'hasConflict',\n 'message'\n ]\n },\n mailFromDomain: {\n type: 'string'\n },\n mailFromDomainStatus: {\n type: 'string'\n },\n message: {\n type: 'string'\n },\n parentDomain: {\n type: 'string'\n }\n },\n required: [ 'id',\n 'canReceiveEmails',\n 'createdAt',\n 'dnsRecords',\n 'domain',\n 'domainProvider',\n 'hasMxRecords',\n 'providerConfidence',\n 'status',\n 'updatedAt'\n ]\n }\n }\n}\n```",
21+
"When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nAdd a new domain for email receiving. Automatically initiates verification and returns required DNS records. Subdomains inherit verification from their verified parent domain.\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/domain_create_response',\n $defs: {\n domain_create_response: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n canReceiveEmails: {\n type: 'boolean'\n },\n createdAt: {\n type: 'string',\n format: 'date-time'\n },\n dnsRecords: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n isRequired: {\n type: 'boolean'\n },\n name: {\n type: 'string'\n },\n type: {\n type: 'string'\n },\n value: {\n type: 'string'\n },\n description: {\n type: 'string'\n }\n },\n required: [ 'isRequired',\n 'name',\n 'type',\n 'value'\n ]\n }\n },\n domain: {\n type: 'string'\n },\n domainProvider: {\n type: 'string'\n },\n hasMxRecords: {\n type: 'boolean'\n },\n providerConfidence: {\n type: 'string'\n },\n status: {\n type: 'string',\n enum: [ 'pending',\n 'verified',\n 'failed'\n ]\n },\n updatedAt: {\n type: 'string',\n format: 'date-time'\n },\n dnsConflict: {\n type: 'object',\n properties: {\n hasConflict: {\n type: 'boolean'\n },\n message: {\n type: 'string'\n },\n conflictType: {\n type: 'string',\n enum: [ 'mx',\n 'cname',\n 'both'\n ]\n },\n existingRecords: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n type: {\n type: 'string'\n },\n value: {\n type: 'string'\n }\n },\n required: [ 'type',\n 'value'\n ]\n }\n }\n },\n required: [ 'hasConflict',\n 'message'\n ]\n },\n mailFromDomain: {\n type: 'string'\n },\n mailFromDomainStatus: {\n type: 'string'\n },\n message: {\n type: 'string'\n },\n parentDomain: {\n type: 'string'\n }\n },\n required: [ 'id',\n 'canReceiveEmails',\n 'createdAt',\n 'dnsRecords',\n 'domain',\n 'domainProvider',\n 'hasMxRecords',\n 'providerConfidence',\n 'status',\n 'updatedAt'\n ]\n }\n }\n}\n```",
2222
inputSchema: {
2323
type: 'object',
2424
properties: {

0 commit comments

Comments
 (0)