Supports environment variable configuration through .env files for storing ServiceNow credentials and server settings.
Integrates with GitHub CI/CD workflows for continuous integration as shown by the CI status badge.
Planned distribution through PyPI package repository for easy installation (noted as 'coming soon').
Uses pytest for running tests and test coverage in the development environment.
Built on Python 3.9+ as the implementation language for the ServiceNow MCP server.
Employs Ruff for code linting in the development process.
Uses Shields.io for status badges in the README to display information about Python version, license, and CI status.
ServiceNow MCP Server
A highly customizable Model Context Protocol (MCP) server for ServiceNow API integration. This server enables AI assistants and development tools to interact with ServiceNow instances through a standardized interface.
Enterprise-grade ServiceNow integration - Connect ServiceNow with modern development tools and automation frameworks through the Model Context Protocol.
Features
Comprehensive ServiceNow API Coverage
Incident Management
Change Management
Problem Management
Configuration Management Database (CMDB)
Service Catalog
Knowledge Base
User Management
Custom Table Operations
Highly Customizable
Feature flags to enable/disable modules
Environment-based configuration
JSON configuration files with override support
Flexible authentication options
Production Ready
Async/await support for high performance
Retry logic with exponential backoff
Comprehensive error handling
Structured JSON logging
Rate limit handling
Easy Integration
Compatible with Claude Desktop, VS Code, Cursor, and other MCP clients
Standard MCP protocol implementation
Simple CLI interface
Installation
Prerequisites
Python 3.9 or higher
ServiceNow instance with API access
ServiceNow user credentials with appropriate permissions
Install from Source
Install from PyPI (coming soon)
Configuration
Quick Start with Environment Variables
Copy the example environment file:
cp .env.example .envEdit
.env
with your ServiceNow credentials:SERVICENOW_INSTANCE=your-instance.service-now.com SERVICENOW_USERNAME=your-username SERVICENOW_PASSWORD=your-passwordRun the server:
servicenow-mcp
Advanced Configuration
The server supports multiple configuration methods with the following precedence:
Environment variables (highest priority)
config/local.json
(local overrides)config/default.json
(base configuration)
Configuration Options
Integration with MCP Clients
Desktop Configuration
Add to your MCP client configuration:
VS Code / Cursor
Add to your workspace settings:
Available Tools
Table Operations
query_table - Query any ServiceNow table with filters
get_record - Retrieve a single record by sys_id
create_record - Create new records
update_record - Update existing records
delete_record - Delete records
Incident Management
incident_create - Create new incidents
incident_update - Update incidents (state, notes, resolution)
incident_search - Search incidents with multiple filters
Change Management
change_create - Create change requests
change_search - Search change requests
CMDB Operations
ci_search - Search configuration items
ci_relationships - Get CI relationships
User Management
user_search - Search users by various criteria
Knowledge Base
kb_search - Search knowledge articles
Service Catalog
catalog_items - List catalog items
Analytics
get_stats - Get aggregate statistics from any table
Usage Examples
Creating an Incident
Searching for Configuration Items
Custom Table Query
Security Considerations
Never commit credentials to version control
Use environment variables or secure secret management
Implement least-privilege access for ServiceNow users
Enable audit logging in production environments
Consider using OAuth instead of basic auth for production
Development
Setting Up Development Environment
Running Tests
Troubleshooting
Common Issues
Authentication Failed
Verify credentials are correct
Check if user has API access permissions
Ensure instance URL is correct (with or without https://)
Connection Timeout
Increase timeout in configuration
Check network connectivity
Verify ServiceNow instance is accessible
Rate Limiting
Server automatically handles rate limits with retry
Consider reducing request frequency
Check ServiceNow rate limit settings
Debug Mode
Enable debug logging:
Or set in environment:
Contributing
Contributions are welcome! Please:
Fork the repository
Create a feature branch
Add tests for new functionality
Ensure all tests pass
Submit a pull request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
GitHub Issues: https://github.com/asklokesh/servicenow-mcp-server/issues
Documentation: https://github.com/asklokesh/servicenow-mcp-server/wiki
Acknowledgments
Built on the Model Context Protocol standard
ServiceNow is a registered trademark of ServiceNow, Inc.
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
A Model Context Protocol server that enables AI assistants and development tools to interact with ServiceNow instances, providing comprehensive API coverage for incident management, change management, CMDB, and other ServiceNow modules.
Related MCP Servers
- -securityAlicense-qualityA Model Context Protocol server enabling AI agents to access and manipulate ServiceNow data through natural language interactions, allowing users to search for records, update them, and manage scripts.Last updated -24MIT License
- -securityFlicense-qualityA comprehensive Model Context Protocol server implementation that enables AI assistants to interact with file systems, databases, GitHub repositories, web resources, and system tools while maintaining security and control.Last updated -331
- -securityFlicense-qualityA production-ready Model Context Protocol server that integrates with ServiceNow for enterprise workflows and provides comprehensive health monitoring capabilities.Last updated -2