MCP server: get_pql_reference is uncallable — schema omits `action` but the dispatcher requires it
Summary
The get_pql_reference tool on the hosted MCP server (https://mcp.plane.so/http/mcp) cannot be called in any form. The published tool schema and the server-side dispatcher disagree about a required action parameter, so every call fails.
Reproduction
Three call forms, three failures:
| Call | Result |
|---|---|
get_pql_reference() (no arguments) |
Error: get_pql_reference requires an action. It takes: read. |
get_pql_reference(detail="brief") |
Same error, verbatim. |
get_pql_reference(detail="brief", action="read") |
1 validation error for call[get_pql_reference] / action / Unexpected keyword argument [type=unexpected_keyword_argument, input_value='read', input_type=str] |
Why there is no valid call
The published JSON schema declares exactly one property, detail (enum: brief, full), and no action. The tool's own description states:
Actions: read (no required params; optional detail) -- this tool has no action parameter.
The dispatcher demands the parameter the schema forbids, and the validator rejects it when supplied.
Every other tool on this server takes action as a required enum. The likely cause is a generic dispatcher that requires action on all tools, while the schema generator correctly omitted it for this one.
Expected
get_pql_reference returns the PQL syntax reference, honouring the optional detail parameter.
Impact
This is the documented entry point for PQL syntax. A caller who hits the contradictory error concludes PQL is unusable and falls back to paging every work item client-side. I did exactly that before finding the workaround below: a question that one PQL filter answers in a single call instead paged through 1,069 work items.
Workaround
The reference is reachable. Send a deliberately invalid PQL to any tool accepting a pql parameter, and the error payload carries the whole document:
workitem count project_id="<uuid>" pql='__nonexistent_field__ = "x"'
Returns {error, failed_pql, pql_reference, hint}, where pql_reference is the complete reference — fields, operators, date/user/cycle functions, predicate and relation functions, custom-property syntax, the 5-condition limit, and examples. It appears to be the same content the broken tool should serve, so this looks like a dispatcher/schema wiring problem rather than missing content.
Environment
- Hosted MCP server at
https://mcp.plane.so/http/mcp, transporthttp - Client: Claude Code
- Observed 2026-09-14
Source: makeplane/plane