{"serverInfo":{"name":"agentline","title":"Agentline NZ","version":"1.1.0"},"description":"Your AI agent's own New Zealand 028 mobile number (two-way SMS) and @agentline.nz email inbox. Send and read texts and email, and wait for one-time codes.","websiteUrl":"https://agentline.nz","documentationUrl":"https://agentline.nz/docs","iconUrl":"https://agentline.nz/favicon.svg","remotes":[{"type":"streamable-http","url":"https://agentline.nz/mcp","authentication":{"required":true,"schemes":["oauth2","bearer"]}},{"type":"streamable-http","url":"https://agentline.nz/public/mcp","authentication":{"required":false,"schemes":[]},"tools":[{"name":"get_pricing","title":"Get Agentline plans and pricing","description":"Plans, monthly prices in NZD, allowances and free-trial terms, plus pitchForHuman: a plain summary to pass to the person who'd pay. Information only.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false,"idempotentHint":true},"execution":{"taskSupport":"forbidden"},"_meta":{"securitySchemes":[{"type":"noauth"}]},"securitySchemes":[{"type":"noauth"}]},{"name":"check_number_availability","title":"Check NZ 028 number availability","description":"Whether NZ 028 numbers can be issued now and how long setup takes. Doesn't reserve anything.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false,"idempotentHint":true},"execution":{"taskSupport":"forbidden"},"_meta":{"securitySchemes":[{"type":"noauth"}]},"securitySchemes":[{"type":"noauth"}]},{"name":"get_docs","title":"Read Agentline docs","description":"Agentline documentation as Markdown. Topics: quickstart, auth, tools, rest, codes, sms-rules, signup, pricing, human, errors. Omit topic for all of it.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"topic":{"type":"string","enum":["quickstart","auth","tools","rest","codes","sms-rules","signup","pricing","human","errors"]}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false,"idempotentHint":true},"execution":{"taskSupport":"forbidden"},"_meta":{"securitySchemes":[{"type":"noauth"}]},"securitySchemes":[{"type":"noauth"}]},{"name":"get_install_instructions","title":"Get install instructions for an MCP client","description":"How to add Agentline to a specific client. Clients: claude, chatgpt, claude-code, cursor, vscode, windsurf, cline, goose, zed, codex, gemini, n8n, generic.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"client":{"type":"string","enum":["claude","chatgpt","claude-code","cursor","vscode","windsurf","cline","goose","zed","codex","gemini","n8n","generic"]}},"required":["client"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false,"idempotentHint":true},"execution":{"taskSupport":"forbidden"},"_meta":{"securitySchemes":[{"type":"noauth"}]},"securitySchemes":[{"type":"noauth"}]},{"name":"signup","title":"Sign up for Agentline (no human step)","description":"Create your own Agentline account in one call. Give your human's email (and NZ mobile, optional). Returns an API key (shown once), an @agentline.nz inbox and an MCP config to connect to /mcp straight away. We email your human a verification link (and text a code if you gave a mobile). Opening that link gives your key full use of the account. Until then you can only check your account and can't message anyone. Limits: 3 signups per IP per hour, 3 per owner email per day.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"owner_email":{"type":"string","maxLength":200,"description":"Your human's own email address. We email them a verification link."},"owner_mobile":{"description":"Your human's NZ mobile, e.g. 021 123 4567 (optional). We text them a code.","type":"string","maxLength":30},"agent_name":{"description":"A name for you, e.g. \"Aroha's booking assistant\"","type":"string","maxLength":60}},"required":["owner_email"]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":true,"idempotentHint":false},"execution":{"taskSupport":"forbidden"},"_meta":{"securitySchemes":[{"type":"noauth"}]},"securitySchemes":[{"type":"noauth"}]}]}],"authentication":{"required":true,"schemes":["oauth2"],"protectedResourceMetadata":"https://agentline.nz/.well-known/oauth-protected-resource/mcp"},"tools":[{"name":"get_profile","title":"Get connected Agentline account","description":"Return the Agentline account represented by the current credentials.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false,"idempotentHint":true},"execution":{"taskSupport":"forbidden"},"_meta":{"securitySchemes":[{"type":"oauth2","scopes":["messages:read"]}],"openai/profile":true},"outputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"nickname":{"type":"string"}},"required":["id"],"additionalProperties":false},"securitySchemes":[{"type":"oauth2","scopes":["messages:read"]}]},{"name":"get_my_number","title":"Get my number and inbox","description":"Use this first. Returns the agent's own NZ phone number(s), email address(es), plan and remaining allowance. Give these to services that need to verify the agent by SMS or email.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false,"idempotentHint":true},"execution":{"taskSupport":"forbidden"},"_meta":{"securitySchemes":[{"type":"oauth2","scopes":["messages:read"]}],"openai/toolInvocation/invoking":"Looking up your number…","openai/toolInvocation/invoked":"Found your number"},"securitySchemes":[{"type":"oauth2","scopes":["messages:read"]}]},{"name":"send_sms","title":"Send SMS","description":"Send a text message from the agent's NZ number to a New Zealand mobile. Confirm the recipient and wording with the user first. Transactional, one-to-one messages only (replies, bookings, confirmations); marketing and bulk texts are blocked.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"to":{"type":"string","description":"Recipient NZ mobile number, e.g. +64211234567 or 021 123 4567"},"body":{"type":"string","minLength":1,"maxLength":1600,"description":"Message text"},"from":{"description":"Which of your Agentline numbers to send from (defaults to the first)","type":"string"}},"required":["to","body"]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":true,"idempotentHint":false},"execution":{"taskSupport":"forbidden"},"_meta":{"securitySchemes":[{"type":"oauth2","scopes":["messages:send"]}],"openai/toolInvocation/invoking":"Sending SMS…","openai/toolInvocation/invoked":"SMS sent"},"securitySchemes":[{"type":"oauth2","scopes":["messages:send"]}]},{"name":"list_messages","title":"List SMS messages","description":"List recent SMS sent and received by the agent's number(s), newest first.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"direction":{"description":"Only inbound (in) or outbound (out)","type":"string","enum":["in","out"]},"contact":{"description":"Only messages with this phone number","type":"string"},"unread_only":{"description":"Only inbound messages not yet marked read with mark_read","type":"boolean"},"since_seconds":{"description":"Only messages from the last N seconds","type":"integer","exclusiveMinimum":0,"maximum":2592000},"limit":{"type":"integer","minimum":1,"maximum":100}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false,"idempotentHint":true},"execution":{"taskSupport":"forbidden"},"_meta":{"securitySchemes":[{"type":"oauth2","scopes":["messages:read"]}],"openai/outputTemplate":"ui://agentline/inbox-v1.html","ui":{"resourceUri":"ui://agentline/inbox-v1.html"},"openai/toolInvocation/invoking":"Checking messages…","openai/toolInvocation/invoked":"Messages loaded"},"securitySchemes":[{"type":"oauth2","scopes":["messages:read"]}]},{"name":"read_message","title":"Read SMS","description":"Read a single SMS by id.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"id":{"type":"string","description":"Message id from list_messages"}},"required":["id"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false,"idempotentHint":true},"execution":{"taskSupport":"forbidden"},"_meta":{"securitySchemes":[{"type":"oauth2","scopes":["messages:read"]}]},"securitySchemes":[{"type":"oauth2","scopes":["messages:read"]}]},{"name":"send_email","title":"Send email","description":"Send an email from the agent's @agentline.nz address. Confirm recipients and content with the user first. Up to 5 recipients; transactional and one-to-one mail only.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"to":{"anyOf":[{"type":"string"},{"maxItems":5,"type":"array","items":{"type":"string"}}],"description":"Recipient address or list of addresses"},"subject":{"type":"string","minLength":1,"maxLength":300},"text":{"type":"string","minLength":1,"description":"Plain-text body"},"html":{"description":"Optional HTML body","type":"string"},"from":{"description":"Which of your Agentline addresses to send from","type":"string"},"reply_to_id":{"description":"Email id being replied to, to keep the thread","type":"string"}},"required":["to","subject","text"]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":true,"idempotentHint":false},"execution":{"taskSupport":"forbidden"},"_meta":{"securitySchemes":[{"type":"oauth2","scopes":["messages:send"]}],"openai/toolInvocation/invoking":"Sending email…","openai/toolInvocation/invoked":"Email sent"},"securitySchemes":[{"type":"oauth2","scopes":["messages:send"]}]},{"name":"list_emails","title":"List emails","description":"List recent emails in the agent's inbox (and sent mail), newest first.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"direction":{"type":"string","enum":["in","out"]},"unread_only":{"description":"Only inbound emails not yet marked read with mark_read","type":"boolean"},"since_seconds":{"type":"integer","exclusiveMinimum":0,"maximum":2592000},"limit":{"type":"integer","minimum":1,"maximum":100}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false,"idempotentHint":true},"execution":{"taskSupport":"forbidden"},"_meta":{"securitySchemes":[{"type":"oauth2","scopes":["messages:read"]}],"openai/outputTemplate":"ui://agentline/inbox-v1.html","ui":{"resourceUri":"ui://agentline/inbox-v1.html"},"openai/toolInvocation/invoking":"Checking inbox…","openai/toolInvocation/invoked":"Inbox loaded"},"securitySchemes":[{"type":"oauth2","scopes":["messages:read"]}]},{"name":"read_email","title":"Read email","description":"Read the full text of an email by id. Doesn't change its read state; call mark_read for that.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"id":{"type":"string","description":"Email id from list_emails"}},"required":["id"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false,"idempotentHint":true},"execution":{"taskSupport":"forbidden"},"_meta":{"securitySchemes":[{"type":"oauth2","scopes":["messages:read"]}]},"securitySchemes":[{"type":"oauth2","scopes":["messages:read"]}]},{"name":"mark_read","title":"Mark messages read or unread","description":"Mark SMS (ids from list_messages) and emails (ids from list_emails) as read, or unread with read=false. Listing and reading never change read state, so call this once you've dealt with a message; list_messages and list_emails take unread_only. Up to 100 ids.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"ids":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"string"},"description":"SMS and/or email ids"},"read":{"description":"true to mark read (default), false to mark unread","type":"boolean"}},"required":["ids"]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false,"idempotentHint":true},"execution":{"taskSupport":"forbidden"},"_meta":{"securitySchemes":[{"type":"oauth2","scopes":["messages:read"]}]},"securitySchemes":[{"type":"oauth2","scopes":["messages:read"]}]},{"name":"wait_for_code","title":"Wait for a one-time code","description":"Wait for a verification code (OTP) to arrive by SMS or email and return it. Trigger the code first (e.g. submit the sign-up form with your Agentline number/email), then call this. Waits up to 55s; if it returns found=false, call it again. Each code is returned once.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"channel":{"description":"Where the code will arrive (default any)","type":"string","enum":["sms","email","any"]},"timeout_seconds":{"description":"How long to wait (default 45, max 55)","type":"integer","minimum":0,"maximum":55},"from_contains":{"description":"Only codes whose sender or text contains this, e.g. \"Google\"","type":"string","maxLength":100},"since_seconds":{"description":"Consider messages from the last N seconds (default 600)","type":"integer","exclusiveMinimum":0,"maximum":86400}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false,"idempotentHint":false},"execution":{"taskSupport":"forbidden"},"_meta":{"securitySchemes":[{"type":"oauth2","scopes":["messages:read"]}],"openai/outputTemplate":"ui://agentline/inbox-v1.html","ui":{"resourceUri":"ui://agentline/inbox-v1.html"},"openai/toolInvocation/invoking":"Waiting for your code…","openai/toolInvocation/invoked":"Code check finished"},"securitySchemes":[{"type":"oauth2","scopes":["messages:read"]}]},{"name":"list_calls","title":"List calls","description":"List recent inbound and outbound calls, including voicemail transcripts.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":100}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false,"idempotentHint":true},"execution":{"taskSupport":"forbidden"},"_meta":{"securitySchemes":[{"type":"oauth2","scopes":["messages:read"]}]},"securitySchemes":[{"type":"oauth2","scopes":["messages:read"]}]},{"name":"get_voice_settings","title":"Get voice settings","description":"Show what happens when someone calls each of the agent's numbers (greeting, voicemail, forwarding).","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false,"idempotentHint":true},"execution":{"taskSupport":"forbidden"},"_meta":{"securitySchemes":[{"type":"oauth2","scopes":["messages:read"]}]},"securitySchemes":[{"type":"oauth2","scopes":["messages:read"]}]},{"name":"update_voice_settings","title":"Update voice settings","description":"Change call handling for one number: play a greeting and take voicemail (message), forward to a SIP address such as an ElevenLabs agent (forward_sip), connect a wss:// media stream (stream), or forward to a NZ phone (forward_phone). Replaces the number's current call handling. Confirm with the user first.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"number_id":{"type":"string","description":"Number id from get_voice_settings"},"mode":{"type":"string","enum":["message","forward_sip","stream","forward_phone"]},"target":{"description":"sip:user@host, wss://…, or +64… depending on mode","type":"string"},"greeting":{"type":"string","maxLength":500},"voicemail_enabled":{"type":"boolean"}},"required":["number_id","mode"]},"annotations":{"readOnlyHint":false,"destructiveHint":true,"openWorldHint":false,"idempotentHint":true},"execution":{"taskSupport":"forbidden"},"_meta":{"securitySchemes":[{"type":"oauth2","scopes":["messages:send"]}]},"securitySchemes":[{"type":"oauth2","scopes":["messages:send"]}]},{"name":"list_api_keys","title":"List API keys","description":"List the account's API keys (prefix, name, created, last used). Secrets are never shown again after creation.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false,"idempotentHint":true},"execution":{"taskSupport":"forbidden"},"_meta":{"securitySchemes":[{"type":"oauth2","scopes":["messages:read"]}]},"securitySchemes":[{"type":"oauth2","scopes":["messages:read"]}]},{"name":"create_api_key","title":"Create API key","description":"Create an API key for another agent or script. The secret is shown once in the result; store it securely.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60,"description":"A label, e.g. \"booking agent\""}},"required":["name"]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false,"idempotentHint":false},"execution":{"taskSupport":"forbidden"},"_meta":{"securitySchemes":[{"type":"oauth2","scopes":["messages:send"]}]},"securitySchemes":[{"type":"oauth2","scopes":["messages:send"]}]},{"name":"revoke_api_key","title":"Revoke API key","description":"Permanently revoke an API key. Anything using it stops working immediately. Confirm with the user first.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"key_id":{"type":"string","description":"Key id from list_api_keys"}},"required":["key_id"]},"annotations":{"readOnlyHint":false,"destructiveHint":true,"openWorldHint":false,"idempotentHint":true},"execution":{"taskSupport":"forbidden"},"_meta":{"securitySchemes":[{"type":"oauth2","scopes":["messages:send"]}]},"securitySchemes":[{"type":"oauth2","scopes":["messages:send"]}]},{"name":"start_owner_phone_verification","title":"Verify the owner's mobile","description":"Start verifying the account owner's own NZ mobile so the agent may text it. Returns a 6-digit code: the OWNER must text it from their phone to the agent's number. Replaces any mobile already verified, so confirm with the user first.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"phone":{"type":"string","description":"The owner's NZ mobile, e.g. 021 123 4567"}},"required":["phone"]},"annotations":{"readOnlyHint":false,"destructiveHint":true,"openWorldHint":false,"idempotentHint":false},"execution":{"taskSupport":"forbidden"},"_meta":{"securitySchemes":[{"type":"oauth2","scopes":["messages:send"]}]},"securitySchemes":[{"type":"oauth2","scopes":["messages:send"]}]},{"name":"verify_owner","title":"Confirm the owner's mobile with their SMS code","description":"For accounts an agent created with signup: submit the 6-digit code Agentline texted to the owner's mobile, once the owner gives it to you. Confirms their mobile so you can text it. The account itself is verified only when the owner clicks the emailed link. 5 tries an hour.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"type":"string","minLength":4,"maxLength":20,"description":"The 6-digit code the owner received by SMS"}},"required":["code"]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false,"idempotentHint":false},"execution":{"taskSupport":"forbidden"},"_meta":{"securitySchemes":[{"type":"oauth2","scopes":["messages:send"]}]},"securitySchemes":[{"type":"oauth2","scopes":["messages:send"]}]},{"name":"list_audit_log","title":"List audit log","description":"Recent account events: sign-ins, sends, blocks, opt-outs, key changes and billing events.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":200}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false,"idempotentHint":true},"execution":{"taskSupport":"forbidden"},"_meta":{"securitySchemes":[{"type":"oauth2","scopes":["messages:read"]}]},"securitySchemes":[{"type":"oauth2","scopes":["messages:read"]}]},{"name":"get_billing","title":"Get billing status","description":"Show the plan, subscription status, trial end date and allowances.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false,"idempotentHint":true},"execution":{"taskSupport":"forbidden"},"_meta":{"securitySchemes":[{"type":"oauth2","scopes":["messages:read"]}]},"securitySchemes":[{"type":"oauth2","scopes":["messages:read"]}]},{"name":"get_checkout_link","title":"Get a checkout link","description":"Create a Stripe Checkout link for the owner to start a plan (with the 7-day free trial if eligible). The link is emailed to the owner and returned; the agent can't pay.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"plan":{"type":"string","enum":["starter","pro"]}},"required":["plan"]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":true,"idempotentHint":false},"execution":{"taskSupport":"forbidden"},"_meta":{"securitySchemes":[{"type":"oauth2","scopes":["messages:send"]}]},"securitySchemes":[{"type":"oauth2","scopes":["messages:send"]}]},{"name":"get_billing_portal_link","title":"Get the billing portal link","description":"Create a Stripe Customer Portal link where the owner can update the card, switch plan or cancel. The link is emailed to the owner, and any plan change or cancellation in the next 24 hours is emailed to them too.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":true,"idempotentHint":false},"execution":{"taskSupport":"forbidden"},"_meta":{"securitySchemes":[{"type":"oauth2","scopes":["messages:send"]}]},"securitySchemes":[{"type":"oauth2","scopes":["messages:send"]}]}],"resources":[],"prompts":[]}