Ayrshare Unofficial MCP Server
Enables publishing posts, managing comments, and tracking social media analytics on Bluesky via the Ayrshare API.
Allows for publishing posts, sending direct messages, managing comments, and viewing account-level analytics on Facebook.
Provides tools for media uploads, post publishing, direct messaging, comment management, and engagement tracking on Instagram.
Allows for publishing and scheduling social media posts to Pinterest boards.
Enables posting and comment management on Reddit through a unified social media API.
Allows for publishing and managing social media content on Snapchat.
Enables publishing posts and managing social media content distribution on Telegram.
Allows for publishing posts and interacting with social media content on the Threads platform.
Provides tools for publishing video content and managing social media interactions on TikTok.
Enables publishing content, managing comments, and tracking engagement analytics on YouTube.
Ayrshare Unofficial MCP Server
An unofficial MCP (Model Context Protocol) server for the Ayrshare social media API. Enables AI agents to publish posts, manage profiles, upload media, handle comments, send messages, view analytics, and configure auto-scheduling — all through real API calls.
Note: This is an unofficial, community-built project. It is not affiliated with or endorsed by Ayrshare. The official Ayrshare MCP server provides documentation access only — this server actually executes API calls on your behalf.
Prerequisites
Node.js >= 18.0.0
An Ayrshare account with an API key (get one here)
At least a Premium plan for most features (Business plan for profiles and messaging)
Related MCP server: RecurPost MCP Server
Installation
Option 1: npx (Recommended)
Add to your MCP client configuration (e.g. Claude Desktop claude_desktop_config.json):
{
"mcpServers": {
"ayrshare": {
"command": "npx",
"args": ["-y", "ayrshare-unofficial-mcp"],
"env": {
"AYRSHARE_API_KEY": "your-api-key-here"
}
}
}
}Option 2: Claude Code
claude mcp add ayrshare -e AYRSHARE_API_KEY=your-api-key-here -- npx -y ayrshare-unofficial-mcpOption 3: Build from Source
git clone https://github.com/yardz/ayrshare-unofficial-mcp.git
cd ayrshare-unofficial-mcp
npm install
npm run buildThen configure your MCP client:
{
"mcpServers": {
"ayrshare": {
"command": "node",
"args": ["/absolute/path/to/ayrshare-unofficial-mcp/build/index.js"],
"env": {
"AYRSHARE_API_KEY": "your-api-key-here"
}
}
}
}Configuration
Environment Variable | Required | Description |
| Yes | Your Ayrshare Primary Profile API key |
| No | Default Profile Key for user profile operations (Business plan) |
All tools also accept an optional profileKey parameter to override the default on a per-call basis.
Available Tools (18)
Posts (4 tools)
Tool | Description | Min Plan |
| Publish or schedule a post to one or more social platforms | Basic |
| Get details of a specific post by ID | Basic |
| List post history with optional filters | Basic |
| Delete a post or scheduled posts | Basic |
Profiles (3 tools)
Tool | Description | Min Plan |
| Create a new user profile | Business |
| List all user profiles | Business |
| Update a profile's settings | Business |
Media (1 tool)
Tool | Description | Min Plan |
| Upload an image or video to the media library | Premium |
Comments (3 tools)
Tool | Description | Min Plan |
| Post a comment on a social media post | Premium |
| Get comments on a post | Premium |
| Delete a comment | Premium |
Messages (2 tools)
Tool | Description | Min Plan |
| Send a direct message (Facebook, Instagram, X) | Business |
| Get messages and conversations | Business |
Analytics (2 tools)
Tool | Description | Min Plan |
| Get engagement metrics for a post | Premium |
| Get account-level analytics | Premium |
Auto-Schedule (3 tools)
Tool | Description | Min Plan |
| Create or update an auto-posting schedule | Premium |
| List all configured schedules | Premium |
| Delete a schedule | Premium |
Tool Details
Posts
create_post
Publish or schedule a social media post to one or more platforms. Supports text, images, videos, scheduling, and auto-scheduling.
Parameter | Type | Required | Description |
| string | Yes | Text content of the post (can be empty if mediaUrls provided) |
| string[] | Yes | Target platforms: |
| string[] | No | HTTPS URLs of images or videos to attach |
| string | No | ISO 8601 UTC datetime (e.g. |
| boolean | No | Enable link shortening (requires Max Pack) |
| boolean | No | Put post in approval workflow |
| string | No | Internal reference notes |
| object | No |
|
| string | No | Profile Key override |
Example prompt: "Publish to Instagram and Twitter: 'New product launch! Check it out.' with this image: https://example.com/product.jpg"
get_post
Get details of a specific post by its Ayrshare Post ID.
Parameter | Type | Required | Description |
| string | Yes | Ayrshare Post ID |
| string | No | Profile Key override |
Example prompt: "Show me the details of post abc123"
get_post_history
List post history with optional filters.
Parameter | Type | Required | Description |
| number | No | Posts to return (default 25, max 1000) |
| string[] | No | Filter by platforms |
| string | No | Filter: |
| string | No | Filter: |
| number | No | Last N days (default 30, 0 = all) |
| string | No | Profile Key override |
Example prompt: "Show me my last 10 posts on Instagram"
delete_post
Delete a post from social platforms.
Parameter | Type | Required | Description |
| string | No* | Ayrshare Post ID to delete |
| string[] | No* | Array of Post IDs for bulk deletion |
| boolean | No* | Delete all pending scheduled posts |
| string | No | Profile Key override |
*At least one of id, bulk, or deleteAllScheduled is required.
Example prompt: "Delete post abc123"
Profiles
create_profile
Create a new user profile for managing separate social media accounts.
Parameter | Type | Required | Description |
| string | Yes | Unique profile name |
| boolean | No | Enable messaging (default false) |
| string[] | No | Social networks to disable |
| string[] | No | Tags for organizing |
Example prompt: "Create a profile called 'Client ABC' with Instagram and Twitter enabled"
list_profiles
List all user profiles with their linked social accounts.
Parameter | Type | Required | Description |
| string | No | Filter by title |
| string | No | Filter by reference ID |
| boolean | No | Filter by active accounts |
| number | No | Max results (default 5000) |
| string | No | Pagination cursor |
Example prompt: "List all my profiles and their connected social accounts"
update_profile
Update an existing profile's settings.
Parameter | Type | Required | Description |
| string | Yes | Profile Key to update |
| string | Yes | New profile title |
| string[] | No | Social networks to disable |
| boolean | No | Enable/disable messaging |
| string[] | No | Tags for organizing |
Example prompt: "Enable messaging on the 'Client ABC' profile"
Media
upload_media
Upload an image or video to Ayrshare's media library. Files are stored for 90 days. Max size: 30MB.
Parameter | Type | Required | Description |
| string | No* | Public URL of the file to upload |
| string | No* | Base64 data URI (e.g. |
| string | No | Name for the file |
| string | No | File description |
| string | No | Profile Key override |
*One of fileUrl or base64Data is required.
Example prompt: "Upload this image to my media library: https://example.com/photo.jpg"
Comments
post_comment
Post a comment on a social media post.
Parameter | Type | Required | Description |
| string | Yes | Ayrshare Post ID or Social Post ID |
| string | Yes | Comment text |
| string[] | Yes | Target platforms: |
| boolean | No | Set true when using Social Post ID |
| string[] | No | Image URLs to attach |
| string | No | Profile Key override |
Example prompt: "Comment 'Thanks for the feedback!' on my last Instagram post"
get_comments
Get comments on a social media post.
Parameter | Type | Required | Description |
| string | Yes | Ayrshare Post ID, Social Post ID, or Social Comment ID |
| boolean | No | Set true when using Social Post ID |
| boolean | No | Set true when using Social Comment ID |
| string | No | Required when |
| string | No | Profile Key override |
Example prompt: "Show me the comments on post abc123"
delete_comment
Delete a comment from a social media post. Supported on Facebook, Instagram, TikTok, X/Twitter, and YouTube.
Parameter | Type | Required | Description |
| string | Yes | Social Comment ID (from |
| string | Yes | Platform: |
| string | No | Profile Key override |
Example prompt: "Delete the spam comment xyz789 on Instagram"
Messages
send_message
Send a direct message on a social platform.
Parameter | Type | Required | Description |
| string | Yes |
|
| string | Yes | Recipient's platform user ID |
| string | Yes | Message text |
| string[] | No | Media file URLs to attach |
| string | No | Profile Key override |
Example prompt: "Send a message to user 12345 on Instagram saying 'Thanks for reaching out!'"
get_messages
Get messages and conversations from a platform.
Parameter | Type | Required | Description |
| string | Yes |
|
| string | No |
|
| string | No | Get a specific conversation |
| boolean | No | Return only conversation list (default: false) |
| string | No | Profile Key override |
Example prompt: "Show me my recent Instagram conversations"
Analytics
get_post_analytics
Get engagement analytics for a specific post (likes, views, shares, impressions, comments).
Parameter | Type | Required | Description |
| string | Yes | Ayrshare Post ID |
| string[] | No | Filter by platforms (omit for all) |
| string | No | Profile Key override |
Note: TikTok and YouTube analytics can take 24-48 hours to update.
Example prompt: "What are the engagement metrics for my last post?"
get_social_analytics
Get account-level analytics (follower count, demographics, impressions, engagement rates).
Parameter | Type | Required | Description |
| string[] | Yes | Platforms to get analytics for |
| number | No | Historical range 1-4 quarters (Facebook/Instagram/YouTube) |
| boolean | No | Return daily time-series (Facebook/Instagram/TikTok/YouTube) |
| string | No | Profile Key override |
Example prompt: "Show me my Instagram follower demographics and engagement rate"
Auto-Schedule
set_auto_schedule
Create or update an auto-posting schedule with predefined times and days. Posts created with autoSchedule in create_post will be queued to the next available slot.
Parameter | Type | Required | Description |
| string[] | Yes | Times in UTC (e.g. |
| string | No | Schedule name (defaults to "default") |
| number[] | No | 0=Sunday through 6=Saturday (defaults to [0,6]) |
| string[] | No | Dates to skip (e.g. |
| string | No | ISO 8601 UTC datetime to begin scheduling |
| string | No | Profile Key override |
Example prompt: "Set up auto-scheduling for Monday through Friday at 9am, 2pm, and 6pm UTC"
list_auto_schedules
List all configured auto-posting schedules.
Parameter | Type | Required | Description |
| string | No | Profile Key override |
Example prompt: "Show me all my auto-posting schedules"
delete_auto_schedule
Delete an auto-posting schedule by title.
Parameter | Type | Required | Description |
| string | Yes | Schedule title (case-sensitive) |
| boolean | No | Also clear the last schedule date |
| string | No | Profile Key override |
Example prompt: "Delete the 'Weekend Posts' auto-schedule"
Supported Platforms
Platform | Post | Comment | Message | Analytics |
Bluesky | Yes | Yes | - | Yes |
Yes | Yes | Yes | Yes | |
Google Business | Yes | - | - | Yes |
Yes | Yes | Yes | Yes | |
Yes | Yes | - | Yes | |
Yes | - | - | Yes | |
Yes | Yes | - | Yes | |
Snapchat | Yes | - | - | Yes |
Telegram | Yes | - | - | - |
Threads | Yes | - | - | Yes |
TikTok | Yes | Yes | - | Yes |
X (Twitter) | Yes | Yes | Yes | Yes |
YouTube | Yes | Yes | - | Yes |
Plan Requirements
Feature | Basic | Premium | Business | Enterprise |
Posts (create, get, history, delete) | Yes | Yes | Yes | Yes |
Media Upload | - | Yes | Yes | Yes |
Comments (post, get, delete) | - | Yes | Yes | Yes |
Analytics (post, social) | - | Yes | Yes | Yes |
Auto-Schedule (set, list, delete) | - | Yes | Yes | Yes |
Profiles (create, list, update) | - | - | Yes | Yes |
Messages (send, get) | - | - | Yes | Yes |
Error Handling
All tools return structured error responses when something goes wrong:
API errors from Ayrshare are returned with the original error code and message
Network errors are caught and returned with a descriptive message
Validation errors (e.g. missing required parameters) are caught before the API call
Error responses have isError: true set so the AI agent can distinguish them from successful responses.
Development
Build
npm install
npm run buildWatch Mode
npm run devTest with MCP Inspector
npx @modelcontextprotocol/inspector node build/index.jsSet the AYRSHARE_API_KEY environment variable before running the inspector.
License
MIT
Available Tools
18 toolscreate_postB
Publish or schedule a social media post to one or more platforms. Supports text, images, videos, scheduling, and auto-scheduling.
| Name | Required | Description | Default |
|---|---|---|---|
| post | Yes | The text content of the post. Can be empty string if mediaUrls are provided. | |
| platforms | Yes | Target social platforms to publish to | |
| mediaUrls | No | HTTPS URLs of images or videos to attach | |
| scheduleDate | No | ISO 8601 UTC datetime for scheduling (e.g. 2026-03-01T10:00:00Z) | |
| shortenLinks | No | Enable link shortening (requires Max Pack) | |
| requiresApproval | No | Put post in approval workflow before publishing | |
| notes | No | Internal reference notes (retrieved via get_post_history) | |
| autoSchedule | No | Use auto-schedule instead of scheduleDate. Post goes to next available slot. | |
| profileKey | No | Profile Key to operate on a specific user profile |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While it mentions the tool can 'publish or schedule' and supports various features, it lacks critical details: it does not specify whether this is a destructive/mutative operation (implied but not stated), what permissions or authentication are required, how errors are handled, rate limits, or what the response looks like (since no output schema exists). The description adds minimal behavioral context beyond the basic action.
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 a single, well-structured sentence that efficiently covers the tool's purpose and key features without redundancy. It is front-loaded with the core action and resource, followed by a concise list of supported capabilities, making it easy to parse and understand quickly.
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?
Given the tool's complexity (9 parameters, no annotations, no output schema), the description is adequate but has clear gaps. It states what the tool does and hints at features, but lacks behavioral details (e.g., mutation effects, error handling), usage guidelines, and output information. For a mutation tool with rich parameters, it should provide more context to compensate for the absence of annotations and output schema.
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 documents all 9 parameters thoroughly. The description adds marginal value by mentioning 'text, images, videos, scheduling, and auto-scheduling', which loosely maps to parameters like 'post', 'mediaUrls', 'scheduleDate', and 'autoSchedule', but does not provide additional syntax, format, or usage details beyond what the schema provides. Baseline 3 is appropriate when the schema does the heavy lifting.
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 specific action ('Publish or schedule'), resource ('social media post'), and scope ('to one or more platforms'), with explicit mention of supported features like text, images, videos, scheduling, and auto-scheduling. It effectively distinguishes this tool from siblings like 'upload_media' (which only uploads) or 'post_comment' (which comments on existing posts).
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 provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., authentication, profile setup), exclusions (e.g., when to use 'upload_media' first), or comparisons to sibling tools like 'send_message' or 'post_comment'. Usage is implied but not explicitly defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_profileA
Create a new user profile for managing separate social media accounts. Returns the profile key needed for subsequent operations. Requires Business plan.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Unique profile name | |
| messagingActive | No | Enable messaging for this profile (default false) | |
| disableSocial | No | Social networks to disable for this profile | |
| tags | No | Tags for organizing profiles |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: it's a creation operation (implied mutation), returns a profile key for future use, and has a Business plan requirement. However, it doesn't cover potential side effects, error conditions, or rate limits.
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 extremely concise with just two sentences that each serve distinct purposes: stating the tool's function and outlining key behavioral aspects. There's no wasted language, and information is front-loaded appropriately.
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 creation tool with no annotations and no output schema, the description does well by explaining the return value ('profile key') and prerequisite ('Business plan'). However, it could provide more context about what happens after creation or how this tool fits into the broader workflow with sibling tools.
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 documents all parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema, but it doesn't need to since the schema coverage is complete. 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 clearly states the specific action ('Create a new user profile') and resource ('for managing separate social media accounts'), distinguishing it from sibling tools like 'list_profiles' or 'update_profile'. It provides a concrete purpose beyond just the tool name.
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 implies usage context by mentioning 'Returns the profile key needed for subsequent operations' and 'Requires Business plan', but it doesn't explicitly state when to use this tool versus alternatives like 'update_profile' or how it relates to sibling tools like 'list_profiles'. The guidance is present but not comprehensive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_auto_scheduleB
Delete an auto-posting schedule by its title. Requires Premium plan.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Schedule title to delete (case-sensitive, must match exactly) | |
| deleteLastScheduleDate | No | If true, also clears the last used schedule date, resetting future scheduling | |
| profileKey | No | Profile Key to operate on a specific user profile |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It states the tool deletes a schedule and requires a Premium plan, but lacks details on permissions, side effects (e.g., impact on scheduled posts), error handling, or confirmation steps. For a destructive operation, this is a significant gap in behavioral disclosure.
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 concise sentences that are front-loaded with the core action and include a key constraint. Every word serves a purpose with no wasted text, making it highly efficient and easy to parse.
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 tool with no annotations and no output schema, the description is minimal. It covers the basic purpose and a plan requirement but misses critical context like what happens after deletion, error cases, or return values. Given the complexity, it's adequate but has clear gaps.
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 documents all parameters thoroughly. The description adds no additional parameter information beyond implying the 'title' parameter is used for deletion, which is redundant with the schema. Baseline 3 is appropriate as the schema does the heavy lifting.
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 action ('Delete') and resource ('auto-posting schedule'), specifying it's done 'by its title'. It distinguishes from siblings like 'delete_post' or 'delete_comment' by focusing on schedules, but doesn't explicitly contrast with 'set_auto_schedule' or 'list_auto_schedules'.
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 mentions a prerequisite ('Requires Premium plan'), which provides some context for when to use it. However, it doesn't specify when to choose this over alternatives like 'set_auto_schedule' for modification or provide exclusions, leaving usage somewhat implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_commentB
Delete a comment from a social media post. Uses the Social Comment ID from the platform. Supported on Facebook, Instagram, TikTok, X/Twitter, and YouTube. Requires Premium plan.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Social Comment ID to delete (get this from get_comments with searchPlatformId=true) | |
| platform | Yes | Platform where the comment exists | |
| profileKey | No | Profile Key to operate on a specific user profile |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions platform support and premium plan requirement, which adds some context, but fails to describe critical behavioral aspects like whether the deletion is permanent, what permissions are needed, error handling, or rate limits. For a destructive operation with zero annotation coverage, this is insufficient.
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 purpose and efficiently lists supported platforms and requirements in two sentences. Every sentence adds value, though it could be slightly more structured for 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?
Given this is a destructive tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral traits (e.g., permanence, permissions), error scenarios, or what happens post-deletion. The premium plan mention is helpful but doesn't compensate for the overall gaps in a mutation context.
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 documents all three parameters thoroughly. The description adds minimal value beyond the schema, only hinting at the 'id' parameter by mentioning 'Social Comment ID from the platform' and listing supported platforms without additional syntax details. Baseline 3 is appropriate when the schema does the heavy lifting.
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 action ('Delete a comment') and resource ('from a social media post'), distinguishing it from sibling tools like 'delete_post' or 'post_comment'. However, it doesn't explicitly differentiate from other deletion tools beyond the resource type.
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 implies usage by specifying 'Supported on Facebook, Instagram, TikTok, X/Twitter, and YouTube' and 'Requires Premium plan', providing some context. However, it doesn't explicitly state when to use this tool versus alternatives like 'delete_post' or provide clear exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_postA
Delete a post from social platforms. Can delete a single post, multiple posts in bulk, or all scheduled posts.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Ayrshare Post ID to delete (required if not using bulk or deleteAllScheduled) | |
| bulk | No | Array of Ayrshare Post IDs for bulk deletion | |
| deleteAllScheduled | No | If true, deletes all pending scheduled posts | |
| profileKey | No | Profile Key to operate on a specific user profile |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While it mentions the deletion actions, it lacks critical details such as required permissions, whether deletions are permanent or reversible, rate limits, or error handling. This is a significant gap for a destructive operation.
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 a single, efficient sentence that front-loads the main purpose and lists the three deletion modes without unnecessary details. Every part of the sentence earns its place by clarifying scope.
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?
Given the complexity of a destructive tool with no annotations and no output schema, the description is incomplete. It fails to address critical behavioral aspects like side effects, authentication needs, or response format, which are essential for safe and effective use.
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 documents all parameters thoroughly. The description adds no additional meaning beyond what the schema provides, such as explaining the relationships between parameters (e.g., mutual exclusivity). Baseline 3 is appropriate when the schema does the heavy lifting.
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 action ('Delete') and resource ('post from social platforms'), and distinguishes itself from siblings by specifying the scope of deletion (single, bulk, or all scheduled posts). This is specific and differentiates it from tools like 'delete_comment' or 'delete_auto_schedule'.
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 implies when to use this tool by outlining its capabilities (single, bulk, or all scheduled posts deletion), but does not explicitly state when not to use it or name alternatives. For example, it doesn't clarify if 'delete_uto_schedule' is a better option for scheduled posts, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_commentsC
Get comments on a social media post. Can retrieve by Ayrshare Post ID, Social Post ID, or Social Comment ID. Requires Premium plan.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Ayrshare Post ID, Social Post ID, or Social Comment ID | |
| searchPlatformId | No | Set to true when using a Social Post ID or Social Comment ID | |
| commentId | No | Set to true when using a Social Comment ID | |
| platform | No | Required when searchPlatformId or commentId is true | |
| profileKey | No | Profile Key to operate on a specific user profile |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses a plan requirement ('Requires Premium plan'), which is useful context, but doesn't cover other behavioral aspects like rate limits, authentication needs, response format, or whether it's read-only. The description is minimal and leaves key behaviors unspecified.
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 purpose and followed by identifier details and a plan requirement. It's efficient with minimal waste, though slightly terse for a tool with 5 parameters and no output schema.
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?
Given 5 parameters, no annotations, and no output schema, the description is incomplete. It lacks details on return values, error handling, or behavioral constraints beyond the plan requirement. For a read operation with multiple parameters, more context is needed to guide effective use.
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 fully documents all 5 parameters. The description adds no additional parameter semantics beyond what's in the schema, such as usage examples or interdependencies. Baseline 3 is appropriate when schema does the heavy lifting.
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 action ('Get comments') and resource ('on a social media post'), with specific identifiers mentioned (Ayrshare Post ID, Social Post ID, Social Comment ID). It distinguishes from siblings like 'get_post' or 'post_comment' by focusing on comments retrieval, but doesn't explicitly contrast with 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 description mentions a requirement ('Requires Premium plan') but provides no guidance on when to use this tool versus alternatives like 'get_post' or 'post_comment'. It lacks explicit when/when-not scenarios or sibling comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_messagesB
Get messages and conversations from a social platform. Supports listing all conversations or getting a specific conversation's messages. Requires Business plan.
| Name | Required | Description | Default |
|---|---|---|---|
| platform | Yes | Platform: facebook, instagram, or twitter | |
| status | No | Conversation status filter (default: active) | |
| conversationId | No | Get a specific conversation by ID | |
| conversationsOnly | No | If true, returns only conversation list without messages (default: false) | |
| profileKey | No | Profile Key to operate on a specific user profile |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the Business plan requirement, which is useful context about access control. However, it doesn't describe other critical behaviors like rate limits, pagination, error handling, or what the return format looks like (e.g., JSON structure). For a tool with 5 parameters and no annotations, this leaves significant gaps.
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 concise with three sentences that each add value: stating the purpose, detailing functionality, and noting a requirement. It's front-loaded with the core purpose. However, the second sentence could be slightly more streamlined (e.g., 'Supports listing conversations or retrieving messages by ID').
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?
Given the tool's complexity (5 parameters, no output schema, no annotations), the description is incomplete. It lacks details on return values, error cases, pagination for large result sets, and how parameters interact. While it covers basic purpose and a requirement, it doesn't provide enough context for reliable agent use without trial and error.
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 documents all parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema (e.g., it doesn't explain interactions between parameters like conversationId and conversationsOnly). Baseline 3 is appropriate when the schema does the heavy lifting.
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 tool's purpose: 'Get messages and conversations from a social platform.' It specifies the verb ('Get') and resource ('messages and conversations'), and distinguishes it from siblings like get_comments or get_post. However, it doesn't explicitly differentiate from send_message or other message-related tools, which prevents a perfect score.
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 provides some usage context by mentioning 'Supports listing all conversations or getting a specific conversation's messages' and 'Requires Business plan,' which implies when to use it (for message retrieval) and a prerequisite. However, it lacks explicit guidance on when to use this versus alternatives like get_comments or send_message, and doesn't specify when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_postA
Get details of a specific post by its Ayrshare Post ID. Returns status, content, platform-specific post IDs and URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The Ayrshare Post ID | |
| profileKey | No | Profile Key to operate on a specific user profile |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the return content (status, content, platform-specific IDs and URLs), which is useful behavioral context. However, it does not mention error handling, authentication needs, rate limits, or whether it's a read-only operation, leaving gaps for a tool with no annotation coverage.
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 a single, well-structured sentence that front-loads the purpose and efficiently lists return values. Every word adds value with zero waste, making it highly concise and easy to parse.
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?
Given no annotations and no output schema, the description provides basic return value information but lacks details on error cases, authentication, or operational constraints. For a read operation with 2 parameters, it is minimally adequate but incomplete for full contextual understanding.
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 fully documents both parameters. The description adds no additional parameter semantics beyond what the schema provides, such as format examples or usage tips. Baseline 3 is appropriate as the schema handles the heavy lifting.
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 action ('Get details'), resource ('specific post'), and identifier ('by its Ayrshare Post ID'), distinguishing it from siblings like get_comments or get_post_analytics. It specifies the exact scope of retrieval, making the purpose unambiguous and differentiated.
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 implies usage for retrieving post details when the ID is known, but does not explicitly state when to use this tool versus alternatives like get_post_history or get_post_analytics. It provides basic context but lacks explicit exclusions or comparisons with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_post_analyticsA
Get engagement analytics for a specific post (likes, views, shares, impressions, comments). Returns real-time metrics across all platforms the post was published to. Note: TikTok/YouTube can take 24-48h to update. Requires Premium plan.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Ayrshare Post ID to get analytics for | |
| platforms | No | Filter analytics by specific platforms (omit to get all) | |
| profileKey | No | Profile Key to operate on a specific user profile |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it returns real-time metrics across platforms, notes platform-specific latency (TikTok/YouTube 24-48h), and specifies a plan requirement (Premium). It doesn't mention rate limits or authentication details, but covers essential operational context.
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 sentences with zero waste: first states purpose and metrics, second adds scope and behavioral notes, third specifies requirement. Each sentence earns its place, and information is front-loaded appropriately.
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?
Given no annotations and no output schema, the description does well to cover purpose, behavioral traits, and requirements. It could mention the return format or structure, but for a read operation with good parameter documentation, it's mostly complete. The sibling context suggests this is adequately differentiated.
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 documents all parameters well. The description adds some value by implying the 'id' parameter is for a specific post and mentioning platforms in context, but doesn't provide additional syntax or format details beyond what the schema provides. 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 clearly states the verb 'Get' and resource 'engagement analytics for a specific post', listing specific metrics (likes, views, shares, impressions, comments). It distinguishes from siblings like 'get_post' (which likely retrieves post content) and 'get_social_analytics' (which might be broader).
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 provides clear context about when to use it (for post-specific engagement metrics) and mentions a prerequisite (Premium plan). However, it doesn't explicitly state when NOT to use it or name specific alternatives among siblings, though the context implies it's for analytics rather than content retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_post_historyC
List post history with optional filters. Returns posts with their status, content, platforms, and scheduling info.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of posts to return (default 25, max 1000) | |
| platforms | No | Filter by specific platforms | |
| status | No | Filter by post status | |
| type | No | Filter by post type | |
| lastDays | No | Return last N days of posts (default 30, 0 = all) | |
| profileKey | No | Profile Key to operate on a specific user profile |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the tool 'Returns posts' but doesn't describe pagination behavior, rate limits, authentication requirements, error handling, or whether this is a read-only operation. The description is minimal and lacks important operational context.
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 efficiently structured in two sentences: one stating the purpose and another describing the return data. It's appropriately sized and front-loaded with the core functionality. No wasted words, though it could be slightly more comprehensive given the lack of 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 tool with 6 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain the return format structure, pagination, error conditions, or operational constraints. The agent would need to guess about important behavioral aspects despite the comprehensive parameter schema.
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 fully documents all 6 parameters. The description adds no additional parameter information beyond mentioning 'optional filters' generically. It doesn't explain parameter interactions, default behaviors, or usage patterns beyond what's 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 clearly states the tool's purpose as 'List post history with optional filters' and specifies what data is returned ('posts with their status, content, platforms, and scheduling info'). It uses a specific verb ('List') and identifies the resource ('post history'), but doesn't explicitly differentiate from sibling tools like 'get_post' or 'get_post_analytics'.
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 provides no guidance on when to use this tool versus alternatives like 'get_post' (for single post details) or 'get_post_analytics' (for performance metrics). It mentions 'optional filters' but doesn't explain when filtering is appropriate or what scenarios this tool is designed for.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_social_analyticsB
Get account-level analytics for social profiles (follower count, demographics, impressions, engagement rates). Requires Premium plan.
| Name | Required | Description | Default |
|---|---|---|---|
| platforms | Yes | Social platforms to get analytics for | |
| quarters | No | Historical data range 1-4 quarters (Facebook/Instagram/YouTube only) | |
| daily | No | Return daily time-series data (Facebook/Instagram/TikTok/YouTube) | |
| profileKey | No | Profile Key to operate on a specific user profile |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions a requirement ('Requires Premium plan'), which is useful, but lacks details on rate limits, authentication needs, data freshness, or error handling. For a data retrieval tool with no annotation coverage, this leaves significant gaps in understanding operational constraints.
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 concise and front-loaded, stating the core purpose in the first sentence and adding a critical constraint in the second. Both sentences earn their place by providing essential information without 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?
Given the complexity (4 parameters, no output schema, no annotations), the description is moderately complete. It covers the purpose and a key requirement but lacks details on return values, error cases, and behavioral traits. Without an output schema, the agent must infer the analytics structure from the description's metric examples, which is insufficient for full understanding.
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 input schema has 100% description coverage, so parameters are well-documented in the schema itself. The description doesn't add any additional meaning beyond what's in the schema (e.g., it doesn't explain parameter interactions or provide examples). This meets the baseline for high schema coverage but doesn't enhance understanding.
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 tool's purpose with specific verbs ('Get account-level analytics') and resources ('social profiles'), listing key metrics like follower count and engagement rates. However, it doesn't explicitly differentiate this from sibling tools like 'get_post_analytics' or 'get_post', which might handle different analytics scopes.
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 provides some usage context by stating 'Requires Premium plan', which indicates a prerequisite. However, it doesn't offer explicit guidance on when to use this tool versus alternatives like 'get_post_analytics' or 'get_post', leaving the agent to infer based on the 'account-level' focus.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_auto_schedulesB
List all configured auto-posting schedules with their times, days, and last scheduled dates. Requires Premium plan.
| Name | Required | Description | Default |
|---|---|---|---|
| profileKey | No | Profile Key to operate on a specific user profile |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions a plan requirement ('Requires Premium plan'), which adds useful context about access control. However, it lacks details on potential side effects (e.g., rate limits, authentication needs, return format, or pagination behavior), leaving gaps for a tool that lists data.
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 a single, efficient sentence that front-loads the core purpose ('List all configured auto-posting schedules') and includes key details (attributes and plan requirement) without unnecessary elaboration. Every part earns its place, though it could be slightly more structured for 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?
Given the tool's complexity (simple list operation with one parameter) and no annotations or output schema, the description is moderately complete. It covers the purpose and a prerequisite but lacks details on behavior, return values, or error handling. For a tool with no structured output, more context on what the list returns would improve completeness.
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%, with the single parameter 'profileKey' documented in the schema as 'Profile Key to operate on a specific user profile'. The description does not add any meaning beyond this, such as explaining when this parameter is necessary or optional. With high schema coverage, the baseline score of 3 is appropriate as the schema handles parameter documentation adequately.
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 verb ('List') and resource ('all configured auto-posting schedules') with specific attributes (times, days, last scheduled dates). It distinguishes from siblings like 'set_auto_schedule' and 'delete_auto_schedule' by focusing on retrieval rather than modification. However, it doesn't explicitly differentiate from other list tools like 'list_profiles' beyond the resource name.
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 provides some context with 'Requires Premium plan', which implies a prerequisite for use. However, it offers no guidance on when to use this tool versus alternatives like 'get_post_history' or 'list_profiles', nor does it specify scenarios where this tool is preferred or excluded. Usage is implied but not explicitly defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_profilesB
List all user profiles with their linked social accounts. Supports filtering and pagination. Requires Business plan.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Filter by profile title | |
| refId | No | Filter by reference ID | |
| hasActiveSocialAccounts | No | Filter profiles with/without connected social accounts | |
| limit | No | Maximum profiles to return (default 5000) | |
| cursor | No | Pagination cursor for next page of results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses filtering and pagination support, which are important behavioral traits. However, it doesn't mention rate limits, authentication needs, response format, or whether this is a read-only operation (though 'List' implies reading). The description adds value but leaves gaps in behavioral context.
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 concise sentences that efficiently convey key information: purpose, capabilities, and requirement. It's front-loaded with the core function. While very efficient, it could potentially benefit from slightly more detail given the lack of annotations and output schema.
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 list tool with 5 parameters, 100% schema coverage, but no annotations and no output schema, the description is adequate but has clear gaps. It covers the basic purpose and some behavioral traits but doesn't explain return values, error conditions, or detailed usage scenarios. The 'Requires Business plan' note adds important context, but more completeness would be beneficial.
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 fully documents all 5 parameters. The description mentions 'Supports filtering and pagination' which aligns with parameters like 'title', 'hasActiveSocialAccounts', 'limit', and 'cursor', but adds no additional semantic meaning beyond what the schema provides. Baseline 3 is appropriate when schema does the heavy lifting.
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 verb ('List') and resource ('user profiles with their linked social accounts'), making the purpose unambiguous. It doesn't explicitly differentiate from siblings like 'get_post' or 'list_auto_schedules', but the resource specificity (profiles vs posts/auto-schedules) provides implicit distinction.
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 includes 'Requires Business plan' as a prerequisite, which provides some usage context. However, it doesn't specify when to use this tool versus alternatives like 'get_post' or 'update_profile', nor does it provide exclusions or comparative guidance with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_commentB
Post a comment on a social media post. Supports text and image comments across multiple platforms. Requires Premium plan.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Ayrshare Post ID or Social Post ID of the post to comment on | |
| comment | Yes | Comment text content | |
| platforms | Yes | Target platforms for the comment | |
| searchPlatformId | No | Set to true when using a Social Post ID instead of Ayrshare Post ID | |
| mediaUrls | No | Image URLs to attach to the comment | |
| profileKey | No | Profile Key to operate on a specific user profile |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the Premium plan requirement, which is useful context, but lacks details on permissions, rate limits, whether comments are editable/deletable, response format, or error handling. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding its 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?
The description is a single, efficient sentence that front-loads the core purpose. The Premium plan requirement is concisely added at the end. There's no wasted text, though it could be slightly more structured for 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?
Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It lacks information on what the tool returns (e.g., success confirmation, comment ID), error conditions, or behavioral nuances like platform-specific limitations. The Premium plan note helps, but overall coverage is inadequate for a 6-parameter tool with significant side effects.
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 documents all 6 parameters thoroughly. The description adds minimal value beyond the schema by mentioning support for text and image comments (implied by 'comment' and 'mediaUrls' parameters) and multiple platforms (implied by 'platforms'). It doesn't provide additional syntax, format, or usage details for 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?
The description clearly states the action ('Post a comment') and resource ('on a social media post'), specifying support for text and image comments across multiple platforms. It distinguishes from siblings like 'create_post' by focusing on commenting rather than creating original posts. However, it doesn't explicitly differentiate from 'delete_comment' or 'get_comments' beyond the verb difference.
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 implies usage for commenting on existing social media posts, with the 'Requires Premium plan' note providing some contextual constraint. However, it doesn't explicitly state when to use this tool versus alternatives like 'create_post' for new posts or 'delete_comment' for removal, nor does it mention prerequisites beyond the plan requirement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_messageB
Send a direct message on a social platform. Supports text and media messages on Facebook, Instagram, and X/Twitter. Requires Business plan.
| Name | Required | Description | Default |
|---|---|---|---|
| platform | Yes | Target platform: facebook, instagram, or twitter | |
| recipientId | Yes | Recipient's platform user ID | |
| message | Yes | Message text (can be empty for Facebook/Instagram if mediaUrls provided) | |
| mediaUrls | No | Image, video, or voice file URLs to attach | |
| profileKey | No | Profile Key to operate on a specific user profile |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the Business plan requirement (useful for auth/access context) but doesn't describe other traits like rate limits, error handling, whether messages are sent immediately or queued, or what happens if mediaUrls fail. For a mutation tool with zero annotation coverage, this leaves significant gaps.
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 appropriately sized with two sentences that are front-loaded with key information (action, platforms, media support, requirement). It avoids redundancy, though it could be slightly more structured by separating functional details from constraints.
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?
Given the tool's complexity (mutation with 5 parameters, no annotations, no output schema), the description is minimally adequate. It covers the core purpose and a key constraint (Business plan), but lacks details on behavioral traits, output format, or error handling, which are important for a mutation tool. It meets basic needs but has clear gaps.
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 documents all 5 parameters thoroughly. The description adds minimal value beyond the schema—it mentions text/media support and platforms, which aligns with the schema's 'platform' enum and 'mediaUrls' parameter, but doesn't provide additional syntax, format, or usage details. Baseline 3 is appropriate when schema does the heavy lifting.
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 action ('send a direct message') and resource ('on a social platform'), specifying support for text/media and platforms (Facebook, Instagram, X/Twitter). It distinguishes from siblings like 'create_post' (public posts) and 'get_messages' (read operations), but could be more explicit about the 'direct message' vs. other message types.
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 implies usage for direct messaging across specific platforms and mentions a Business plan requirement, providing some context. However, it lacks explicit guidance on when to use this tool vs. alternatives like 'create_post' for public content or 'post_comment' for comments, and doesn't specify exclusions or edge cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_auto_scheduleB
Create or update an auto-posting schedule with predefined times and days. Posts created with autoSchedule enabled will be queued to the next available time slot. Requires Premium plan.
| Name | Required | Description | Default |
|---|---|---|---|
| schedule | Yes | Array of times in UTC format (e.g. ['09:00Z', '14:00Z', '18:00Z']) | |
| title | No | Schedule name (alphanumeric, defaults to 'default'). Used to reference this schedule in create_post. | |
| daysOfWeek | No | Days to post: 0=Sunday through 6=Saturday (defaults to [0,6]) | |
| excludeDates | No | Dates to skip (e.g. ['2026-01-01', '2026-12-25']) | |
| setStartDate | No | ISO 8601 UTC datetime for when scheduling begins | |
| profileKey | No | Profile Key to operate on a specific user profile |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the Premium plan requirement (authentication/access level) and how auto-scheduled posts are queued, which adds useful context beyond basic functionality. However, it doesn't cover other important behavioral aspects like error conditions, rate limits, idempotency, or what happens when updating existing schedules.
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 appropriately concise with three sentences that each add value: stating the purpose, explaining the queuing behavior, and noting the Premium requirement. It's front-loaded with the core functionality. There's minimal waste, though it could be slightly more structured for 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 tool with 6 parameters, no annotations, and no output schema, the description provides basic but incomplete context. It covers the core purpose and some behavioral aspects (queuing, Premium requirement), but doesn't address important details like response format, error handling, or how this interacts with sibling tools like 'create_post' that might reference these schedules. The description is adequate but has clear gaps given the tool's complexity.
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 schema description coverage is 100%, so all parameters are documented in the schema. The description doesn't add any parameter-specific information beyond what's already in the schema descriptions. It mentions 'predefined times and days' which aligns with the 'schedule' and 'daysOfWeek' parameters but doesn't provide additional semantic context. The baseline of 3 is appropriate when the schema does the heavy lifting.
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 tool's purpose: 'Create or update an auto-posting schedule with predefined times and days.' It specifies the verb ('create or update') and resource ('auto-posting schedule'), but doesn't explicitly differentiate from sibling tools like 'list_auto_schedules' or 'delete_auto_schedule' beyond mentioning the schedule creation/update functionality.
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 provides some usage context: 'Posts created with autoSchedule enabled will be queued to the next available time slot' and 'Requires Premium plan.' However, it doesn't explicitly state when to use this tool versus alternatives like 'create_post' (which might reference schedules) or when not to use it. The guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_profileB
Update an existing user profile's settings. Requires Business plan.
| Name | Required | Description | Default |
|---|---|---|---|
| profileKey | Yes | Profile Key of the profile to update | |
| title | Yes | New profile title (must be unique) | |
| disableSocial | No | Social networks to disable | |
| messagingActive | No | Enable/disable messaging | |
| tags | No | Tags for organizing profiles |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the Business plan requirement, which is useful context, but fails to describe critical behavioral traits such as whether this operation is idempotent, what happens on partial updates, error handling, or response format. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.
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 extremely concise with just two sentences, front-loading the core purpose and following with a critical prerequisite. Every word earns its place, and there's no wasted verbiage or redundant information, making it highly efficient.
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?
Given the tool's complexity (a mutation operation with 5 parameters) and the lack of both annotations and an output schema, the description is insufficiently complete. It misses key contextual details like what the tool returns, error conditions, or behavioral nuances, leaving significant gaps for an AI agent to operate effectively.
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 input schema has 100% description coverage, so the schema already documents all parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema, such as explaining interactions between fields or constraints. Baseline 3 is appropriate when the schema does the heavy lifting, but the description doesn't enhance parameter understanding.
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 verb ('Update') and resource ('existing user profile's settings'), making the purpose specific and actionable. However, it doesn't explicitly distinguish this tool from potential sibling tools like 'create_profile' or 'list_profiles', which would require more differentiation for a perfect score.
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 provides some usage context by stating 'Requires Business plan', which implies a prerequisite. However, it doesn't offer explicit guidance on when to use this tool versus alternatives like 'create_profile' or how it differs from other update-related operations, leaving usage somewhat implied rather than clearly defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_mediaA
Upload an image or video to Ayrshare's media library. Accepts either a public URL (which will be downloaded and uploaded) or base64-encoded data. Files are stored for 90 days. Max 30MB. Requires Premium plan.
| Name | Required | Description | Default |
|---|---|---|---|
| fileUrl | No | Public URL of the file to upload. The server will download and re-upload it. One of fileUrl or base64Data is required. | |
| base64Data | No | Base64-encoded file data with data URI prefix (e.g. 'data:image/png;base64,...'). One of fileUrl or base64Data is required. | |
| fileName | No | Name for the uploaded file | |
| description | No | File description | |
| profileKey | No | Profile Key to operate on a specific user profile |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behavioral traits: the 90-day storage limit, 30MB file size limit, and Premium plan requirement. These are important operational constraints that aren't captured in the input 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?
The description is perfectly sized at 4 sentences, each earning its place by covering different aspects: core functionality, input methods, storage policy, and requirements. It's front-loaded with the main purpose and wastes no words on redundant 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 mutation tool with no annotations and no output schema, the description does well by covering key behavioral constraints (storage duration, size limits, plan requirements). However, it doesn't describe what the tool returns (e.g., media ID, URL, or success confirmation), which would be helpful given the lack of output schema.
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 documents all 5 parameters thoroughly. The description mentions the two input methods (URL vs base64) which aligns with the schema's documentation of fileUrl and base64Data, but doesn't add significant meaning beyond what's already in the parameter descriptions.
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 specific action ('Upload'), resource ('image or video'), and destination ('to Ayrshare's media library'). It distinguishes this tool from sibling tools like create_post or update_profile by focusing on media file handling rather than content creation or profile management.
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 provides clear context for when to use this tool (uploading media files to the library) and implicitly distinguishes it from sibling tools that handle posts, profiles, or analytics. However, it doesn't explicitly state when NOT to use it or name specific alternatives for different media-related tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
18 tool updates
v1.0.3- First observed
create_post - First observed
create_profile - First observed
delete_auto_schedule - First observed
delete_comment - First observed
delete_post - First observed
get_comments - First observed
get_messages - First observed
get_post - First observed
get_post_analytics - First observed
get_post_history - First observed
get_social_analytics - First observed
list_auto_schedules - First observed
list_profiles - First observed
post_comment - First observed
send_message - First observed
set_auto_schedule - First observed
update_profile - First observed
upload_media
TDQS
Scored across 18 tools
Each tool has a clearly distinct purpose targeting specific resources and actions in the social media management domain. For example, create_post vs. delete_post vs. get_post handle different lifecycle stages, while tools like get_comments, post_comment, and delete_comment focus specifically on comment management without overlap. The descriptions clearly differentiate operations like analytics (get_post_analytics vs. get_social_analytics) and scheduling (set_auto_schedule vs. list_auto_schedules vs. delete_auto_schedule).
All 18 tools follow a consistent verb_noun naming pattern with snake_case throughout. The verbs are clear and appropriate (create, delete, get, list, post, send, set, update, upload), and nouns precisely describe the target resources (post, profile, auto_schedule, comment, messages, analytics, history, media). There are no deviations in style or convention across the toolset.
With 18 tools, the count is slightly high but reasonable for a comprehensive social media management server covering posting, profiles, comments, messages, analytics, scheduling, and media. Each tool appears to earn its place by addressing a specific need, though some closely related tools like get_post_history and list_auto_schedules might be consolidated. The scope justifies the number without feeling excessively bloated.
The toolset provides complete CRUD/lifecycle coverage for social media management: create/delete/get/update posts and profiles, full comment operations (get/post/delete), message handling (get/send), analytics at both post and account levels, auto-scheduling management (set/list/delete), and media upload. There are no obvious gaps—agents can perform end-to-end workflows from content creation to publishing, engagement, and analysis without dead ends.
Maintenance
Related MCP Connectors
Draft, schedule and publish social posts to nine platforms from any AI agent.
Schedule and publish social media posts to 10 platforms from your AI agent
Connect any AI agent to 11+ social platforms: schedule, publish & track posts via hosted MCP.
Schedule and publish social posts across 9 platforms (Instagram, LinkedIn, X, TikTok, Facebook, Threads, Pinterest, Bluesky, Mastodon) straight from Claude, ChatGPT, Cursor, or any MCP client. Create, edit, and reschedule posts, upload media, and pull account and post analytics, follower demographics, and best-time windows. 20 tools, free on every plan.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables AI assistants to publish, schedule, and manage social media posts across X (Twitter), Instagram, and Threads through the Sociona API. Supports immediate posting, scheduling, analytics, and account management with natural language commands.610 npmMIT
- AlicenseAqualityCmaintenanceProvides AI assistants with access to the RecurPost API to manage social media accounts, schedule posts, and organize content libraries. It enables users to automate recurring posts, track engagement metrics, and generate social media content through natural language.918 npm1MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to create, schedule, and manage social media posts across 10 platforms via a unified API.-

@posteahora/mcpofficial
AlicenseAqualityCmaintenanceEnables AI agents to create, schedule, and publish social media posts across Instagram, X/Twitter, LinkedIn, Threads, Facebook, and other platforms via the PosteAhora API.155 npmMIT