NO BUG: Mcp-adapter-execute-ability strips parameters due to incomplete JSON schema (missing additionalProperties: true)

Bug: mcp-adapter-execute-ability strips parameters due to incomplete JSON schema (missing additionalProperties: true)

Environment:

  • LocalWP

  • Client: Cline (using Claude API via VS Code)

  • Server: @automattic/mcp-wordpress-remote@latest

  • Plugin: Bricks Builder MCP Integration

The Issue: When trying to create a post using the mcp-adapter-execute-ability tool (e.g., ability_name: "bricks/create-post"), the tool call fails with the following WordPress error: Error: title is a required property for input.

Steps to Reproduce:

  1. Ask the LLM to use mcp-adapter-execute-ability to create a post, providing a title and status in the parameters object.

  2. The strict tool calling API (e.g., Anthropic/Claude) validates the payload against the provided MCP inputSchema.

  3. Because the parameters schema only defines "type": "object" without explicitly allowing extra properties, the LLM silently strips all provided key-value pairs (like title and status).

  4. The server receives { "ability_name": "bricks/create-post", "parameters": {} } and throws the validation error.

Root Cause & Proposed Fix: The issue lies within the JSON Schema definition for the mcp-adapter-execute-ability tool. The strict LLM validation requires explicit permission to pass arbitrary data into an object.

Please update the schema definition for the parameters field to include "additionalProperties": true (or a similar fallback depending on your schema generator):

JSON

"parameters": {
  "type": "object",
  "description": "Parameters to pass to the ability",
  "additionalProperties": true 
}

This minor addition will prevent strict LLMs from stripping the payload and allow abilities like create-post to finally receive their required arguments.

Hi @Jonas_Ullrich,

Welcome to the forum :slight_smile:

I’ve marked this as “No bug” because the reported behavior is not caused by Bricks. Bricks receives an empty parameters object and correctly returns the validation error because the required title value is missing.

The mcp-adapter-execute-ability dispatcher and its schema are provided by the WordPress MCP Adapter, not Bricks. However, we also couldn’t confirm that the Adapter itself is stripping the parameters. In standard JSON Schema, additional object properties are allowed by default, so the missing additionalProperties: true does not necessarily explain the behavior.

To help locate where the parameters are being lost, you could ask your Cline agent something like the following:

Please investigate why mcp-adapter-execute-ability sends an empty parameters object when calling bricks/create-post.
The intended parameters include title and status, but Bricks receives {} and returns “title is a required property.”
Reproduce the call and compare the schema received from tools/list, Claude’s generated arguments, and the final MCP request. Identify where the parameters first disappear and which component is responsible.

This should help determine whether the parameters are lost during Claude’s tool generation, within Cline or the remote bridge, or after reaching the MCP Adapter.

Hi there,

Thank you for the detailed clarification and for pointing me in the right direction! Marking this as “No bug” makes complete sense now.

Following your diagnostic suggestion to investigate the tool generation layer, i found the exact culprit: it was indeed an issue on the AI model side. I noticed that using a lighter, faster model (like Flash) caused it to drop required parameters and send an empty {} object during tool generation under complex workflows. Switching to a Pro-level model resolved the issue completely, as it correctly preserved and passed the required payload (title, status) to bricks/create-post without losing them.

Thanks again for your time and for the precise guidance!

Best regards, Jonas