Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

kimi-cu MCP tool "js_reset" ships inputSchema without "properties", LM Studio rejects every request with 400 invalid_type

Open Beginner friendly
#4,177 0 comments 0 reactions 0 assignees View on GitHub

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 id ai.kimi.cu)
  • macOS, provider type openai, base_url http://127.0.0.1:1234/v1 (LM Studio), model qwen/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:

  1. Fix the schema in the KimiCU MCP server (the tool definition lives in the compiled /Applications/KimiCU.app binary, so users cannot patch it themselves).
  2. 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

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from MoonshotAI/kimi-code

All issues in MoonshotAI/kimi-code

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.