MCP server for ServiceNow ITSM with browser-based SSO authentication
npm install servicenow-mcp




A comprehensive Model Context Protocol (MCP) server for ServiceNow ITSM with browser-based SSO authentication support.
> Perfect for enterprise environments - No API keys required. Works with Okta, Azure AD, and any SSO provider.
- Browser Authentication: Log in via your enterprise SSO (Okta, Azure AD, etc.) - no API keys needed
- 70+ Tools: Incidents, Changes, Problems, Catalog, CMDB, Knowledge Base, Users, Approvals, and more
- GraphQL & REST Support: Works with both ServiceNow APIs
- Session Management: Automatic cookie handling and refresh
``bash`
npm install servicenow-mcp
Or install globally:
`bash`
npm install -g servicenow-mcp
Linux/macOS:
`bash`
git clone https://github.com/schwarztim/servicenow-mcp.git
cd servicenow-mcp
npm install
npm run build
Windows:
`powershell`
git clone https://github.com/schwarztim/servicenow-mcp.git
cd servicenow-mcp
.\scripts\install.ps1
> 📝 Windows Users: See WINDOWS.md for detailed Windows installation guide, including path configuration, PowerShell setup, and troubleshooting.
Use the auth_browser tool from Claude:
`
> Use auth_browser to log into ServiceNow
A browser will open. Log in with your SSO credentials.
Cookies are automatically captured and saved.
`
Or from command line:
`bash`
npm run auth https://yourinstance.service-now.com
Set environment variables:
`bash`
export SERVICENOW_INSTANCE_URL="https://yourinstance.service-now.com"
export SERVICENOW_USERNAME="your-username"
export SERVICENOW_PASSWORD="your-password"
For GraphQL API access:
`bash`
export SERVICENOW_INSTANCE_URL="https://yourinstance.service-now.com"
export SERVICENOW_SESSION_TOKEN="your-session-cookie"
export SERVICENOW_USER_TOKEN="your-g_ck-token"
After browser authentication:
``
> List open P1 incidents
> Show me change CHG0012345
> Create an incident for "Email server down"
> Search CMDB for servers in the Atlanta datacenter
- incidents_list - List incidents with filteringincidents_get
- - Get incident detailsincidents_create
- - Create new incidentincidents_update
- - Update incidentincidents_resolve
- - Resolve incident
- changes_list - List change requestschanges_get
- - Get change detailschanges_create
- - Create change requestchanges_tasks
- - Get change tasks
- catalog_items - Browse catalog itemscatalog_item_get
- - Get item detailscatalog_order
- - Order catalog itemcatalog_requests
- - List requests
- cmdb_list - Query configuration itemscmdb_get
- - Get CI detailscmdb_relationships
- - View CI relationshipscmdb_create
- - Create CI
- kb_search - Search knowledge articleskb_article_get
- - Get article content
- users_search - Search usersuser_get
- - Get user detailsgroups_list
- - List groupsgroup_members
- - Get group members
- Approvals, SLAs, Workflows, Email, Events, Audit, Update Sets, Security ACLs, Discovery, etc.
Add to your Claude configuration file:
Linux/macOS: ~/.claude/user-mcps.json%USERPROFILE%\.claude\user-mcps.json
Windows:
`json`
{
"mcpServers": {
"servicenow": {
"command": "node",
"args": [
"/Users/yourname/Scripts/mcp-servers/servicenow-mcp/dist/index.js"
],
"env": {
"SERVICENOW_INSTANCE_URL": "https://yourinstance.service-now.com"
}
}
}
}
Windows users: Use double backslashes in paths:
`json`
"args": ["C:\\Users\\YourName\\servicenow-mcp\\dist\\index.js"]
Or use forward slashes (also works on Windows):
`json`
"args": ["C:/Users/YourName/servicenow-mcp/dist/index.js"]
Run auth_browser tool or set environment variables.
Browser cookies are valid for ~8 hours. Re-run auth_browser` to refresh.
Ensure your ServiceNow user has appropriate roles (itil, admin, etc.).
Contributions are welcome! Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Built with @modelcontextprotocol/sdk
- Browser automation powered by Playwright
MIT © Timothy Schwarz - see LICENSE for details