Skip to main content
Glama
yardz

Ayrshare Unofficial MCP Server

by yardz

Ayrshare Unofficial MCP Server

License: MIT Node.js Version

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

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-mcp

Option 3: Build from Source

git clone https://github.com/yardz/ayrshare-unofficial-mcp.git
cd ayrshare-unofficial-mcp
npm install
npm run build

Then 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

AYRSHARE_API_KEY

Yes

Your Ayrshare Primary Profile API key

AYRSHARE_PROFILE_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

create_post

Publish or schedule a post to one or more social platforms

Basic

get_post

Get details of a specific post by ID

Basic

get_post_history

List post history with optional filters

Basic

delete_post

Delete a post or scheduled posts

Basic

Profiles (3 tools)

Tool

Description

Min Plan

create_profile

Create a new user profile

Business

list_profiles

List all user profiles

Business

update_profile

Update a profile's settings

Business

Media (1 tool)

Tool

Description

Min Plan

upload_media

Upload an image or video to the media library

Premium

Comments (3 tools)

Tool

Description

Min Plan

post_comment

Post a comment on a social media post

Premium

get_comments

Get comments on a post

Premium

delete_comment

Delete a comment

Premium

Messages (2 tools)

Tool

Description

Min Plan

send_message

Send a direct message (Facebook, Instagram, X)

Business

get_messages

Get messages and conversations

Business

Analytics (2 tools)

Tool

Description

Min Plan

get_post_analytics

Get engagement metrics for a post

Premium

get_social_analytics

Get account-level analytics

Premium

Auto-Schedule (3 tools)

Tool

Description

Min Plan

set_auto_schedule

Create or update an auto-posting schedule

Premium

list_auto_schedules

List all configured schedules

Premium

delete_auto_schedule

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

post

string

Yes

Text content of the post (can be empty if mediaUrls provided)

platforms

string[]

Yes

Target platforms: bluesky, facebook, gmb, instagram, linkedin, pinterest, reddit, snapchat, telegram, threads, tiktok, twitter, youtube

mediaUrls

string[]

No

HTTPS URLs of images or videos to attach

scheduleDate

string

No

ISO 8601 UTC datetime (e.g. 2026-03-01T10:00:00Z)

shortenLinks

boolean

No

Enable link shortening (requires Max Pack)

requiresApproval

boolean

No

Put post in approval workflow

notes

string

No

Internal reference notes

autoSchedule

object

No

{ schedule: true, title?: "schedule-name" } — queue to next slot

profileKey

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

id

string

Yes

Ayrshare Post ID

profileKey

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

limit

number

No

Posts to return (default 25, max 1000)

platforms

string[]

No

Filter by platforms

status

string

No

Filter: success, error, processing, pending, paused, deleted, awaiting approval

type

string

No

Filter: immediate or scheduled

lastDays

number

No

Last N days (default 30, 0 = all)

profileKey

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

id

string

No*

Ayrshare Post ID to delete

bulk

string[]

No*

Array of Post IDs for bulk deletion

deleteAllScheduled

boolean

No*

Delete all pending scheduled posts

profileKey

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

title

string

Yes

Unique profile name

messagingActive

boolean

No

Enable messaging (default false)

disableSocial

string[]

No

Social networks to disable

tags

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

title

string

No

Filter by title

refId

string

No

Filter by reference ID

hasActiveSocialAccounts

boolean

No

Filter by active accounts

limit

number

No

Max results (default 5000)

cursor

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

profileKey

string

Yes

Profile Key to update

title

string

Yes

New profile title

disableSocial

string[]

No

Social networks to disable

messagingActive

boolean

No

Enable/disable messaging

tags

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

fileUrl

string

No*

Public URL of the file to upload

base64Data

string

No*

Base64 data URI (e.g. data:image/png;base64,...)

fileName

string

No

Name for the file

description

string

No

File description

profileKey

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

id

string

Yes

Ayrshare Post ID or Social Post ID

comment

string

Yes

Comment text

platforms

string[]

Yes

Target platforms: bluesky, facebook, instagram, linkedin, reddit, tiktok, twitter, youtube

searchPlatformId

boolean

No

Set true when using Social Post ID

mediaUrls

string[]

No

Image URLs to attach

profileKey

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

id

string

Yes

Ayrshare Post ID, Social Post ID, or Social Comment ID

searchPlatformId

boolean

No

Set true when using Social Post ID

commentId

boolean

No

Set true when using Social Comment ID

platform

string

No

Required when searchPlatformId or commentId is true

profileKey

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

id

string

Yes

Social Comment ID (from get_comments)

platform

string

Yes

Platform: facebook, instagram, tiktok, twitter, youtube

profileKey

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

platform

string

Yes

facebook, instagram, or twitter

recipientId

string

Yes

Recipient's platform user ID

message

string

Yes

Message text

mediaUrls

string[]

No

Media file URLs to attach

profileKey

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

platform

string

Yes

facebook, instagram, or twitter

status

string

No

active or archived (default: active)

conversationId

string

No

Get a specific conversation

conversationsOnly

boolean

No

Return only conversation list (default: false)

profileKey

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

id

string

Yes

Ayrshare Post ID

platforms

string[]

No

Filter by platforms (omit for all)

profileKey

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

platforms

string[]

Yes

Platforms to get analytics for

quarters

number

No

Historical range 1-4 quarters (Facebook/Instagram/YouTube)

daily

boolean

No

Return daily time-series (Facebook/Instagram/TikTok/YouTube)

profileKey

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

schedule

string[]

Yes

Times in UTC (e.g. ["09:00Z", "14:00Z", "18:00Z"])

title

string

No

Schedule name (defaults to "default")

daysOfWeek

number[]

No

0=Sunday through 6=Saturday (defaults to [0,6])

excludeDates

string[]

No

Dates to skip (e.g. ["2026-01-01"])

setStartDate

string

No

ISO 8601 UTC datetime to begin scheduling

profileKey

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

profileKey

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

title

string

Yes

Schedule title (case-sensitive)

deleteLastScheduleDate

boolean

No

Also clear the last schedule date

profileKey

string

No

Profile Key override

Example prompt: "Delete the 'Weekend Posts' auto-schedule"

Supported Platforms

Platform

Post

Comment

Message

Analytics

Bluesky

Yes

Yes

-

Yes

Facebook

Yes

Yes

Yes

Yes

Google Business

Yes

-

-

Yes

Instagram

Yes

Yes

Yes

Yes

LinkedIn

Yes

Yes

-

Yes

Pinterest

Yes

-

-

Yes

Reddit

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 build

Watch Mode

npm run dev

Test with MCP Inspector

npx @modelcontextprotocol/inspector node build/index.js

Set the AYRSHARE_API_KEY environment variable before running the inspector.

License

MIT

Available Tools

18 tools
create_postB

Publish or schedule a social media post to one or more platforms. Supports text, images, videos, scheduling, and auto-scheduling.

ParametersJSON Schema
NameRequiredDescriptionDefault
postYesThe text content of the post. Can be empty string if mediaUrls are provided.
platformsYesTarget social platforms to publish to
mediaUrlsNoHTTPS URLs of images or videos to attach
scheduleDateNoISO 8601 UTC datetime for scheduling (e.g. 2026-03-01T10:00:00Z)
shortenLinksNoEnable link shortening (requires Max Pack)
requiresApprovalNoPut post in approval workflow before publishing
notesNoInternal reference notes (retrieved via get_post_history)
autoScheduleNoUse auto-schedule instead of scheduleDate. Post goes to next available slot.
profileKeyNoProfile Key to operate on a specific user profile

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesUnique profile name
messagingActiveNoEnable messaging for this profile (default false)
disableSocialNoSocial networks to disable for this profile
tagsNoTags for organizing profiles

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesSchedule title to delete (case-sensitive, must match exactly)
deleteLastScheduleDateNoIf true, also clears the last used schedule date, resetting future scheduling
profileKeyNoProfile Key to operate on a specific user profile

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSocial Comment ID to delete (get this from get_comments with searchPlatformId=true)
platformYesPlatform where the comment exists
profileKeyNoProfile Key to operate on a specific user profile

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoAyrshare Post ID to delete (required if not using bulk or deleteAllScheduled)
bulkNoArray of Ayrshare Post IDs for bulk deletion
deleteAllScheduledNoIf true, deletes all pending scheduled posts
profileKeyNoProfile Key to operate on a specific user profile

TDQS

A3.6/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAyrshare Post ID, Social Post ID, or Social Comment ID
searchPlatformIdNoSet to true when using a Social Post ID or Social Comment ID
commentIdNoSet to true when using a Social Comment ID
platformNoRequired when searchPlatformId or commentId is true
profileKeyNoProfile Key to operate on a specific user profile

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
platformYesPlatform: facebook, instagram, or twitter
statusNoConversation status filter (default: active)
conversationIdNoGet a specific conversation by ID
conversationsOnlyNoIf true, returns only conversation list without messages (default: false)
profileKeyNoProfile Key to operate on a specific user profile

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe Ayrshare Post ID
profileKeyNoProfile Key to operate on a specific user profile

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAyrshare Post ID to get analytics for
platformsNoFilter analytics by specific platforms (omit to get all)
profileKeyNoProfile Key to operate on a specific user profile

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of posts to return (default 25, max 1000)
platformsNoFilter by specific platforms
statusNoFilter by post status
typeNoFilter by post type
lastDaysNoReturn last N days of posts (default 30, 0 = all)
profileKeyNoProfile Key to operate on a specific user profile

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
platformsYesSocial platforms to get analytics for
quartersNoHistorical data range 1-4 quarters (Facebook/Instagram/YouTube only)
dailyNoReturn daily time-series data (Facebook/Instagram/TikTok/YouTube)
profileKeyNoProfile Key to operate on a specific user profile

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
profileKeyNoProfile Key to operate on a specific user profile

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoFilter by profile title
refIdNoFilter by reference ID
hasActiveSocialAccountsNoFilter profiles with/without connected social accounts
limitNoMaximum profiles to return (default 5000)
cursorNoPagination cursor for next page of results

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAyrshare Post ID or Social Post ID of the post to comment on
commentYesComment text content
platformsYesTarget platforms for the comment
searchPlatformIdNoSet to true when using a Social Post ID instead of Ayrshare Post ID
mediaUrlsNoImage URLs to attach to the comment
profileKeyNoProfile Key to operate on a specific user profile

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
platformYesTarget platform: facebook, instagram, or twitter
recipientIdYesRecipient's platform user ID
messageYesMessage text (can be empty for Facebook/Instagram if mediaUrls provided)
mediaUrlsNoImage, video, or voice file URLs to attach
profileKeyNoProfile Key to operate on a specific user profile

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
scheduleYesArray of times in UTC format (e.g. ['09:00Z', '14:00Z', '18:00Z'])
titleNoSchedule name (alphanumeric, defaults to 'default'). Used to reference this schedule in create_post.
daysOfWeekNoDays to post: 0=Sunday through 6=Saturday (defaults to [0,6])
excludeDatesNoDates to skip (e.g. ['2026-01-01', '2026-12-25'])
setStartDateNoISO 8601 UTC datetime for when scheduling begins
profileKeyNoProfile Key to operate on a specific user profile

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
profileKeyYesProfile Key of the profile to update
titleYesNew profile title (must be unique)
disableSocialNoSocial networks to disable
messagingActiveNoEnable/disable messaging
tagsNoTags for organizing profiles

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileUrlNoPublic URL of the file to upload. The server will download and re-upload it. One of fileUrl or base64Data is required.
base64DataNoBase64-encoded file data with data URI prefix (e.g. 'data:image/png;base64,...'). One of fileUrl or base64Data is required.
fileNameNoName for the uploaded file
descriptionNoFile description
profileKeyNoProfile Key to operate on a specific user profile

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 18 tool updatesv1.0.3
    • First observedcreate_post
    • First observedcreate_profile
    • First observeddelete_auto_schedule
    • First observeddelete_comment
    • First observeddelete_post
    • First observedget_comments
    • First observedget_messages
    • First observedget_post
    • First observedget_post_analytics
    • First observedget_post_history
    • First observedget_social_analytics
    • First observedlist_auto_schedules
    • First observedlist_profiles
    • First observedpost_comment
    • First observedsend_message
    • First observedset_auto_schedule
    • First observedupdate_profile
    • First observedupload_media

TDQS

A3.7/5.0

Scored across 18 tools

Disambiguation5/5

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).

Naming Consistency5/5

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.

Tool Count4/5

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.

Completeness5/5

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

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables 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.
    6
    10 npm
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Provides 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.
    9
    18 npm
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI agents to create, schedule, and publish social media posts across Instagram, X/Twitter, LinkedIn, Threads, Facebook, and other platforms via the PosteAhora API.
    15
    5 npm
    MIT