# Setup — connect an agent to Peptidal

MCP door: https://mcp.peptidal.ai/mcp (streamable-http, protocol 2025-06-18, server name a2a-peptides). Agent Card: https://peptidal.ai/.well-known/agent-card.json (ES256, kid a2ap-2026-09); keyring https://peptidal.ai/.well-known/jwks.json. Registry namespace io.github.Dosidal.

## Connect

Any MCP client: { "url": "https://mcp.peptidal.ai/mcp", "transport": "streamable-http" }

First three calls: resolve_jurisdiction → resolve_actor → gate_transaction. No price, availability, order or handoff tool answers before an allow or require_rx exists.

## Credentials by actor class

- Reads: no authentication (registry-truth reads metered by x402 on the registry zone)
- Patient: no credential; cosmetic/supplement pathways + referral to a licensed channel; no vial checkout
- Prescriber / pharmacy or 503B / wholesaler / cosmetic brand / retailer: a licence on record, read from the register
- Agent: registers at https://peptides-registry.ai/oauth/register, takes a client-credentials Bearer from the issuer and presents it on the transacting tools; none → DENY_UNLICENSED_AGENT (see /auth.md)
- Settlement: x402, USDC and Open USD on Base, after the gate; signed receipts carry reason_code + rule_set_version

## Tenants

Supplier record + catalogue rows + signed Agent Card on the tenant's own hostname; onboarding ordered per signed tenant. Contact: the form at https://peptidal.ai/setup.
