Cursor Agent sends Responses API format to /chat/completions endpoint

When testing with GPT 5.5 I am still having an issue it looks like Cursor is still calling Chat Completions endpoint while sending a Responses style custom tool.

With GPT 5.5 selected, Agent mode, and an OpenAI-compatible base URL, Cursor is still calling:

POST /chat/completions

The captured request is Chat Completions shaped at the top level:

top_level_keys: [‘messages’, ‘model’, ‘stream’, ‘stream_options’, ‘tools’, ‘user’]
has input: false
has messages: true

But one of the tools is still Responses-style:

tool[7]: {
“type”: “custom”,
“name”: “ApplyPatch”,
“format”: {
“type”: “grammar”,

}
}

When this is sent through to OpenAI, OpenAI rejects it with:

Missing required parameter: ‘tools[7].custom’

Expected behavior should be one of:

  1. If Cursor calls /v1/chat/completions, it should send Chat Completions-compatible custom tools, with the custom payload nested under tools[i].custom.

  2. If Cursor wants to send Responses-style custom tools like { "type": "custom", "name": ..., "format": ... }, it should call /v1/responses instead