check_auth_status
Verify authentication status for Bluesky Social sessions using environment variables to confirm login validity.
Instructions
Check if the current session is authenticated.
Authentication happens automatically using environment variables:
- BLUESKY_IDENTIFIER: Required - your Bluesky handle
- BLUESKY_APP_PASSWORD: Required - your app password
- BLUESKY_SERVICE_URL: Optional - defaults to https://bsky.social
Returns:
Authentication status
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- server.py:112-129 (handler)The handler function for the 'check_auth_status' tool. It attempts to retrieve an authenticated Bluesky client and returns the authentication status.@mcp.tool() def check_auth_status(ctx: Context) -> str: """Check if the current session is authenticated. Authentication happens automatically using environment variables: - BLUESKY_IDENTIFIER: Required - your Bluesky handle - BLUESKY_APP_PASSWORD: Required - your app password - BLUESKY_SERVICE_URL: Optional - defaults to https://bsky.social Returns: Authentication status """ try: bluesky_client = get_authenticated_client(ctx) return f"Authenticated to {bluesky_client._base_url}" except ValueError as e: return f"Not authenticated: {str(e)}"
- server.py:49-77 (helper)Helper function used by check_auth_status to obtain an authenticated Bluesky client, which calls login() if necessary.def get_authenticated_client(ctx: Context) -> Client: """Get an authenticated client, creating it lazily if needed. Args: ctx: MCP context Returns: Authenticated Client instance Raises: ValueError: If credentials are not available """ app_context = ctx.request_context.lifespan_context # If we already have a client, return it if app_context.bluesky_client is not None: return app_context.bluesky_client # Try to create a new client by calling login again client = login() if client is None: raise ValueError( "Authentication required but credentials not available. " "Please set BLUESKY_IDENTIFIER and BLUESKY_APP_PASSWORD environment variables." ) # Store it in the context for future use app_context.bluesky_client = client return client
- server.py:22-46 (helper)login() helper function that creates and authenticates a Bluesky Client using environment variables.def login() -> Optional[Client]: """Login to Bluesky API and return the client. Authenticates using environment variables: - BLUESKY_IDENTIFIER: The handle (username) - BLUESKY_APP_PASSWORD: The app password - BLUESKY_SERVICE_URL: The service URL (defaults to "https://bsky.social") Returns: Authenticated Client instance or None if credentials are not available """ handle = os.environ.get("BLUESKY_IDENTIFIER") password = os.environ.get("BLUESKY_APP_PASSWORD") service_url = os.environ.get("BLUESKY_SERVICE_URL", "https://bsky.social") if not handle or not password: return None # This is helpful for debugging. # print(f"LOGIN {handle=} {service_url=}", file=sys.stderr) # Create and authenticate client client = Client(service_url) client.login(handle, password) return client
- server.py:1074-1075 (registration)The tool is listed under 'authentication' category in the tools info resource."authentication": ["check_environment_variables", "check_auth_status"], "profiles": ["get_profile", "get_follows", "get_followers", "follow_user"],