SuprSend MCP Server
Server Quality Checklist
Latest release: v1.0.0
- Disambiguation5/5
Every tool targets a distinct resource and action. Users, objects, tenants, subscriptions, and preferences are clearly separated with descriptive names and detailed 'When to use' sections, eliminating ambiguity even between closely related tools like get_suprsend_user and get_suprsend_object.
Naming Consistency4/5Most tools follow a consistent verb_noun pattern with 'suprsend' prefix (e.g., get_suprsend_user, update_suprsend_users_preferences). One exception is get_tenant_default_preference which omits 'suprsend', but it's still readable and the pattern is otherwise well-maintained.
Tool Count4/522 tools is on the higher end but appropriate for a comprehensive notification service covering users, objects, tenants, preferences, subscriptions, workflows, and documentation. Each tool serves a well-defined purpose, though some consolidation could be considered.
Completeness3/5The tool surface covers core CRUD and lifecycle operations for users, objects, and tenants, along with preference and subscription management. Notable gaps include no tool for removing subscriptions (documentation explicitly notes this) and no delete operations for users/objects/tenants, which may require API workarounds.
Average 4.3/5 across 22 of 22 tools scored. Lowest: 3.6/5.
See the Tool Scores section below for per-tool breakdowns.
- 0 of 2 community issues answered or closed in the last 6 months
- 1 commit in the last 12 weeks
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
This repository includes a glama.json configuration file.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior1/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states 'List all tenants' indicating a read-only operation, but the annotations include destructiveHint: true, which contradicts the tool's behavior. Annotations also include readOnlyHint: true and idempotentHint: true, adding to the inconsistency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences long, each serving a purpose: stating purpose, providing usage context, and describing return. It is front-loaded and contains no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the return format ('id and properties') despite lacking an output schema. It does not cover pagination or workspace specificity, but for a simple list tool this is adequate. The contradiction in destructiveHint reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters having descriptions. The description repeats 'default 100' for limit, adding no new meaning beyond the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List all tenants in the workspace', providing a specific verb and resource. It distinguishes itself from siblings by mentioning its use to discover tenant_ids before calling get_suprsend_tenant or upsert_suprsend_tenant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use to discover tenant_ids before calling get_suprsend_tenant or upsert_suprsend_tenant', giving clear usage context. However, it does not explicitly state when not to use this tool or mention alternatives beyond the two siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior1/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states this is a 'Get' operation, which implies read-only behavior. However, the annotations include both readOnlyHint: true and destructiveHint: true, which are contradictory. The description does not address or clarify this contradiction, failing to inform the agent of potential destructive effects. According to the scoring rule, a contradiction between description and annotations results in a score of 1.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, when to use, when not to use, returns). It is informative without being overly verbose. Minor improvement could be trimming the list of sibling tools in the 'when not to use' section, but overall it is concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, parameter usage, return structure (YAML shape with fields like object_type, properties, channels), and sibling differentiation. No output schema exists, but the description compensates by detailing the return format. Given the tool's moderate complexity (3 params, no enums, no nested objects), the description is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning the schema already describes all parameters. The description does not add significant meaning beyond the schema; it mentions the parameters in context but does not elaborate on their semantics or constraints. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get a SuprSend object's full state by object_type + object_id.' It explicitly defines what objects are (non-user entities) and provides concrete examples like organizations, projects, vehicles, devices. It also distinguishes this tool from siblings by listing when NOT to use it and specifying alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use and when-not-to-use guidance. It states: 'When to use: the user references an object by id and you need its stored properties or channel identifiers.' For when NOT to use, it lists three specific scenarios with corresponding sibling tool names (get_suprsend_user, get_suprsend_object_preferences, get_suprsend_object_subscriptions).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior1/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description states 'Read' indicating a read-only operation, but annotations include destructiveHint=true, which contradicts the tool's behavior. This inconsistency undermines transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise with clear sections (purpose, when to use, when not to use, returns). Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers usage context and return type but lacks output schema details. The contradictory annotations reduce completeness. Adequate but not exceptional.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters described. The description adds no additional meaning beyond the schema, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool reads a tenant's default category preferences, explaining it as the inheritance baseline for new users. Differentiates from siblings by specifying that individual user/object preferences should use other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly lists when to use (before updating defaults, diagnosing user preference state) and when not to use (for individual preferences). Names specific alternative tools: get_suprsend_user_preferences and get_suprsend_object_preferences.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior1/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description describes a read-only get operation, but annotations include destructiveHint=true, which contradicts the non-destructive nature implied. The description does not address this contradiction or explain any potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Concise with clear sections: purpose, usage guidelines, returns. Only 4 sentences, no fluff, and front-loaded with the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, usage context, and return values adequately for a simple get tool with full schema coverage. However, lack of clarification on the destructiveHint contradiction leaves a gap in behavioral understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no extra meaning beyond the schema; it only mentions 'by tenant_id' which aligns with the required parameter, but no additional details on format or behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get a tenant's settings, branding metadata, and custom properties by tenant_id', specifying the verb and resource, and distinguishes from siblings like get_suprsend_tenants and get_tenant_default_preference by mentioning the identifier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly includes 'When to use' and 'When NOT to use' sections, naming alternatives (get_suprsend_tenants for enumeration, get_tenant_default_preference for defaults), providing clear context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior1/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
While the description mentions the operation is a GET and returns data, the annotations include destructiveHint: true, which contradicts the read-only nature implied by the description. This inconsistency makes transparency poor.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with distinct sections: general purpose, when to use, when not to use, and return format. It is concise without unnecessary text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description compensates for the lack of an output schema by detailing the return format (YAML with distinct_id, properties, created_at, updated_at, channels). It covers purpose, usage, and output comprehensively, though the annotation contradiction reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for both parameters, so the description adds no additional meaning beyond identifying the required distinct_id. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get a SuprSend user's full state by distinct_id', specifying the verb (Get), resource (SuprSend user), and identifier. It also distinguishes the tool from siblings by listing when not to use and alternative tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit 'When to use' and 'When NOT to use' sections, with specific alternative tools (get_suprsend_object, get_suprsend_user_preferences, etc.), giving clear guidance on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior1/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations set destructiveHint=true, but the description describes a read-only list operation with no destructive behavior. This contradiction misleads the agent. The description does add pagination details and return format, but the contradiction is a severe flaw.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with well-structured sections (purpose, when to use, when not to use, returns). Every sentence adds value, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description covers return format and pagination. However, the annotation contradiction (destructiveHint=true) is not addressed, leaving ambiguity about the tool's behavior, which reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 3 params. The description adds value by stating the default limit of 20, which is not in the schema, helping the agent understand pagination.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists objects a user subscribes to, with a specific verb 'List' and resource 'user subscriptions'. It distinguishes from sibling tools like get_suprsend_object_subscriptions and get_suprsend_user_list_subscriptions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'When to use' and 'When NOT to use' sections with clear examples ('what does X follow?') and named alternatives for inverse and list subscriptions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior1/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'Read', indicating a read-only operation, but the annotations include destructiveHint: true, contradicting the description. Per the rubric, a contradiction between description and annotations results in a score of 1. The description itself is transparent about reading preferences, but the mismatch with annotations undermines trust.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at about 6 sentences, organized into a clear statement of purpose, when to use/not use, and return behavior. Every sentence adds meaningful information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of readOnlyHint and idempotentHint annotations, and the description covering purpose, usage, and parameter semantics, it is largely complete. The only minor gap is the conflicting destructiveHint, but that is an annotation issue, not a description completeness issue. It could mention that no changes are made, but the readOnlyHint already covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining how to use optional parameters: 'Pass category to scope to one preference; omit for the full tree. Set channel_preferences=true to include per-channel overrides.' This goes beyond the schema's basic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads an object's category-level notification preferences and optionally per-channel overrides. It uses a specific verb ('Read') and resource ('object's category-level notification preferences'), effectively distinguishing it from sibling tools like get_suprsend_object (identity/channels) and get_suprsend_user_preferences (user preferences).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use scenarios are provided: before update_suprsend_category_preference_object and before sending to an object to check delivery permission. When-not-to-use is also clearly stated, naming alternative tools for other cases (get_suprsend_object for identity/channels, get_suprsend_user_preferences for users).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior1/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description claims a read-only listing operation, but the annotation destructiveHint: true contradicts this. No mention of destructive behavior in the description, creating a serious inconsistency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Concise, well-structured with clear sections; every sentence serves a purpose without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, usage, return format, and parameter behavior. Lacks pagination details beyond limit, but given annotations (ignoring contradiction) and no output schema, it is fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions, but the description adds value by stating the default limit of 20 and explaining the effect of channel_preferences=true, which is not in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists subscribers/followers of an object, using a specific verb and resource. It also distinguishes from two sibling tools by explicitly stating when not to use it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'When to use' and 'When NOT to use' sections with concrete examples and named alternative tools, providing excellent guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior1/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description describes a read-only list operation, but annotations include destructiveHint=true, which contradict. The description does not disclose any destructive behavior, leading to a contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Description is two well-structured paragraphs with clear sections (purpose, usage, returns). Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description explains returns (paginated list metadata) and default limit, but lacks details on pagination mechanism or metadata structure. Adequate for a reasonably complete tool given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions. Description adds default limit hint (20) and mentions raising for larger results, providing useful context beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool lists SuprSend Lists a user belongs to, defines lists as workspace-level recipient groups distinct from object follows, and uses specific verb 'List' with resource 'SuprSend Lists'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides when to use (user asks about mailing lists or segments) and when not to use (object follows, followers of an object), naming specific alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior1/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description claims a read-only operation but annotation destructiveHint=true contradicts this. Per rules, any contradiction drops score to 1.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise, well-structured with clear sections, front-loaded purpose, and no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-param tool with no output schema, description covers return type (preference tree), parameter effects, and usage context. Slightly more detail on return shape would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds context: explains scoping behavior for 'category' and default behavior for 'channel_preferences', adding value beyond field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it reads user's category-level notification preferences with optional per-channel overrides, and distinguishes from sibling tools in the 'When NOT to use' section.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'When to use' and 'When NOT to use' sections provide concrete scenarios and named alternatives (get_suprsend_user, get_tenant_default_preference, get_suprsend_object_preferences).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior1/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a read-only search operation, but the annotation destructiveHint=true directly contradicts this. This is a serious inconsistency that misleads the agent about the tool's side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections (what, when to use, when not, returns, tips). Every sentence serves a purpose, and it is concise without unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the return format (JSON array of {uri, snippet}) even though no output schema exists. Given the tool's simplicity (one parameter) and the presence of sibling tools for runtime operations, the description is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'query' is fully described in the schema (100% coverage). The description adds value by providing usage tips (use precise terms, add synonyms), going beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches SuprSend product documentation for technical guidance, listing specific topics (APIs, SDKs, workflows, etc.). It distinguishes from sibling tools by specifying when NOT to use (runtime operations).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides when-to-use scenarios (user asks how a feature works, need to verify behavior before write, debugging integration errors) and when-not-to-use (runtime operations). It also offers tips on query formulation and fallback to fetch_suprsend_documentation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds return format context (markdown), but annotations include destructiveHint=true which contradicts the fetch operation. The description does not address this inconsistency, reducing transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise with three clear sections (what, when to use, what not to do, return). Every sentence is valuable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (one parameter, no output schema), the description fully covers usage context, return format, and alternatives.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds guidance not to construct URIs, providing extra meaning beyond the schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it fetches the full content of a SuprSend documentation page, distinguishing it from the sibling search tool by mentioning when snippets are insufficient.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use (after search) and when not to (discovery, avoid constructing URIs), providing clear guidance for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, openWorld, idempotent, and non-destructive behavior. The description adds significant behavioral context: the difference between draft and live modes, the possibility of divergence, and the exact fields returned. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences: purpose, mode explanation, return fields. Front-loaded with the core action, no unnecessary words. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers mode behavior and return fields. Pagination (limit/offset) is documented in the schema. Annotations cover safety. Lacks mention of potential filtering or ordering, but for a straightforward list tool this is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining the mode parameter's impact in detail (active vs staged version, possible differences) and listing return fields, which compensates for the lack of output schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('notification workflows in a workspace') and clearly distinguishes between draft and live modes. None of the sibling tools deal with listing workflows, so it stands out.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use each mode ('mode=live returns the currently-active version... mode=draft returns the staged-but-not-yet-promoted version'), providing clear context. However, it does not explicitly state when not to use this tool or mention alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true, and the description confirms mutation (create/update). It adds value beyond annotations by stating tenant_properties is merged (not replaced) and that the updated tenant is returned. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Description is front-loaded with the main action, then provides merge behavior, usage exclusions, and return value. Every sentence is valuable and well-structured, with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, merge behavior, usage exclusions, and return value. Missing details on error cases or rate limits, but given annotations and schema richness, it is fairly complete. Output schema would help but is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters. The description adds the merging behavior for tenant_properties, which is not in the schema. This extra detail justifies a score above baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool creates or updates a tenant, which is a specific verb+resource. It distinguishes from siblings by noting when not to use it (preference defaults and user/object operations).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit 'When NOT to use' section with alternative tool names (update_suprsend_tenant_default_preference, upsert_suprsend_user, upsert_suprsend_object). Also explains merging behavior for tenant_properties, guiding partial updates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the call replaces (does not merge) existing preferences and that previous opt-outs within the same category are lost, which goes beyond the annotations. It also explains the meaning of preference values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections, front-loaded purpose, and each sentence adds value. It could be slightly more concise but is appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description mentions return values (updated state or error). It covers behavioral impact, parameter meanings, and usage context. Minor omission: does not explain the 'workspace' parameter beyond schema, but schema already does.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (baseline 3), and the description adds meaning by explaining preference values and opt_out_channels. However, it introduces 'cant_unsubscribe' which is not in the schema enum, causing a slight inconsistency.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it sets one category's preference for one object, with options for opted in, opted out, or cant_unsubscribe. It also lists sibling tools for when not to use, distinguishing its specific purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says when to use (changing a single category on a single object) and when NOT to use, with three specific alternative tools and their use cases, providing excellent guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- 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/5Is 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/5Given 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/5Does 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/5Does 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/5Does 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.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context beyond annotations by explaining the side effect that changes apply only to new users, not existing ones. This clarifies the 'destructiveHint: true' annotation (changes are not destructive to existing data). It also describes the return value on success.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with front-loaded purpose, clear separate sections for preference values and usage guidance. It is slightly long but every sentence earns its place, providing necessary detail without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (7 parameters, no output schema), the description covers purpose, side effects, alternatives, returns, and parameter explanations. It is fully sufficient for an agent to select and invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the baseline is 3. The description adds value by explaining the meaning of preference values (opt_in, opt_out, cant_unsubscribe) and the roles of mandatory_channels, blocked_channels, and visible_to_subscriber. This enriches the schema's descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose using a specific verb ('Set the default category preference inherited by NEW users') and resource ('tenant'). It distinguishes from sibling tools by emphasizing the scope (new users only) and mentions alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides when NOT to use the tool ('For per-user overrides' and 'For per-object overrides') and names the exact alternative tools (update_suprsend_users_preferences, update_suprsend_category_preference_object). This gives clear guidance to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses side effects (takes effect on next workflow run, in-flight notifications may still send). Explains is_restricted semantics and warns against overriding perma_status. Annotations are consistent: destructiveHint=true, idempotentHint=true, etc. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear sections (purpose, semantics, when-not-to-use, side effects). Each sentence adds value, but could be slightly more concise; still excellent for thoroughness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers usage, parameter semantics, side effects, return value, and limitations. Given no output schema, description specifies it returns updated channel-preference state. Fully complete for this tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% but description adds meaning: explains the structure of channel_preferences items and the meaning of is_restricted (true blocks, false re-enables). Adds value beyond schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool blocks or allows delivery channels for one user, applied across all categories. It distinguishes from siblings like update_suprsend_users_preferences and update_suprsend_object_channel_preference via explicit 'When NOT to use' section.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when to use (block/allow per user globally) and when not to use, with specific alternative tools named (per-category control, permanent invalidation, objects). Also provides use case examples.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include destructiveHint=true and readOnlyHint=false. Description adds side effects: remove/unset permanently delete data, add/remove channel affects reachability. Also describes return behavior (updated user or error). No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
Structured with bulleted actions and clear sections. Slightly long but every sentence adds value. Front-loads core information. No waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers actions, usage guidance, side effects, return types, and references sibling tools. No output schema, but description adequately explains return on success/failure. Complete for the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters. Description adds crucial context: channel actions need dedicated actions, Slack requires slack_details, webpush/webpush_details, etc. Enhances schema without repeating it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does 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 user, specifying one action per call. It distinguishes from siblings like upsert_suprsend_object, update_suprsend_users_preferences, etc., by naming them directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (creating/modifying user) and when not to (non-user entities, preferences, tenant). Also warns against using generic set/unset for channel identifiers and provides specific alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate mutability (readOnlyHint=false, destructiveHint=true) and idempotency (idempotentHint=true). The description adds value by explaining side effects ('takes effect on the next workflow run; in-flight notifications may still send') and return value ('Returns: updated channel-preference state on success'). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a single sentence for the main purpose, a clear breakdown of is_restricted semantics, a separate 'When NOT to use' section, and side effects/returns. Every sentence serves a purpose with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, no output schema, no nested objects), the description covers all necessary aspects: purpose, parameter semantics, usage guidelines, side effects, and return value. It is self-contained and sufficient for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (all 4 parameters described). The description adds meaning beyond the schema by explaining the is_restricted semantics and the format of channel_preferences entries. However, the schema itself already provides basic descriptions, so the added value is moderate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states the exact action: 'Block or allow specific delivery channels for ONE object, applied across ALL categories.' It clearly identifies the resource (object), the scope (across all categories), and distinguishes from sibling tools by naming alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists when NOT to use the tool and provides specific sibling tool names: 'For per-category control — use update_suprsend_category_preference_object. For users — use update_suprsend_user_channel_preference.' This gives clear decision guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the call 'replaces, does not merge' and 'overwrites existing preference', plus explains the meaning of each preference value and the return behavior. This adds significant context beyond the annotations, which only indicate destructiveness and idempotence.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections, bullet points, and clear separation of concerns. It is front-loaded with the core action and efficiently delivers all necessary information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 4 parameters, 100% schema coverage, and annotations, the description completes the picture by explaining the replace behavior, preference values, and return value. No output schema is present, but the description adequately describes the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
While schema coverage is 100% and provides basic descriptions, the description adds important context such as the 'cant_unsubscribe' option (though not present in the schema enum) and explains the overwrite behavior for opt_out_channels. This adds value beyond the schema, justifying a score above the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the action ('Set ONE category's preference for ONE user'), the verb ('set'), the resource ('category preference'), and the scope (one category, one user). It also lists the possible preference values, making the purpose very clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear 'When to use' section and a 'When NOT to use' section that names three specific sibling tools and their appropriate use cases, aiding the agent in selecting the correct tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses side effects (duplicate entries on repeated calls), suggests checking existing state, and notes return value. Annotations already indicate destructive=true and non-idempotent, and description adds useful context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Concise, front-loaded with purpose, then recipients, usage restrictions, and side effects. Every sentence contributes meaningfully.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description states return value. Covers usage, side effects, and parameter details thoroughly for a moderately complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the description still adds value by explaining recipient format (distinct_id vs object_type+id), optional metadata via properties, and references SuprSend recipient format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool subscribes users/objects to an object, specifying verb and resource. It differentiates from sibling tools like get_suprsend_object_subscriptions and lists when not to use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides when-not-to-use scenarios and alternative tools (SuprSend API, Lists API, preference tools), giving clear guidance on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/suprsend/cli'
If you have feedback or need assistance with the MCP directory API, please join our Discord server