Skip to main content

Capabilities

CapabilityAllows
content.readRead drafts, documents, newsletter settings, subscribers, categories, and analytics
content.generateCreate or revise drafts and newsletter issues
schedule.manageSchedule drafts and newsletter issues
publish.executePublish drafts and send newsletter issues
workspace.manageUpdate account-owned settings, documents, subscribers, and categories

Drafts

draft.list

Lists drafts in the active account set. Capability: content.read Input:
{
  "limit": 20
}

draft.get

Gets a draft by ID. Capability: content.read Input:
{
  "draftId": "draft_123"
}

draft.create

Creates a draft. Capability: content.generate Input:
{
  "body": "Draft body for LinkedIn.",
  "platform": "linkedin",
  "bodies": {
    "x": "Shorter X version."
  },
  "metadata": {
    "source": "newsletter_issue"
  }
}
platform must be x or linkedin.

draft.revise

Creates a new draft version. Capability: content.generate Input:
{
  "draftId": "draft_123",
  "body": "Revised body.",
  "platform": "linkedin",
  "baseRevision": 1,
  "parentVersionId": "version_123",
  "branchKey": "main",
  "metadata": {
    "reason": "shorter"
  }
}

draft.schedule

Schedules a draft through the active account set’s default social destination. Capability: schedule.manage Input:
{
  "draftId": "draft_123",
  "platform": "linkedin",
  "scheduledFor": "2026-06-01T14:00:00.000Z"
}

draft.publish_now

Publishes a draft immediately through the active account set’s default social destination. Capability: publish.execute Input:
{
  "draftId": "draft_123",
  "platform": "linkedin"
}

draft.unschedule

Removes a queued draft for a destination. Capability: schedule.manage Input:
{
  "draftId": "draft_123",
  "destinationId": "connection_123"
}

Documents

Documents are the reusable file model behind Maito’s context system. Use documents for profiles, style references, notes, ideas, proof, published posts, and draft source material.

document.get

Gets a document by path. Capability: content.read Input:
{
  "path": "profile/founder.md"
}
Searches documents by query and filters. Capability: content.read Input:
{
  "query": "launch positioning",
  "role": "profile",
  "documentType": "idea",
  "status": "active",
  "limit": 10
}
Supported roles: profile, style. Supported document types: note, published_post, scheduled_post, draft, campaign, idea, proof. Supported statuses: active, draft, scheduled, published, archived.

document.context

Composes ranked context for a writing task. This is useful before asking an assistant to write or revise content. Capability: content.read Input:
{
  "task": {
    "type": "draft_post",
    "goal": "Write a launch post using the latest proof points.",
    "platform": "linkedin"
  },
  "seedDocumentIds": ["doc_123"],
  "maxDocuments": 6
}
Task types: draft_post, improve_draft, build_sequence, style_reference, general.

document.upsert

Creates or updates a document at a stable path. Capability: workspace.manage Input:
{
  "path": "style/linkedin.md",
  "role": "style",
  "documentType": "note",
  "status": "active",
  "title": "LinkedIn Style Guide",
  "bodyMarkdown": "Use direct, specific language.",
  "summary": "Preferred LinkedIn tone and examples.",
  "metadata": {
    "source": "manual"
  }
}

Newsletter Settings

newsletter.settings.get

Gets newsletter settings for the active account set. Capability: content.read Input:
{}

newsletter.settings.update_basic

Updates safe basic newsletter settings. Capability: workspace.manage Input:
{
  "newsletterName": "Maito Weekly",
  "newsletterDescription": "Weekly product and creator updates.",
  "publicationLogoUrl": "https://example.com/logo.png",
  "defaultThumbnailUrl": "https://example.com/thumb.png",
  "contentTags": ["Startups", "Writing"],
  "widgetThemeColor": "green",
  "senderName": "Maito",
  "replyToEmail": "hello@example.com",
  "publicSubscribeSlug": "maito-weekly",
  "physicalAddress": "123 Example St",
  "status": "active"
}
This tool cannot change domains, sender email, or verification settings.

Newsletter Issues

newsletter.issue.list

Lists newsletter issues. Capability: content.read Input:
{
  "status": "draft",
  "limit": 20
}
Scheduled issues are draft issues with scheduledFor set.

newsletter.issue.get

Gets one newsletter issue. Capability: content.read Input:
{
  "issueId": "issue_123"
}

newsletter.issue.create

Creates a draft newsletter issue. Capability: content.generate Input:
{
  "subject": "Launch notes",
  "previewText": "What changed this week",
  "thumbnailUrl": "https://example.com/newsletter.png",
  "contentHtml": "<p>Hello readers.</p>",
  "categoryId": "category_123"
}
Provide either contentHtml or contentJson.

newsletter.issue.update

Updates a draft newsletter issue. Capability: content.generate Input:
{
  "issueId": "issue_123",
  "issue": {
    "subject": "Updated subject",
    "previewText": "Updated preview",
    "contentHtml": "<p>Updated body.</p>",
    "categoryId": null
  }
}

newsletter.issue.delete

Deletes a draft newsletter issue. Capability: content.generate Input:
{
  "issueId": "issue_123"
}

newsletter.issue.send_test

Sends a test email for a newsletter issue to one recipient. Capability: publish.execute Input:
{
  "issueId": "issue_123",
  "toEmail": "dmitry@example.com",
  "toName": "Dmitry"
}

newsletter.issue.send

Queues a newsletter issue to send now. Capability: publish.execute Input:
{
  "issueId": "issue_123"
}

newsletter.issue.schedule

Schedules a newsletter issue for a future time. Capability: schedule.manage Input:
{
  "issueId": "issue_123",
  "scheduledFor": "2026-06-01T14:00:00.000Z"
}

Newsletter Subscribers

newsletter.subscriber.list

Lists newsletter subscribers. Capability: content.read Input:
{
  "status": "subscribed",
  "query": "example.com",
  "segmentId": "segment_123",
  "limit": 100,
  "offset": 0
}
Supported statuses: subscribed, unsubscribed, bounced, complained, blocked.

newsletter.subscriber.import

Imports subscribers from structured records or CSV text. Capability: workspace.manage Structured input:
{
  "subscribers": [
    {
      "email": "reader@example.com",
      "name": "Reader",
      "tags": ["customer"],
      "customFields": {
        "plan": "pro"
      },
      "sourceType": "api"
    }
  ],
  "optInAttestation": true
}
CSV input:
{
  "csvText": "email,name\nreader@example.com,Reader",
  "optInAttestation": true
}
Provide either subscribers or csvText, not both. optInAttestation must be true.

newsletter.subscriber.block

Blocks a subscriber. Capability: workspace.manage Input:
{
  "subscriberId": "subscriber_123"
}

newsletter.subscriber.delete

Deletes a subscriber. Capability: workspace.manage Input:
{
  "subscriberId": "subscriber_123"
}

Newsletter Categories

newsletter.category.list

Lists newsletter categories. Capability: content.read Input:
{}

newsletter.category.create

Creates a newsletter category. Capability: workspace.manage Input:
{
  "name": "Product Updates"
}

newsletter.category.delete

Deletes a newsletter category. Capability: workspace.manage Input:
{
  "categoryId": "category_123"
}

Newsletter Analytics

newsletter.analytics.overview

Gets overview analytics for subscribers and issues. Capability: content.read Input:
{}

newsletter.analytics.issue

Gets analytics for one issue. Capability: content.read Input:
{
  "issueId": "issue_123"
}

newsletter.analytics.sources

Gets subscriber source analytics. Capability: content.read Input:
{}

newsletter.analytics.attribution

Gets attribution analytics by issue, post, CTA link, and platform. Capability: content.read Input:
{}