Apply a referral code
apply_referral_codeLinks your account to a referrer. Does nothing unless confirm=true. Uses the existing referral linker.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| confirm | No |
apply_referral_codeLinks your account to a referrer. Does nothing unless confirm=true. Uses the existing referral linker.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| confirm | No |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=false, so the safety profile is partly covered. The description adds genuinely new information not present in structured fields: the confirm gate that makes the call a no-op by default. It does not explain why the operation is flagged destructive or whether the link can later be removed, so it is not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the effect and the gating condition front-loaded; nothing is buried. "Uses the existing referral linker" is implementation detail that adds little for an agent choosing or invoking the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, idempotent mutation with no output schema and zero schema coverage, the definition covers the confirm gate but omits what happens on success, whether the link is reversible, and failure modes such as an invalid or already-used code. Adequate to call, not complete enough to predict outcomes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning. It explains the confirm flag precisely (no effect unless true), but says nothing about the code parameter beyond the implied "referral code" — no format, length, case-sensitivity or validity notes despite a 4-32 char constraint in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Links your account to a referrer" gives a specific verb and resource that clearly separates this mutation from read-side siblings like get_referral_code and get_referral_stats. It stops short of naming those siblings explicitly, so it lands at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Does nothing unless confirm=true" is a concrete operational precondition that tells the agent exactly how to make the call take effect, which is the main usage decision for this tool. It does not cover when to prefer this over fetching a code first, nor exclusion cases such as already having a referrer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.