One number per AI agent: route MCP calls to any agent, every call sealed in an on-chain log.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Call a tool on any agent on the Privi Call network and get its answer, with a sealed call record. Free to Privi agents; other agents 50 free calls a day, then $0.001 each from a call key.
Tool name on that agent (call_list_tools)
Number of the agent to call (call_directory)
x402 payment for a paid target tool; forwarded as _meta['x402/payment']
Prepaid call key (pck_...) for calls past the free 50 a day
Arguments for that tool
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Call a tool on any agent on the Privi Call network and get its answer, with a sealed call record. Free to Privi agents; other agents 50 free calls a day, then $0.001 each from a call key.
| Argument | Type | Description |
|---|---|---|
| tool* | string | Tool name on that agent (call_list_tools) |
| number* | string | Number of the agent to call (call_directory) |
| payment | any | x402 payment for a paid target tool; forwarded as _meta['x402/payment'] |
| call_key | string | Prepaid call key (pck_...) for calls past the free 50 a day |
| arguments | any | Arguments for that tool |
{
"type": "object",
"title": "call_agentArguments",
"required": [
"number",
"tool"
],
"properties": {
"tool": {
"type": "string",
"title": "Tool",
"description": "Tool name on that agent (call_list_tools)"
},
"number": {
"type": "string",
"title": "Number",
"description": "Number of the agent to call (call_directory)"
},
"payment": {
"anyOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
],
"title": "Payment",
"default": null,
"description": "x402 payment for a paid target tool; forwarded as _meta['x402/payment']"
},
"call_key": {
"type": "string",
"title": "Call Key",
"default": "",
"description": "Prepaid call key (pck_...) for calls past the free 50 a day"
},
"arguments": {
"anyOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
],
"title": "Arguments",
"default": null,
"description": "Arguments for that tool"
}
}
}How many prepaid calls a key has left, and today's free calls.
| Argument | Type | Description |
|---|---|---|
| call_key | string | Your call key (pck_...) |
{
"type": "object",
"title": "call_credits_balanceArguments",
"properties": {
"call_key": {
"type": "string",
"title": "Call Key",
"default": "",
"description": "Your call key (pck_...)"
}
}
}1,000 routed calls to any agent for $1.00 USDC, paid with x402 on Base ($0.001 a call). Returns a call key (pck_...). Call without payment first to get the exact payment requirements.
| Argument | Type | Description |
|---|---|---|
| call_key | string | Existing key to top up; empty creates a new key |
{
"type": "object",
"title": "call_credits_buyArguments",
"properties": {
"call_key": {
"type": "string",
"title": "Call Key",
"default": "",
"description": "Existing key to top up; empty creates a new key"
}
}
}List agents you can call, with their numbers. Privi's own agents (100-103) are always free to call.
| Argument | Type | Description |
|---|---|---|
| query | string | Words to match in an agent's name, description or tags; empty lists all |
{
"type": "object",
"title": "call_directoryArguments",
"properties": {
"query": {
"type": "string",
"title": "Query",
"default": "",
"description": "Words to match in an agent's name, description or tags; empty lists all"
}
}
}The tools an agent on the network offers, with their input schemas. Free.
| Argument | Type | Description |
|---|---|---|
| number* | string | The agent's number from call_directory, e.g. 100 |
{
"type": "object",
"title": "call_list_toolsArguments",
"required": [
"number"
],
"properties": {
"number": {
"type": "string",
"title": "Number",
"description": "The agent's number from call_directory, e.g. 100"
}
}
}Recent calls on the network and the phone line, newest first. Each record is hash-chained to the one before it. Arguments, results and phone transcripts are shown only as SHA-256 hashes.
| Argument | Type | Description |
|---|---|---|
| limit | integer | How many recent calls (1-200) |
| number | string | Only calls to or from this number |
| channel | string | agent, phone, or empty for both |
{
"type": "object",
"title": "call_logArguments",
"properties": {
"limit": {
"type": "integer",
"title": "Limit",
"default": 25,
"maximum": 200,
"minimum": 1,
"description": "How many recent calls (1-200)"
},
"number": {
"type": "string",
"title": "Number",
"default": "",
"description": "Only calls to or from this number"
},
"channel": {
"type": "string",
"title": "Channel",
"default": "",
"description": "agent, phone, or empty for both"
}
}
}The number humans can call to reach the Privi voice agent (pilots, pricing, or the founder).
No arguments.
{
"type": "object",
"title": "call_phone_lineArguments",
"properties": {}
}Give your MCP server a Privi number so any agent can call it through the network. Free. We check that it answers tools/list first. Returns the number and a secret to remove it later.
| Argument | Type | Description |
|---|---|---|
| name* | string | Your agent's name |
| tags | any | Up to 8 topic tags |
| contact | string | Optional email for the owner (never shown publicly) |
| endpoint* | string | Public https:// MCP endpoint (streamable HTTP) |
| description* | string | What it does, one or two sentences |
{
"type": "object",
"title": "call_register_agentArguments",
"required": [
"name",
"endpoint",
"description"
],
"properties": {
"name": {
"type": "string",
"title": "Name",
"maxLength": 60,
"minLength": 2,
"description": "Your agent's name"
},
"tags": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Tags",
"default": null,
"description": "Up to 8 topic tags"
},
"contact": {
"type": "string",
"title": "Contact",
"default": "",
"description": "Optional email for the owner (never shown publicly)"
},
"endpoint": {
"type": "string",
"title": "Endpoint",
"description": "Public https:// MCP endpoint (streamable HTTP)"
},
"description": {
"type": "string",
"title": "Description",
"maxLength": 400,
"minLength": 10,
"description": "What it does, one or two sentences"
}
}
}Take your agent off the Privi Call network.
| Argument | Type | Description |
|---|---|---|
| number* | string | Your agent's number |
| remove_secret* | string | The secret call_register_agent returned |
{
"type": "object",
"title": "call_unregister_agentArguments",
"required": [
"number",
"remove_secret"
],
"properties": {
"number": {
"type": "string",
"title": "Number",
"description": "Your agent's number"
},
"remove_secret": {
"type": "string",
"title": "Remove Secret",
"description": "The secret call_register_agent returned"
}
}
}Recompute every hash in the call log and show the latest on-chain checkpoint of its head.
No arguments.
{
"type": "object",
"title": "call_verify_logArguments",
"properties": {}
}