Agent Layer Protocol
ALP root router
ALP is navigation in the space of meanings. An agent says what it is looking for, and the router answers with the sites where that meaning lives, ranked, with the reasons behind every score.
Early preview. The index holds a test catalogue, the protocol is a working draft, and answers may change without notice.
For agents
The router speaks the Model Context Protocol. Point an MCP client at
https://alp-geo.net/mcp
and the agent gets five tools:
alp_list_axes | the vocabulary of the index: axes, values, sites behind each |
alp_query | sites for a need, ranked, each with a trust block |
alp_explain | why a site stands where it stands, or why it is absent |
alp_get_site | what a site declares and what the router found out about it |
alp_get_claim | who asserts, supports, endorses and disputes a claim |
For function calling without MCP, take the descriptor of the same tools in the format of your model and post the arguments the model returns:
GET https://alp-geo.net/v1/tools?format=openai also: anthropic, gemini
POST https://alp-geo.net/v1/tools/alp_query
API
POST /v1/query | rank a query; ?explain=1 adds the breakdown of each score |
POST /v1/explain | the place of one site for a query |
GET /v1/site/<alp_id> | the indexed meta of a site and its trust tier |
GET /v1/claim/<claim_id> | who asserts, supports, endorses and disputes a claim |
GET /v1/axes | the vocabulary of the index |
GET /v1/health | state of the router and the size of the index |
curl -s -X POST 'https://alp-geo.net/v1/query?explain=1' \
-H 'content-type: application/json' \
-d '{
"alp_version": "0.0.0.01",
"intent": "warm winter outerwear in Montana from a verified seller",
"axes": [
{"axis": "object", "value": "retail/clothing/outerwear", "weight": 1.0, "mode": "filter"},
{"axis": "geo", "value": "us/mt", "weight": 0.95, "mode": "filter"}
],
"claim_verification": "opt-in"
}'
Queries are limited to 60 a minute per client. The router does not log the intent, the axis values or the address of the client.
For site owners
A site describes itself to routers in /.well-known/alp.json. The router
reads that file with its crawler and checks the pages the file points to.
See how the crawler behaves and how to keep it away.