Skip to main content
Glama

ServiceNow MCP Server

Python Version License: MIT MCP Version CI Status Code style: black

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

# Clone the repository git clone https://github.com/asklokesh/servicenow-mcp-server.git cd servicenow-mcp-server # Create a virtual environment python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate # Install the package pip install -e .

Install from PyPI (coming soon)

pip install servicenow-mcp-server

Configuration

Quick Start with Environment Variables

  1. Copy the example environment file:

    cp .env.example .env
  2. Edit .env with your ServiceNow credentials:

    SERVICENOW_INSTANCE=your-instance.service-now.com SERVICENOW_USERNAME=your-username SERVICENOW_PASSWORD=your-password
  3. Run the server:

    servicenow-mcp

Advanced Configuration

The server supports multiple configuration methods with the following precedence:

  1. Environment variables (highest priority)

  2. config/local.json (local overrides)

  3. config/default.json (base configuration)

Configuration Options

{ "servicenow": { "instance": "your-instance.service-now.com", "username": "your-username", "password": "your-password", "api_version": "v2", "timeout": 30, "max_retries": 3 }, "features": { "incident_management": true, "change_management": true, "problem_management": true, "service_catalog": true, "knowledge_base": true, "user_management": true, "cmdb": true, "custom_tables": true }, "logging": { "level": "INFO", "format": "json", "file": "logs/servicenow-mcp.log" } }

Integration with MCP Clients

Desktop Configuration

Add to your MCP client configuration:

{ "mcpServers": { "servicenow": { "command": "servicenow-mcp", "env": { "SERVICENOW_INSTANCE": "your-instance.service-now.com", "SERVICENOW_USERNAME": "your-username", "SERVICENOW_PASSWORD": "your-password" } } } }

VS Code / Cursor

Add to your workspace settings:

{ "mcp.servers": { "servicenow": { "command": "servicenow-mcp", "args": ["--config-dir", "./config"], "env": { "SERVICENOW_INSTANCE": "your-instance.service-now.com", "SERVICENOW_USERNAME": "your-username", "SERVICENOW_PASSWORD": "your-password" } } } }

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

{ "tool": "incident_create", "arguments": { "short_description": "Email server down", "description": "Production email server is not responding", "urgency": 1, "impact": 1, "assignment_group": "Email Support" } }

Searching for Configuration Items

{ "tool": "ci_search", "arguments": { "name": "*prod*", "class": "cmdb_ci_server", "operational_status": 1, "limit": 50 } }

Custom Table Query

{ "tool": "query_table", "arguments": { "table": "u_custom_application", "query": "active=true^u_environment=production", "fields": ["name", "u_version", "u_owner"], "order_by": "-sys_updated_on" } }

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

# Install development dependencies pip install -e ".[dev]" # Run tests pytest # Run linting ruff check src/ black src/ --check # Type checking mypy src/

Running Tests

# Run all tests pytest # Run with coverage pytest --cov=servicenow_mcp --cov-report=html # Run specific test file pytest tests/test_client.py

Troubleshooting

Common Issues

  1. Authentication Failed

    • Verify credentials are correct

    • Check if user has API access permissions

    • Ensure instance URL is correct (with or without https://)

  2. Connection Timeout

    • Increase timeout in configuration

    • Check network connectivity

    • Verify ServiceNow instance is accessible

  3. Rate Limiting

    • Server automatically handles rate limits with retry

    • Consider reducing request frequency

    • Check ServiceNow rate limit settings

Debug Mode

Enable debug logging:

servicenow-mcp --log-level DEBUG

Or set in environment:

export MCP_LOG_LEVEL=DEBUG

Contributing

Contributions are welcome! Please:

  1. Fork the repository

  2. Create a feature branch

  3. Add tests for new functionality

  4. Ensure all tests pass

  5. Submit a pull request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

Acknowledgments

-
security - not tested
A
license - permissive license
-
quality - not tested

Related MCP Servers

  • -
    security
    A
    license
    -
    quality
    A 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 -
    30
    MIT License
  • -
    security
    F
    license
    -
    quality
    A 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 -
    6
    2
  • -
    security
    F
    license
    -
    quality
    A Model Context Protocol server that provides AI models with structured access to external data and services, acting as a bridge between AI assistants and applications, databases, and APIs in a standardized, secure way.
    Last updated -
    2
  • -
    security
    F
    license
    -
    quality
    A production-ready Model Context Protocol server that integrates with ServiceNow for enterprise workflows and provides comprehensive health monitoring capabilities.
    Last updated -
    3

View all related MCP servers

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/LokiMCPUniverse/servicenow-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server