Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.getmaito.com/llms.txt

Use this file to discover all available pages before exploring further.

MCP Tools

This file documents the currently registered MCP tools in apps/mcp. Tool availability is filtered by the authenticated user’s capabilities. The full registered surface is listed below.

Draft Tools

draft.list

  • Purpose: list drafts in the active account set.
  • Capability: content.read
  • Input:
    • limit optional positive integer

draft.get

  • Purpose: fetch one draft by ID.
  • Capability: content.read
  • Input:
    • draftId required string

draft.create

  • Purpose: create a new draft.
  • Capability: content.generate
  • Input:
    • body required string
    • bodies optional object of platform to body
    • platform required enum: x | linkedin
    • metadata optional object

draft.revise

  • Purpose: create a new draft version.
  • Capability: content.generate
  • Input:
    • draftId required string
    • body required string
    • platform optional enum: x | linkedin
    • baseRevision optional non-negative integer
    • parentVersionId optional string
    • branchKey optional string
    • metadata optional object

draft.schedule

  • Purpose: schedule a draft for publishing through the active set’s default social account.
  • Capability: schedule.manage
  • Input:
    • draftId required string
    • scheduledFor required ISO datetime string
    • platform optional enum: x | linkedin

draft.publish_now

  • Purpose: publish a draft immediately through the active set’s default social account.
  • Capability: publish.execute
  • Input:
    • draftId required string
    • platform optional enum: x | linkedin

draft.unschedule

  • Purpose: remove a scheduled publish for a destination.
  • Capability: schedule.manage
  • Input:
    • draftId required string
    • destinationId required string

Document Tools

document.get

  • Purpose: get a document file by path from the active account set.
  • Capability: content.read
  • Input:
    • path required string
  • Purpose: search document files by query, role, type, and status.
  • Capability: content.read
  • Input:
    • query optional string
    • role optional enum: profile | style
    • documentType optional enum: note | published_post | scheduled_post | draft | campaign | idea | proof
    • status optional enum: active | draft | scheduled | published | archived
    • limit optional positive integer, max 100

document.context

  • Purpose: compose ranked document context for a writing or retrieval task.
  • Capability: content.read
  • Input:
    • task.type required enum: draft_post | improve_draft | build_sequence | style_reference | general
    • task.goal required string
    • task.platform optional enum: linkedin | x
    • seedDocumentIds optional array of up to 8 document IDs
    • maxDocuments optional integer from 1 to 12

document.upsert

  • Purpose: create or update a document file by path.
  • Capability: workspace.manage
  • Input:
    • path required string
    • role optional nullable enum: profile | style
    • documentType optional enum: note | published_post | scheduled_post | draft | campaign | idea | proof
    • status optional enum: active | draft | scheduled | published | archived
    • title optional string
    • bodyMarkdown optional string
    • summary optional nullable string
    • metadata optional object

Newsletter Settings Tools

newsletter.settings.get

  • Purpose: get basic newsletter settings for the active account set.
  • Capability: content.read
  • Input: empty object

newsletter.settings.update_basic

  • Purpose: update safe basic newsletter settings.
  • Capability: workspace.manage
  • Input: at least one of:
    • newsletterName optional string
    • newsletterDescription optional nullable string
    • publicationLogoUrl optional nullable URL
    • defaultThumbnailUrl optional nullable URL
    • contentTags optional array, max 3
    • widgetThemeColor optional enum: black | blue | green | fuchsia | orange | red
    • senderName optional string
    • replyToEmail optional nullable email
    • publicSubscribeSlug optional slug
    • physicalAddress optional string
    • status optional enum: active | disabled
This tool cannot change domains, sender email, or verification settings.

Newsletter Issue Tools

newsletter.issue.list

  • Purpose: list newsletter issues.
  • Capability: content.read
  • Input:
    • status optional enum: draft | sending | sent | failed
    • limit optional positive integer, max 200

newsletter.issue.get

  • Purpose: get one newsletter issue by ID.
  • Capability: content.read
  • Input:
    • issueId required string

newsletter.issue.create

  • Purpose: create a draft newsletter issue.
  • Capability: content.generate
  • Input:
    • subject required string
    • previewText optional string
    • thumbnailUrl optional nullable URL
    • contentHtml optional string
    • contentJson optional JSON value
    • categoryId optional nullable string
Either contentHtml or contentJson is required.

newsletter.issue.update

  • Purpose: update a draft newsletter issue.
  • Capability: content.generate
  • Input:
    • issueId required string
    • issue required object with at least one of:
      • subject optional string
      • previewText optional nullable string
      • thumbnailUrl optional nullable URL
      • contentHtml optional nullable string
      • contentJson optional nullable JSON value
      • categoryId optional nullable string

newsletter.issue.delete

  • Purpose: delete a draft newsletter issue.
  • Capability: content.generate
  • Input:
    • issueId required string

newsletter.issue.send_test

  • Purpose: send a test email for a newsletter issue to one recipient.
  • Capability: publish.execute
  • Input:
    • issueId required string
    • toEmail required email
    • toName optional string

newsletter.issue.send

  • Purpose: send a newsletter issue to subscribers now.
  • Capability: publish.execute
  • Input:
    • issueId required string

newsletter.issue.schedule

  • Purpose: schedule a newsletter issue send for a future time.
  • Capability: schedule.manage
  • Input:
    • issueId required string
    • scheduledFor required ISO datetime string

Newsletter Subscriber Tools

newsletter.subscriber.list

  • Purpose: list newsletter subscribers.
  • Capability: content.read
  • Input:
    • status optional enum: subscribed | unsubscribed | bounced | complained | blocked
    • query optional string
    • segmentId optional string
    • limit optional positive integer, max 500
    • offset optional non-negative integer

newsletter.subscriber.import

  • Purpose: import newsletter subscribers from structured subscribers or CSV text.
  • Capability: workspace.manage
  • Input:
    • subscribers optional array of subscriber objects
    • csvText optional CSV text, max 10,000,000 characters
    • optInAttestation required literal true
Provide either subscribers or csvText, not both. Structured subscriber objects support:
  • email required email
  • name optional string
  • tags optional string array
  • customFields optional object
  • sourceType optional enum: manual | subscribe_page | social_post | embed | import | api
  • source optional string
  • sourceIssueId optional string
  • sourcePostId optional string
  • sourceCtaLinkId optional string
  • sourcePlatform optional enum: x | linkedin

newsletter.subscriber.block

  • Purpose: block a newsletter subscriber by ID.
  • Capability: workspace.manage
  • Input:
    • subscriberId required string

newsletter.subscriber.delete

  • Purpose: delete a newsletter subscriber by ID.
  • Capability: workspace.manage
  • Input:
    • subscriberId required string

Newsletter Category Tools

newsletter.category.list

  • Purpose: list newsletter categories.
  • Capability: content.read
  • Input: empty object

newsletter.category.create

  • Purpose: create a newsletter category.
  • Capability: workspace.manage
  • Input:
    • name required string, max 48

newsletter.category.delete

  • Purpose: delete a newsletter category by ID.
  • Capability: workspace.manage
  • Input:
    • categoryId required string

Newsletter Analytics Tools

newsletter.analytics.overview

  • Purpose: get overview analytics for newsletter subscribers and issues.
  • Capability: content.read
  • Input: empty object

newsletter.analytics.issue

  • Purpose: get analytics for a single newsletter issue.
  • Capability: content.read
  • Input:
    • issueId required string

newsletter.analytics.sources

  • Purpose: get subscriber source analytics for the newsletter.
  • Capability: content.read
  • Input: empty object

newsletter.analytics.attribution

  • Purpose: get newsletter attribution analytics by issue, post, CTA link, and platform.
  • Capability: content.read
  • Input: empty object

Response Shape

Tool calls return JSON-RPC result with:
  • content: text array containing JSON for human/debug use
  • structuredContent: machine-friendly object
  • isError: true when tool or domain validation failed

Example Tool Call Payload

{
  "jsonrpc": "2.0",
  "id": "req-1",
  "method": "tools/call",
  "params": {
    "name": "draft.schedule",
    "arguments": {
      "draftId": "draft_123",
      "scheduledFor": "2026-04-10T12:00:00.000Z"
    }
  }
}