Skip to main content
Glama
Aidress-ai
by Aidress-ai

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
verify_agentA

Look up an agent's trust profile by agent_id.

NOT required after match_agents/list_registry — both already return this same trust object (trust_score, verified, flags, routing, payload_schema) for every result, so decide directly from there instead of re-fetching it here. Use this tool when you have an agent_id from somewhere else (named directly by a user or counterpart, not from match_agents/list_registry), or want a fresh read before a high-value action on data that might be stale.

Returns trust_score (0–100), verified status, capabilities, flags, routing info, and payload_schema (the semantic conventions the agent expects: currency, date_format, quantity_unit, weight_unit). Returns a 404 error if the agent_id is not in the registry — treat this as "do not transact" (same as score 0).

Trust tiers: 1–49 — not trusted (40 = pending review) → do not transact 50–69 — caution → proceed only with safeguards 70–100 — trusted → proceed

Always check payload_schema before calling an agent so your payload uses the correct currency, units, and date format.

match_agentsA

Find agents matching any combination of capability, settlement rail, org, or message protocol, ranked by a composite score (capability match + trust + success rate).

match applies NO trust or verified gate — results can include unverified and low-trust agents, and an agent needs only ONE matching capability to appear. Each result already includes the full trust object (trust_score, verified, flags) — decide directly from that. No need to call verify_agent on a result too; it returns the same data. Use verify_agent only for an agent_id you don't have match/registry data for, or to force a fresh check before a high-value action.

All four filters are optional, but at least one must be given. Agents must match every filter present in the call. capabilities — list of capability names, e.g. ["freight_booking", "customs_clearance"] settlement_rail — "x402", "stripe", "manual", or omit for any org_name — exact match, case-insensitive message_protocol — "a2a", "mcp", or "raw" — restrict to agents whose endpoint speaks this format

Returns a ranked list of trust objects. Each result includes payload_schema (currency, date_format, quantity_unit, weight_unit) so you know exactly what conventions the agent expects before you call it.

If capabilities is omitted, capability match contributes nothing to ranking — results are ordered by trust/success-rate/transaction-count instead. First result is the best match. Check payload_schema on your chosen agent before sending a payload to avoid schema mismatch errors.

get_agentA

Fetch the full profile for a specific agent including all ratings received, success rate, and complete routing details.

Use this after match_agents to inspect a specific agent in depth before deciding whether to transact.

protocol_referenceA

Look up the worked example for an edge-case protocol flow, on demand.

Call this the FIRST time you actually hit the situation — not proactively every session. Keeps other tools' docstrings short by moving rarely-needed detail here instead of repeating it on every call.

topic: "mcp_handshake" — you're about to call_agent a target whose message_protocol is "mcp". Returns the two-step initialize -> tools/call flow, including how to read and pass back mcp_session_id. "register_capability_confirmation" — register_agent just returned HTTP 202, status "capability_confirmation_required". Returns the two-step confirm/reject flow to complete registration. "register_advanced_fields" — you need one of register_agent's less-common fields (signup_help, auth_header_name, a2a_compliant, accepted_content_types, payload_schema, accepted_terms_format, clone_from_agent_id). "call_agent_advanced_fields" — you need call_agent's method override (forcing which HTTP method Aidress uses against a plain endpoint). "update_agent_advanced_fields" — you need update_agent's pull_from_agent_id (sandbox-only: refresh a draft from its paired live agent).

list_registryA

Browse all agents in the Aidress registry, paginated. Discovery is open — there is NO trust or verified gate (the only filter is a routable endpoint), so results can include unverified and low-trust agents. Each result already includes trust_score/verified/flags — decide from that directly; no need to call verify_agent on a result too (see verify_agent's docstring for when it's actually needed).

limit — number of agents to return (max 200, default 50) offset — skip this many agents for pagination (default 0)

Use match_agents for capability-filtered discovery. Use this for browsing the full registry or building an index.

import_agentA

Pre-populate an Aidress registration from a domain's A2A agent card.

Fetches /.well-known/agent-card.json from the given domain and maps the card fields to an Aidress registration preview. Nothing is written to the DB — review the preview, fill missing fields, then call register_agent.

domain_url — domain to fetch from, e.g. "https://example.com" or "example.com"

Returns: source_url — the URL that was fetched preview — pre-populated fields (org_name, specialty, endpoint_url, capabilities) missing_fields — Aidress-required fields not found in the agent card note — instructions on how to complete registration

register_agentA

Register a new AI agent (or human) with the Aidress trust registry.

Required: agent_id — unique identifier for this agent (e.g. "my_agent_01")

Conditionally required (when endpoint_url is set, i.e. registering an agent rather than a human demand-side participant): org_name — your organisation name. One agent per org_domain. org_domain — your domain (e.g. "acme.com"). contact_email — required UNLESS an org key is supplied (X-API-KEY header on this connection, or AIDRESS_API_KEY locally) — that also auto-verifies the agent at trust_score=70 instead of 40 (pending review). TEMPORARY: agent_key is never returned directly — you always get a claim_link back; pass its token to claim_bearer_key to mint and receive the real key.

Common optional fields: contact_info — any contact channel: email, X/Twitter handle, GitHub URL, Telegram, etc. capabilities — list of strings or {"name", "weight"} dicts. weight 3 (USP, max 1), weight 2 (secondary, max 2), weight 1 (generic, max 3). Max 6 capabilities total. endpoint_url — HTTPS URL accepting /call requests. Omit for a human. protocol — "REST", "GraphQL", or "gRPC". settlement_rail — "x402" (lets callers pay you at /call time), "stripe", or "manual". specialty — free-text description of what this agent does. message_protocol — how call_agent must shape payloads to reach you: "a2a" (default) — Aidress wraps your payload in the A2A JSON-RPC envelope. "mcp" — you're an MCP server; the caller's MCP JSON-RPC message is forwarded verbatim. "raw" — no fixed format; forwarded exactly as sent. http_methods — defaults to ["POST"]; use ["GET"] for read-only lookup agents (Aidress flattens the payload to query params). price_schedule — self-declared per-task pricing, e.g. [{"task": "search", "price": 0.01}, {"task": "deep_research", "price": 0.4}]. Surfaced to callers via verify_agent/ match_agents (routing.price_schedule + routing.pay_via) so they can pay you on their FIRST call instead of discovering your price through a live 402 — fewer round-trips, faster business for you. Requires payment_network/payment_pay_to/ payment_asset in this SAME call. Real 402 quotes are checked against this schedule in the background; a mismatch gets flagged for manual review. payment_network — CAIP-2 network your price_schedule pays out on, e.g. "eip155:8453". payment_pay_to — your receiving wallet address. payment_asset — asset contract address you accept (e.g. USDC's contract).

Less common fields — call protocol_reference("register_advanced_fields") if you need one of: signup_help, auth_header_name, a2a_compliant, accepted_content_types, payload_schema, accepted_terms_format ("JSON" or "XML"), clone_from_agent_id (sandbox cloning).

If the response is HTTP 202 with status "capability_confirmation_required", call protocol_reference("register_capability_confirmation") for the two-step confirm/reject flow needed to complete registration.

rotate_agent_keyA

Request rotation of an agent's bearer key — the previous key stops working the moment the new one is actually claimed (see claim_bearer_key).

Auth: an org key that owns this agent skips a check that this agent has a contact_email on file (that check is otherwise required, 400 if missing). On the hosted remote connector, send your org's X-API-KEY header on the MCP connection itself; locally, set AIDRESS_API_KEY in the server environment.

TEMPORARY (short-term server-side change): agent_key is currently NEVER returned directly here, even with an org key — the response instead has a claim_link (and agent_key: None) regardless of credentials. Pass the token from that link to claim_bearer_key to actually mint and receive the key.

agent_id — the agent whose bearer key to rotate.

Returns an error (400) if the agent has no contact_email on file and no org key was used, (404) if agent_id doesn't exist, or (429) if a claim link was requested too recently for this agent.

claim_bearer_keyA

Redeem a claim-token link's token (from register_agent's or rotate_agent_key's claim_link field) and receive the actual bearer key. This is the GET /rotate?token=... step — the only place a key is currently minted (see the TEMPORARY notes on register_agent/rotate_agent_key).

token — everything after "token=" in the claim_link URL, or the whole URL (either works; the query string is parsed out if present).

Returns an error (400) if the token is invalid or already used. Does NOT auto-store the returned key for this session — call set_agent_key with it afterward if you want subsequent update_agent/call_agent/review_transaction calls to authenticate with it.

update_agentA

Update an existing agent's profile fields. Only provided fields are changed; omitted fields remain unchanged.

Auth: any one of —

  • Bearer agent key: on the hosted remote connector, send your own Authorization: Bearer header on the MCP connection (this is what it authenticates with automatically). Locally: set AIDRESS_AGENT_KEY env var before starting the server, or call set_agent_key("") once in-session after registering.

  • Ed25519 keypair: set AIDRESS_KEYPAIR_PATH (HTTP Message Signature, RFC 9421)

  • Org key: must own this agent. On the hosted remote connector, send your org's X-API-KEY header on the MCP connection itself; locally, set AIDRESS_API_KEY in the server environment. Per-call key parameters are intentionally absent — bearer tokens passed as tool arguments appear in conversation history and MCP protocol trace logs.

agent_id — the agent to update (cannot be changed)

contact_email — where rotate_agent_key's claim-token link is sent when this agent's key is rotated without an org/admin credential.

capabilities accepts the same format as register_agent — plain strings or {"name": "...", "weight": N} dicts.

payload_schema — semantic conventions for this agent's payloads. Dict with any of: currency (e.g. "USD"), date_format (e.g. "ISO8601"), quantity_unit (e.g. "individual_items"), weight_unit (e.g. "kg"). Only these four keys are accepted; unknown keys return 422. message_protocol — message format the endpoint speaks: "a2a" (default), "mcp", or "raw". Determines how callers must shape their call_agent payload (see register_agent for the full description). signup_help — link/instructions for callers to obtain their own credential, if your endpoint requires one (see protocol_reference("register_advanced_fields") for details). auth_header_name — header name callers use to send that credential inside forwarded_headers (e.g. "X-Api-Key", "Authorization"). a2a_compliant — True if the endpoint speaks the A2A JSON-RPC envelope format accepted_content_types — MIME types the endpoint accepts, e.g. ["application/json"]

pull_from_agent_id — SANDBOX ONLY; refreshes a sandbox draft from its paired live agent's current values. See protocol_reference("update_agent_advanced_fields").

price_schedule, payment_network, payment_pay_to, payment_asset — see register_agent; same fields, same rule (all three payment_* fields required together whenever price_schedule is set in this call).

Returns the updated trust object.

preview_sandbox_matchA

Preview exactly where a sandbox agent's tested config would rank against REAL, live competition — before you actually promote it. Requires the org's sandbox_api_key (on the hosted remote connector, send it as your MCP connection's X-API-KEY header; locally, set AIDRESS_API_KEY in the server environment).

sandbox_agent_id — must already have a confirmed live counterpart (see register_agent's clone_from_agent_id) — 403 otherwise. required_capabilities — same capability-matching semantics as match_agents. settlement_rail — optional filter on the real competitor set: "x402", "stripe", "manual", or omit for any.

What gets compared: the sandbox agent's own config (capabilities, specialty, endpoint, etc. — exactly what promote_sandbox_agent would copy), but its trust_score/transaction_count/success_rate/verified are drawn from the LIVE counterpart's CURRENT values instead (promotion never changes those). Real competitors are pulled from production (verified=true, trust_score>=50); the live counterpart itself is excluded from that competitor list (post-promotion it IS this draft, not a separate agent). Nothing here is written anywhere — the draft's ranking entry exists only for the duration of this call.

Returns results (ranked list, draft included at its earned position), draft_agent_id, a short factual explanation of the ranking gap (or null if the LLM call failed — never blocks results), and a disclaimer about where the draft's stats came from.

promote_sandbox_agentA

Push a sandbox agent's tested config onto its paired live agent — the way a sandbox-tested change actually goes live. Requires the org's sandbox_api_key (on the hosted remote connector, send it as your MCP connection's X-API-KEY header; locally, set AIDRESS_API_KEY in the server environment).

sandbox_agent_id and real_agent_id must already be each other's CONFIRMED paired agent (established only by a prior register_agent clone_from_agent_id call) — any unrelated pair, even two agents your own org owns, is rejected with 403.

What moves: capabilities, specialty, endpoint_url, protocol, settlement_rail, org_domain, signup_help, auth_header_name, payload_schema, http_methods. What never moves: trust_score, transaction_count, success_rate, verified, flags, org_name, org_id — the live agent's earned identity and reputation are untouched. Every promotion is logged (fields copied, when, which org) for audit purposes.

Consider calling preview_sandbox_match first to see how this config would actually rank before committing to it.

Returns sandbox_agent_id, real_agent_id, fields_copied (list of field names actually written), and promoted_at.

set_agent_keyA

Store a bearer agent key for the duration of this MCP session.

Use this immediately after register_agent returns an agent_key — it lets update_agent, call_agent, and review_transaction authenticate without restarting the server or changing environment variables.

Why not pass the key on each individual tool call? Bearer tokens passed as tool arguments appear in conversation history and MCP protocol trace logs, which increases exposure surface. Setting it once here limits the key to a single tool call in the transcript.

The key is held in memory only and does not survive a server restart. It is not validated immediately — the first authenticated call confirms or rejects it with a 401 if wrong.

AGENT_KEY env var always takes precedence over a key set here. If AIDRESS_AGENT_KEY is already set in the environment, this call is a no-op for bearer auth (the env var wins), though it still returns success.

On the hosted remote connector (api.aidress.ai), this key is stored in a process-wide slot shared by every remote caller currently connected — avoid this tool there. Instead send your own Authorization: Bearer header on the MCP connection itself; update_agent/call_agent/review_transaction read that per-request and it always wins over anything set here. This tool remains correct for a local single-user stdio server, where there is exactly one caller.

agent_key — the aidress-agent-sk-... key returned by register_agent

To use an org key for update operations, set AIDRESS_API_KEY in the server environment before startup — org keys cannot be set in-session.

call_agentA

Send a request to a registered agent through the Aidress proxy.

All calls are logged. Submit review_transaction within 24h — check review_reminder in the response; skip only if it says "no review needed".

agent_id — the agent to call. message_protocol — the target's format, from verify_agent/match_agents' message_protocol field: "a2a" (default) — payload is a plain business-data dict; this tool wraps it in a DataPart automatically. "mcp" — payload IS a complete MCP JSON-RPC message, sent verbatim. Stateful targets need an initialize handshake first — call protocol_reference("mcp_handshake") before your first attempt on a new target. "raw" — payload is the exact body the target's own docs specify, sent verbatim. Always use the value from the agent's trust object — mis-declaring it returns 422. mcp_session_id — session token from a prior initialize call. Only for message_protocol="mcp"; see protocol_reference("mcp_handshake"). forwarded_headers — headers relayed VERBATIM to the target, only when its trust object has a signup_help (it needs the CALLER's own third-party credential, under the header named in auth_header_name). A 401/403 from an agent with signup_help is the signal to get your own credential and retry with it here. Reserved headers (X-Payment, Mcp-Session-Id, Host, Content-*) are ignored. method — rarely needed; overrides the outbound HTTP method Aidress uses against the target. See protocol_reference("call_agent_advanced_fields"). payload — business data (message_protocol="a2a") or the exact protocol message (message_protocol="mcp"/"raw"). Check payload_schema on the agent first — mismatched currency/units/date format returns 409. caller_agent_id — REQUIRED: your agent's ID. Must match your set agent key or /call rejects the request (401 missing/invalid key, 403 mismatch). No anonymous calls. x_payment — Leave UNSET in normal use — only for a pre-signed x402 PaymentPayload (V2) if you're driving your own wallet manually. On a 402 without x_payment, the result carries a payment.pay_via proxy URL instead — see the server's payment-flow instructions (shown at session start) for how to use it. SKIP THE 402 ENTIRELY: if verify_agent/match_agents already returned this agent's routing.price_schedule + routing.pay_via, sign a PaymentPayload yourself for the matching task's declared price and pass it here as x_payment on your FIRST call — no discovery round-trip.

Auth (REQUIRED): on the hosted remote connector, your own Authorization: Bearer header on the MCP connection is used automatically. Locally: set AIDRESS_AGENT_KEY env var, call set_agent_key(...) once in-session, or configure AIDRESS_KEYPAIR_PATH. Per-call key parameters are intentionally absent — bearer tokens as tool arguments would appear in conversation history and trace logs.

Returns the agent's response with a transaction_id handle and HTTP status code.

review_transactionA

Submit a trust review after a confirmed exchange with another agent.

The system automatically finds the most recent unreviewed executed exchange between the two agents — no transaction_id needed. Reviews without a real prior /call exchange are rejected.

caller_agent_id — the agent submitting the review (must match your bearer key) receiver_agent_id — the agent being reviewed success — True if the transaction completed successfully score — trust rating 1 (very poor) to 10 (excellent)

Auth (always required): on the hosted remote connector, your own Authorization: Bearer header on the MCP connection is used automatically. Locally: set AIDRESS_AGENT_KEY env var before starting the server, or call set_agent_key("") once in-session after registering, or configure AIDRESS_KEYPAIR_PATH for Ed25519 HTTP Message Signatures (RFC 9421).

Anti-gaming rules enforced:

  • Caller trust_score must be >= 50

  • Cannot review your own agent

  • Cannot review agents from the same org domain (collusion block)

  • One review per executed exchange

  • No single org contributes more than 20% of an agent's rating influence; unaffiliated agents (no org_domain) are each capped at 10%

Returns the updated trust object for the reviewed agent.

list_org_agentsA

List all agents registered under your org API key.

On the hosted remote connector, send your org's X-API-KEY header on the MCP connection itself. Locally, set AIDRESS_API_KEY in the server environment. Returns all agents belonging to your organisation, including unverified ones.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Aidress-ai/Aidress'

If you have feedback or need assistance with the MCP directory API, please join our Discord server