Skip to main content
Glama

Record a Follow-up

getmattered_record_follow_up

Records a follow-up the user sent themselves. Nothing is sent.

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>",
      "body": "<body>"
    },
    "name": "getmattered_record_follow_up"
  }
}

Input Schema

NameRequiredDescriptionDefault
bodyYesThe text the user sent, 20 to 4,000 characters.
channelNoWhere the user sent it: email, linkedin or other. Defaults to email.
subjectNoThe subject line, if the message had one.
recipientNoWho it went to: an email address or a LinkedIn handle.
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. Changed1 schema field changed
    • addedOutput schema / properties / setupStep
      Added value: +{
      +  "description": "Set while account setup is open: the step to take first.",
      +  "type": "string"
      +}
  3. Changed2 schema fields changed
    • 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"
      +]
  4. Added

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare a non-read-only, non-destructive, non-idempotent write, so the safety profile is covered. The description adds the one behavioral fact annotations cannot express — that no message is actually transmitted — which is exactly the reassurance needed to stop an agent conflating this with send_follow_up. It omits duplicate handling and whether logging clears a due follow-up item.

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

Conciseness5/5

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

Two short sentences, front-loaded with the operation and immediately followed by the most decision-relevant constraint. Nothing is padded or restated from the title.

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

Completeness4/5

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

An output schema exists, so return values need no explanation, and the five parameters are fully documented in the schema. What remains unsaid is how the record relates to getmattered_list_due_follow_ups — whether a logged follow-up resolves or duplicates a due item — which matters for a tool in a follow-up tracking workflow.

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%, with every parameter, the enum for channel, and the length bounds already documented, and application_id even points at the tools that supply it. The description adds no meaning beyond the schema, which is acceptable here but not additive.

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 ("Records a follow-up") plus the crucial qualifier that the follow-up was one the user sent themselves, so an agent can tell this is a logging action, not a composing one. It stops short of naming the siblings it differs from (draft_follow_up, send_follow_up), though "Nothing is sent" gestures at that distinction.

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

Usage Guidelines3/5

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

Usage is only implied: the agent must infer this is for logging an already-sent message rather than drafting or dispatching one. There is no explicit when-to-use statement, no when-not, and no alternative tool named despite three close siblings existing in the same namespace.

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.