atlas-pca-fastmcp
FastMCP guard for Proof-Carrying Authority (PCA): make every FastMCP tool call proof-carrying and
policy-gated. A tool only runs when the agent carries a valid, in-plan, resource-correct proof for exactly
that action. The adapter delegates all verification to atlas-pca
and reimplements no cryptography.
Status: 0.4.1, unaudited.
What is tested
The default test suite runs without the framework, against the shared conformance proofs. A second suite, make test-real (needs the framework installed), runs against the real framework and is pinned to FastMCP 4.1.0. It covers a real FastMCP server with the middleware, called through a real in-memory Client: proof in _meta and in tool arguments, absent/undecodable/tampered proofs, wrong audience, insufficient capability, the @pca_tool registry and the policy hook, each asserting the refusal reason the client sees. Each denial test checks that the tool body never ran, and checks the refusal reason wherever the framework surfaces it.
Not covered: other framework versions (only the pinned one is exercised), live model providers (the models are scripted and offline), and any property of the underlying atlas-pca verifier beyond what it already documents. This package has not been independently audited.
Install
pip install atlas-pca-fastmcp
This installs atlas-pca>=0.4.1,<0.5 as a dependency.
Use
Entry points: PCAMiddleware.
from atlas_pca_fastmcp import PCAMiddleware
See the module docstrings in atlas_pca_fastmcp for the full API, and the PCA specification for the model.
The verifier applies the full check order, including grant_ref_bound (the signed grant_ref must equal
the root capability id), as of atlas-pca 0.2.0.
Links
- Source: https://github.com/Atlas-Authorization/pca-python
- Specification and docs: https://github.com/Atlas-Authorization/pca
License: MIT
Metadata
Release files for atlas-pca-fastmcp 0.4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| atlas_pca_fastmcp-0.4.1.tar.gz | 12.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| atlas_pca_fastmcp-0.4.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 25.0 kB
Release files / atlas_pca_fastmcp-0.4.1.tar.gz
| Download URL | atlas_pca_fastmcp-0.4.1.tar.gz |
|---|---|
| Size | 12.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0758f6fd2a9fea0cf00cdd8b7003c26155c5e559405581d8708b4fefc102af3c
|
|
BLAKE2b-256 checksum How to use checksums |
4d3c58cab44b4ab510e0ff33b291155975921edb5be25def43875e041cd3cf55
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / atlas_pca_fastmcp-0.4.1-py3-none-any.whl
| Download URL | atlas_pca_fastmcp-0.4.1-py3-none-any.whl |
|---|---|
| Size | 12.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2e358df69e051c840bbfc867507f51cbd79524bd92ac576b19f62fa0efd5ed9a
|
|
BLAKE2b-256 checksum How to use checksums |
a72238f2e265b746e401c0f84e4e07c956bdfeba26fd163226ded19ec8033dc3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|