{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_7qpu5r2gztzv","handle":"aviary-mcp","url":"https://wellknown.network/agents/aviary-mcp","links":{"self":"https://wellknown.network/agents/aviary-mcp/record.json","html":"https://wellknown.network/agents/aviary-mcp","markdown":"https://wellknown.network/agents/aviary-mcp/record.md","api":"https://wellknown.network/api/v1/agents/aviary-mcp","status":"https://wellknown.network/api/v1/agents/aviary-mcp/status","claim":"https://wellknown.network/agents/aviary-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/aviary-mcp/claim.json","badge":"https://wellknown.network/agents/aviary-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air::server:aviary-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"aviary-mcp","summary":"An opinionated FastMCP runtime for authenticated MCP and REST services through Finch","description":"# AviaryMCP\n\nAviaryMCP is a release-candidate, opinionated FastMCP runtime for publishing one\ntool definition through MCP and a generated REST/OpenAPI interface. It extends\nFastMCP through public APIs rather than maintaining a source fork, so MCP and\nHTTP share the same registry, validation, middleware, handler, and authorization\ndecision.\n\nInstall the public release candidate from PyPI:\n\n```console\npython -m pip install 'aviary-mcp==0.1.0rc6'\n```\n\n```python\nfrom aviary_mcp import AviaryMCP\n\napp = AviaryMCP(\"calculator\")\n\n@app.tool\ndef add(a: int, b: int) -> int:\n    \"\"\"Add two integers.\"\"\"\n    return a + b\n\napp.run(transport=\"http\", host=\"127.0.0.1\", port=8000)\n```\n\n`access=\"local\"` is the safe default: HTTP may bind only to loopback, and\nin-process/stdio calls receive a local principal. An unauthenticated network\nservice requires explicit `access=\"public\"`. Supplying `auth=` (or a FastMCP\n3.4 token verifier through `mcp_auth=`) selects private mode.\n\nAn authenticated REST face uses normalized principals and operation-centric\nscopes:\n\n```python\nfrom aviary_mcp import AviaryMCP, Principal, StaticKeyAuth\n\napp = AviaryMCP(\n    \"calculator\",\n    auth=StaticKeyAuth({\n        # Use a generated, high-entropy secret in production. The provider\n        # immediately retains only its SHA-256 digest.\n        \"development-secret\": Principal(\n            subject=\"example-client\",\n            scopes={\"tool:call:add\"},\n        ),\n    }),\n)\n```\n\n`LocalAuth`, `StaticKeyAuth`, `FinchAssertionAuth`, `AnyOf`, and `AllOf`\nnormalize callers into a `Principal`. One outer ASGI authentication boundary\nprotects `/mcp`, generated REST routes, and application custom routes together.\nThe generated REST operation calls\n`invoke_tool`, which checks `tool:call:<tool-name>` (plus any scopes registered\nwith `require_scopes`) before entering FastMCP's normal validation, middleware,\nand handler path. When application auth is configured, the generated catalog\nand OpenAPI routes also require authentica…","publisher":null,"homepage":null,"repository":null,"version":"0.1.0rc6","license":"Apache-2.0","protocols":["mcp"],"tags":["mcp"],"pricing":null,"endpoints":[{"url":"pypi:aviary-mcp","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":"aviary-mcp","registry":"pypi","observedAt":"2026-09-09T09:25:21.773Z","publishedAt":"2026-07-10T09:18:04.337358Z","latestVersion":"0.1.0rc6"}},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"aviary-mcp","url":"https://pypi.org/project/aviary-mcp/","firstSeenAt":"2026-09-09T09:24:34.543Z","fetchedAt":"2026-09-09T09:24:34.543Z","normalizedAt":"2026-09-09T09:24:34.543Z"}]},"firstSeenAt":"2026-09-09T09:24:34.543Z","updatedAt":"2026-09-09T09:25:21.773Z"}