Kivel

MCP endpoint for AI agents

Connect an AI agent to the Kivel MCP endpoint at /mcp to run utilities and manage webhook inboxes, mock APIs, files and mock MCP servers over HTTP.

Updated 30 October 2026

What the platform MCP endpoint does

https://kivel.io/mcp is a Model Context Protocol server that gives an agent the same capabilities as the HTTP API: run any executable utility, and create, inspect, renew, share and delete temporary resources. It shares permissions and quotas with HTTP, so an agent using your API key works within your workspace plan.

This endpoint is different from a mock MCP server. The platform endpoint exposes Kivel itself; a mock MCP server at /mcp/mock/{id} returns tools and responses you configure.

Connect a client

Configure your client for Streamable HTTP with the URL https://kivel.io/mcp. Add Authorization: Bearer with an API key to use your workspace; without it the agent works anonymously. Initialize before calling tools.

Requests are POST with Accept: application/json, text/event-stream. Responses are plain JSON. GET returns 405 because SSE streams and transport sessions are not provided. Supported protocol versions are 2025-11-25, 2025-06-18 and 2025-03-26. Platform request bodies can be up to 16 MiB, including Base64 file input, with four concurrent requests admitted before body parsing. Individual file limits still apply.

Call run_tool
curl https://kivel.io/mcp \
  -H "Authorization: Bearer $KIVEL_API_KEY" \
  -H 'Accept: application/json, text/event-stream' \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{
    "name":"run_tool",
    "arguments":{"toolId":"json","input":"{\"hello\":true}"}
  }}'

Available tools

tools/list returns these tools with input schemas and annotations. Tool results are text content containing JSON.

Platform MCP tools
ToolPurpose
search_toolsFind executable utilities by keyword; preferred over listing the full catalog
list_toolsList executable utility IDs
describe_toolOptions, defaults, limits and examples for one tool ID
run_toolRun a utility with toolId, input, options and file or files (1 to 20)
create_webhook_inboxCreate an inbox; optional visibility
inspect_webhook_inboxRead inbox details and captured requests
wait_for_webhookWait for new requests; after is the last request ID seen
set_webhook_responseConfigure status, body, content type, headers and delay; reset restores defaults
delete_webhook_inboxDelete an inbox and its history
start_login / finish_login / start_trialConnect through human approval, or start a capped trial
save_credential / list_credentials / reveal_credential / generate_passwordEncrypted account credentials with one human approval per reveal by default
create_email_inbox / list_emails / wait_for_emailReceive email with extracted codes and links
list_email_threads / get_email_threadList conversations in one inbox or across the workspace and read a full thread
email_draft / email_inbox_rulesSave drafts, submit for approval or schedule delivery, and read inbox address rules
memory_set / memory_get / memory_list / memory_deleteWorkspace-scoped JSON memory
create_monitor / list_monitors / inspect_monitor / pause_monitor / ping_monitor / delete_monitorManage uptime, SSL and heartbeat checks
ask_human / wait_for_approvalAsk and wait; answering stays in the human browser
workspace_statusRead agents, activity, plan limits, usage or human questions
create_mock_apiCreate a mock API from name and routes
call_mock_apiCall a mock route or mutate CRUD data with caller access
inspect_mock_apiRead a mock configuration and usage
delete_mock_apiDelete a mock API
upload_temporary_fileUpload a file up to 64 KiB as Base64; HTTP/SDK/CLI support larger files
inspect_temporary_fileRead file metadata and remaining downloads
download_temporary_fileDownload a file up to 64 KiB as Base64; uses one download
delete_temporary_fileDelete a file
resource_requestManage supported resource lifecycle operations; create webhooks, email inboxes, mocks and mock MCP servers; read calls/deliveries and configure webhook response/forwarding

Credentials inside tool calls

The inspect_*, delete_* and wait tools take a resource id. Anonymous resources also require the inspection or management token returned at creation. Resources owned by the authenticated workspace do not need a separate management token. download_temporary_file takes the private access token as accessToken, separate from the management token.

resource_request takes kind (inboxes, mocks, files, mcp-servers or email-inboxes), action (create, inspect, update, delete, renew, sharing, list, reset, calls, response, forward or deliveries), and optionally id, token, config, ttlSeconds, persistent and visibility. It calls the same HTTP endpoints, so its results match the HTTP responses. Email supports create (config.activeDays and paid config.localPart), inspect, delete, paid renew and forward (config.url or null). Free inboxes cannot be renewed. Messages require workspace access; existing anonymous inboxes can expire naturally. response and forward accept config; config.reset=true restores defaults. update, calls and reset apply to mocks; response, forward and deliveries apply to webhooks.

Errors

Invalid arguments return a JSON-RPC error with code -32602, and unknown methods return -32601. Quota, permission and resource failures return a tool result with isError: true and an error message. Some failures also include an HTTP status or request ID; clients must not require those fields on every error.

Frequently asked questions

What is the Kivel MCP server URL?

https://kivel.io/mcp, using Streamable HTTP. Send Authorization: Bearer with an API key to use your workspace allowances.

Can an agent use Kivel MCP without an account?

Yes. Without Authorization it works with anonymous allowances, and resources it creates are managed with the tokens returned in the tool results.

Why does my MCP client get 406 or 405?

406 means the Accept header does not include both application/json and text/event-stream. 405 means the client sent GET to open an SSE stream, which this endpoint does not provide.

How does an agent discover which utilities it can run?

Use search_tools with query to find relevant utilities, then describe_tool for options, defaults and limits before run_tool. list_tools returns the full executable list when needed.