Overview

Maito's MCP server lets AI coding assistants and other MCP clients access draft and document actions over HTTP. It supports Model Context Protocol with OAuth.

Getting started

Add this server URL to your MCP client:

https://api.maitoai.com/mcp

Most MCP clients support remote or URL-based servers. Add the URL above and the client should detect OAuth automatically.

When the client connects, it should open a browser window so the user can authorize access through Clerk's consent screen.

App setup

Claude Code

Run this command in your terminal:

claude mcp add maito --transport http https://api.maitoai.com/mcp

Claude Code should detect OAuth support and open the browser-based authorization flow.

Claude Desktop

Go to SettingsIntegrations Add MCP Server. Enter https://api.maitoai.com/mcp. The app should prompt the user to authorize in the browser.

Cursor

Go to Cursor SettingsMCP Add new MCP Server. Set the type to URL, enter https://api.maitoai.com/mcp, then complete the OAuth consent flow.

Windsurf

Follow Windsurf's MCP configuration guide and add a remote HTTP server with URL https://api.maitoai.com/mcp. Windsurf should handle the OAuth flow after connection.

Codex

Run this command in your terminal:

codex mcp add maito --url https://api.maitoai.com/mcp

Codex should detect OAuth support and launch the browser consent screen automatically.

VS Code / Copilot

Add to your MCP settings (.vscode/mcp.json or user settings):

{
  "servers": {
    "maito": {
      "type": "http",
      "url": "https://api.maitoai.com/mcp"
    }
  }
}

ChatGPT

Go to SettingsConnectors Add Connector. Use URL https://api.maitoai.com/mcp and complete the OAuth authorization flow if prompted.

Other MCP clients

Any MCP client that supports remote HTTP MCP servers with OAuth can connect. Use https://api.maitoai.com/mcp and authorize when prompted.

Available tools

ToolDescription
draft.listList drafts in the active account set
draft.getGet full details for a specific draft
draft.createCreate a new draft
draft.reviseCreate a new draft version
draft.scheduleSchedule a draft for later publishing
draft.publish_nowPublish a draft immediately
draft.unscheduleRemove a scheduled publish for a destination
document.getGet a document file by path
document.upsertCreate or update a document file by path