Bolt corrupts MCP tool calls
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"
]
}
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"