Bolt corrupts MCP tool calls
complete
J
John
I use the official GitHub MCP server (https://github.com/github/github-mcp-server). Surprisingly, Bolt converts the LLM tool call parameter (
page
) from a number (1
) to a boolean value (true
).LLM tool call:
{"page":1,"query":"[REMOVED]","perPage":10}
MCP request:
{"id":"9ED950C9-78F2-4FC4-92A6-CA8AA8E3B8F3","method":"tools\/call","params":{"name":"search_repositories","arguments":{"perPage":10,"query":"[REMOVED]","page":true}},"jsonrpc":"2.0"}
MCP response:
{"jsonrpc":"2.0","id":"9ED950C9-78F2-4FC4-92A6-CA8AA8E3B8F3","result":{"content":[{"type":"text","text":"parameter page is not of type float64, is bool"}],"isError":true}}
Tool schema:
{
"properties" : {
"page" : {
"minimum" : 1,
"description" : "Page number for pagination (min 1)",
"type" : "number"
},
"query" : {
"type" : "string",
"description" : "Search query"
},
"perPage" : {
"type" : "number",
"minimum" : 1,
"description" : "Results per page for pagination (min 1, max 100)",
"maximum" : 100
}
},
"type" : "object",
"required" : [
"query"
]
}
Daniel Nguyen
complete
I've fixed this in v1.36
Daniel Nguyen
in progress
Sorry for the issue. I'll fix it today.
Zack
I've been having the same issue with the sequentialthinking MCP where it expects numbers to be passed in and the numbers keep getting converted. Overall I really wish there were more "dev mode" features or a tab on the UI where I could transparently see all the inputs and outputs to the LLM/MCPs with JSON payloads as accordions. It's been a bit painful at times to determine the I/O being sent to published MCPs and see the results as unformatted json in "view results"
J
John
Zack I've created a feature request for MCP debugging: https://boltai.canny.io/feature-requests/p/mcp-server-debug-logging
Also you can wrap a MCP server via bash script and log stdio. Something like this:
tee -a /tmp/mcp_stdin | "$@" 2> >(tee -a /tmp/mcp_stderr >&2) | tee -a /tmp/mcp_stdout