{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_854ryu89cmcb","handle":"authplane-mcp","url":"https://wellknown.network/agents/authplane-mcp","links":{"self":"https://wellknown.network/agents/authplane-mcp/record.json","html":"https://wellknown.network/agents/authplane-mcp","markdown":"https://wellknown.network/agents/authplane-mcp/record.md","api":"https://wellknown.network/api/v1/agents/authplane-mcp","status":"https://wellknown.network/api/v1/agents/authplane-mcp/status","claim":"https://wellknown.network/agents/authplane-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/authplane-mcp/claim.json","badge":"https://wellknown.network/agents/authplane-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air::server:authplane-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"authplane-mcp","summary":"Authplane JWT validation adapter for the official MCP Python SDK","description":"# authplane-mcp\n\n[![PyPI](https://img.shields.io/pypi/v/authplane-mcp?style=flat-square&label=authplane-mcp)](https://pypi.org/project/authplane-mcp/)\n[![License](https://img.shields.io/badge/License-Apache_2.0-blue?style=flat-square)](https://opensource.org/licenses/Apache-2.0)\n\nAuthplane JWT validation for servers built on the [official MCP Python SDK](https://github.com/modelcontextprotocol/python-sdk).\n\n## Install\n\n```bash\npip install authplane-mcp\n```\n\n## Compatibility\n\nSupported `mcp` range: **`>=1.28.1, <2.0.0`**. The floor is `1.28.1` because earlier releases (`<=1.28.0`) are affected by [PYSEC-2026-3483](https://osv.dev/vulnerability/PYSEC-2026-3483), fixed in `1.28.1`. The adapter targets the mcp 1.x server API (`mcp.server.fastmcp.FastMCP`) and the camelCase URL-elicitation field (`ElicitRequestURLParams(elicitationId=...)`), which are the shape of the current 1.x line. As a belt-and-braces measure the adapter does not hard-code that spelling: it resolves the elicitation-id field name from the model's own schema — a known spelling is checked at import, then resolved per call — so a rename within 1.x would be picked up automatically rather than breaking the consent path. mcp 2.0 is not yet supported: it removes `mcp.server.fastmcp` and renames the elicitation field to snake_case `elicitation_id`, which is a separate port. If your project needs mcp 2.0, please open an issue.\n\n## Quickstart\n\n```python\nimport asyncio\n\nfrom authplane_mcp import authplane_mcp_auth, install_request_context, require_scope\nfrom mcp.server.fastmcp import FastMCP\n\nasync def main() -> None:\n    auth_result = await authplane_mcp_auth(\n        issuer=\"https://auth.company.com\",\n        resource=\"https://mcp.company.com\",\n        scopes=[\"tools/query\", \"tools/write\"],\n    )\n    mcp = FastMCP(\"My MCP Server\", port=8080, json_response=True, **auth_result)\n    # Wires Authplane's per-app hooks onto the server: advertises the issuer /\n    # resource identifiers verbatim in the Protected Re…","publisher":{"name":"Authplane Team","url":null},"homepage":"https://github.com/AuthPlane/python-sdk/tree/main/authplane-mcp","repository":"https://github.com/AuthPlane/python-sdk/blob/main/CHANGELOG.md","version":"0.4.0","license":null,"protocols":["mcp"],"tags":["adapter","authplane","jwt","mcp","oauth"],"pricing":null,"endpoints":[{"url":"pypi:authplane-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","repoUrl":"pypi","summary":"pypi","version":"pypi","description":"pypi","homepageUrl":"pypi","publisherName":"pypi"}},"derived":{"capabilities":[{"slug":"security.identity","name":"Identity & Access","confidence":1,"provenance":"declared"}],"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":"authplane-mcp","registry":"pypi","observedAt":"2026-09-09T09:25:18.843Z","publishedAt":"2026-08-28T16:44:22.032627Z","latestVersion":"0.4.0"}},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"authplane-mcp","url":"https://pypi.org/project/authplane-mcp/","firstSeenAt":"2026-09-09T09:24:25.771Z","fetchedAt":"2026-09-09T09:24:25.771Z","normalizedAt":"2026-09-09T09:24:25.771Z"}]},"firstSeenAt":"2026-09-09T09:24:25.771Z","updatedAt":"2026-09-09T09:25:18.843Z"}