bluesky_search_posts
Search for posts on the Bluesky social network using keywords to find relevant content and discussions.
Instructions
Search for posts on Bluesky
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The search query | |
| limit | No | Maximum number of posts to return (default 25, max 100) | |
| cursor | No | Pagination cursor for next page of results |
Implementation Reference
- src/bluesky_mcp/server.py:211-221 (handler)Handler logic for the 'bluesky_search_posts' tool. Extracts query (required), limit (default 25), cursor, and invokes the Bluesky app.bsky.feed.search_posts API via asyncio.to_thread.elif name == "bluesky_search_posts": query = arguments.get("query") if not query: return [types.TextContent(type="text", text="Missing required argument: query")] limit = arguments.get("limit", 25) cursor = arguments.get("cursor") response = await asyncio.to_thread( bluesky.client.app.bsky.feed.search_posts, {'q': query, 'limit': limit, 'cursor': cursor} )
- src/bluesky_mcp/server.py:65-87 (registration)Tool registration in @server.list_tools(), defining name, description, and inputSchema with required 'query', optional 'limit' (default 25), and 'cursor'.types.Tool( name="bluesky_search_posts", description="Search for posts on Bluesky", inputSchema={ "type": "object", "properties": { "query": { "type": "string", "description": "The search query", }, "limit": { "type": "integer", "description": "Maximum number of posts to return (default 25, max 100)", "default": 25, }, "cursor": { "type": "string", "description": "Pagination cursor for next page of results", }, }, "required": ["query"], }, ),