kimi-cu MCP tool "js_reset" ships inputSchema without "properties", LM Studio rejects every request with 400 invalid_type
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 76/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- json, typescript
- Domain
- tooling
Research direction
Start by tracing how kimi-code gathers MCP tool definitions and builds the tools sent to OpenAI-compatible providers; the report points to schema sanitization discussed in #792. Check the outgoing schema for object parameters without properties, then compare behavior with the supplied LM Studio reproduction. Done means the request succeeds with an empty properties object added.
Written by the indexing model from the issue text.
Description
Summary
The js_reset tool exposed by the kimi-cu MCP server (Kimi Computer Use plugin) has an inputSchema of:
{"type": "object", "additionalProperties": false}
It is missing the properties key. OpenAI's API tolerates this, but LM Studio's OpenAI-compatible server validates tools[] with zod and requires function.parameters.properties to be present, so every chat request fails with HTTP 400 before reaching the model.
Environment
- kimi-cu plugin: 0.6.3 (
~/.kimi-code/plugins/managed/kimi-cu/kimi.plugin.json) - KimiCU.app: 0.6.6 (
/Applications/KimiCU.app, bundle idai.kimi.cu) - macOS, provider type
openai, base_urlhttp://127.0.0.1:1234/v1(LM Studio), modelqwen/qwen3.5-9b
Error
400 "[
{
"code": "invalid_type",
"expected": "object",
"received": "undefined",
"path": [25, "function", "parameters", "properties"],
"message": "Required"
}
]"
Tool index 25 (0-based) in the request is exactly mcp__kimi-cu__js_reset. I extracted the 47-tool payload from the session wire log: it is the only tool whose parameters lacks properties.
Minimal reproduction (against LM Studio directly, no kimi-code involved)
# tools = [{"type": "function", "function": {"name": "js_reset",
# "description": "reset",
# "parameters": {"type": "object", "additionalProperties": False}}}]
# POST /v1/chat/completions -> 400 with the exact zod error above
# Same tool with "properties": {} added -> 200 OK
Expected behavior
js_reset's inputSchema should be:
{"type": "object", "properties": {}, "additionalProperties": false}
An object schema without properties is non-idiomatic JSON Schema and breaks strict validators. Two possible fixes:
- Fix the schema in the KimiCU MCP server (the tool definition lives in the compiled
/Applications/KimiCU.appbinary, so users cannot patch it themselves). - Defensively, kimi-code could normalize MCP tool schemas before sending them to OpenAI-compatible providers (fill missing
properties: {}for object schemas) — related to the schema-sanitization gap discussed in #792.
Workaround
Disable the kimi-cu plugin, or remove "js_reset" from enabledTools in kimi.plugin.json; requests to LM Studio then succeed.
- Dominant language
- TypeScript
- Stars
- 7.9k
- Forks
- 1.3k
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 98
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from MoonshotAI/kimi-code
-
[Bug] Cancelling retry backoff leaves a referenced timeout alive until the original delay expiresOpen
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
MoonshotAI/kimi-code#4334 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
MoonshotAI/kimi-code#4315 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 60/100
MoonshotAI/kimi-code#4225 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
MoonshotAI/kimi-code#4170 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
MoonshotAI/kimi-code#4147 · 1 comment ·
Maintainers usually reply within 1 day
All issues in MoonshotAI/kimi-code
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
cloudscape-design/components#5184 ·
Maintainers usually reply within 2 days
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
JarX-Concepts/react-native-platform-components#130 ·
Maintainers usually reply within 1 day
-
fix(api): optimize-for-web /preview outer catches miss asDecoderOutOfMemory on V8 OOM and SIGKILLOpenarea: backend bug priority: low
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
snapotter-hq/SnapOtter#3773 ·
Maintainers usually reply within 1 day
-
ai-driven-qa ux-audit
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
linagora/twake-contacts-frontend#386 ·
Maintainers usually reply within 1 day
-
git: README should state plainly that without --repository every reachable repository is in scopeOpendocumentation server-git v2
Difficulty 1/5 1-3 hours Newbie friendliness 84/100
modelcontextprotocol/servers#5225 ·
Maintainers usually reply within 1 day