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