{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_mjpkjpxztsuk","handle":"bibliocommons-mcp-keycloak","url":"https://wellknown.network/agents/bibliocommons-mcp-keycloak","links":{"self":"https://wellknown.network/agents/bibliocommons-mcp-keycloak/record.json","html":"https://wellknown.network/agents/bibliocommons-mcp-keycloak","markdown":"https://wellknown.network/agents/bibliocommons-mcp-keycloak/record.md","api":"https://wellknown.network/api/v1/agents/bibliocommons-mcp-keycloak","status":"https://wellknown.network/api/v1/agents/bibliocommons-mcp-keycloak/status","claim":"https://wellknown.network/agents/bibliocommons-mcp-keycloak/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/bibliocommons-mcp-keycloak/claim.json","badge":"https://wellknown.network/agents/bibliocommons-mcp-keycloak/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air::server:bibliocommons-mcp-keycloak","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"bibliocommons-mcp-keycloak","summary":"MCP server for Keycloak Identity and Access Management","description":"# Keycloak MCP Server\n\nMCP server for Keycloak Identity and Access Management instances. Auto-generates 401 tools from the Keycloak OpenAPI specification using `FastMCP.from_openapi()`. Includes [CodeMode](https://gofastmcp.com/servers/transforms/code-mode#code-mode) for efficient AI interaction with large tool sets, and supports dual authentication modes (OAuth2 HTTP transport for user sessions, client_credentials for stdio service accounts).\n\n## Configuration\n\n**Authentication**: Keycloak supports two modes depending on transport:\n\n- **stdio (service account)**: Uses `client_credentials` or `password` grant to obtain tokens automatically\n- **HTTP (user OAuth)**: Uses OIDC proxy to authenticate end-users via browser flow\n\n### Option 1: config.json\n\n```bash\ncp config.json.example config.json\n# Edit config.json with your Keycloak credentials\n```\n\n### Option 2: Environment Variables\n\n```bash\nexport KEYCLOAK_HOST=\"keycloak.example.com\"\nexport KEYCLOAK_REALM=\"master\"\nexport KEYCLOAK_CLIENT_ID=\"admin-cli\"\nexport KEYCLOAK_CLIENT_SECRET=\"your-client-secret\"\n# Or use password grant:\nexport KEYCLOAK_USERNAME=\"admin\"\nexport KEYCLOAK_PASSWORD=\"admin-password\"\nexport KEYCLOAK_VERIFY_SSL=\"true\"\nexport KEYCLOAK_CA_CERT_PATH=\"\"\nexport KEYCLOAK_TIMEOUT=\"30\"\n```\n\n## Authentication Modes\n\n### stdio Mode (Service Account)\n\nFor AI assistants connecting via stdio transport. The server acquires tokens automatically using either:\n\n- **Client credentials grant**: Set `client_id` + `client_secret`. Best for service-to-service.\n- **Password grant**: Set `username` + `password`. Falls back to `admin-cli` as client_id.\n\nTokens are cached and refreshed automatically before expiry.\n\n### HTTP Mode (User OAuth Flow)\n\nFor web-based access where end-users authenticate via browser:\n\n```bash\npython -m bibliocommons_mcp_keycloak --transport http --port 8000\n```\n\nUses OIDC proxy with your Keycloak realm's well-known configuration. Users authenticate through the standard Keycloak login page.\n\n## Install…","publisher":null,"homepage":null,"repository":null,"version":"1.3.6","license":"MIT","protocols":["mcp"],"tags":["mcp"],"pricing":null,"endpoints":[{"url":"pypi:bibliocommons-mcp-keycloak","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","license":"pypi","summary":"pypi","version":"pypi","description":"pypi"}},"derived":{"capabilities":[{"slug":"security.identity","name":"Identity & Access","confidence":1,"provenance":"derived"}],"categories":["security"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"bibliocommons-mcp-keycloak","registry":"pypi","observedAt":"2026-09-09T10:30:22.360Z","publishedAt":"2026-08-26T17:56:19.805331Z","latestVersion":"1.3.6"}},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"bibliocommons-mcp-keycloak","url":"https://pypi.org/project/bibliocommons-mcp-keycloak/","firstSeenAt":"2026-09-09T10:26:59.742Z","fetchedAt":"2026-09-09T10:26:59.742Z","normalizedAt":"2026-09-09T10:26:59.742Z"}]},"firstSeenAt":"2026-09-09T10:26:59.742Z","updatedAt":"2026-09-09T10:30:22.360Z"}