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_axesthe vocabulary of the index: axes, values, sites behind each
alp_querysites for a need, ranked, each with a trust block
alp_explainwhy a site stands where it stands, or why it is absent
alp_get_sitewhat a site declares and what the router found out about it
alp_get_claimwho 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/queryrank a query; ?explain=1 adds the breakdown of each score
POST /v1/explainthe 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/axesthe vocabulary of the index
GET /v1/healthstate 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.