Bluesky MCP server and CLI for Claude Code and AI agents. 41 tools for posting, threads, replies, timeline, search, custom feeds, lists, notifications and the social graph.
38 tools with consistent naming (verb_noun pattern) and brief descriptions. All tools have descriptions (10-50 chars, below the 50-200 char LLM-optimized baseline). Parameter schemas are present but sparse, most tools lack detailed type info, constraints, and descriptions for individual parameters. No input validation guidance or error recovery hints visible. Output schemas not documented. Risk annotations (READ_ONLY, WRITE, DESTRUCTIVE) are present but not mapped to tool annotations in the MCP protocol. Composition is sound (each tool does one thing), but descriptions are too terse to guide LLM selection effectively.
Add an account to a list
Block an account on Bluesky
Create a new list on Bluesky
Create a new post on Bluesky
Create a thread of posts on Bluesky
Delete a list on Bluesky
Delete a post from Bluesky
Follow an account on Bluesky
Descriptions are too brief (10-50 chars vs. LLM-optimized 50-200 chars). Examples: 'Confirm which account you are acting as' (44 chars), 'Get the timeline for the authenticated account' (46 chars). These lack context for LLM selection and do not explain WHEN to use each tool vs. similar ones.
Parameter schemas not visible in source code. Cannot verify type definitions, constraints (min/max, enums), or per-parameter descriptions. Rubric requires all params to have types AND descriptions; absence caps schema score at 0-30.
No output schemas documented. LLMs cannot infer what fields to expect from tool responses, forcing them to guess at downstream field names and risk broken tool chains.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 33 | 2026-07-28+ | v2 |
Get statistics for an account
Get the feed of posts from a specific author
Get engagement statistics for posts
Get the followers of an account
Get the accounts that an account follows
Get the accounts that liked a post
Get the feed for a list
Get the members of a list
Get lists for an account
Get notifications for the authenticated account
Get the pinned custom feeds for an account
Get profile information for an account
Get the quote posts for a post
Get the accounts that reposted a post
Get a thread of posts
Get the timeline for the authenticated account
Get the count of unread notifications
Like a post on Bluesky
Mark notifications as read
Mute an account on Bluesky
Remove an account from a list
Repost a post on Bluesky
Search for custom feeds on Bluesky
Search for posts on Bluesky
Set reply and quote permissions for a post
Unfollow an account on Bluesky
Unlike a post on Bluesky
Unmute an account on Bluesky
Remove a repost on Bluesky
Confirm which account you are acting as
Risk annotations (READ_ONLY, WRITE, DESTRUCTIVE) are metadata but not mapped to MCP tool annotations (readOnlyHint, destructiveHint, idempotentHint). Clients cannot automatically infer safety properties.
Destructive operations (create_post, delete_post, block_account) require confirm: true but no dry-run or explicit confirmation tool exists. Error handling and recovery guidance not visible in source.