Skip to main content
Glama

bluesky-mcp-server

Search Bluesky Actors

bsky_search_actors
Read-onlyIdempotent

Find Bluesky accounts by name or handle fragment. Returns ranked profiles with handle, DID, displayName, bio, pronouns when the account set them, and follower count — but not website, which only bsky_get_profile returns. Use before bsky_get_profile or bsky_get_author_feed when you have a name but not a confirmed handle. Supports cursor-based pagination for browsing beyond the first page of results.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of actors to return (1–100). Default 25.
queryYesName or handle fragment to search for, e.g. "alice" or "nytimes.com". Must not be blank.
cursorNoOpaque pagination cursor from a previous response. Note: the public Bluesky AppView restricts cursor-based search pagination for unauthenticated requests — passing a cursor may return a 403 error. Cursor pagination is reliable only for bsky_get_author_feed and bsky_get_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.
actorsNoMatching actor profiles, ranked by relevance.
cursorNoOpaque cursor returned by the API. Unreliable for unauthenticated search requests on the public AppView — passing it on a subsequent call may return a 403 error.
noticeNoGuidance when the result set is empty or constrained.
truncatedNoTrue when more actors match than were returned on this page.
totalReturnedNoNumber of actors in this response page.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, covering safety and idempotency. The description adds value beyond that by specifying the fields returned (handle, DID, displayName, bio, pronouns, follower count) and explicitly noting the exclusion of website. However, it doesn't mention the cursor pagination caveat (403 for unauthenticated requests) that appears in the schema, so the description isn't fully transparent about that behavioral edge case.

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 three sentences with no wasted words. The purpose and return details are front-loaded, followed by usage guidance and pagination support. Every sentence earns its place, and the structure is easy to scan.

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 search tool with three parameters and an output schema, the description is quite complete. It covers purpose, usage, return fields, and pagination. The only minor gap is that it doesn't warn about the cursor pagination failure for unauthenticated requests (though that is captured in the schema), and it doesn't explicitly mention error handling or the possibility of empty results. These are minor omissions given the output schema exists.

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 three parameters (query, limit, cursor). The description adds general context about the query being a name or handle fragment but doesn't provide any additional parameter-specific semantics beyond what the schema states. Baseline 3 is appropriate when the schema handles parameter documentation.

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 states a specific verb ('Find') and a clear resource ('Bluesky accounts') with a precise scope ('by name or handle fragment'). It also enumerates the returned fields and explicitly contrasts with bsky_get_profile ('but not website, which only bsky_get_profile returns'), making its purpose unambiguous and well-differentiated from siblings.

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

Usage Guidelines5/5

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

The description gives explicit when-to-use guidance: 'Use before bsky_get_profile or bsky_get_author_feed when you have a name but not a confirmed handle.' It names the alternative tools and the condition that selects this tool, leaving no ambiguity about when to invoke it.

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.