API Capabilities
Supported
- OpenAI-compatible
POST /v1/chat/completions
- OpenAI-compatible
POST /v1/responses
- OpenAI-compatible
GET /v1/models
- Non-stream responses with:
- plain assistant text
- assistant
tool_calls
- Responses API outputs with:
output_text
function_call, apply_patch_call, shell_call, local_shell_call
- Stream responses with:
delta.content
delta.tool_calls
- Responses API stream events:
response.output_text.delta
response.function_call_arguments.delta
- Multi-turn context via the
messages array
- Tool request fields:
tools
tool_choice
- assistant history
tool_calls
- tool role history
tool_call_id
- Automatically derived
*-thinking public models, for example:
claude-sonnet-4.6
claude-sonnet-4.6-thinking
- Bearer token auth via
Authorization: Bearer <API_KEY>
Behavior Notes
- Tool support is implemented through an internal prompt-and-parser bridge, not Cursor-native tool calling.
- Base models keep the current model name and enable tool use.
*-thinking models map back to the same upstream base model, but also enable the internal thinking protocol.
- Thinking is an internal bridge capability only. The public OpenAI response does not expose a separate reasoning field.
previous_response_id is supported with in-memory state only; restart clears history. For stateless use, include prior output items in input.
Not Supported
- Anthropic
/v1/messages
- MCP orchestration
- Native upstream OpenAI tool execution
- Exposed reasoning/thinking response fields
- Local filesystem or OS command execution through the API
- Persisted Responses API storage or server-side conversations across restarts
Example: Non-Stream Tool Call
curl -X POST http://127.0.0.1:8002/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer 0000" \
-d '{
"model": "claude-sonnet-4.6",
"stream": false,
"messages": [
{"role": "user", "content": "帮我查询北京天气"}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get current weather",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string"}
},
"required": ["city"]
}
}
}
]
}'
Example: Thinking Model
curl -X POST http://127.0.0.1:8002/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer 0000" \
-d '{
"model": "claude-sonnet-4.6-thinking",
"stream": true,
"messages": [
{"role": "user", "content": "先思考,再决定是否需要工具"}
],
"tools": [
{
"type": "function",
"function": {
"name": "lookup",
"parameters": {
"type": "object",
"properties": {
"q": {"type": "string"}
},
"required": ["q"]
}
}
}
]
}'