Observed since 20 Oct, 22:44 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Make a FastAPI app agent-ready in one line.
Make a FastAPI app agent-ready with clear, safe defaults.
agentmount turns selected FastAPI routes into agent-callable tools and exposes:
The core design choice is internal ASGI loopback dispatch, so agent calls flow through your existing FastAPI stack (middleware, auth, validation, logging, error handlers) instead of bypassing it.
This repository is ready for the 1.0.0 release cut.
Implemented now:
python -m agentmount inspect <module>:<app>)Release status:
For milestone details, see ROADMAP.md.
For a runnable end-to-end example, start with docs/tutorial.md and examples/shop/README.md.
Typical approaches to agent integration are either brittle or framework-specific wrappers. agentmount aims to be:
from fastapi import FastAPI
from agentmount import enable_agents, agent_tool
app = FastAPI()
@app.post("/cart/items")
@agent_tool(description="Add a product to the cart", rate_limit="10/min")
def add_to_cart(item: dict) -> dict:
return {"ok": True}
enable_agents(app)
Notes:
enable_agents is fully implemented and mounts all discovery/transport endpoints.You can inspect any app locally before starting a server:
python -m agentmount inspect examples.shop.app:app
Scanner supports three exposure modes:
Unsupported route shapes are not silently accepted; they are returned as skipped with explicit reasons (for example UploadFile, websocket routes, streaming responses, Depends, and BackgroundTasks in current scanner scope).
Agent client
-> /mcp, /.well-known/agent.json, /.well-known/openai-tools.json
-> agentmount transport layer
-> ASGI loopback dispatch (httpx ASGITransport)
-> existing FastAPI app middleware + route handler
See docs/architecture.md for the full rationale and locked decisions.
For tools/call, agentmount forwards only the Authorization header from the incoming MCP request into loopback tool execution.
Authorization is forwarded so existing FastAPI auth dependencies continue to work.pip install -e .[dev]
or with uv:
uv sync --all-extras
ruff check .
ruff format --check .
mypy src
pytest -q
pre-commit install
pre-commit run --all-files
These are currently passing in local full-suite runs.
src/agentmount/
core.py public entry point (enable_agents)
decorators.py @agent_tool metadata decorator
registry.py in-memory ToolSpec registry
scanner.py FastAPI route scanning and filtering
schema.py ToolSpec and schema builders
ratelimit.py runtime limiter
audit.py audit logging
transports/ manifest, OpenAI tools, MCP mounts
__main__.py inspect CLI
_internal/ internal dispatch helpers
tests/
scanner/decorator/registry/core/transports/ratelimit/audit/cli coverage
docs/
architecture and manifest spec
The 1.0 scope is intentionally narrow:
Out of scope for 1.0 includes approval flows, auth provider modules, websocket/file tool support, and hosted control planes.
Issues and PRs are welcome. Please read CONTRIBUTING.md before opening a PR, and keep changes aligned with docs/architecture.md.
Apache-2.0. See LICENSE.
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 1.0.0 | 23 Jun 2026 | 12 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 22:44 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:eb025579b3dc0ac054b7fa510e2a90d8cc75ab043fe5357ef9fe3c025c3ddf0f