Skip to main content
Glama

Send a Follow-up Email

getmattered_send_follow_up
Destructive

Sends a follow-up from the user's connected Gmail or Outlook. It cannot be undone.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "application_id": "<application_id>",
      "to": "<to>",
      "subject": "<subject>",
      "body": "<body>"
    },
    "name": "getmattered_send_follow_up"
  }
}

Input Schema

NameRequiredDescriptionDefault
toYesThe recipient's email address, exactly as the user gave it.
bodyYesThe message text, 20 to 4,000 characters: the exact text the user approved.
subjectYesThe subject line the user approved.
confirm_tokenNoThe token from a previous call that returned confirmation_required, valid once the user said yes to that exact email, with the same arguments. It works once, for 10 minutes.
application_idYesThe application, from getmattered_list_due_follow_ups or getmattered_get_applications.

Output Schema

NameRequiredDescriptionDefault
draftYesFrom getmattered_draft_follow_up: the drafted message. Nothing was sent.
actionYesThe operation that ran, one of list, history, draft, send or record_sent.
historyYesFrom getmattered_list_sent_follow_ups: follow-ups already sent, newest first.
recordedYesFrom getmattered_send_follow_up or getmattered_record_follow_up: the follow-up count after it was recorded.
followUpsYesFrom getmattered_list_due_follow_ups: applications whose follow-up is due, most urgent first.
setupStepNoPresent while account setup is open: the first setup step.
nextCursorYesFrom getmattered_list_sent_follow_ups: the cursor value for the next page. Null on the last page.
confirmTokenYesFrom getmattered_send_follow_up when nothing was sent yet: the confirm_token value that sends this email, with the same arguments, after the user's yes. Works once, for 10 minutes.
notConfirmedYesTrue when the user declined the confirmation and nothing was sent.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • changedOutput schema / properties / action / description
      Previous value: -"The operation that ran: list, history, draft, send or record_sent."New value: +"The operation that ran, one of list, history, draft, send or record_sent."
    • changedOutput schema / properties / confirmToken / description
      Previous value: -"From getmattered_send_follow_up when nothing was sent yet: show the user the email, then pass this as confirm_token with the same arguments after their yes. Works once, for 10 minutes."New value: +"From getmattered_send_follow_up when nothing was sent yet: the confirm_token value that sends this email, with the same arguments, after the user's yes. Works once, for 10 minutes."
    • changedOutput schema / properties / followUps / anyOf
      Previous value: -[
      -  {
      -    "items": {
      -      "additionalProperties": false,
      -      "properties": {
      -        "applicationId": {
      -          "description": "Pass as application_id to getmattered_draft_follow_up, getmattered_send_follow_up or getmattered_record_follow_up.",
      -          "type": "number"
      -        },
      -        "company": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "followUpCount": {
      -          "type": "number"
      -        },
      -        "jobTitle": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "lastFollowUpAt": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "nextFollowUpDueAt": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "urgency": {
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "applicationId",
      -        "jobTitle",
      -        "company",
      -        "urgency",
      -        "followUpCount",
      -        "lastFollowUpAt",
      -        "nextFollowUpDueAt"
      -      ],
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "items": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "applicationId": {
      +          "description": "The application_id getmattered_draft_follow_up, getmattered_send_follow_up and getmattered_record_follow_up take.",
      +          "type": "number"
      +        },
      +        "company": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "followUpCount": {
      +          "type": "number"
      +        },
      +        "jobTitle": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "lastFollowUpAt": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "nextFollowUpDueAt": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "urgency": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "applicationId",
      +        "jobTitle",
      +        "company",
      +        "urgency",
      +        "followUpCount",
      +        "lastFollowUpAt",
      +        "nextFollowUpDueAt"
      +      ],
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / nextCursor / description
      Previous value: -"From getmattered_list_sent_follow_ups: pass as cursor for the next page. Null on the last page."New value: +"From getmattered_list_sent_follow_ups: the cursor value for the next page. Null on the last page."
    • changedOutput schema / properties / setupStep / description
      Previous value: -"Set while account setup is open: the step to take first."New value: +"Present while account setup is open: the first setup step."
  2. Changed2 schema fields changed
    • changedInput schema / properties / confirm_token / description
      Previous value: -"The token from a previous call that returned confirmation_required. Pass it only after the user said yes to that exact email, with the same arguments. It works once, for 10 minutes."New value: +"The token from a previous call that returned confirmation_required, valid once the user said yes to that exact email, with the same arguments. It works once, for 10 minutes."
    • changedInput schema / properties / to / description
      Previous value: -"The recipient's email address, exactly as the user gave it. Never guess one."New value: +"The recipient's email address, exactly as the user gave it."
  3. Changed1 schema field changed
    • addedOutput schema / properties / setupStep
      Added value: +{
      +  "description": "Set while account setup is open: the step to take first.",
      +  "type": "string"
      +}
  4. Changed3 schema fields changed
    • addedInput schema / properties / confirm_token
      Added value: +{
      +  "description": "The token from a previous call that returned confirmation_required. Pass it only after the user said yes to that exact email, with the same arguments. It works once, for 10 minutes.",
      +  "format": "uuid",
      +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +  "type": "string"
      +}
    • addedOutput schema / properties / confirmToken
      Added value: +{
      +  "description": "From getmattered_send_follow_up when nothing was sent yet: show the user the email, then pass this as confirm_token with the same arguments after their yes. Works once, for 10 minutes.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "action",
      -  "followUps",
      -  "history",
      -  "nextCursor",
      -  "draft",
      -  "recorded",
      -  "notConfirmed"
      -]New value: +[
      +  "action",
      +  "followUps",
      +  "history",
      +  "nextCursor",
      +  "draft",
      +  "recorded",
      +  "notConfirmed",
      +  "confirmToken"
      +]
  5. Added

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the safety profile is structured. The description adds real value by naming the sending account (the user's connected Gmail or Outlook) and restating irreversibility in plain language, but it omits the two-step confirmation behavior implied by confirm_token and any rate-limit or delivery-failure behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no filler; the destructive warning is front-loaded after the core action. It is arguably too terse for a destructive tool, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and the input schema is fully documented, so return values and parameters are covered elsewhere. However, for an irreversible send that requires a confirm_token handshake and has several near-duplicate siblings, the description leaves the confirmation flow and tool-selection story entirely to other fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter including confirm_token's single-use 10-minute window is already documented in the schema. The description adds no parameter meaning beyond that, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Sends a follow-up") plus the sending channel (the user's connected Gmail or Outlook). It is clear on its own, but it never distinguishes itself from close siblings like getmattered_draft_follow_up, getmattered_reply_to_email, or getmattered_record_follow_up, so an agent must infer the difference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no named alternative. In particular, nothing says to use getmattered_draft_follow_up first, or how this differs from reply_to_email or record_follow_up, which sit right next to it in the toolset.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.