Get Cloudflare Tool Usage
Immutable Catalog Entry
This descriptor comes from the active versioned Portal catalog.
- Contract tier:
agent_ready - Risk:
read - Catalog version:
2026.07.12.1 - Descriptor hash:
57588298d240272a7b87fc84c6d162a82b497c77c2315c6e131d29b3e5daa11f
Use this when an agent already has a Cloudflare native name, canonical name, or exact alias and needs its complete descriptor, setup, side effects, and next step. This resolves local catalog metadata only and performs no Cloudflare request.
Request Body
{
"jsonrpc": "2.0",
"id": "cloudflare-get-tool-usage-example",
"method": "tools/call",
"params": {
"name": "cloudflare.get_tool_usage",
"arguments": {
"tool_name": "tool_name_example"
}
}
}
Arguments Schema
{
"type": "object",
"required": [
"tool_name"
],
"properties": {
"tool_name": {
"type": "string",
"minLength": 1,
"description": "Cloudflare native tool name, cloudflare-prefixed canonical name, or exact compatibility alias to resolve."
}
},
"description": "Identity of the Cloudflare tool to explain.",
"additionalProperties": false
}
Output Schema
{
"type": "object",
"required": [
"tool_name",
"descriptor",
"use_when",
"side_effects",
"required_setup",
"follow_up"
],
"properties": {
"use_when": {
"type": "string",
"description": "When this tool is appropriate."
},
"follow_up": {
"type": "string",
"description": "Recommended next agent action."
},
"tool_name": {
"type": "string",
"description": "Resolved native tool name."
},
"descriptor": {
"type": "object",
"description": "Complete lossless ToolManifest descriptor.",
"additionalProperties": true
},
"side_effects": {
"type": "string",
"description": "State changes or external calls the tool may perform."
},
"required_setup": {
"type": "string",
"description": "Configuration required before execution."
}
},
"description": "Lossless Cloudflare tool reference and usage guidance.",
"additionalProperties": false
}
Code Examples
- cURL
- Node.js
- Python
curl -X POST 'https://portal.madpanda3d.com/api/mcp' \
-H 'Authorization: Bearer mad_live_***' \
-H 'Content-Type: application/json' \
-d '{
"jsonrpc": "2.0",
"id": "cloudflare-get-tool-usage-example",
"method": "tools/call",
"params": {
"name": "cloudflare.get_tool_usage",
"arguments": {
"tool_name": "tool_name_example"
}
}
}'
const response = await fetch('https://portal.madpanda3d.com/api/mcp', {
method: 'POST',
headers: {
Authorization: 'Bearer mad_live_***',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"jsonrpc": "2.0",
"id": "cloudflare-get-tool-usage-example",
"method": "tools/call",
"params": {
"name": "cloudflare.get_tool_usage",
"arguments": {
"tool_name": "tool_name_example"
}
}
}),
});
const data = await response.json();
console.log(data);
import requests
url = 'https://portal.madpanda3d.com/api/mcp'
headers = {
'Authorization': 'Bearer mad_live_***',
'Content-Type': 'application/json',
}
payload = {
"jsonrpc": "2.0",
"id": "cloudflare-get-tool-usage-example",
"method": "tools/call",
"params": {
"name": "cloudflare.get_tool_usage",
"arguments": {
"tool_name": "tool_name_example"
}
}
}
response = requests.post(url, headers=headers, json=payload, timeout=60)
print(response.json())
Example Responses
- 200 Success
- 502 Upstream Error
{
"ok": true,
"message": "Tool cloudflare.get_tool_usage executed successfully.",
"note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
}
{
"ok": false,
"classification": "upstream_http_error",
"message": "Upstream MCP returned a non-success status."
}