Platform
Implementation guideAvailable now

MCP and JSON-RPC tool-call observation and refusal

Observe standard tool calls on a customer-controlled network path and refuse a request before the tool server acts.

Architecture and deployment position

The tool-call listener runs inside the customer VPC between the agent framework and a reachable MCP or JSON-RPC tool server. It observes the request as it is forwarded. A refusal is decided on the request path, so the call is not forwarded and the tool server has no partial action to roll back.

The supported protocol boundary

SmartVerify works with MCP and JSON-RPC calls that traverse the customer-controlled listener. The request remains a standard protocol message; this guide does not introduce a proprietary SDK or application API.

MCP tools/call request over JSON-RPC 2.0

{
  "jsonrpc": "2.0",
  "id": 42,
  "method": "tools/call",
  "params": {
    "name": "customer_lookup",
    "arguments": { "customer_id": "cust_123" }
  }
}

Records and refusal behavior

For an observed call, SmartVerify records the tool invoked, arguments given, and the call forwarded onward. When policy refuses the request, the listener returns an error in the JSON-RPC shape the agent framework already expects instead of forwarding the call.

Protocol shape of a refused call

{
  "jsonrpc": "2.0",
  "id": 42,
  "error": {
    "code": "<implementation-defined integer>",
    "message": "<policy refusal message>"
  }
}

The error code and message above are placeholders because they are deployment policy details, not a documented public SmartVerify API contract.

Current limitations

  • The tool server must be reachable through the customer network path. Vendor-hosted tool servers may leave no customer-side connection for the listener.
  • The listener records the call forwarded onward, not what the tool server returned.
  • Direct database or storage access that bypasses the tool server also bypasses this tool-call listener.
  • Tool-call evidence does not by itself prove the later database statement. That comparison requires a separate database execution record.

MCP and JSON-RPC Observe and Refuse are available now. Check the Platform coverage grid for the authoritative status.