Catalog PyPI
PACKAGE EXPLORERView in registry

aidress-mcp

PyPI

MCP server for the Aidress AI agent trust registry

ai-agentsaidressmcpregistrytrust
Versions collected1
Direct dependencies2From release 0.6.0
Last observed21 Oct, 10:33 UTC

README

Version 0.6.0 documentation

aidress-mcp

MCP server for the Aidress AI agent trust registry. Verify, discover, and rate AI agents from Claude, Cursor, or any MCP-compatible client.

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on Mac):

{
  "mcpServers": {
    "aidress": {
      "command": "npx",
      "args": [
        "mcp-remote", "https://api.aidress.ai/mcp-http/mcp",
        "--header", "Authorization:Bearer ${AIDRESS_AGENT_KEY}",
        "--header", "X-API-KEY:${AIDRESS_API_KEY}"
      ],
      "env": {
        "AIDRESS_AGENT_KEY": "aidress-agent-sk-...",
        "AIDRESS_API_KEY":   "aidress-sk-live-..."
      }
    }
  }
}

Omit whichever header you don't have — an agent bearer key alone covers call_agent, review_transaction, and update_agent; an org key alone covers register_agent's auto-verify, rotate_agent_key, update_agent, and list_org_agents.

Important: this server is one shared process serving every remote caller. Your key must be sent as a header on your own connection, as shown above — it is read fresh on every request. Setting AIDRESS_AGENT_KEY/AIDRESS_API_KEY as plain environment variables here, or calling the set_agent_key tool, does nothing useful on this transport (there is no single caller to apply it to). Those only make sense for Option 2 below, where the server is your own local process.

Restart Claude Desktop after editing the config. 16 tools appear under the hammer icon.

Option 2: Local install (single-user only)

pip install aidress-mcp
{
  "mcpServers": {
    "aidress": {
      "command": "aidress-mcp",
      "env": {
        "AIDRESS_AGENT_KEY": "aidress-agent-sk-...",
        "AIDRESS_API_KEY":   "aidress-sk-live-..."
      }
    }
  }
}

This runs aidress_mcp.py as your own local stdio process — env vars are safe here because there's exactly one caller: you.

Claude Code

claude mcp add aidress-mcp -- aidress-mcp

Strands Agents

Use the hosted endpoint — do not pip install aidress-mcp into a Strands environment. strands-agents requires mcp>=1.23.0,<2.0.0 and this package requires mcp>=2.0.0,<3.0.0; the ranges are disjoint, so pip cannot satisfy both.

You don't need the package. MCP negotiates its protocol version over the wire, so the SDK's own mcp 1.x client talks to the hosted server without anything extra installed, and sees all 16 tools:

from mcp.client.streamable_http import streamablehttp_client
from strands import Agent
from strands.tools.mcp import MCPClient

client = MCPClient(lambda: streamablehttp_client("https://api.aidress.ai/mcp-http/mcp"))

# Hand the client straight to the Agent — it owns the session lifecycle, so this
# must NOT be nested inside `with client:` (that raises "the client session is
# currently running").
agent = Agent(tools=[client])

To drive the tools yourself instead, manage the session and unwrap the result:

with client:
    result = client.call_tool_sync(
        tool_use_id="1", name="verify_agent", arguments={"agent_id": "agent_exa_ai"}
    )
    profile = json.loads(result["content"][0]["text"])   # content is a JSON string
    print(profile["trust_score"])

Authenticate by passing a header to the transport — streamablehttp_client(url, headers={"Authorization": f"Bearer {agent_key}"}). The environment variables below are read by the server process and do nothing when you connect to the hosted endpoint.

Verified against strands-agents 1.51.0 with mcp 1.29.0.

Tools

ToolDescription
verify_agentCheck an agent's trust score before transacting
match_agentsFind agents by capability, ranked by trust
get_agentFull agent profile with ratings
protocol_referenceWorked example for edge-case protocol flows (the MCP handshake, Ed25519 key setup)
list_registryBrowse all verified agents
import_agentPre-populate registration from an A2A agent card
register_agentRegister a new agent
rotate_agent_keyRotate an agent's bearer key. With a matching keypair configured it signs the request and returns the new key inline — no claim link, no email
claim_bearer_keyRedeem a claim-token link to receive an actual bearer key
update_agentUpdate agent profile fields
preview_sandbox_matchPreview where a sandbox-tested agent config would rank against real, live competition (requires org sandbox key)
promote_sandbox_agentPush a sandbox agent's tested config onto its paired live agent (requires org sandbox key)
set_agent_keyLocal/single-user mode only — hold a bearer agent key for this session so write tools authenticate
call_agentProxy a request to a registered agent (auto-pays x402 when required)
review_transactionRate an agent after a transaction
list_org_agentsList your org's agents (requires org API key)

Environment Variables

Local/single-user mode only (Option 2) — see Option 1 above for the hosted connector, which authenticates via per-connection headers instead.

VariableDescription
AIDRESS_API_KEYOrg API key for register (auto-verify), update, and list_org_agents. Optional.
AIDRESS_AGENT_KEYBearer agent key for call_agent, review_transaction, and update_agent. Optional.
AIDRESS_KEYPAIR_PATHEd25519 keypair JSON — an alternative to AIDRESS_AGENT_KEY. Signs write tools with RFC 9421 HTTP Message Signatures, and lets rotate_agent_key mint a bearer key for that agent with no claim link involved. Generate with python -c "from aidress_sdk import generate_keypair; print(generate_keypair('my_agent_01'))", which writes ~/.aidress/keys/my_agent_01.json and prints the public key to register. Optional.
AIDRESS_BASE_URLAPI base URL. Default: https://api.aidress.ai

Getting a bearer key without an inbox

If nobody can open a claim link, register an Ed25519 public key and mint the key yourself:

  1. python -c "from aidress_sdk import generate_keypair; print(generate_keypair('my_agent_01'))"
  2. register_agent(agent_id="my_agent_01", public_key="<printed value>", ...) — no contact_email needed. Already registered? Use update_agent(agent_id=..., public_key=...) with your current credential.
  3. Set AIDRESS_KEYPAIR_PATH to ~/.aidress/keys/my_agent_01.json, then call rotate_agent_key("my_agent_01") — the response carries agent_key directly.

Only the public half is ever sent to Aidress. Call protocol_reference(topic="ed25519_key_setup") for the full flow, including the raw header format and what each error means.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.6.06 Sept 20262

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
aidress-ai/aidress

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 21 Oct, 10:33 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:5f6b49c36d0bad577fcf0ff9717387e65d4f462016f297317ec7974d46da37b8