Skip to main content
Glama
prateek9920

ServiceNow MCP Server

by prateek9920

ServiceNow MCP Server on Azure Container Apps

This project hosts a Model Context Protocol (MCP) server that exposes ServiceNow ticket, knowledge base, and service catalog data over Streamable HTTP.

Tools exposed

MCP tool

Purpose

servicenow_search_tickets

Search incident, problem, change_request, sc_request, or sc_task records.

servicenow_get_ticket

Read one ticket by sys_id.

servicenow_search_knowledge

Search published kb_knowledge articles.

servicenow_list_catalog_items

Search active sc_cat_item catalog items.

servicenow_get_catalog_item

Read one catalog item by sys_id.

Related MCP server: ServiceNow MCP Server

Local setup

  1. Install dependencies:

    npm install
  2. Copy .env.example to .env and set your ServiceNow instance and credentials:

    Copy-Item .env.example .env
  3. Start the server:

    npm run dev
  4. The MCP endpoint is:

    http://localhost:3000/mcp

ServiceNow permissions

Use a dedicated ServiceNow integration account or OAuth app with least-privilege read access to:

  • incident

  • problem

  • change_request

  • sc_request

  • sc_task

  • kb_knowledge

  • sc_cat_item

For production, prefer OAuth bearer tokens or a ServiceNow OAuth client flow over basic auth.

Deploy to Azure Container Apps

Set these variables first:

$RESOURCE_GROUP = "rg-servicenow-mcp"
$LOCATION = "centralindia"
$ACR_NAME = "acrsnowmcp$((Get-Random -Maximum 99999))"
$ENV_NAME = "cae-servicenow-mcp"
$APP_NAME = "servicenow-mcp"
$IMAGE_NAME = "servicenow-mcp-server:0.1.0"
$SERVICENOW_URL = "https://your-instance.service-now.com"
$SERVICENOW_USERNAME = "your-integration-user"
$SERVICENOW_PASSWORD = "your-password"

Create Azure resources and build the image:

az group create --name $RESOURCE_GROUP --location $LOCATION
az acr create --resource-group $RESOURCE_GROUP --name $ACR_NAME --sku Basic --admin-enabled true
az acr build --registry $ACR_NAME --image $IMAGE_NAME .
az containerapp env create --name $ENV_NAME --resource-group $RESOURCE_GROUP --location $LOCATION

Deploy the container app:

$ACR_LOGIN_SERVER = az acr show --name $ACR_NAME --query loginServer -o tsv
$ACR_USERNAME = az acr credential show --name $ACR_NAME --query username -o tsv
$ACR_PASSWORD = az acr credential show --name $ACR_NAME --query "passwords[0].value" -o tsv

az containerapp create `
  --name $APP_NAME `
  --resource-group $RESOURCE_GROUP `
  --environment $ENV_NAME `
  --image "$ACR_LOGIN_SERVER/$IMAGE_NAME" `
  --target-port 3000 `
  --ingress external `
  --registry-server $ACR_LOGIN_SERVER `
  --registry-username $ACR_USERNAME `
  --registry-password $ACR_PASSWORD `
  --secrets `
    servicenow-url=$SERVICENOW_URL `
    servicenow-username=$SERVICENOW_USERNAME `
    servicenow-password=$SERVICENOW_PASSWORD `
  --env-vars `
    SERVICENOW_INSTANCE_URL=secretref:servicenow-url `
    SERVICENOW_USERNAME=secretref:servicenow-username `
    SERVICENOW_PASSWORD=secretref:servicenow-password

Get the public MCP URL:

$FQDN = az containerapp show --name $APP_NAME --resource-group $RESOURCE_GROUP --query properties.configuration.ingress.fqdn -o tsv
"https://$FQDN/mcp"

Health check:

curl.exe "https://$FQDN/healthz"

Use OAuth token instead of basic auth

Replace the username/password secret and environment variable lines with:

--secrets servicenow-url=$SERVICENOW_URL servicenow-oauth-token=$SERVICENOW_OAUTH_TOKEN `
--env-vars SERVICENOW_INSTANCE_URL=secretref:servicenow-url SERVICENOW_OAUTH_TOKEN=secretref:servicenow-oauth-token

Production hardening

  • Put Azure API Management or an authenticated ingress in front of the MCP endpoint.

  • Restrict Container Apps ingress to your corporate network where possible.

  • Use Azure Key Vault secret references for ServiceNow credentials.

  • Create a dedicated ServiceNow integration user with read-only ACLs.

  • Add log analytics alerts for repeated ServiceNow API failures.

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Connect to Atlassian Jira, Confluence, and Compass to search, create, and manage your work.

  • Search your knowledge bases from any AI assistant using hybrid RAG.

  • Search your Obsidian vault to quickly find notes by title or keyword, summarize related content, a…

View all MCP Connectors

Latest Blog Posts

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/prateek9920/servicenow-mcp-server'

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