# Pidge Central (Pidge) > Agent secretary desk — structured mail, calendar holds, and wall notes. > Agents draft/enrich via MCP; humans seal and act in the browser. > One deployment = one loft. Discovery is public; credentials are not. ## Connect - [Connect guide](https://pidge.lol/connect): human mints a bearer; host-specific install matrix - [MCP endpoint](https://pidge.lol/mcp): streamable HTTP; Authorization: Bearer pidge_at_… - [Agents settings](https://pidge.lol/settings/agents): mint Desk / Draft / Confirm / Autopilot tokens - [Health](https://pidge.lol/livez): liveness probe - Compatible hosts: Cursor, Claude Code, Claude.ai, Codex, ChatGPT Apps ## Discovery - [llms.txt](https://pidge.lol/llms.txt): this file - [llms-full.txt](https://pidge.lol/llms-full.txt): tools, scopes, curl recipe - [MCP server card](https://pidge.lol/.well-known/mcp/server-card.json): SEP-1649-shaped catalog - [MCP manifest](https://pidge.lol/.well-known/mcp): SEP-1960-shaped connect/auth ## Trust ladder - Desk (default): draft, enrich, propose holds, pin notes — human seals in UI - Confirm: Desk + propose_seal (one-shot human challenge URL) - Autopilot: Confirm + seal_pidge over MCP — never paste into shared chats ## Addressing - Same loft: `list_directory` — local members - Beyond: `list_contacts` / `add_contact` — local address book only - Address book ≠ delivery: sealed packets stay on this loft until federation ## Optional - [Source](https://github.com/lbliii/pidge) - [Login](https://pidge.lol/login) ## MCP tools - `draft_pidge` (pidge:draft): Create a draft Pidge from intent and recipients. Loft recipients must already be connected. - `enrich_pidge` (pidge:enrich): Fill structured slots on a draft Pidge. - `list_drafts` (pidge:draft): List the owner's draft Pidges. - `discard_pidge` (pidge:draft): Discard one of the owner's draft Pidges. - `get_pidge` (pidge:draft): Fetch one Pidge the owner can see. - `list_directory` (pidge:draft): List other people in this loft (discovery). Drafting requires an accepted connection. - `list_contacts` (pidge:draft): List the owner's address book (who you may mail; local addressing only — not cross-loft delivery). Includes accepted loft connections and external contacts. - `add_contact` (pidge:draft): Add an external contact for local addressing on this loft (not cross-loft delivery). - `propose_hold` (pidge:calendar.propose): Propose a calendar hold for a Pidge. - `pin_note` (pidge:notes.pin): Pin a sealed Pidge to the owner's wall. - `propose_seal` (pidge:seal.propose): Propose sealing a ready draft; returns a one-time seal_url for the human. - `seal_pidge` (pidge:seal): Seal a ready draft over MCP (Autopilot only). Prefer propose_seal. ## Cursor snippet After minting under /settings/agents, paste (also Claude Code / Codex / ChatGPT on /connect): ```json { "mcpServers": { "pidge": { "url": "https://pidge.lol/mcp", "headers": { "Authorization": "Bearer pidge_at_…" } } } } ``` ## Claude plugin - Skills pack: https://github.com/lbliii/pidge/tree/main/plugins/claude-pidge ## Smoke test (after mint) ```bash BASE="https://pidge.lol" TOKEN="pidge_at_…" # from /settings/agents — Desk preferred curl -sS "$BASE/mcp" -H "Authorization: Bearer $TOKEN" \ -H 'Content-Type: application/json' \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' curl -sS "$BASE/mcp" -H "Authorization: Bearer $TOKEN" \ -H 'Content-Type: application/json' \ -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{ "name":"list_directory", "arguments":{} }}' ``` ## Do not - Expect anonymous MCP — bearer required - Call seal_pidge without an Autopilot token the human knowingly minted - Paste Autopilot secrets into shared chats or tickets - Treat Beyond contacts as delivery to another loft — address book is local only