Skip to main content
Execute a specific tool with parameters and receive the result.

Request

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "my_plugin_greet",
    "arguments": {
      "name": "Alice"
    }
  }
}
FieldTypeRequiredDescription
namestringYesTool name from tools/list
argumentsobjectYesParameters matching inputSchema

Response

{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "Hello, Alice!"
      }
    ]
  }
}
FieldTypeDescription
contentarrayResult content (text, images, etc.)
content[].typestringContent type: “text”, “image”, “video”, etc.
content[].textstringText content

Examples

Simple Text Tool

curl -X POST https://mcp-{gateway-id}.noorle.com/ \
  -H "Authorization: Bearer eyJhbGc..." \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "my_plugin_add",
      "arguments": {"a": 5, "b": 3}
    }
  }'
Response:
{
  "result": {
    "content": [
      {
        "type": "text",
        "text": "8"
      }
    ]
  }
}

Complex Parameters

{
  "method": "tools/call",
  "params": {
    "name": "my_plugin_search",
    "arguments": {
      "query": "python programming",
      "limit": 10,
      "filters": {
        "language": "en",
        "date_from": "2024-01-01"
      }
    }
  }
}

Errors

Tool Not Found

{
  "error": {
    "code": -32601,
    "message": "Tool not found: invalid_tool"
  }
}

Invalid Parameters

{
  "error": {
    "code": -32602,
    "message": "Invalid parameters",
    "data": {
      "expected": "name is required (string)",
      "actual": "name is missing"
    }
  }
}

Tool Execution Error

{
  "error": {
    "code": -32603,
    "message": "Tool execution failed",
    "data": {
      "reason": "API rate limit exceeded"
    }
  }
}

Timeout

{
  "error": {
    "code": -32603,
    "message": "Tool execution timeout (30s)"
  }
}