{"serverId":"mcp-registry/io.github.piiiico/agentlair","tools":[{"name":"calendar_create_event","fixed":{"name":"calendar_create_event","description":"Create a calendar event on your AgentLair calendar. Events are published via iCal feed for human subscription (Google Calendar, Apple Calendar, Outlook).","inputSchema":{"type":"object","required":["summary","start","end"],"properties":{"end":{"type":"string","description":"Event end time in ISO 8601 format. Date-only (\"2026-03-21\") or datetime (\"2026-03-20T15:00:00Z\")"},"start":{"type":"string","description":"Event start time in ISO 8601 format. Date-only (\"2026-03-20\") or datetime (\"2026-03-20T14:00:00Z\")"},"summary":{"type":"string","description":"Event title / summary (required)"},"location":{"type":"string","description":"Optional event location (address, URL, or room name)"},"attendees":{"type":"array","items":{"type":"string"},"description":"Optional list of attendee email addresses"},"description":{"type":"string","description":"Optional event description / notes"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":262,"tokensAfter":262},{"name":"calendar_delete_event","fixed":{"name":"calendar_delete_event","description":"Delete an event from your AgentLair calendar by event ID. Use calendar_list_events to find event IDs.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"Event ID to delete (e.g. evt_abc123...)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":82,"tokensAfter":82},{"name":"calendar_get_feed","fixed":{"name":"calendar_get_feed","description":"Get the public iCal subscription URL for your AgentLair calendar. Share this URL with calendar apps (Google Calendar, Apple Calendar, Outlook) so humans can subscribe and see agent-created events.","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":85,"tokensAfter":85},{"name":"calendar_list_events","fixed":{"name":"calendar_list_events","description":"List events on your AgentLair calendar. Optionally filter by date range.","inputSchema":{"type":"object","required":[],"properties":{"to":{"type":"string","description":"Optional end of date range filter (ISO 8601, e.g. \"2026-03-31\")"},"from":{"type":"string","description":"Optional start of date range filter (ISO 8601, e.g. \"2026-03-01\")"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":110,"tokensAfter":110},{"name":"check_inbox","fixed":{"name":"check_inbox","description":"Check the inbox for an @agentlair.dev email address. Returns recent messages with sender, subject, and received time.","inputSchema":{"type":"object","required":["address"],"properties":{"limit":{"type":"number","description":"Max number of messages to return (default: 10, max: 50)"},"address":{"type":"string","description":"The @agentlair.dev address to check (e.g. mybot@agentlair.dev)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":120,"tokensAfter":120},{"name":"claim_address","fixed":{"name":"claim_address","description":"Claim a new @agentlair.dev email address for your agent. Free tier supports multiple addresses.","inputSchema":{"type":"object","required":["address"],"properties":{"address":{"type":"string","description":"The address to claim (must end in @agentlair.dev, e.g. mybot@agentlair.dev)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":91,"tokensAfter":91},{"name":"list_addresses","fixed":{"name":"list_addresses","description":"List all @agentlair.dev email addresses associated with your API key.","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":49,"tokensAfter":49},{"name":"preflight_trust_check","fixed":{"name":"preflight_trust_check","description":"Check trust readiness before engaging with an agent. Returns a ReadinessCard: trust score, behavioral maturity level, whether it's safe to engage, and any caveats. Call this before delegating tasks, accepting agent output, or authorizing payments involving an unknown agent. Free — no extra charge beyond your API key.","inputSchema":{"type":"object","required":["agent_id"],"properties":{"agent_id":{"type":"string","description":"AgentLair agent ID to check (format: acc_<alphanumeric>). Found via the agent's AgentLair profile or DID document."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":167,"tokensAfter":167},{"name":"read_message","fixed":{"name":"read_message","description":"Read the full content of a specific email message, including the body text.","inputSchema":{"type":"object","required":["message_id","address"],"properties":{"address":{"type":"string","description":"The @agentlair.dev address this message was delivered to"},"message_id":{"type":"string","description":"The message_id from check_inbox (angle brackets will be stripped automatically)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":119,"tokensAfter":119},{"name":"send_email","fixed":{"name":"send_email","description":"Send an email from your AgentLair address (@agentlair.dev) to any recipient. No SMTP or DNS setup needed.","inputSchema":{"type":"object","required":["from","to","subject","text"],"properties":{"cc":{"type":"array","items":{"type":"string"},"description":"Optional CC recipient addresses"},"to":{"type":"array","items":{"type":"string"},"description":"Array of recipient email addresses"},"from":{"type":"string","description":"Sender address — must be an @agentlair.dev address you own (e.g. mybot@agentlair.dev)"},"html":{"type":"string","description":"Optional HTML body (supplement to text)"},"text":{"type":"string","description":"Plain text body of the email"},"subject":{"type":"string","description":"Email subject line"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":214,"tokensAfter":214},{"name":"vault_delete","fixed":{"name":"vault_delete","description":"Delete a key and all its versions from the AgentLair Vault.","inputSchema":{"type":"object","required":["key"],"properties":{"key":{"type":"string","description":"Vault key name to delete"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":64,"tokensAfter":64},{"name":"vault_get","fixed":{"name":"vault_get","description":"Retrieve a stored value from the AgentLair Vault by key name.","inputSchema":{"type":"object","required":["key"],"properties":{"key":{"type":"string","description":"Vault key name to retrieve"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":65,"tokensAfter":65},{"name":"vault_list","fixed":{"name":"vault_list","description":"List all keys stored in your AgentLair Vault (metadata only, values not returned).","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":51,"tokensAfter":51},{"name":"vault_put","fixed":{"name":"vault_put","description":"Store a value in the AgentLair Vault. Use this to persist API keys, secrets, or any data your agent needs across sessions. Best practice: encrypt sensitive data client-side before storing (the server stores whatever you send).","inputSchema":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","description":"Vault key name (1-128 chars, alphanumeric + _ - .). Examples: 'openai-key', 'session_token', 'config.json'"},"value":{"type":"string","description":"Value to store. For secrets: encrypt first, then store the ciphertext."},"metadata":{"type":"object","description":"Optional JSON metadata (labels, timestamps, etc.) — never encrypted"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":198,"tokensAfter":198}],"toolsChanged":14,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}