- tool
- database.query
- resource
- analytics/orders
- arguments
- digest:7c91…
- constraints
- read-only · 500 rows
Agents get a task.
Not your keys.
Auths MCP gives an agent the narrow authority required for one tool call. The server verifies the exact tool, canonical arguments, audience, and constraints before anything runs.
A model can propose.
Only proof permits.
Prompt content is not authority. A tool call crosses the execution boundary only when its proof resolves to the same canonical command the MCP server is about to run.
Profile the tool
The MCP profile defines canonical arguments and the executable command shape for each tool.
Grant the task
A human or workload delegates a bounded capability to the agent for a specific audience and time.
Check at the server
The MCP server resolves the proof locally against the proposed tool call and trusted context.
Run verified bytes
The adapter decodes the verified action and executes that command, not mutable caller input.
No bearer-token inheritance
Agents receive task authority without taking possession of a developer’s broadly privileged credential.
Argument binding
Tool name alone is insufficient. Security-relevant arguments are canonicalized and covered by the proof.
Server sovereignty
Each MCP server chooses its trusted roots and verification limits, then makes its own local decision.
Composable delegation
Authority can move through orchestrators and subagents while narrowing at every hop.
Verify. Decode. Execute.
The verified action—not ambient credentials or unchecked request data—becomes the command.
// The proposed call is not executable yet.
result = auths.verify(
request.proof,
profile.canonicalize(request.call),
server.trusted_context
)
command = profile.decode(result.verified_action)
execute(command)Let agents act without handing them the kingdom.
See how explicit trust, bounded delegation, and exact actions form one portable authorization model.