Connect a client
Settings for adding the AINOX App MCP server to Claude Code, Cursor, VS Code, and Codex, or calling it over plain HTTP.
Every client needs the same two things: the endpoint and your API key in an Authorization header. The examples read the key from an AINOX_API_KEY environment variable so it stays out of files you might commit.
export AINOX_API_KEY="paste-your-key-here"
Add it for yourself, in every project:
claude mcp add --transport http --scope user ainox https://app-builder.poring.arkcube.com/api/mcp/code/mcp \
--header "Authorization: Bearer $AINOX_API_KEY"Or share it with a repository in .mcp.json. Claude Code expands ${AINOX_API_KEY} when it starts, so each teammate uses their own key:
{
"mcpServers": {
"ainox": {
"type": "http",
"url": "https://app-builder.poring.arkcube.com/api/mcp/code/mcp",
"headers": { "Authorization": "Bearer ${AINOX_API_KEY}" }
}
}
}Run /mcp inside Claude Code to check that ainox is connected.
Add the server to ~/.cursor/mcp.json for every project, or .cursor/mcp.json for one:
{
"mcpServers": {
"ainox": {
"url": "https://app-builder.poring.arkcube.com/api/mcp/code/mcp",
"headers": { "Authorization": "Bearer ${env:AINOX_API_KEY}" }
}
}
}Cursor reads the variable from the environment it was launched in, so start it from a shell where AINOX_API_KEY is set.
Add the server to .vscode/mcp.json. VS Code prompts for the key the first time and stores it securely:
{
"inputs": [
{
"type": "promptString",
"id": "ainox-api-key",
"description": "AINOX App API key",
"password": true
}
],
"servers": {
"ainox": {
"type": "http",
"url": "https://app-builder.poring.arkcube.com/api/mcp/code/mcp",
"headers": { "Authorization": "Bearer ${input:ainox-api-key}" }
}
}
}Add the server to ~/.codex/config.toml. Codex sends the variable’s value as the bearer token:
[mcp_servers.ainox]
url = "https://app-builder.poring.arkcube.com/api/mcp/code/mcp"
bearer_token_env_var = "AINOX_API_KEY"Each request is a JSON-RPC message posted to the endpoint. The Accept header must list both JSON and event streams:
curl -s https://app-builder.poring.arkcube.com/api/mcp/code/mcp \
-H "Authorization: Bearer $AINOX_API_KEY" \
-H "Accept: application/json, text/event-stream" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_threads","arguments":{}}}'The transport is stateless, so you can call tools/list or tools/call directly without an initialize handshake. A tool’s result is in result.structuredContent. When result.isError is true, result.content[0].text is a JSON string whose message field holds the error.
Check the connection
Ask your agent to “list my ainox threads”. It should call list_threads and show your most recent chats. If it reports Missing or invalid API key, see Troubleshooting.