Whatever message this page gives is out now! Go check it out!

Remote Methods and Arguments

Last update:
May 18, 2026
Each tool is a remote callable method: the client sends a JSON payload with a tool name and arguments, and the MCP server executes the tool implementation and returns a structured result.

Overview

Each tool is a remote callable method: the client sends a JSON payload with a tool name and arguments, and the MCP server executes the tool implementation and returns a structured result.

Tool Call Structure

A typical tool call over MCP looks like:

{
  "jsonrpc": "2.0",
  "id": 42,
  "method": "tools/call",
  "params": {
    "name": "getWeather",
    "arguments": {
      "city": "London",
      "units": "metric"
    }
  }
}
      
The server responds with:

{
  "jsonrpc": "2.0",
  "id": 42,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "Current weather in London: 16°C, cloudy"
      }
    ],
    "isError": false
  }
}
      

Defining Arguments

Arguments are defined in the tool’s inputSchema. Users and agents rely on this schema to construct valid calls.
You can expect:
  • Required vs optional fields – The schema will specify which arguments are mandatory and which are optional.
  • Types – Strings, numbers, booleans, arrays, and objects are clearly declared.
  • Descriptions – Each argument should include a short, human-readable description.
Example input schema:

"inputSchema": {
  "type": "object",
  "properties": {
    "city": {
      "type": "string",
      "description": "City name or postal code"
    },
    "units": {
      "type": "string",
      "description": "Temperature units (metric or imperial)",
      "enum": ["metric", "imperial"]
    }
  },
  "required": ["city"]
}
      

What Happens with Invalid Arguments

If arguments do not match the schema:
  • The server will reject the call with a tool-level error, not a crash.
  • The response will indicate isError: true and include an explanation such as:
    • Missing required field
    • Invalid type
    • Unsupported enum value
Users should expect:
  • Clear error messages for incorrect inputs, not silent failures.
  • No partial side effects for rejected calls (inputs that fail validation should not update anything).

Share this page

Was this page helpful?
We're glad. Tell us how this page helped.
We're sorry. Can you tell us what didn't work for you?
Thank you for your feedback. Your response will help improve this page.

On this page