LABSCO SUMMARY
It answers the question OAuth does not: which agent may do what, for whom.
OAuth authorizes an application for a user and MCP connects a model to tools, but neither proves that this particular agent, acting for this particular person, is allowed to call delete. That is the gap here, and the tool manifest is the mechanism — a declared mapping from tool name to permission level, so an agent holding a write scope can create a record and still be refused when it reaches for a delete. Delegation is recorded with depth and parentage, which is what makes a chain of agents auditable rather than merely functional. Check the release-status notes before committing: several published packages carry documented gaps the maintainer states plainly.
What it is
An open-source delegated authorization protocol and reference implementation for AI agents: each agent gets a verifiable identity and a grant from a person or organisation, which a relying service can check before acting.
What you get
- Scoped, time-limited, revocable grants, so an agent's authority is bounded rather than inherited wholesale from a user's session
- Tool manifests that map each tool name to a permission level, so enforcement does not have to guess from the name
- A four-level permission hierarchy — read, write, delete, admin — where a higher scope subsumes the ones below it
- A scope format carrying connector, permission and resource, with an optional cap on the number of uses
- Multi-agent delegation with a recorded parent agent, parent grant and delegation depth
- Service-side verification through published JWKS, and audit records of what was authorized
- A trust registry for public DID verification, and a grantex verify CLI for inspecting a token with no account at all
- An MCP tool server package exposing Grantex to MCP clients, and an MCP authorization server package speaking OAuth 2.1 with PKCE
- Control mappings for the DPDP Act 2023 and the EU AI Act
- SDKs for TypeScript, Python and Go
Requirements
A developer API key for the hosted service, or the reference implementation run yourself; the SDK you install depends on your language. Read the published-package limits before deploying: the Go SDK v0.1.10 has documented agent and audit read, write and filtering limitations, and the MCP authorization server 2.0.2 keeps authorization codes in process memory, does not render consent, and has an incomplete code handoff. Developer request budgets on the auth service run at 100, 500 and 2,000 requests per minute across the Free, Pro and Enterprise tiers.
Setup effort
One command plus a key — npm install -g @grantex/mcp, then supply credentials
USE CASES
01
Letting an agent act for you without handing it your session
Issue a grant scoped to what the task needs, expiring when it should, revocable if it misbehaves.
02
Stopping a write-scoped agent from deleting things
The tool manifest says which permission each tool needs, so the refusal is by declaration rather than by prompt.
03
Verifying on the receiving end who is calling
The service checks the token against published keys and knows which agent, which principal and which scope.
04
Following a chain of agents that delegated to each other
Parent agent, parent grant and delegation depth are recorded, so the chain can be reconstructed after the fact.
05
Inspecting a token you were handed
Run the verify CLI and read what it actually grants — no account needed.
BEFORE YOU INSTALL
What to know first
Requires
- Node.js 18.14.1 or later, with npm
- GRANTEX_API_KEY — your Grantex API key (free sign-up at grantex.dev/dashboard/signup), set in the entry's env
Where it runs
All 3 documented clients run the server on your machine.
INSTALLATION
Connect your client
Server setup
TERMINAL
npm install -g @grantex/mcpMCP Clients
Claude Desktop
CLAUDE DESKTOP · JSON
{
"mcpServers": {
"grantex": {
"command": "grantex-mcp",
"env": {
"GRANTEX_API_KEY": "<YOUR_GRANTEX_API_KEY>"
}
}
}
}Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows). <YOUR_GRANTEX_API_KEY> is your Grantex API key (free sign-up at grantex.dev/dashboard/signup).
Cursor
CURSOR · JSON
{
"mcpServers": {
"grantex": {
"command": "grantex-mcp",
"env": {
"GRANTEX_API_KEY": "<YOUR_GRANTEX_API_KEY>"
}
}
}
}Add to .cursor/mcp.json in your project. <YOUR_GRANTEX_API_KEY> is your Grantex API key (free sign-up at grantex.dev/dashboard/signup).
Windsurf
WINDSURF · JSON
{
"mcpServers": {
"grantex": {
"command": "grantex-mcp",
"env": {
"GRANTEX_API_KEY": "<YOUR_GRANTEX_API_KEY>"
}
}
}
}Add to ~/.codeium/windsurf/mcp_config.json. <YOUR_GRANTEX_API_KEY> is your Grantex API key (free sign-up at grantex.dev/dashboard/signup).