Hi Retell team and community,
I’m getting a 400 error when calling PATCH /update-retell-llm/{llm_id}:
{
"status": "error",
"message": "MCP id cannot be empty or null"
}
Important: I see the same error when using the official documentation “Try it” flow for Update Retell LLM (not only from my app). That suggests it may be tied to how the request body is built or how the draft LLM is validated on the server, not only my integration.
What I understand from the docs and support chats:
-
The
mcps[]array defines MCP servers (name,url, optionalheaders, etc.). -
Tools with
type: "mcp"insidegeneral_toolsorstates[].toolsmust have a validmcp_idthat matches amcps[].name. -
If the stored draft still has bad MCP tool entries, validation can fail even when the
mcpsblock in the request looks correct.
What I’ve tried:
-
GET the LLM first, then PATCH with cleaned
general_tools/states(removing or fixing MCP tools with empty/invalidmcp_id). -
Sending real
mcpsentries (no placeholder"<string>"values). -
Clearing MCPs with
"mcps": []when appropriate.
Questions:
-
Can you confirm whether “MCP id cannot be empty or null” always refers to
mcp_idon MCP tools ingeneral_tools/states[].tools, and not to a missing field insidemcps[]itself? -
Is there an official minimal JSON example for PATCH that is guaranteed to pass for an LLM that currently has multi-state + MCP, so we can diff against failing payloads?
-
If “Try it” can return this 400 with the default/sample body, is that expected (e.g. sample LLM id / draft state), or should we report it as a docs/playground bug?
Environment: API key auth, updating an existing llm_id (not the agent id).
Thanks for any guidance — happy to share a redacted request body if useful.