MCP Tools Reference: gmailmcp.googleapis.com

Ferramenta: create_draft

Cria um novo rascunho de e-mail na conta do Gmail do usuário autenticado.

Essa ferramenta recebe como entrada os endereços dos destinatários, um assunto e o conteúdo do corpo. Se o rascunho for criado como uma resposta a uma mensagem, o ID da mensagem original precisará ser transmitido à ferramenta no campo replyToMessageId.

Retorna apenas o ID exclusivo (id) da mensagem de rascunho.

Limitação: ainda não é possível criar rascunhos com anexos.

O exemplo a seguir demonstra como usar curl para invocar a ferramenta MCP create_draft.

Solicitação curl
curl --location 'https://gmailmcp.googleapis.com/mcp/v1' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
  "method": "tools/call",
  "params": {
    "name": "create_draft",
    "arguments": {
      // provide these details according to the tool's MCP specification
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'
                

Esquema de entrada

Mensagem de solicitação para RPC CreateDraft.

CreateDraftRequest

Representação JSON
{
  "to": [
    string
  ],
  "cc": [
    string
  ],
  "bcc": [
    string
  ],
  "subject": string,
  "body": string,
  "htmlBody": string,
  "replyToMessageId": string,
  "attachments": [
    {
      object (Attachment)
    }
  ]
}
Campos
to[]

string

Opcional. Os destinatários principais do rascunho de e-mail. Cada string PRECISA ser um endereço de e-mail simples válido (por exemplo, "user@example.com"). O formato "Name email@example.com" NÃO é compatível com essa ferramenta.

cc[]

string

Opcional. Os destinatários da cópia carbono do rascunho de e-mail. Cada string PRECISA ser um endereço de e-mail simples válido (por exemplo, "user@example.com"). O formato "Name email@example.com" NÃO é compatível com essa ferramenta.

bcc[]

string

Opcional. Os destinatários da cópia carbono oculta do rascunho de e-mail. Cada string PRECISA ser um endereço de e-mail simples válido (por exemplo, "user@example.com"). O formato "Name email@example.com" NÃO é compatível com essa ferramenta.

subject

string

Opcional. A linha de assunto do e-mail. O padrão é vazio se não for fornecido.

body

string

Opcional. O conteúdo principal do corpo do rascunho de e-mail. Se html_body também for fornecido, esse campo será tratado como a alternativa de texto simples.

htmlBody

string

O conteúdo HTML do rascunho de e-mail. Se fornecido, ele será usado como a versão de texto avançado do e-mail.

replyToMessageId

string

Opcional. O ID da mensagem a ser respondida. Se fornecido, ele será usado como o ID da mensagem de resposta para o rascunho de e-mail, e o body e o html_body serão anexados ao corpo da mensagem original.

attachments[]

object (Attachment)

Opcional. Os anexos a serem incluídos no e-mail. O tamanho combinado dos anexos na mensagem não pode exceder 25 MB. Se você precisar enviar arquivos maiores que 25 MB, faça o upload do arquivo para o Drive primeiro e insira o link do Drive no corpo ou html_body.

Anexo

Representação JSON
{
  "id": string,
  "filename": string,
  "mimeType": string,
  "content": string,
  "inline": boolean
}
Campos
id

string

Opcional. Apenas saída. Quando presente, contém o ID de um anexo externo que pode ser recuperado em uma solicitação GetMessageAttachment separada.

filename

string

Opcional. O nome do arquivo a ser anexado, por exemplo, "invoice.pdf". Para anexos inline, ele é usado para geração de Content-ID. Para anexos normais, o nome do arquivo é usado para especificar o nome do arquivo para clientes de e-mail. Se não for fornecido, o anexo poderá ser recebido sem nome.

mimeType

string

Opcional. O campo que representa um tipo de conteúdo ou mídia precisa usar o tipo MIME da IANA, https://www.iana.org/assignments/media-types/media-types.xhtml. Se não for fornecido, o padrão será "application/octet-stream".

content

string (bytes format)

Obrigatório. O conteúdo codificado em base64 do anexo.

Uma string codificada em base64.

inline

boolean

Opcional. Se for verdadeiro, esse anexo será tratado como inline. Um anexo inline é um conteúdo que deve ser exibido no corpo de um e-mail HTML, em vez de ser listado como um arquivo separado para download. Se for falso ou ausente, o padrão será falso, e ele será tratado como um anexo normal.

Esquema de saída

Detalhes de um rascunho.

Rascunho

Representação JSON
{
  "id": string,
  "subject": string,
  "threadId": string,
  "toRecipients": [
    string
  ],
  "ccRecipients": [
    string
  ],
  "bccRecipients": [
    string
  ],
  "plaintextBody": string,
  "date": string,
  "htmlBody": string
}
Campos
id

string

O identificador exclusivo do recurso de rascunho.

subject

string

A linha de assunto da mensagem de rascunho.

threadId

string

O ID da conversa a que esse rascunho pertence.

toRecipients[]

string

Lista de endereços de e-mail de destinatários "Para" extraídos dos cabeçalhos.

ccRecipients[]

string

Lista de endereços de e-mail de destinatários "Cc" extraídos dos cabeçalhos.

bccRecipients[]

string

Lista de endereços de e-mail de destinatários "Cco" extraídos dos cabeçalhos.

plaintextBody

string

Conteúdo do corpo de texto simples, se disponível.

date

string

Data do rascunho no formato ISO 8601 (AAAA-MM-DD).

htmlBody

string

O conteúdo do corpo HTML do rascunho, se disponível.

Anotações de ferramentas

Dica destrutiva: ❌ | Dica idempotente: ❌ | Dica somente leitura: ❌ | Dica de mundo aberto: ❌

Escopos de autorização

Requer um dos seguintes escopos do OAuth:

  • https://mail.google.com/
  • https://www.googleapis.com/auth/gmail.modify
  • https://www.googleapis.com/auth/gmail.compose