get_reposted_by
Retrieve a list of users who reposted a specific post on Bluesky Social MCP by providing the post URI. Supports pagination and result limit customization.
Instructions
Get users who reposted a post.
Args:
ctx: MCP context
uri: URI of the post to get reposts for
cid: Optional CID of the post (not strictly required)
limit: Maximum number of results to return (1-100)
cursor: Optional pagination cursor
Returns:
List of users who reposted the post
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cid | No | ||
| cursor | No | ||
| limit | No | ||
| uri | Yes |
Implementation Reference
- server.py:451-487 (handler)The handler function for the 'get_reposted_by' MCP tool. Decorated with @mcp.tool() for registration. It retrieves an authenticated Bluesky client, normalizes the limit parameter, calls the underlying atproto Client's get_reposted_by method with the provided URI, CID, cursor, and limit, converts the response to a dictionary, and returns it wrapped in a success dict or an error dict on failure.@mcp.tool() def get_reposted_by( ctx: Context, uri: str, cid: Optional[str] = None, limit: Union[int, str] = 50, cursor: Optional[str] = None, ) -> Dict: """Get users who reposted a post. Args: ctx: MCP context uri: URI of the post to get reposts for cid: Optional CID of the post (not strictly required) limit: Maximum number of results to return (1-100) cursor: Optional pagination cursor Returns: List of users who reposted the post """ try: bluesky_client = get_authenticated_client(ctx) # Convert limit to int if it's a string if isinstance(limit, str): limit = int(limit) limit = max(1, min(100, limit)) # Call get_reposted_by with positional arguments as per the client signature reposts_response = bluesky_client.get_reposted_by(uri, cid, cursor, limit) reposts_data = reposts_response.dict() return {"status": "success", "reposts": reposts_data} except Exception as e: error_msg = f"Failed to get reposts: {str(e)}" return {"status": "error", "message": error_msg}