PersonaXpand
Server Details
Post, schedule, answer comments and DMs in your voice, and check analytics across 8 social networks.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 36 tools
Most tools target a distinct resource+action pair and the descriptions clearly differentiate close ones (send_reply vs schedule_reply vs approve_reply_draft; get_analytics_summary vs refresh_analytics; pause_post vs resume_post vs reschedule_post). The weakest boundaries are set_auto_reply vs set_account_auto_reply (global settings vs per-account toggle) and the auto-reply rule tools vs the settings tools, which an agent could easily pick incorrectly without reading carefully.
Every tool follows a strict snake_case verb_noun pattern (create_post, list_media, update_auto_reply_rule, get_analytics_summary, publish_post_now), with a small vocabulary of consistent verbs: create/get/list/update/delete/set/schedule/reschedule/pause/resume/send/approve/reject. No camelCase or naming outliers.
36 tools is well past the comfortable range for a single MCP server, and the surface spans five loosely related domains (posts, media, inbox, auto-reply, analytics/account). Several clusters could be consolidated (e.g. the four post-timing tools pause/resume/reschedule/schedule, and the six auto-reply settings/rule tools), though most individual tools do have a real function.
Coverage is strong across the lifecycle: post CRUD plus draft/schedule/pause/resume/publish, media listing/import/upload, inbox read/reply/schedule/handle, draft approve/reject, auto-reply rules CRUD plus settings, and analytics/profile/plan/voice reads. Minor gaps and one inconsistency: create_post references a get_image_result tool that does not exist in this set, and there is no way to delete media or cancel/list scheduled replies.
Available Tools
36 toolsapprove_reply_draftApprove and send a reply draftADestructiveInspect
Sends one waiting draft (draft_id from list_reply_drafts) from the person's account, as it is or with changed text. Counts toward the reply allowance like any automatic reply.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Changed reply text. Without it the draft is sent as it is. | |
| draft_id | Yes | The draft_id from list_reply_drafts. | |
| same_reply_to_many_confirmed | No | true means the person confirmed sending this same reply to many people (see same_reply_to_many). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructive=true, openWorld=true and non-idempotent, so the safety bar is partly met. The description adds real value beyond them: the send happens from the person's own account and consumes reply allowance like an automatic reply – quota impact an agent would not otherwise know.
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 sentences, action and quota consequence front-loaded, and no redundant restatement of the tool name. Every clause carries information.
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, non-idempotent send with no output schema, the description covers the account context, the quota cost, and the source of draft_id. It does not say what happens on failure or whether the draft is removed afterward, which would complete the picture.
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 coverage is 100%, so all three parameters are already documented in the schema, including the text-omission behavior. The description restates the 'as it is or with changed text' semantics without adding format rules or syntax beyond the schema, which is the baseline-3 case.
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?
States a specific verb and resource ('Sends one waiting draft') and pins the draft_id source to list_reply_drafts, so an agent can tell this apart from most siblings. It stops short of explicitly contrasting with send_reply or reject_reply_draft, which are the closest alternatives.
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?
Clearly implies it is the approval step in a draft workflow by naming list_reply_drafts as the prerequisite and explaining the optional-text mode. No explicit exclusions ('do not use for direct replies – use send_reply'), so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_auto_reply_ruleAdd an auto-reply ruleAInspect
Adds a keyword rule for one account: when a DM, comment or mention matches, reply with a fixed text or with an AI reply in the person's voice.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | A short name for the rule. | |
| when | Yes | any (every message), keyword (contains the keyword) or exact (the whole message equals the keyword). | |
| keyword | No | The keyword, for keyword or exact. | |
| priority | No | Higher runs first when several rules match. | |
| account_id | Yes | The account_id from get_auto_reply_settings. | |
| applies_to | Yes | dm, comment or mention. | |
| reply_text | No | The reply to send, for fixed. | |
| reply_with | Yes | ai (reply written in the person's voice) or fixed (send reply_text). | |
| skip_approval | No | Send without waiting for approval. |
TDQS
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 with no open-world access, and the description adds the meaningful fact that the rule triggers on inbound DMs/comments/mentions and can generate AI replies in the person's voice. It omits important behavior: that rules act on future matching messages automatically, how priority arbitration plays out at runtime, and whether replies go through the approval queue that skip_approval bypasses. No contradiction with the annotations.
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?
A single well-formed sentence that front-loads the action and the trigger/response model with no filler. Minor deduction because 'keyword rule' is a slightly inaccurate shorthand for a tool that also supports match-any rules.
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?
No output schema exists, so the description can't be faulted for not describing returns, and for a create tool with full schema coverage the essentials are present. The remaining gap is the approval-workflow context (skip_approval semantics) and activation timing, which an agent would want before wiring up automated replies.
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 100%, so the schema already explains name, when, keyword, priority, applies_to, reply_text, reply_with and skip_approval. The description adds only the account-scoping notion ('for one account') and the fixed-vs-AI reply distinction; it does not clarify that keyword is irrelevant when `when=any` or that reply_text is required when reply_with=fixed.
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?
States a specific verb and resource ('Adds a keyword rule for one account') and immediately explains the trigger/reply mechanic, so an agent knows this creates an auto-reply rule rather than updating or deleting one. The only slip is calling it a 'keyword rule' when the schema's `when` also supports 'any' (every message), which slightly narrows the described scope.
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?
The verb 'Adds' implies creation rather than modification, which implicitly routes the agent away from update_auto_reply_rule and delete_auto_reply_rule. However, nothing is said about the genuinely confusing siblings set_auto_reply and set_account_auto_reply, nor about prerequisites such as needing an account_id from get_auto_reply_settings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_postCreate a post (draft)AInspect
Saves a new post as a draft in PersonaXpand. networks ["all"] means every connected network that can take it; any left out come back in skipped with the reason. Nothing goes out until schedule_post or publish_post_now. Media is accepted only from the person's own library: links from list_media, get_image_result, or the import tools.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The main post text. | |
| networks | Yes | ["all"] for every connected network, or specific ones, e.g. ["instagram","linkedin"]. | |
| alt_texts | No | Optional alt text for each image, in the same order as media_urls. | |
| media_urls | No | Optional media links (images, or one video). | |
| per_network | No | Optional per-network versions (caption, hashtags, YouTube title and settings, Pinterest board). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, but the description adds the non-obvious behavior that "all" expands to every eligible network and that omitted or unsupported networks return in a skipped list with a reason. That partial-success semantics is real behavioral context beyond the annotations; it stops short of covering permissions or duplicate handling.
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?
Three compact sentences, each carrying a distinct fact: drafting behavior, the "all" expansion and skip semantics, and the publishing gate. The media-sourcing sentence is slightly tacked on but still earns its place by preventing invalid media URLs.
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 5-parameter mutation tool with a fully documented schema and no output schema, the description covers the state change (draft, not published), the fan-out behavior, and the media source restriction. The skipped-result detail is the only return-value information given and it is the critical one.
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 coverage is 100% and the schema already documents each field, including per-network sub-properties. The description only adds meaning for the "networks" value "all" and for the skipped return, which is marginal added value over the schema baseline.
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?
The description states a specific verb and resource ("Saves a new post as a draft") and names the product, PersonaXpand. It distinguishes itself from the publishing siblings by explicitly saying nothing goes out until schedule_post or publish_post_now.
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?
It explicitly names the alternatives (schedule_post, publish_post_now) and the condition that selects them, plus a constraint on media sourcing that points to list_media, get_image_result and the import tools. An agent knows when to call this tool versus its siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_upload_linkGet an upload linkAInspect
Makes a one-time page where the person can send a photo or video from their own device (works once, for 30 minutes). get_upload_result reports when the file has arrived.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare that this is not read-only, not idempotent, not destructive, and not open-world. The description adds useful behavioral context beyond the annotations: the page works once and expires after 30 minutes, and get_upload_result reports when the file has arrived.
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?
The description is two sentences, front-loaded with the core action and followed by the expiry constraint and the related result-checking tool. Every sentence adds useful information without unnecessary wording.
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 zero-parameter tool with no output schema, the description covers the essential behavior: what is created, how long it lasts, and how to check the result. It could be slightly more complete by explicitly stating that the tool returns the upload link itself, but the overall context is sufficient.
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?
This tool has zero parameters, so there are no parameter semantics to explain. The baseline score of 4 applies because the description does not need to compensate for an input 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?
The description states a specific action and resource: it creates a one-time page where someone can send a photo or video from their own device. It also names the sibling tool get_upload_result and explains its role, so the agent can distinguish this tool from the result-checking tool.
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?
The description makes clear when to use this tool: to obtain a one-time upload page for a person to send media from their own device. It also points to get_upload_result for checking arrival, but it does not explicitly compare against alternatives such as import_media_from_link or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_auto_reply_ruleDelete an auto-reply ruleADestructiveIdempotentInspect
Deletes one auto-reply rule (rule_id from get_auto_reply_settings).
| Name | Required | Description | Default |
|---|---|---|---|
| rule_id | Yes | The rule_id. | |
| many_deletes_confirmed | No | true means the person confirmed deleting many items (see many_deletes). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is covered structurally. The description adds only the single-rule scope and the rule_id source; it says nothing about consequences of deletion, whether the change is reversible, or the many_deletes/many_deletes_confirmed confirmation flow referenced by the second parameter.
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?
A single short sentence with the operation and the key prerequisite front-loaded; there is no filler or redundancy.
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 mutation with no output schema, this is adequate but thin: it does not say what the caller receives on success, whether errors occur for unknown or last-remaining rules, or how the bulk-deletion confirmation interplays with deleting 'one' rule. Annotations carry the destructive/idempotent profile, which keeps it at a minimum-viable 3 rather than lower.
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?
With 100% schema coverage the baseline is 3, and the schema's own text for rule_id ('The rule_id.') is essentially tautological, so the description's 'from get_auto_reply_settings' does add genuine provenance value. But it says nothing about many_deletes_confirmed, leaving that parameter's purpose entirely to the schema's cross-reference to an unexplained 'many_deletes' concept.
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?
States a specific verb (Deletes) and resource (one auto-reply rule), and the word 'one' scopes the operation. It is distinguishable from create_auto_reply_rule and update_auto_reply_rule by verb alone, though it never names those siblings explicitly.
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?
The parenthetical telling the agent to obtain rule_id from get_auto_reply_settings is a useful prerequisite and a real cross-tool pointer. However, there is no guidance on when not to delete (e.g., preferring update_auto_reply_rule to amend a rule) or on any confirmation step.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_postDelete a postADestructiveIdempotentInspect
Deletes a post from PersonaXpand (a draft, or a scheduled post before it goes out). It does not remove anything already published on a network.
| Name | Required | Description | Default |
|---|---|---|---|
| post_id | Yes | The post id. | |
| many_deletes_confirmed | No | true means the person confirmed deleting many items (see many_deletes). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is covered structurally. The description adds genuinely useful scope information beyond that: the deletion is limited to unpublished drafts/scheduled posts and is not a network-level takedown. It omits whether the deletion is permanent or recoverable, which is the remaining behavioral question for a destructive tool.
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 zero padding: the action and its scope come first, the boundary condition second. Every clause carries information an agent needs.
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 two-parameter destructive tool with rich annotations and no output schema, the description covers the crucial ambiguity (draft/scheduled vs. published) that could otherwise cause a wrong call. Minor gaps remain around irreversibility and the bulk-delete confirmation requirement.
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 coverage is 100%, so both post_id and many_deletes_confirmed are documented in the schema itself, and the description adds no further meaning for either. The multi-delete confirmation gate — the riskiest parameter here — is left entirely to the schema's terse reference to 'many_deletes', which the description could have clarified.
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?
States a specific verb (deletes) and resource (a post), and narrows scope to drafts or scheduled posts before publishing. The second sentence explicitly contrasts with published content, so an agent can distinguish this from publish_post_now, pause_post, or reschedule_post without opening any schema.
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?
Clearly implies when to use it — a draft or a not-yet-published scheduled post — and rules out published posts via the negative clause. It stops short of naming what an agent should do instead for a published post, and says nothing about the bulk-delete confirmation flow implied by many_deletes_confirmed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_analytics_summaryGet my analytics summaryARead-onlyIdempotentInspect
Followers and growth per network, posts published, engagement totals, the best posts, and messages received and answered (reply rate, median reply time) for the last 7, 30 or 90 days. Uses only numbers the networks reported, as stored at their last refresh (numbers_as_of); refresh_analytics pulls newer ones.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | 7, 30 or 90 (days). Default 30. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and non-destructive behavior, so the safety profile is covered. The description adds genuinely new behavioral context: the numbers are network-reported and reflect their last refresh (numbers_as_of), which tells the agent results may be stale and how to remediate. It does not describe response shape or latency, keeping it below 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?
The metric inventory is front-loaded in the first sentence and the freshness caveat plus sibling pointer follow immediately. It is dense but every clause carries information; the only cost is a long opening sentence that is slightly list-heavy.
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?
With no output schema, the description correctly compensates by enumerating the returned fields, and the freshness note covers the main ambiguity for a read-only analytics tool. Nothing essential for correct invocation is missing, though it could note whether per-network breakdowns are always present.
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 coverage is 100% and the single 'days' parameter is fully documented with its default and allowed values, so the schema does the heavy lifting. The description restates the 7/30/90 window but adds no format or edge-case meaning beyond that, which is the expected baseline.
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?
The description names a specific verb+resource and enumerates the exact metrics returned (followers/growth per network, posts published, engagement totals, best posts, messages received/answered with reply rate and median reply time). It is clearly distinguishable from siblings like refresh_analytics and get_best_times.
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?
It explicitly routes the agent to refresh_analytics when fresher numbers are needed, and the 'last 7, 30 or 90 days' framing sets the reporting context. It stops short of stating when to prefer this over other analytics-adjacent siblings, but the alternative it does name is the one that matters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_auto_reply_settingsGet my auto-reply settingsARead-onlyIdempotentInspect
Whether auto-replies are on, for which accounts and message types, approval and timing settings, the reply voice, the keyword rules, and today's activity (replies sent against the daily limit, messages held because the allowance ran out, drafts waiting for approval).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish a safe, read-only operation, while the description adds meaningful operational context: a daily allowance, messages held when that allowance is exhausted, and drafts awaiting approval. Specifying that the activity is for today further clarifies the snapshot's scope.
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?
The single sentence is dense but economical, placing configuration first and today's operational activity second. The parenthetical efficiently explains the activity metrics without filler or repetition of the annotations.
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 zero-parameter read with clear safety annotations, the description supplies enough scope to invoke the tool correctly and enough return-content detail to compensate for the absent output schema. Explicit sibling routing would improve selection, but no essential input or calling prerequisite is omitted.
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?
The tool takes no parameters, so there are no argument meanings for the description to document and the zero-parameter baseline applies. Its references to accounts and message types describe returned scope rather than implying unsupported filters.
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?
The description clearly identifies the resource and returned scope: enablement, accounts and message types, approval and timing, voice, keyword rules, and current activity. It does not explicitly contrast this consolidated view with narrower siblings such as get_voice, get_plan_usage, or list_reply_drafts.
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?
The enumerated contents imply using the tool when an agent needs a consolidated view of auto-reply configuration and today's status. It provides no explicit when-not guidance or routing to siblings for changing settings, inspecting drafts alone, or retrieving voice or plan details.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_best_timesGet my best times to postARead-onlyIdempotentInspect
The best times to post on each network in the coming week, in the person's time zone, with the reason for each: from their own results of the last 90 days, or from published research while they have too few posts. Any of these times can be passed to schedule_post.
| Name | Required | Description | Default |
|---|---|---|---|
| networks | No | Networks to check, e.g. ["instagram","linkedin"]. Leave empty for every connected network. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavior beyond that: the fallback to published research when post volume is low, per-time justification, and time-zone normalization — details an agent could not infer from annotations or schema.
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?
A single dense sentence that front-loads the resource and scope before the provenance and chaining details; no filler. It is slightly overloaded with clauses, but every clause carries information.
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?
There is no output schema, and the description compensates by describing what each result contains (a time per network plus a reason) and how it is derived. For a one-optional-parameter read tool with full annotations, this is nearly complete; only the response shape specifics remain unspecified.
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 100% and the single optional 'networks' parameter is fully documented in the schema, including the empty-means-all default. The phrase 'on each network' is consistent but adds no format or syntax detail beyond the schema, so the baseline of 3 applies.
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?
States a specific verb+resource ('best times to post on each network') with explicit scope ('in the coming week, in the person's time zone'), which distinguishes it from get_analytics_summary and the posting tools. An agent can identify what this returns without opening the schema.
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?
Makes the intended downstream use explicit by stating the returned times 'can be passed to schedule_post', which routes the agent to the correct follow-up sibling. It also clarifies the data-source condition (own last-90-days results vs published research when data is thin), but offers no explicit when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_conversationGet a conversationARead-onlyIdempotentInspect
One inbox item with what was said before and every reply already sent to it. For a DM, includes the recent messages from the same person.
| Name | Required | Description | Default |
|---|---|---|---|
| message_id | Yes | The inbox item id from list_inbox. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds genuine value beyond them by disclosing what content comes back — prior messages, all sent replies, and recent same-person messages for DMs — which is important since there is no output schema. It does not mention truncation, message limits, or ordering, so it is not fully transparent.
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 no filler, and the core content (item plus surrounding thread) is front-loaded. The phrasing 'what was said before' is slightly colloquial where 'prior messages in the thread' would be more precise, but nothing is wasted.
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 low-complexity single-item fetch with one fully documented parameter and complete safety annotations, the description covers what an agent needs: the returned scope (thread context, all replies, DM history). Return structure and any limits on how much history is included remain unstated, which is the main residual gap.
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?
There is a single parameter with 100% schema description coverage; the schema already states it is 'the inbox item id from list_inbox'. The description adds no additional meaning about the id, its format, or behavior for invalid/unknown ids, so the baseline of 3 applies.
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?
The description conveys a single-resource fetch of an inbox item plus its surrounding conversation ('what was said before and every reply already sent to it'), which distinguishes it from the sibling list_inbox. The verb 'get' is only implied by the title rather than stated in the description, and the phrasing is roundabout, but the resource and its scope are clear.
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?
Usage is only implied: the description's emphasis on thread context suggests it is the detail view to use after list_inbox, and the schema parameter points back to list_inbox. There is no explicit when-to-use statement, no statement of what it does not cover, and no named alternative such as list_inbox for browsing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_notificationsGet my notificationsARead-onlyIdempotentInspect
The person's PersonaXpand notifications, newest first: weekly growth tips from the Growth Coach, finished posts, messages that need them, and plan alerts.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many to return, 1-30 (default 15). | |
| only_unread | No | true for unread only. | |
| only_growth_tips | No | true for Growth Coach tips only. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so safety and determinism are covered. The description usefully adds the sort order (newest first) and the categories that appear in the result, which is genuine value beyond the annotations, though it says nothing about pagination or empty states.
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?
A single front-loaded sentence that identifies the resource, the ordering, and the contents without a wasted word. Nothing is repeated and nothing important is buried.
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?
This is a simple, annotation-covered read tool with three optional parameters and no output schema, and the description compensates for the missing output schema by listing what a notification can be. Only a brief note on result shape or unread counting would make it fully complete.
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 100%, so limit, only_unread and only_growth_tips are already documented in the schema. The description's mention of growth tips loosely connects to only_growth_tips but adds no syntax, defaults, or interaction detail beyond what the schema states; baseline 3 applies.
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?
Names a specific resource (the person's PersonaXpand notifications) and enumerates the item types returned: Growth Coach tips, finished posts, messages needing attention, plan alerts. It also states ordering (newest first). It doesn't name a sibling it is not, but the resource is distinctive enough against list_inbox or get_analytics_summary.
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?
Usage is only implied by the enumeration of notification types; there is no explicit statement of when to call this instead of list_inbox or get_plan_usage, nor any exclusions. An agent can infer intent but not routing rules.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_plan_usageGet my plan and usageARead-onlyIdempotentInspect
The person's plan, how many posts, auto-replies and AI images are used and left in this period, extra packs, and when the allowance resets.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuine context beyond that: the scope is implicit to 'the person' (no account parameter needed), the output is quota-oriented (used vs. left), and it discloses that extra packs and a reset timestamp are included.
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?
A single fragment sentence with the core resource front-loaded and no wasted clauses; the enumerated fields are informative rather than padding. It would be marginally stronger with a leading verb, but it is efficient as written.
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?
With no parameters and no output schema, the description has to carry the return-value burden and largely does, covering used/remaining counts per content type, extra packs, and reset timing. Minor gaps remain (whether plan tier, limits, or per-account breakdowns are returned), but an agent can call it correctly from this text.
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?
The tool takes zero parameters and the schema is an empty object, so there is nothing for the description to disambiguate. Baseline 4 applies; the description correctly implies no arguments are needed to scope the call.
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?
The description names a distinct resource (the person's plan and per-period usage of posts, auto-replies, AI images, extra packs, reset timing) and thereby separates it from content-centric siblings like get_analytics_summary or list_posts. It lacks an explicit verb (the action is carried by the name/title) and never names a sibling it is not, so it falls short of a 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?
There is no explicit when-to-use, when-not-to-use, or alternative routing. A reader can infer it is for checking remaining quota within a billing period, but nothing tells the agent to prefer it over get_analytics_summary when the intent is performance rather than allowance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_postGet one postARead-onlyIdempotentInspect
The full text, media and per-network versions (caption, hashtags, YouTube title, status, link, error) of one post, with each network's latest likes, comments, shares, views and reach once it is published.
| Name | Required | Description | Default |
|---|---|---|---|
| post_id | Yes | The post id from list_posts. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, closed-world behavior. The description adds useful behavioral context by specifying that per-network versions include caption, hashtags, YouTube title, status, link, and error, and that engagement metrics are latest and available once published. It does not cover not-found/error behavior, but beyond annotations this is solid.
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?
Single sentence, front-loaded with the returned data and no filler. The parenthetical list is dense but each item contributes to what the agent will receive.
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?
With no output schema, the description carries the return-value burden and does a good job enumerating text, media, per-network variants, and metrics. For a simple one-param read tool with safety annotations, this is complete enough; only error/empty-state behavior is unmentioned.
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?
Only post_id exists; schema coverage is 100% and its description already says 'The post id from list_posts.' The tool description adds no further parameter meaning, so baseline 3 applies.
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?
The description names the resource and scope ('one post') and enumerates the returned content: full text, media, per-network versions, and engagement metrics. It never uses a retrieval verb or names list_posts as the source/alternative, so it is clear but not fully sibling-differentiating.
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?
It implies use for fetching a single post by describing single-post data, and 'once it is published' hints at the metrics precondition. But it gives no explicit when-to-use, when-not, or alternative such as list_posts, so guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_profileGet my profileARead-onlyIdempotentInspect
The signed-in person's name, language, time zone, weekly posting goal, and what this connection is allowed to do.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds meaningful context beyond that: the data is always the caller's own identity with no target parameter, and it includes the connection's permission scope, which is behaviorally relevant for deciding whether other mutations are permitted.
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?
One sentence, front-loaded with the subject (the signed-in person), listing exactly what comes back. No filler, no restatement of the title, nothing to trim.
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?
There is no output schema, so the description must convey return contents, and it does list the main fields. The phrase 'what this connection is allowed to do' is vague about whether this is a scope list, booleans, or role names, and the list may not be exhaustive, leaving a small gap for a zero-parameter read.
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?
The tool takes zero parameters, so no parameter semantics are needed and the baseline is 4 by default. The field list in the description concerns return values, not inputs, and is complementary rather than redundant.
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?
The description names a specific resource (the signed-in person's profile) and enumerates the fields returned: name, language, time zone, weekly posting goal, and connection permissions. This is clearly distinct from siblings like get_plan_usage or list_connected_accounts, though the verb is only implied by the tool name rather than stated outright.
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?
There is no explicit when-to-use guidance and no named alternative or exclusion. Usage is strongly implied by the self-scoped, zero-parameter nature of the tool, but an agent gets no statement like 'call this first to resolve the current account' or 'do not use this to inspect other accounts.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_upload_resultCheck an upload linkARead-onlyIdempotentInspect
Whether the person has sent a file through an upload link, and if so its media_url and preview link.
| Name | Required | Description | Default |
|---|---|---|---|
| upload_id | Yes | The upload_id from create_upload_link. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, and non-destructive behavior, so the safety profile is covered. The description adds genuine value by disclosing the conditional outcome and the return payload (media_url and preview link), which matters because there is no output schema. It does not say what is returned when nothing has been uploaded, which keeps it short of 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?
A single front-loaded sentence with no filler, communicating both the boolean outcome and the success payload. The sentence fragment style is slightly informal but costs no clarity.
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 one-parameter read tool with full schema coverage and read-only annotations, the description covers the essential question it answers and what comes back on success. The remaining gap is behavioral: no guidance on polling cadence or on the empty-result case.
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?
With one parameter at 100% schema description coverage, the schema fully documents upload_id and even its origin. The description adds no further semantics about the identifier or its format, so the baseline of 3 applies.
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?
The description states a concrete query over a specific resource: it reports whether a file was sent through an upload link and, if so, returns its media_url and preview link. The upload-link scoping distinguishes it from generic media or post tools, though it never names create_upload_link as its counterpart.
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?
The description gives no explicit when-to-use guidance, no mention of polling after create_upload_link, and no guidance on how to interpret the not-yet-uploaded case. The only workflow hint lives in the parameter schema ("upload_id from create_upload_link"), not in the description itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_voiceGet my voice (AI Twin)ARead-onlyIdempotentInspect
How the person writes, learned by their AI Twin: voice print (overall and per network), rules to follow (never say, always mention, opinions, length per network), confirmed FAQ answers, and real reply examples, for writing captions and replies that sound like them.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds genuine value by disclosing what is actually returned — per-network voice print, rule categories (never say, always mention, opinions, length), confirmed FAQ answers, and real examples — which goes beyond what the annotations say. It does not mention what happens when the voice profile is empty or not yet learned.
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?
A single sentence with a clear lead ('How the person writes') followed by an enumerated payload. The nested parentheticals ('overall and per network', the rule list) are dense but every item carries meaning for an agent deciding whether the returned data suffices. Slightly heavy nesting keeps it from a 5.
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?
With no output schema, the description must convey the return contents, and it does so in detail, which is sufficient for a no-param read tool. Missing only edge-case behavior (empty/uninitialized voice profile) and rough return shape, which are minor for this complexity level.
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?
The tool takes zero parameters, so there is no parameter semantics to explain; the baseline for a 0-param tool is 4. The description correctly avoids inventing filtering options and simply defines the payload.
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?
The description names the resource precisely — the person's writing voice, including voice print (overall and per network), rules, confirmed FAQ answers, and real reply examples — which distinguishes it from siblings like get_profile or get_analytics_summary that never return voice data. The verb is implicit (the title supplies 'Get'), so it is a content inventory rather than a stated action, keeping it just short of a 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?
It gives a clear use context: 'for writing captions and replies that sound like them', which tells the agent to consult this before composing content via create_post or send_reply. It does not explicitly name those alternative tools or state when not to call it (e.g., when no voice has been learned), so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_media_from_linkAdd media from a linkAInspect
Saves a photo or video from a public link into the person's PersonaXpand media so a post can use it. Google Drive and Dropbox share links work when shared with "Anyone with the link". Returns a media_url for create_post and a preview link.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The https link to the photo or video. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a non-read-only, non-idempotent, open-world, non-destructive write, so the bar is lower. The description adds the meaningful constraint that the source must be publicly accessible and specifies that it returns both a media_url and a preview link, which annotations cannot convey. It stops short of saying what happens on failure (private link, unsupported provider) or whether re-importing duplicates media.
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?
Three short sentences, front-loaded with the action and followed by the constraint and the return value. No filler, no restatement of the tool name.
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?
With one required parameter, no output schema, and annotations covering the safety profile, the description covers nearly everything an agent needs, including the return values it must otherwise infer. The remaining gap is error behavior for non-public or unsupported links.
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 coverage is 100% for the single 'url' parameter, so the baseline is already met. The description adds real meaning beyond the schema by naming supported providers (Google Drive, Dropbox) and the public-sharing requirement that determines whether a given URL will work.
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?
The description opens with a specific verb and resource ('Saves a photo or video from a public link into the person's PersonaXpand media') and states the downstream purpose ('so a post can use it'). It implicitly separates itself from create_upload_link by emphasizing link-based import rather than file upload, though it never names that sibling directly.
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?
It gives clear applicability context: the link must be public and Google Drive/Dropbox share links must be set to 'Anyone with the link'. It also hints at the follow-on workflow by saying the result is a media_url for create_post, but it does not explicitly say when to prefer this over create_upload_link or list_media.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_connected_accountsList my connected accountsBRead-onlyIdempotentInspect
The social accounts connected to PersonaXpand, whether each one works, needs a reconnect, or has part of its inbox off, and whether posting there is possible.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is fully covered. The description's contribution is telling the agent what per-account health states appear in the result, which is genuinely additive. It stops short of describing pagination, account identity fields, or what a 'part of its inbox off' state means operationally.
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?
One tight sentence with the resource front-loaded and the status enumeration following. No filler or repetition. It is a grammatical fragment rather than a complete sentence, which slightly hurts readability but not economy.
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?
With no input schema, no output schema and simple read-only behavior, the description needs to carry the return semantics — and it does, enumerating the health/status dimensions per account. It would be complete with a brief note on what identifies each account (platform, handle) since no output schema exists to reveal that.
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?
The tool takes no parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The description correctly avoids inventing inputs and instead spends its words on output meaning.
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?
The description identifies the resource precisely — social accounts connected to PersonaXpand — and adds what each entry conveys (working, needs reconnect, inbox partially off, posting possible). It lacks an explicit verb ('list'), relying on the name to supply it, but an agent can still tell instantly what this returns. No sibling tool competes for this resource, so the absence of differentiation costs little.
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?
There is no statement of when to call this versus alternatives, no prerequisite, and no exclusion. An agent must infer that it is the pre-flight check before posting or before diagnosing why a channel is failing. Usage is implied by the content, not guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_inboxList my inboxARead-onlyIdempotentInspect
Recent DMs, comments and mentions from the person's connected accounts (last 30 days, newest first), with whether each was already answered and whether it needs the person themself.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | dm, comment or mention. Leave empty for all. | |
| limit | No | How many to return, 1-50 (default 20). | |
| network | No | Only this network, e.g. instagram, facebook, twitter, youtube, threads, bluesky, linkedin. | |
| only_needs_you | No | true to show only messages the automation left for the person (questions, complaints, possible clients). | |
| only_unanswered | No | true to show only messages nobody has answered yet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered. The description adds genuine context the annotations cannot: a 30-day lookback window, newest-first ordering, and the fact that each item carries answered/needs-you flags. It stops short of describing volume, pagination, or empty-inbox behavior.
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?
A single front-loaded sentence packs the resource, time window, sort order and return semantics with no filler. Nothing is redundant with the title or restated needlessly.
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?
With no output schema, the description must carry return-value meaning; it partially does by naming the answered and needs-you flags, but not the item shape or ordering guarantees per type. For a five-parameter read tool with no output schema, that leaves a modest gap.
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 coverage is 100%, so the baseline is 3. The description reinforces the meaning of 'needs the person themself', which corresponds to only_needs_you, but it adds no syntax or interaction detail (e.g. how only_needs_you and only_unanswered combine) beyond what the schema states.
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?
The description gives a specific verb+resource ('Recent DMs, comments and mentions') plus scope (last 30 days, newest first) and per-item attributes. It does not name how it differs from siblings like get_notifications or get_conversation, so an agent must infer the split.
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?
Usage is implied by the inbox framing and by the clarification that some items 'need the person themself', but there is no explicit when-to-use vs. get_notifications/get_conversation guidance and no statement of when not to call it. The filters are left to the schema to discover.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_mediaList my mediaARead-onlyIdempotentInspect
The person's media, newest first: images their assistant made or brought in that aren't posted yet, then images and videos from their posts. create_post accepts each media_url; preview_url links work for 1 hour.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many to return, 1-50 (default 20). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive, closed-world behavior, so the description's job is additive — and it delivers: result ordering, the two-part composition of the list, and the critically important fact that preview_url links expire after 1 hour. It doesn't discuss pagination behavior beyond the limit parameter or whether media_url is permanent.
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 dense sentences with no filler; the result composition and ordering come first, followed by the actionable handoff and the URL-expiry caveat. Nothing is repeated from the schema or annotations.
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?
With no output schema, the description carries the burden of describing returns and does so usefully — list ordering, the two segments, and two named fields (media_url, preview_url) with an expiry caveat. It leaves unclear whether there is pagination/cursor support or whether media_url persists, minor gaps for a one-parameter list tool.
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 100%, and the single limit parameter is already documented with range and default. The description adds nothing about limit, which is acceptable given the schema does the work, so the baseline 3 applies.
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?
The description enumerates exactly what the resource contains: unpublished images created/imported by the assistant, then images and videos from the person's posts, ordered newest first. That content scope implicitly separates it from list_posts or get_upload_result. It stops short of naming a sibling, 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?
"create_post accepts each media_url" gives a clear downstream use case that tells the agent why and when to call this. There is no explicit when-not guidance or pointer to the sibling that adds media (import_media_from_link) or fetches upload results, so the routing picture is only half complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_postsList my postsARead-onlyIdempotentInspect
Posts in PersonaXpand: drafts, scheduled, published or failed, newest first, with each network's status. get_post has the full text of one post.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Only posts on or before this date (YYYY-MM-DD, the person's time zone). | |
| from | No | Only posts on or after this date (YYYY-MM-DD, the person's time zone). | |
| limit | No | How many to return, 1-50 (default 20). | |
| status | No | draft, scheduled, published, failed, or all (default all). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive, non-open-world behavior, so the description only needs to add context. It does so usefully: newest-first ordering, inclusion of per-network status, and the implicit note that the body text is not returned here. Return-shape detail (fields, paging behavior) is only partly covered.
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 compact sentences with zero filler. The scope and ordering are front-loaded, and the get_post routing hint is placed where it is immediately actionable.
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 purely read-only, four-optional-parameter list tool with no output schema, the description gives enough to call it correctly: what it returns (posts with per-network status), ordering, and where to go for full content. Pagination is handled by the documented limit parameter; only explicit return-field enumeration is absent.
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 100%, so every parameter (from, to, limit, status) is already documented with format and defaults in the schema. The description's mention of the four statuses largely restates the status enum rather than adding new semantics. Baseline 3 applies.
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?
Names the resource (posts in PersonaXpand) and enumerates the states covered (drafts, scheduled, published, failed) plus ordering (newest first). It also explicitly separates itself from get_post, which returns the full text of a single post. The only weakness is that the listing verb is implied by the name rather than stated outright.
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?
The closing clause about get_post gives an explicit alternative and the condition that selects it (need the full text of one post, not a list). It does not cover other adjacent siblings such as get_analytics_summary or list_reply_drafts, but the core routing decision is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_reply_draftsList reply drafts waiting for meARead-onlyIdempotentInspect
Replies the automation drafted in the person's voice and is holding for their approval, soonest-expiring first: the message, the conversation, the draft, and when the network stops taking a reply. Listing sends nothing.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many to return, 1-50 (default 20). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. Beyond that, the description adds ordering ('soonest-expiring first'), identifies the fields returned, and clarifies 'Listing sends nothing,' which is useful behavioral context for an approval queue.
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?
One front-loaded sentence communicates the purpose, ordering, returned fields, and side-effect status without waste. The phrasing around 'Replies the automation drafted' is slightly compressed but still understandable.
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 simple read-only list with one optional parameter and no output schema, the description supplies the essential context: what is listed, ordering, returned fields, and confirmation that listing does not send. It does not enumerate sibling alternatives, but nothing critical for invoking the tool is missing.
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 100%, and the single limit parameter is fully documented in the schema. The description does not add meaning about the limit or its default range, so baseline 3 applies.
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?
The description clearly states the resource—reply drafts awaiting the person's approval—and the listing verb. It does not explicitly distinguish itself from siblings like approve_reply_draft or reject_reply_draft, so it falls short of a full 5, but the pending-draft scope is clear.
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?
Use is implied: the agent should call this to see drafts held for approval. There is no explicit when-to-use or when-not guidance, and no routing to approve_reply_draft, reject_reply_draft, or other alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mark_handledMark a message as handledAIdempotentInspect
Clears one message the automation left for the person (needs_you in list_inbox) once they dealt with it themself, like the Done button in Global Inbox. Sends nothing.
| Name | Required | Description | Default |
|---|---|---|---|
| message_id | Yes | The message id from list_inbox. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-readonly, idempotent and non-destructive, so the main added value is 'Sends nothing' and the Done-button analogy, which clarify there is no outbound side effect. The description does not say whether the clear is reversible, whether the item disappears from list_inbox permanently, or what permissions are needed.
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 compact sentences that lead with the action and then qualify it with the Done-button analogy; no wasted clauses. The analogy, while useful, is slightly informal but earns its place by fixing expectations.
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 one-parameter, no-output-schema tool this covers what an agent needs: what it acts on, where the id comes from, and that nothing is sent. Only the post-clear state (reversibility, inbox effect) is left implicit.
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 coverage is 100% and the single parameter is already documented as 'The message id from list_inbox.' The description corroborates that linkage via needs_you but adds no format or edge-case guidance beyond the schema, so the baseline 3 applies.
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?
The description names a specific verb and resource ('Clears one message') and scopes it to the automation's needs_you items surfaced by list_inbox, which separates it from siblings like send_reply or approve_reply_draft. It stops short of stating unambiguously whether 'clears' means removal or just state change, leaving a sliver of doubt.
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?
It gives a clear trigger: use this 'once they dealt with it themself', tying usage to human follow-up rather than automation. The closing 'Sends nothing' implicitly tells the agent not to reach for it when an outbound reply is needed, though no sibling is named explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pause_postPause a scheduled postAIdempotentInspect
Holds a scheduled post so it doesn't go out, keeping it and its times. resume_post puts it back on the schedule.
| Name | Required | Description | Default |
|---|---|---|---|
| post_id | Yes | The post id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=true, so the safety profile is covered. The description adds meaningful state context beyond that: the post and its times are preserved rather than deleted, so the agent knows pausing is reversible and non-destructive of metadata.
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, effect first, alternative second — nothing redundant and no restating of the title verbatim.
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 one-parameter mutation with full annotation coverage and no output schema, this is nearly complete: effect, reversibility, and sibling routing are all present. A note on error behavior for non-scheduled posts would close the remaining gap.
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 coverage is 100% with a single required post_id, so the schema carries the parameter burden and the baseline is 3. The description adds no format hints (e.g. where post_id comes from or whether it accepts a list) beyond what the schema already states.
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?
Specific verb+resource ("Holds a scheduled post") plus the effect stated in plain terms ("so it doesn't go out"), and it explicitly names resume_post as the counterpart so the agent can separate pausing from resuming without opening either schema.
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?
The second sentence explicitly routes to resume_post as the reverse operation, and "scheduled post" scopes which posts this applies to. What's missing is an exclusion: it doesn't say what happens if the post is already published or in draft, or whether reschedule_post should be used instead when only timing changes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_post_nowPublish a post nowADestructiveInspect
Publishes a saved post to its networks right away. A network that can't take it (connection broken, or a check it fails, like YouTube without a video) is left out and listed in skipped; the rest still go. Counts toward the plan's post allowance (one per network). Publishing takes about a minute; get_post shows each network's result.
| Name | Required | Description | Default |
|---|---|---|---|
| post_id | Yes | The post id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, but the description adds genuinely non-obvious behavior: per-network partial failure with failures returned in a "skipped" list while the rest still publish. It also discloses that the call consumes one post from the plan allowance per network and takes roughly a minute, which an agent needs to avoid treating a failure as total or retrying blindly.
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?
Three tight sentences, front-loaded with the action, then partial-failure behavior, then cost and result-retrieval. No filler and nothing repeated from the title.
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 one-parameter, non-idempotent mutation with no output schema, the description covers everything material: what happens on partial failure, that skipped networks are reported, the allowance cost, the latency, and where to check per-network results via get_post.
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 coverage is 100% for the single post_id parameter, so the baseline applies. The description adds only the mild constraint that the post must already be "saved" rather than newly composed; it gives no format or validity details beyond 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?
"Publishes a saved post to its networks right away" gives a specific verb (publishes), resource (a saved post), and scope (all its networks). "Right away" implicitly separates it from schedule_post and create_post, but no sibling is named outright, so the differentiation is inferred rather than stated.
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?
Usage is implied: this is the immediate-publish path for an already-saved post, versus scheduling or creating. There is no explicit when-to-use/when-not statement and no named alternative for deferring publication, leaving the agent to match it against schedule_post on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refresh_analyticsRefresh my analyticsARead-onlyIdempotentInspect
Pulls fresh followers and engagement from the connected networks, exactly like the refresh button on the Analytics page, and returns them with when each was fetched. get_analytics_summary reads the stored history, which this refresh updates.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | 7, 30 or 90 (days) for the totals. Default 30. | |
| network | No | Only this network, e.g. instagram, facebook, twitter, linkedin, youtube, threads, bluesky. Leave empty for all connected. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnlyHint, idempotentHint, destructiveHint=false), but the description adds real context: the call hits external networks live and writes back to the stored analytics history that get_analytics_summary reads, and the response includes per-item fetch timestamps. Worth noting there is a mild tension between 'this refresh updates' the stored history and readOnlyHint=true; the effect is confined to local cache rather than remote data, so this is not a hard contradiction, but the description could have made that boundary explicit.
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 tight sentences: the first defines the action and return shape, the second routes to or away from the sibling. Nothing redundant, and the core behavior is front-loaded.
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?
With only two optional parameters, no output schema, and full annotation coverage, the description is nearly complete, and it usefully describes the return shape ('with when each was fetched'). It doesn't say what happens when a network is not connected or a refresh fails, which matters given the multi-network scope, so it stops short of 5.
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 100% and both parameters are already documented, including the 7/30/90 day options and the enumerated network examples. The description adds no syntax, default, or interaction guidance for 'days' or 'network' beyond what the schema provides, so the baseline of 3 applies.
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?
States a specific verb and resource ('pulls fresh followers and engagement from the connected networks') plus scope ('returns them with when each was fetched'), and explicitly distinguishes itself from get_analytics_summary as the write-through refresh versus the stored-history read. An agent can differentiate it from all 35 siblings without opening the schema.
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?
Names the relevant alternative (get_analytics_summary) and the condition that separates them: this one fetches live data and updates stored history, the sibling reads that history. It gives no explicit when-not guidance (e.g. cost/rate implications of refreshing repeatedly) and doesn't mention the related list_connected_accounts dependency, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reject_reply_draftTurn down a reply draftADestructiveIdempotentInspect
Turns down one waiting draft (draft_id from list_reply_drafts): nothing is sent, and the automation won't answer that message.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Why, in a few words (optional). | |
| draft_id | Yes | The draft_id from list_reply_drafts. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true and readOnlyHint=false, and the description usefully disambiguates what that means here: 'nothing is sent, and the automation won't answer that message'. That is real added value beyond the annotations, since it tells the agent the destructive effect is limited to the draft itself. It doesn't say whether the rejection is reversible or whether the draft record persists.
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?
A single front-loaded sentence with the primary effect first ('turns down one waiting draft') and the consequence second. Every clause carries information; no filler.
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 two-parameter state-change tool with no output schema, the description covers the key questions: which draft, where the ID comes from, and what actually happens downstream. The one meaningful gap is whether the draft is permanently discarded or can be restored, which matters given destructiveHint=true.
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 coverage is 100% and both parameters already carry descriptions, so the schema does the heavy lifting. The description reinforces the provenance of draft_id but says nothing about the optional 'reason' field and adds no format or constraint detail beyond 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?
The description names a specific verb ('turns down') and resource ('one waiting draft'), and the parenthetical anchors it to list_reply_drafts. An agent can tell it apart from approve_reply_draft and send_reply without opening any schema, though the contrast with approve_reply_draft is only implicit.
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?
It tells the agent the draft must be in the 'waiting' state and where to obtain draft_id (list_reply_drafts), which is clear operational context. It stops short of explicitly naming alternatives or stating when-not to use it (e.g., use send_reply or schedule_reply to actually respond).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reschedule_postMove a scheduled postAIdempotentInspect
Moves a scheduled (or paused) post. With when, every network goes out at that time. To give networks different times, use per_network_times (it can be combined with when for the rest). "best" picks each network's best time. A paused post stays paused.
| Name | Required | Description | Default |
|---|---|---|---|
| when | No | New time for the post: ISO 8601 (read in the person's time zone without an offset) or "best". | |
| post_id | Yes | The post id. | |
| per_network_times | No | New times for some networks; each when is ISO 8601 or "best". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnlyHint=false, destructiveHint=false, idempotentHint=true), so the description's job is to add nuance; 'A paused post stays paused' does exactly that by disclosing that rescheduling does not resume or change publication state. It still does not say whether already-published posts are rejected or what errors occur, keeping it below 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?
Short, front-loaded, and every sentence carries information about scope or parameter combination. The quoted 'best' token and slightly clipped phrasing are minor readability costs but not waste.
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 three-parameter mutation with no output schema, the description covers the crucial interaction between 'when' and per_network_times and the paused-state behavior. It omits error conditions and what the post's resulting status is, so it is not fully complete.
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 coverage is 100%, so the baseline is 3. The description does add some meaning beyond the schema — that 'when' applies to every network and that per_network_times can be combined with 'when' for the remaining networks — but the ISO/timezone semantics and the 'best' value are already documented 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?
The description opens with a concrete verb and resource ('Moves a scheduled (or paused) post'), which clearly separates it from pause_post, resume_post, and delete_post. It does not explicitly name update_post or schedule_post as alternatives, so it falls short of full sibling differentiation.
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?
It clearly explains when to use 'when' (all networks at one time) versus 'per_network_times' (different times per network) and how they combine, and explains that 'best' selects each network's best time. It never states when to use this tool instead of update_post or schedule_post, which is the main gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resume_postResume a paused postADestructiveInspect
Puts a paused post back on the schedule. A post whose time has already passed needs a new time (when, ISO 8601 or "best"); it never goes out late by surprise.
| Name | Required | Description | Default |
|---|---|---|---|
| when | No | Optional new time: ISO 8601 or "best". Needed when the old time has passed. | |
| post_id | Yes | The post id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, openWorldHint=true, and idempotentHint=false. The description adds real context beyond that: it explains that a post whose time has passed needs a new time and will not silently publish late. That is valuable behavioral disclosure. It does not explain why the operation is marked destructive, which is the one remaining gap.
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 sentences, front-loaded with the core action and followed by the conditional constraint. No filler. The colloquial phrasing 'never goes out late by surprise' is slightly informal but conveys the guarantee efficiently.
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?
This is a simple two-parameter mutation with annotations and no output schema, so the description covers what an agent needs: what it does, the past-time condition, and that a new time may be required. It omits the failure case where the post is not paused, which would be a useful addition.
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 coverage is 100%: both parameters are documented, including the ISO 8601 or 'best' options for 'when'. The description reinforces the conditional requirement for 'when', which is useful but largely repeats the schema. A baseline 3 is appropriate.
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?
The description gives a specific verb and resource: it puts a paused post back on the schedule. That is clearly distinct from create_post, schedule_post, and pause_post. It does not explicitly name reschedule_post, the closest sibling, but the 'paused' qualifier narrows the purpose effectively.
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?
The phrase 'paused post' implies the precondition for use, but the description never states the inverse relationship with pause_post, nor when to prefer reschedule_post over this tool. The condition for supplying 'when' is clear, so the gaps are moderate rather than severe.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
schedule_postSchedule a postADestructiveInspect
Schedules a saved post. Give one time for all networks, separate times per network, "best" for each network's best time (from the person's own results, else research), or use_queue to take the next open place in the person's posting queue. Times without an offset are read in the person's time zone; the result says which zone. Networks that can't take the post are left out and listed in skipped. Counts toward the plan's post allowance (one per network).
| Name | Required | Description | Default |
|---|---|---|---|
| when | No | When to post: ISO 8601 (e.g. 2026-11-02T09:00, read in the person's time zone) or "best". | |
| post_id | Yes | The post id. | |
| use_queue | No | true to use the person's posting queue instead of a time. | |
| per_network_times | No | Different times for some networks; each when is ISO 8601 or "best". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is non-read-only, non-idempotent, open-world, and destructive. Beyond that, the description adds valuable behavior: timezone interpretation, skipped networks being listed, and allowance consumption one per network. It does not, however, explain idempotency or what happens on repeated scheduling beyond what annotations imply.
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?
The description is front-loaded with the core action and then enumerates scheduling modes tightly. Every sentence carries useful operational detail, with no filler or repetitive restatement of the title.
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 scheduling mutation with no output schema, the description covers the key operational facts: timezone handling, skipped networks, and allowance impact. It is nearly complete, though it could clarify how this differs from reschedule_post and whether repeated calls alter an existing schedule.
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 coverage is 100%, so the schema already documents the parameters. The description still adds meaningful semantics beyond the schema by explaining 'best' timing, use_queue behavior, timezone interpretation, and per-network scheduling, though it does not detail every parameter interaction.
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?
The description states a specific verb and resource: 'Schedules a saved post.' It is clear what the tool does, but it does not explicitly differentiate it from siblings like reschedule_post or publish_post_now, leaving sibling selection to inference.
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?
The description explains scheduling modes (single time, per-network times, 'best', or use_queue), which is useful usage context. However, it gives no explicit guidance on when to choose this tool over reschedule_post, publish_post_now, or pause_post, so alternative selection remains implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
schedule_replySchedule a replyADestructiveInspect
Queues a reply to one inbox message for a later time (1 minute to 30 days ahead). It is sent only if nobody has answered the message by then, and counts toward the reply allowance when it goes out.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The reply text. | |
| when | Yes | When to send, ISO 8601. Without an offset it is read in the person's time zone. | |
| message_id | Yes | The message id from list_inbox. | |
| same_reply_to_many_confirmed | No | true means the person confirmed sending this same reply to many people (see same_reply_to_many). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true, idempotentHint=false, and openWorldHint=true, but the description adds substantive behavior the annotations cannot convey: the send is conditional on no one answering first, it consumes the reply allowance, and the delay is bounded to 1 minute–30 days. It does not explain whether a scheduled reply can be cancelled or what happens if the window passes without the condition being met.
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 sentences, no filler, with the core action and its time window up front and the conditional-send caveat immediately after. Every clause carries information.
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, non-idempotent write with a referenced confirmation flag (same_reply_to_many_confirmed) and no output schema, the description covers the main risks: delayed execution, conditional delivery, and quota consumption. The gaps are secondary — no guidance on cancellation or on what invalid/past timestamps do.
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 coverage is already 100%, so the baseline is 3, but the description contributes a real constraint the schema lacks: the allowed horizon for `when` (1 minute to 30 days). It also reinforces the single-message scope of message_id rather than a list.
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?
The description names a specific verb and resource ('Queues a reply'), scopes it to 'one inbox message' and a bounded future window, which separates it in practice from send_reply and schedule_post. It stops short of naming those siblings explicitly, so the differentiation is inferred from scope rather than stated.
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?
Usage is only implied: an agent can infer this is the 'reply later' option versus send_reply for immediate sends, but the description never states when to prefer it or when not to. There is no mention of the draft/approval flow siblings (list_reply_drafts, approve_reply_draft) that an agent might otherwise confuse with this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_replySend a replyADestructiveInspect
Sends a reply to one inbox message (DM, comment or mention) from the person's account. A message is only ever answered once. Counts toward the reply allowance like an automatic reply.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The reply text. | |
| message_id | Yes | The message id from list_inbox. | |
| same_reply_to_many_confirmed | No | true means the person confirmed sending this same reply to many people (see same_reply_to_many). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false and openWorldHint=true, so the safety profile is covered. The description adds genuine context beyond that: the write counts against the reply allowance like an automatic reply (a quota effect) and a message is only ever answered once (an irreversible, one-shot state change). It still does not explain what happens to the inbox item afterward or what the confirmation flag guards against.
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?
Three short sentences, led by the core action and scope so the essential information is front-loaded. The 'Counts toward the reply allowance like an automatic reply' sentence is compact but slightly cryptic without knowing what an automatic reply is. No filler or repetition overall.
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?
There is no output schema, so the description needn't describe return values, and annotations cover the safety profile. The remaining essentials — scope, one-shot nature, quota impact — are present. A slightly fuller note on confirmation behavior for bulk sends and on the post-send inbox state would make it fully complete.
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 100%, so all three parameters — text, message_id and same_reply_to_many_confirmed — are already documented in the schema. The description does not elaborate on any parameter's format, provenance or semantics beyond what the schema states. With the schema carrying the full burden, a baseline 3 is appropriate.
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?
The description states a specific verb and resource: 'Sends a reply to one inbox message (DM, comment or mention)' from the person's account. It is distinguishable from draft-related siblings such as approve_reply_draft, list_reply_drafts and schedule_reply, though it never explicitly names those alternatives. The parenthetical enumerating message types adds useful scope detail.
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?
The phrase 'A message is only ever answered once' implies this is the immediate-send path and warns of a one-shot constraint, which helps an agent decide. However, it never states when to prefer schedule_reply or approve_reply_draft over this tool, nor what prerequisite steps (e.g. fetching message_id via list_inbox) are required. Usage is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_account_auto_replyTurn auto-replies on or off for one accountAIdempotentInspect
Turns automatic replies on or off for one connected account (account_id from get_auto_reply_settings). YouTube needs the person's own agreement in the app the first time.
| Name | Required | Description | Default |
|---|---|---|---|
| on | Yes | true to turn on, false to turn off. | |
| account_id | Yes | The account_id from get_auto_reply_settings. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-read-only, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds a genuine prerequisite the annotations cannot express – YouTube requires the person's own in-app consent the first time – which is exactly the kind of auth/permission context that earns credit. What happens when that consent is missing (error vs. silent no-op) is left unstated.
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 sentences, front-loaded with the core action and followed by the account source and the one caveat. The parenthetical is slightly clunky but nothing is wasted.
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 two-parameter toggle with full schema coverage and no output schema, the definition gives enough to invoke it correctly, including the id source and the YouTube consent caveat. The one real gap is sibling disambiguation against set_auto_reply, which is not addressed.
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 coverage is 100% and both parameters are documented with clear meanings, including the boolean polarity. The description's note that account_id comes from get_auto_reply_settings merely repeats the schema's own parameter text, adding no new semantics; baseline 3 applies.
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?
States a specific verb and resource ('turns automatic replies on or off') and scopes it to one connected account, so the effect is unambiguous. It does not differentiate itself from the sibling set_auto_reply, which reads as a near-identical operation, leaving the agent to guess between them.
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?
It tells the agent where account_id comes from ('from get_auto_reply_settings'), which implies the natural read-then-write sequence. But there is no explicit when-to-use versus set_auto_reply, create_auto_reply_rule, or the draft-approval siblings, and no stated prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_auto_replyChange auto-reply settingsAIdempotentInspect
Turns automatic replies on or off overall, chooses which message types get them (DMs, comments, mentions), whether each type waits for the person's approval first, the daily reply limit, the hours replies go out, and a wait before each reply. Fields left out stay the same.
| Name | Required | Description | Default |
|---|---|---|---|
| on | No | Auto-replies on (true) or off (false). | |
| always_on | No | true = reply at any hour; false = only between active_hours_start and active_hours_end. | |
| reply_to_dms | No | Reply to direct messages. | |
| delay_minutes | No | Wait before each reply goes out: 0, 5, 10 or 30 minutes. | |
| active_hours_end | No | When replies stop each day, HH:mm, e.g. 18:00. | |
| ask_me_first_dms | No | DM replies wait for the person's approval. | |
| daily_reply_limit | No | Most replies per day; 0 = the plan's full daily amount. | |
| reply_to_comments | No | Reply to comments. | |
| reply_to_mentions | No | Reply to mentions. | |
| active_hours_start | No | When replies start each day, HH:mm in the person's time zone, e.g. 09:00. | |
| ask_me_first_comments | No | Comment replies wait for the person's approval. | |
| ask_me_first_mentions | No | Mention replies wait for the person's approval. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds a genuinely non-structured behavioral fact — omitted fields are preserved rather than reset, making the call a safe partial update. It does not disclose permission requirements or whether turning replies off affects queued drafts.
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?
The purpose and partial-update rule are front-loaded in two sentences with no filler, and the closing clause is the highest-value line. It is a dense run-on list that largely mirrors the schema's enumeration, so it is efficient but not maximally economical.
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 12-parameter mutation with no output schema, the description covers the essential pieces: what it toggles, what it configures, and that unset fields persist. The main remaining gap is scope — whether this is account-wide and how it interacts with the account-specific sibling — which an agent must resolve before calling.
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 100% and every one of the 12 fields carries its own explanation, including allowed delay values and HH:mm formatting, so the schema does the heavy lifting. The description only groups the fields by theme (message types, approvals, limit, hours, delay) without adding constraints beyond what the schema states — the 3 baseline is appropriate.
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?
The description opens with a specific verb+resource ('Turns automatic replies on or off overall') and enumerates the settings it governs, so an agent can tell it apart from read-side siblings like get_auto_reply_settings or rule-level tools like create_auto_reply_rule. It stops short of naming which account/scope the 'overall' toggle applies to, leaving ambiguity with set_account_auto_reply.
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?
'Fields left out stay the same' strongly implies this is the partial-update path rather than a create or per-account override, which is useful implied guidance. However, no explicit when-to-use vs set_account_auto_reply, create_auto_reply_rule, or update_auto_reply_rule is given, so the agent must infer routing from names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_auto_reply_ruleChange an auto-reply ruleADestructiveIdempotentInspect
Changes one auto-reply rule (rule_id from get_auto_reply_settings). Fields left out stay the same.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| when | No | any, keyword or exact. | |
| active | No | ||
| keyword | No | ||
| rule_id | Yes | The rule_id. | |
| priority | No | ||
| applies_to | No | dm, comment or mention. | |
| reply_text | No | ||
| reply_with | No | ai or fixed. | |
| skip_approval | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true, idempotentHint=true and readOnlyHint=false, so the safety profile is covered. The clause 'Fields left out stay the same' adds genuine patch semantics that the annotations do not provide, but the description never says what the destruction actually means (e.g. that an existing reply_text or priority ordering is overwritten) or whether the rule must be re-approved.
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, verb-and-resource first, identifier provenance second. Nothing is wasted and the most important constraint (omitted fields are preserved) is visible without reading further.
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 ten-parameter mutation tool with no output schema and only 40% schema coverage, the description covers the essentials of patching by id but leaves conditional dependencies unexplained, notably that 'when=keyword' is meaningless without keyword and that applies_to/reply_with take small value vocabularies. It is adequate to invoke safely on the happy path but thin for edge cases.
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 coverage is only 40%, so several of the ten parameters (keyword, priority, skip_approval, active) have no documented meaning anywhere, and the description does not compensate for that gap. It does explain why every optional field accepts null (leave unchanged) and where rule_id originates, which is real added meaning over the schema's circular 'The rule_id.'
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?
The description names a specific verb and scope: 'Changes one auto-reply rule', which separates it from create_auto_reply_rule and delete_auto_reply_rule. It also points to the sibling that supplies the required identifier, so the agent knows which tool precedes this one.
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?
The parenthetical '(rule_id from get_auto_reply_settings)' is implicit guidance to call the read tool first, which is useful context. However, there is no explicit when-to-use/when-not framing and no warning that this is not the tool for creating rules or changing account-wide defaults via set_auto_reply.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_postEdit a postADestructiveInspect
Changes a draft, scheduled or failed post: text, networks, per-network versions or media. Fields left out stay the same. A scheduled post goes back to draft and needs scheduling again.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | New main text. | |
| post_id | Yes | The post id. | |
| networks | No | The full new list of networks. | |
| alt_texts | No | Alt text for each image, same order as media_urls. | |
| media_urls | No | The full new list of media links. Send an empty list to remove all media. | |
| per_network | No | Per-network versions to change (others stay as they are). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and non-idempotent, but the description adds genuinely new behavior: partial-update semantics ('fields left out stay the same') and the side effect that a scheduled post is demoted to draft and must be rescheduled. It still doesn't explain what makes the operation destructive (presumably media replacement/removal) or what the call returns.
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?
Three short sentences: what can be changed, what an omission means, and the scheduling side effect. Front-loaded with the verb and resource, no filler, every clause carries information the agent needs.
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 6-parameter mutation with a nested per-network structure and no output schema, the description covers eligibility, merge semantics and the most surprising side effect. Gaps remain: no statement about what is returned after the edit, and no explicit guidance for replacing or clearing media beyond the schema's own note.
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 100%, so the baseline is 3, but the description adds meaning the schema does not state: that omitted fields are preserved, making this a merge rather than a replace. It also frames the field groups collectively ('per-network versions or media'), helping the agent map intent to the right parameters.
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?
Names a specific verb (changes) plus the resource (a post) and enumerates the editable facets: text, networks, per-network versions, media. It also scopes the tool to posts in draft, scheduled or failed state, which implicitly separates it from publish_post_now, reschedule_post and create_post without naming them.
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?
The state restriction ('draft, scheduled or failed') tells the agent when this tool is applicable, ruling out editing published posts. The note that a scheduled post reverts to draft is effectively a when-to-use caveat that signals reschedule_post may be the better call for time-only changes, though it never names that sibling explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Related MCP Connectors
Publish to 8 social networks, answer Instagram and Facebook DMs, build comment-to-DM flows.
Draft, schedule and publish social posts in your own voice across 11 platforms.
Schedule posts, read analytics and answer comments and DMs on 6 social networks.
Schedule social posts to 30+ networks, answer the inbox and run chat automations.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables posting and managing content across 13+ social media platforms with scheduling, analytics, AI generation, and approval workflows through natural language.2MIT

Markaestroofficial
AlicenseAqualityBmaintenanceSchedule, publish, and measure social posts on Facebook, Instagram, TikTok, LinkedIn, Threads, Pinterest, and X for one brand or many.34MIT- AlicenseAqualityDmaintenanceAI-powered social media posting across 14 platforms. Post to Twitter, Instagram, TikTok, Facebook, LinkedIn, YouTube and more with one command. AI adapts content per platform, schedules posts, and generates 30-day content calendars.6MIT
- AlicenseNot gradedqualityCmaintenanceManage Threads and Bluesky social media from AI assistants. Schedule posts, check analytics, and automate follow-up replies.3MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.