MCP Client Configuration¶
Detailed setup for each MCP client. All clients use the same MCP server — only the config format differs.
Recommended first: run
servicenow-mcp setup <client> --instance-url ...or use the AI-guided flow inllm-setup.md. Use the config snippets below when you need to inspect, repair, or hand-manage an MCP config file.
Before You Start¶
Install uv first — it handles Python, packages, and execution in one tool. The MCP server runs through uvx, which requires uv.
macOS / Linux:
Windows:
Restart your terminal after installation. No Python install, pip, or venv needed.
Chromium for MFA/SSO browser login is installed automatically on first use. Windows users: see Windows Installation Guide for step-by-step details.
Quick Test¶
Verify the server starts before configuring your client:
uvx --with playwright --from mfa-servicenow-mcp servicenow-mcp \
--instance-url "https://your-instance.service-now.com" \
--auth-type "browser" \
--browser-headless "false"
If the server starts and a browser window opens for login, you're ready to configure your client below.
Configuration Guide¶
argsis for the package only — instance URL, auth, credentials all go inenv(orenvironment). This keeps args clean and makes it easy to swap instances per project.Project-local recommended: Use project-scoped config so each project can connect to a different ServiceNow instance.
Claude Desktop¶
| Scope | Path |
|---|---|
| Global | ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) |
| Global | %APPDATA%\Claude\claude_desktop_config.json (Windows) |
{
"mcpServers": {
"servicenow": {
"command": "uvx",
"args": ["--with", "playwright", "--from", "mfa-servicenow-mcp", "servicenow-mcp"],
"env": {
"SERVICENOW_INSTANCE_URL": "https://your-instance.service-now.com",
"SERVICENOW_AUTH_TYPE": "browser",
"SERVICENOW_BROWSER_HEADLESS": "false",
"SERVICENOW_USERNAME": "your.username",
"SERVICENOW_PASSWORD": "your-password",
"MCP_TOOL_PACKAGE": "standard"
}
}
}
}
Claude Desktop does not support project-local config. Use Claude Code for per-project setup.
Claude Code¶
| Scope | Path |
|---|---|
| Global | ~/.claude.json |
| Project | .mcp.json in project root |
{
"mcpServers": {
"servicenow": {
"command": "uvx",
"args": ["--with", "playwright", "--from", "mfa-servicenow-mcp", "servicenow-mcp"],
"env": {
"SERVICENOW_INSTANCE_URL": "https://your-instance.service-now.com",
"SERVICENOW_AUTH_TYPE": "browser",
"SERVICENOW_BROWSER_HEADLESS": "false",
"SERVICENOW_USERNAME": "your.username",
"SERVICENOW_PASSWORD": "your-password",
"MCP_TOOL_PACKAGE": "standard"
}
}
}
}
Zed¶
| Scope | Path |
|---|---|
| Global | ~/.config/zed/settings.json |
Add via Settings > MCP Servers in Zed:
{
"servicenow": {
"command": "uvx",
"args": ["--with", "playwright", "--from", "mfa-servicenow-mcp", "servicenow-mcp"],
"env": {
"SERVICENOW_INSTANCE_URL": "https://your-instance.service-now.com",
"SERVICENOW_AUTH_TYPE": "browser",
"SERVICENOW_BROWSER_HEADLESS": "false",
"SERVICENOW_USERNAME": "your-username",
"SERVICENOW_PASSWORD": "your-password",
"MCP_TOOL_PACKAGE": "standard"
}
}
}
OpenAI Codex (CLI & App)¶
Both Codex CLI (codex command) and Codex App (chatgpt.com/codex) read from the same config.toml.
| Scope | Path | Note |
|---|---|---|
| Global | ~/.codex/config.toml |
Shared across all projects |
| Project | .codex/config.toml |
Overrides global (trusted projects only) |
[mcp_servers.servicenow]
command = "uvx"
args = ["--with", "playwright", "--from", "mfa-servicenow-mcp", "servicenow-mcp"]
enabled = true
[mcp_servers.servicenow.env]
SERVICENOW_INSTANCE_URL = "https://your-instance.service-now.com"
SERVICENOW_AUTH_TYPE = "browser"
SERVICENOW_BROWSER_HEADLESS = "false"
SERVICENOW_USERNAME = "your-username"
SERVICENOW_PASSWORD = "your-password"
MCP_TOOL_PACKAGE = "full"
OpenCode¶
| Scope | Path |
|---|---|
| Project | opencode.json in project root |
OpenCode uses
environment(notenv).
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"servicenow": {
"type": "local",
"command": ["uvx", "--with", "playwright", "--from", "mfa-servicenow-mcp", "servicenow-mcp"],
"enabled": true,
"environment": {
"SERVICENOW_INSTANCE_URL": "https://your-instance.service-now.com",
"SERVICENOW_AUTH_TYPE": "browser",
"SERVICENOW_BROWSER_HEADLESS": "false",
"SERVICENOW_USERNAME": "your.username",
"SERVICENOW_PASSWORD": "your-password",
"MCP_TOOL_PACKAGE": "standard"
}
}
}
}
Gemini CLI¶
| Scope | Path |
|---|---|
| Global | ~/.gemini/settings.json |
| Project | .gemini/settings.json in project root |
{
"mcpServers": {
"servicenow": {
"command": "uvx",
"args": ["--with", "playwright", "--from", "mfa-servicenow-mcp", "servicenow-mcp"],
"env": {
"SERVICENOW_INSTANCE_URL": "https://your-instance.service-now.com",
"SERVICENOW_AUTH_TYPE": "browser",
"SERVICENOW_BROWSER_HEADLESS": "false",
"SERVICENOW_USERNAME": "your.username",
"SERVICENOW_PASSWORD": "your-password",
"MCP_TOOL_PACKAGE": "standard"
}
}
}
}
AntiGravity¶
| Scope | Path |
|---|---|
| Global | ~/.gemini/antigravity/mcp_config.json (macOS/Linux) |
| Global | %USERPROFILE%\.gemini\antigravity\mcp_config.json (Windows) |
Edit via agent panel: ... > Manage MCP Servers > View raw config. Click Refresh after saving.
{
"mcpServers": {
"servicenow": {
"command": "uvx",
"args": ["--with", "playwright", "--from", "mfa-servicenow-mcp", "servicenow-mcp"],
"env": {
"SERVICENOW_INSTANCE_URL": "https://your-instance.service-now.com",
"SERVICENOW_AUTH_TYPE": "browser",
"SERVICENOW_BROWSER_HEADLESS": "false",
"SERVICENOW_USERNAME": "your.username",
"SERVICENOW_PASSWORD": "your-password",
"MCP_TOOL_PACKAGE": "standard"
}
}
}
}
Docker (API Key only)¶
Browser auth (MFA/SSO) requires a GUI browser and does not work inside containers.