Get started
MCP server
Build, test, publish and call Scalaix endpoints from Claude Code, Codex, Cursor, VS Code and other MCP clients.
Scalaix runs a remote Model Context Protocol server at:
https://www.scalaix.com/mcpConnect your coding assistant to it and the assistant can work in your Scalaix account: list your projects, draft an endpoint from a plain-language description, run test calls, publish a version, create an API key and write the code that calls the endpoint, in your repository's language. You sign in with your Scalaix account in the browser (OAuth); there's no key to paste.
What it can do
| Tool | What it does | Scope |
|---|---|---|
whoami | The account, team, projects and scopes of this connection | |
list_models | Models and prices | projects:read |
list_projects, create_project | Projects of the team | projects:read, projects:write |
list_collections, create_collection | Collections of a project | projects:read, projects:write |
list_endpoints, get_endpoint | Endpoints and their full definitions | projects:read |
draft_endpoint | Drafts inputs, output schema and prompts from a description (not saved) | projects:write |
create_endpoint, update_endpoint | Saves an endpoint in the collection's draft | projects:write |
test_endpoint | Runs a saved endpoint or an unsaved definition once, like the console's Test panel | projects:write |
publish_collection, list_versions | Publishes the draft as the next version | publish, projects:read |
get_integration_code | Runnable code for an endpoint or the gateway, with typed request and response models for TypeScript, Python, Go, Java and C# | projects:read |
get_docs | A collection's API docs as Markdown | projects:read |
create_key, list_keys | API keys (a new key is shown once) | keys |
get_usage, get_logs | Usage and the request log | usage:read |
Project, collection and endpoint arguments take slugs (acme, support, classify-ticket). Tools that write are marked as such for your client, so it can ask before running them. Drafting and test runs call a model and use your team's credits, like they do in the console.
There's also a prompt, add_scalaix_endpoint, that walks the assistant through adding an AI endpoint to the code you have open: see the guide Add an AI API to your app from your editor.
Connect
The first time a client connects, it opens Scalaix in your browser. Sign in, pick the team it may work in, all projects or only some, and what it may do. Then choose Allow access. See OAuth and connected apps for what each permission means.
Claude Code
claude mcp add --transport http scalaix https://www.scalaix.com/mcpThen run /mcp in Claude Code, choose scalaix and Authenticate. Add --scope project to share the server with your team through .mcp.json (each person still signs in with their own account).
Claude Desktop and claude.ai
Open Settings → Connectors, choose Add custom connector, name it Scalaix and enter https://www.scalaix.com/mcp. Choose Connect and approve access in the window that opens. On Team and Enterprise plans an owner may need to add the connector for the organization first.
Codex
Add the server to ~/.codex/config.toml:
[mcp_servers.scalaix]
url = "https://www.scalaix.com/mcp"
tool_timeout_sec = 180 # drafting an endpoint can take a minute or twoor run codex mcp add scalaix --url https://www.scalaix.com/mcp, then sign in with codex mcp login scalaix. Option names change between Codex releases: see the Codex docs if this doesn't work.
Cursor
{
"mcpServers": {
"scalaix": { "url": "https://www.scalaix.com/mcp" }
}
}Cursor shows Needs login next to the server in Settings → MCP: choose it to sign in.
VS Code
{
"servers": {
"scalaix": { "type": "http", "url": "https://www.scalaix.com/mcp" }
}
}Start the server from the file (or MCP: List Servers) and allow the sign-in when VS Code asks.
Clients without remote MCP: the CLI
For clients that only run local (stdio) servers, the Scalaix CLI bridges to the remote server with the token it stored at sign-in:
npm install -g scalaix
scalaix login # or: scalaix login --device on a machine without a browser{
"mcpServers": {
"scalaix": { "command": "scalaix", "args": ["mcp"] }
}
}Good to know
- One team per connection. A connection works in the team you chose when you approved it. Connect again to use another team.
- Keys stay out of your code.
create_keyreturns a new key once. The assistant is told to put it inSCALAIX_API_KEYin a git-ignored.envor your secret manager; generated code always reads it from the environment. - Missing permission? A tool that needs a scope you didn't allow answers with which one is missing. Reconnect (in Claude Code:
/mcp→ scalaix → Re-authenticate) and leave it ticked. - Disconnect any client in the console: account menu → Connected apps.
For client developers
The server speaks MCP Streamable HTTP (protocol 2025-06-18, older 2025-03-26 clients work too), stateless with JSON responses: send JSON-RPC with POST; GET answers 405. Requests without a valid token get 401 with
WWW-Authenticate: Bearer resource_metadata="https://www.scalaix.com/.well-known/oauth-protected-resource". Discovery:
| URL | |
|---|---|
/.well-known/oauth-protected-resource (also …/mcp) | Protected resource metadata (RFC 9728) |
/.well-known/oauth-authorization-server | Authorization server metadata (RFC 8414) |
/api/oauth/register | Dynamic client registration (RFC 7591), public clients only |
/oauth/authorize | Authorization code with PKCE (S256) |
/api/oauth/token | Tokens; refresh tokens rotate on every use |
/api/oauth/device_authorization | Device flow (RFC 8628), approved at /device |
/api/oauth/revoke | Revocation (RFC 7009) |