Install Claude Code if needed
If the claude command already works, continue to step 2.
macOS, Linux, or WSL
curl -fsSL https://claude.ai/install.sh | bashWindows PowerShell
irm https://claude.ai/install.ps1 | iexCheck with claude --version.
Connect your AI coding assistant to SnowCoder so it can answer ServiceNow questions with release-aware guidance, work with your saved ServiceNow connections, and help you through SnowCoder's governed project workflow.
Once setup is complete, you can ask your assistant to use SnowCoder for tasks such as:
For a specific release, grounded in SnowCoder knowledge.
Bounded, read-only lookups against an instance you connected.
Status, readiness, and verification results, in conversation.
Requirements, build, and deployment, with approvals in the loop.
Claude Code or Codex.sk_live_.Add SnowCoder with one command using your API key.
Set up Claude CodeCLI, IDE extension, or desktop app. Same MCP configuration.
Set up CodexCursor, Continue, Vertex AI, ChatGPT Desktop, Grok, a server, or CI. Connect the same endpoint the same way.
Supported clientsTechnical detailsIf the claude command already works, continue to step 2.
macOS, Linux, or WSL
curl -fsSL https://claude.ai/install.sh | bashWindows PowerShell
irm https://claude.ai/install.ps1 | iexCheck with claude --version.
Exit any running Claude Code session. Replace YOUR_SNOWCODER_API_KEY with the key you copied, then run:
claude mcp add --scope user --transport http \
--header "Authorization: Bearer YOUR_SNOWCODER_API_KEY" \
snowcoder https://yeti-api.snowcoder.ai/mcpThe user scope makes SnowCoder available in all your projects without adding the key to a project repository.
claude mcp listYou should see a server named snowcoder with a connected status.
Start Claude Code, enter /mcp, select snowcoder, and confirm it shows as connected with SnowCoder tools available. There is no browser Authenticate or Allow step: the API key in the authorization header authenticates the connection.
Use SnowCoder to explain the best practices for creating a Business Rule in the ServiceNow Australia release.Naming SnowCoder explicitly is useful for this first test. You should see Claude Code call a tool from the snowcoder server, then return a ServiceNow-specific answer grounded in the requested release.
/mcp shows SnowCoder connected, Claude Code shows a SnowCoder tool call while answering, and the answer is grounded in the requested ServiceNow release rather than a generic reply.The Codex CLI, IDE, and desktop experiences share the same MCP configuration. Codex reads the SnowCoder key from an environment variable, so most setup issues are a missing variable in the environment that launched Codex.
If the codex command already works, continue to step 2. Otherwise follow the current Codex setup documentation, then check with codex --version.
macOS, Linux, or WSL
export SNOWCODER_API_KEY='sk_live_...'Windows PowerShell
$env:SNOWCODER_API_KEY='sk_live_...'This sets the key for the current terminal session. Codex must be started from an environment where SNOWCODER_API_KEY is available. For a persistent install, store the key through your organisation's approved secret or environment-management process.
codex mcp add snowcoder \
--url https://yeti-api.snowcoder.ai/mcp \
--bearer-token-env-var SNOWCODER_API_KEYThen check with codex mcp list. You should see snowcoder enabled with SNOWCODER_API_KEY as its Bearer-token environment variable.
Some release research and bounded live queries take longer than Codex's default MCP tool timeout. Open ~/.codex/config.toml (on Windows, %USERPROFILE%\\.codex\\config.toml), find the existing SnowCoder section, and make it look like this:
[mcp_servers.snowcoder]
url = "https://yeti-api.snowcoder.ai/mcp"
bearer_token_env_var = "SNOWCODER_API_KEY"
tool_timeout_sec = 300
required = trueDo not add a second [mcp_servers.snowcoder] section; update the existing one. tool_timeout_sec = 300 allows up to five minutes for a call, and required = true makes Codex report a connection failure at startup instead of quietly continuing without SnowCoder. Restart Codex after saving, then ask your first question with the same prompt shown for Claude Code above.
/mcp shows it active, and a SnowCoder tool call appears before a release-grounded answer.Start prompts with Use SnowCoder while you are learning the integration. It makes the intended tool path clear.
ServiceNow guidance
Use SnowCoder to explain when I should use a before, after, async, or display Business Rule in the ServiceNow Australia release.
Live, read-only instance query
Use SnowCoder to list the five newest priority 1 incidents from my demo6 connection, including number, state, assignment group, and opened time.
Projects and builds
Use SnowCoder to show my active projects and tell me the next required action for each one.
Project status
Use SnowCoder to check the readiness and latest build status for project <project ID>.
SnowCoder may ask for a project, target instance, approval, or exact instance address when those details are required. That is part of its safety model.
Remove the old entry, then add it again. Claude Code: claude mcp remove snowcoder --scope user, then re-run step 2. Codex: codex mcp remove snowcoder, set SNOWCODER_API_KEY again, then re-add.
Confirm the key is complete, active, and begins with sk_live_. In Claude Code, remove and re-add with the Authorization: Bearer ... header. In Codex, set SNOWCODER_API_KEY in the launching environment, then restart Codex.
Codex did not receive the variable named by its config. Set it before starting Codex from the same session (export SNOWCODER_API_KEY='sk_live_...' then codex). The configuration is fine; only the variable was missing.
Check claude mcp list or codex mcp list, confirm the key is active, restart the client after any config change, and test with a prompt beginning Use SnowCoder to. For Codex, keep required = true so a missing connection is visible.
In Codex, confirm tool_timeout_sec = 300 is present. Retry once. If it repeatedly stops, record the prompt, time, client, and any conversation or project ID for support.
MCP being connected does not grant instance access. In SnowCoder, open ServiceNow, confirm the connection is active and its test succeeds, then name it in your prompt. SnowCoder only uses connections owned by or shared with your account.
This page (https://snowcoder.ai/mcp/api) and the MCP server (https://yeti-api.snowcoder.ai/mcp) are different addresses. Point your client at the server URL.
Wait for the retry period shown in the error. Rapid reconnecting or polling can extend the disruption. Never include a ServiceNow password, token, or full API key in a support message.
Reference
Reference material for servers, CI jobs, and custom MCP clients. Most people do not need it to complete the quickstart above. MCP uses JSON-RPC tool discovery and invocation; it is not an OpenAI-compatible /chat/completions endpoint, and there is no local stdio server to install.
| Server name | snowcoder |
| MCP endpoint | https://yeti-api.snowcoder.ai/mcp |
| Transport | Streamable HTTP |
| Authentication | SnowCoder API key sent as a Bearer token |
| Recommended tool timeout | 300 seconds |
| Maximum request body | 10 MB |
| General rate limit | 200 requests per minute per authenticated principal |
Create a key under API Keys in SnowCoder and send it in the HTTP Authorization header as a Bearer token. Claude Code saves that header in its personal, user-scoped configuration. Codex reads the token from the environment variable named by bearer_token_env_var. The API key authenticates the user but never bypasses project approvals or deployment target confirmation. OAuth 2.1 with PKCE is also available for shipped integrations that need scope-limited tokens.
Codex (~/.codex/config.toml)
The launching environment must provide SNOWCODER_API_KEY. Never put the plaintext key in config.toml or a repository.
[mcp_servers.snowcoder]
url = "https://yeti-api.snowcoder.ai/mcp"
bearer_token_env_var = "SNOWCODER_API_KEY"
tool_timeout_sec = 300
required = trueClaude Code (server definition)
The CLI command in the quickstart is preferred; it creates the correct user-scoped entry. The equivalent definition is below. Never check credentials or Bearer headers into source control.
{
"mcpServers": {
"snowcoder": {
"type": "http",
"url": "https://yeti-api.snowcoder.ai/mcp",
"headers": {
"Authorization": "Bearer sk_live_..."
}
}
}
}Clients discover the currently available tool list from the server. The categories include:
The server evolves, so this page does not promise a fixed tool count. Use your client's MCP tools view, or call tools/list, to inspect the current list and each tool's input schema.
The MCP path is non-streaming: each call returns one complete payload. Builds and deployments may continue after the initial tool response. Poll status no more often than every 5 to 15 seconds, use the returned job or project identifiers, and stop polling after a terminal state. Avoid repeatedly submitting the same start action while an existing job is active.
The full key is displayed once. Store it in a managed secret store where possible, and rotate or revoke it when access changes. Send it as Authorization: Bearer sk_live_.... Do not place keys in screenshots, prompts, logs, support tickets, source code, shell history, or committed environment files.
Need a hand with your first call?
Contact SnowCoder support and we'll help you get connected, including a short screen-share if useful. Never include a ServiceNow password, token, or full API key in a support message.