Skip to main content
Glama
SuprSend MCP Server - deprecated

SuprSend MCP Server - deprecated

by suprsend

upsert_suprsend_object

Destructive

Modify properties or channel identifiers on a non-user entity (organization, project, vehicle) using actions like set, unset, append, increment, or add/remove email, SMS, push, and other channels.

Instructions

Modify properties or channel identifiers on a SuprSend object — a non-user entity like an organization, project, or vehicle. One call performs ONE action; for multiple changes, call this tool multiple times.

Actions:

  • set, set_once, unset, remove — modify a scalar property by key/value. remove permanently deletes the key.

  • append, increment — modify array / numeric values.

  • add_email / remove_email, add_sms / remove_sms, add_whatsapp / remove_whatsapp, add_androidpush / remove_androidpush, add_iospush / remove_iospush, add_slack / remove_slack, add_ms_teams / remove_ms_teams, add_webpush / remove_webpush — register or deregister a delivery channel.

Channel registration is special. For channel identifiers ALWAYS use the dedicated add_ / remove_ actions — generic set / unset will not register the channel correctly with the delivery router. Slack and MS Teams additionally require the corresponding slack_details / ms_teams_details payload alongside the action; channel id alone is not enough.

When to use: creating an object or modifying its stored state — properties, channels, identifiers.

When NOT to use:

  • For users — use upsert_suprsend_user instead.

  • For preferences — use update_suprsend_category_preference_object (per category) or update_suprsend_object_channel_preference (across categories).

  • For followers / members — use add_suprsend_object_subscriptions.

Side effects: remove and unset permanently delete data. add_ makes the object reachable on that channel for any future workflow run; remove_ stops delivery immediately.

object_type namespaces the object (e.g., "organization", "project") and is required.

Returns: the updated object on success; structured error with field reasons on failure.

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": {
      "object_id": "<object_id>",
      "object_type": "<object_type>",
      "action": "<action>"
    },
    "name": "upsert_suprsend_object"
  }
}

Input Schema

NameRequiredDescriptionDefault
keyNoThe key on which the action is to be performed. only required for set, append, increment, unset actions.
valueNoThe value to needs to be added/removed/set/unset/appended/incremented.
actionYes the action to perform. use action "upsert" to create a new object or update an existing object's properties. use action "remove" to remove a object's properties. use action "set" to set a object's property, don't use this when trying to add email, add sms, add whatsapp, add androidpush, add iospush, add slack, add ms_teams, add webpush use the respective actions. use action "unset" to unset a object's property, don't use this when trying to remove email, remove sms, remove whatsapp, remove androidpush, remove iospush, remove slack, remove ms_teams, remove webpush use the respective actions. use action "set_once" to set a object's property once, this will only set the property if it is not already set. use action "append" to append a value to a object's property. use action "increment" to increment a object's property. use action "add_email" to add an email to a object. use action "remove_email" to remove an email from a object. use action "add_sms" to add an SMS to a object. use action "remove_sms" to remove an SMS from a object. use action "add_whatsapp" to add a WhatsApp to a object. use action "remove_whatsapp" to remove a WhatsApp from a object. use action "add_androidpush" to add an Android push to a object. use action "remove_androidpush" to remove an Android push from a object. use action "add_iospush" to add an iOS push to a object. use action "remove_iospush" to remove an iOS push from a object. use action "add_slack" to add a Slack to a object. use action "remove_slack" to remove a Slack from a object. use action "add_ms_teams" to add a Microsoft Teams to a object. use action "remove_ms_teams" to remove a Microsoft Teams from a object. use action "add_webpush" to add a Webpush to a object. use action "remove_webpush" to remove a Webpush from a object.
object_idYesThe object_id of the object to get.
workspaceNoSuprsend workspace to get the object from.
object_typeYesThe type of object you want to get.
slack_detailsNoThis is only applicable for add_slack and remove_slack actions.
object_payloadNoPayload of the request that you want to pass for the object.
webpush_detailsNoThis is only applicable for add_webpush and remove_webpush actions.
ms_teams_detailsNoThis is only applicable for add_ms_teams and remove_ms_teams actions.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0-beta.1

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already indicate destructive and non-readonly behavior. Description adds context: 'remove and unset permanently delete data', 'One call performs ONE action', and channel registration side effects. Could mention non-idempotency but annotations cover that.

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?

Well-structured with bullet points and clear sections. Front-loaded with purpose. However, it is quite long; could be more concise while retaining completeness.

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

Completeness5/5

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

Comprehensive coverage: actions, side effects, when-not, return values. Handles 10 parameters, nested objects, and many actions. No output schema but description mentions success/error returns.

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

Parameters5/5

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

Schema coverage is 100% and description adds meaning: explains each action's purpose, special channel registration requirements, and required slack_details/ms_teams_details for specific actions.

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

Purpose5/5

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

Description clearly states it modifies properties or channel identifiers on a SuprSend object (non-user entity). It lists specific actions and distinguishes from sibling tools like upsert_suprsend_user and update_suprsend_category_preference_object.

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

Usage Guidelines5/5

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

Explicitly states when to use (creating/modifying object state) and when NOT to use (users, preferences, followers), with alternatives named for each exclusion.

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