Skip to main content
Glama

bluesky-mcp-server

Get Bluesky Social Graph

bsky_get_follows
Read-onlyIdempotent

Fetch the social graph edges for a Bluesky account — who follows them, or who they follow. Returns paginated actor profiles (handle, DID, displayName, bio, pronouns when set, follower count) plus a summary of the subject account — website is not on this view, only on bsky_get_profile. Accounts with large social graphs return only the first page; use cursor pagination to walk through the full list.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
actorYesHandle (e.g. "alice.bsky.social") or DID of the account to query. A bare name without a dot is not a handle — use bsky_search_actors to resolve one.
limitNoMaximum number of actors to return per page (1–100). Default 25.
cursorNoOpaque pagination cursor from a previous response. Omit for the first page.
directionYes"followers" returns accounts that follow this actor. "following" returns accounts this actor follows.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
capNoThe limit applied to this page.
errorNoPresent when the call failed. Absent on success.
shownNoNumber of actors returned on this page.
actorsNoActors in the requested direction of the social graph.
cursorNoOpaque cursor for the next page. Absent on the last page.
noticeNoGuidance when the result set is empty or constrained.
subjectNoProfile summary of the queried actor.
truncatedNoTrue when more actors exist beyond this page (a cursor was returned).
totalReturnedNoNumber of actors in this response page.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already carry readOnlyHint, openWorldHint, and idempotentHint, so the safety profile is covered. The description adds genuine behavioral context beyond that: the response shape (paginited actor profiles with listed fields plus a subject summary), the explicit exclusion (website not on this view), and the pagination caveat ('large social graphs return only the first page; use cursor pagination'). This meaningfully helps the agent call it correctly.

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?

Two sentences that front-load the core purpose before the returns and caveats, with no filler. The pagination caveat and the website exclusion each earn their place, though the sentence carrying response details is slightly dense, packing fields, the summary, and the exclusion into one clause.

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 read-only, paginated list tool with a 100%-documented schema, an output schema, and safety annotations, the description is nearly complete: purpose, return fields, pagination behavior, and an exclusion are all present. Rate-limit or error behavior isn't mentioned, but that is a minor gap given the annotations and output schema already supplied.

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 every parameter (actor, limit, cursor, direction) is already documented in the input schema, including the actor handle/DID distinction and the direction enum explanation. The description adds only the return-field context, not parameter details, so baseline 3 is correct — 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?

States a specific verb ('Fetch'), a precise resource ('social graph edges for a Bluesky account'), and a clear scope ('who follows them, or who they follow'). It actively distinguishes itself from a sibling by noting 'website is not on this view, only on bsky_get_profile', so an agent can tell it apart from bsky_get_profile without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear functional context for when to call it (fetching followers/following) and an explicit redirection: if website data is needed, use bsky_get_profile. The schema further routes bare-name lookups to bsky_search_actors. It lacks a broader when-to-use vs. not statement, but the sibling differentiation is concrete and useful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.4/5.0
Disambiguation5/5

Each tool targets a distinct resource: feed, follows, thread, profile, trending, actor search, and post search. While bsky_get_author_feed and bsky_search_posts might seem similar, their descriptions clearly separate a user-specific feed from full-text search. The other tools have unambiguous boundaries.

Naming Consistency5/5

All tools follow the same prefix pattern 'bsky_' followed by either 'get_' or 'search_' and a noun. There are no deviations or mixed conventions. The consistent verb+noun structure makes the tool surface predictable and easy to navigate.

Tool Count5/5

Seven tools is well within the ideal range for a focused Bluesky client. Each tool covers a core read operation without redundancy, and none feels extraneous. The count is proportionate to the server's apparent purpose.

Completeness4/5

The server covers the main read workflows: profiles, feeds, search, threads, trending, and social graph edges. Minor gaps exist, such as no direct single-post fetch (only via thread) and no posting capabilities, but these are consistent with a read-only social listening server and do not significantly impede core tasks.