tinyhumansai/openhuman · error

missing required `arguments` object

Error message

missing required `arguments` object

What it means

The mcp_call tool takes 'server', 'tool' and an 'arguments' object forwarded to the remote MCP tool. After server/tool pass required_string_arg, this fires when args has no 'arguments' key at all (a null value is also rejected by the clone) — an invocation-shape error, not an MCP transport failure.

Source

Thrown at src/openhuman/tools/impl/network/mcp.rs:262

    fn supports_markdown(&self) -> bool {
        true
    }

    async fn execute_with_options(
        &self,
        args: Value,
        options: ToolCallOptions,
    ) -> anyhow::Result<ToolResult> {
        self.security
            .enforce_tool_operation(ToolOperation::Act, self.name())
            .map_err(|err| anyhow::anyhow!(err))?;

        let server = required_string_arg(&args, "server")?;
        let tool = required_string_arg(&args, "tool")?;
        let arguments = args
            .get("arguments")
            .cloned()
            .ok_or_else(|| anyhow::anyhow!("missing required `arguments` object"))?;
        if !arguments.is_object() {
            return Ok(ToolResult::error("`arguments` must be an object"));
        }

        let mut result = match self.registry.call_tool(&server, &tool, arguments).await {
            Ok(result) => result.rendered,
            Err(err) => return Ok(ToolResult::error(format!("mcp_call_tool failed: {err}"))),
        };

        if options.prefer_markdown && result.markdown_formatted.is_none() {
            result.markdown_formatted = Some(result.output());
        }
        Ok(result)
    }

    async fn execute(&self, args: Value) -> anyhow::Result<ToolResult> {
        self.execute_with_options(args, ToolCallOptions::default())
            .await

View on GitHub (pinned to 7491200858)

Solutions

  1. Include an "arguments" object in the mcp_call payload, using {} when the target tool takes no parameters
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at src/openhuman/tools/impl/network/mcp.rs:262 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of tinyhumansai/openhuman@7491200858 (2026-08-17). Data as JSON: /api/errors/d25d3993cbc9a6a2. Report an issue: GitHub.