Get a first look at what's coming. The Developer Passport Australia Release Preview kicks off March 12. Dive in! 

Vyoma
ServiceNow Employee

A practical guide for ServiceNow professionals who want to understand what MCP is, why it matters, and how to build with it today

By Vyoma Gajjar | Senior Principal AI Architect, CEG Autonomous Implementations CoE


Start here if you have no idea what MCP is

Imagine you need to use 20 different tools at work: ServiceNow for incidents, Microsoft Teams for chat, GitHub for code, SAP for ERP, Jira for project tracking. Each tool has its own login, its own API, its own way of talking to other systems.

 

Now imagine you hire an AI assistant. That assistant is brilliant at reasoning, but it cannot actually do anything. It cannot look up an incident. It cannot post in Teams. It cannot read your GitHub repo. Nobody built the connectors.

 

That is the problem MCP solves.

 

Model Context Protocol (MCP) is an open standard that gives AI models a universal way to connect to external tools and data.

Think of it like USB-C for AI. Before USB-C, every phone had a different charger. Before MCP, every AI model needed a different connector for every tool.


Why should a ServiceNow professional care?

 

Because ServiceNow is one of the enterprise systems that AI agents need to talk to most. And ServiceNow has already built native MCP support into the Zurich release.

Here is what changes:

BEFORE MCP: Every AI vendor needs its own custom connector to your instance. Ten AI clients means ten separate integrations to build, authenticate, and maintain.

AFTER MCP: You stand up one MCP server for your ServiceNow instance. Any AI client (Claude, ChatGPT, Cursor, Copilot) can discover your tools, understand what they do, and call them. One server, every client. Add a new tool, every connected client sees it automatically.


What MCP is NOT

 

Misconception Reality
"MCP replaces REST APIs" MCP sits on top of REST. Your server calls ServiceNow Table API under the hood. MCP standardizes how AI agents discover and call those APIs.
"MCP is IntegrationHub" IntegrationHub orchestrates workflows between systems. MCP gives AI agents a standardized way to invoke tools. Different problems, can work together.
"MCP is a chatbot framework" MCP does not handle conversation flow or UI. It handles the connection layer between the AI model and the tools it needs.
"MCP is proprietary to Anthropic" Created by Anthropic, donated to the Linux Foundation in December 2025. Governed by the Agentic AI Foundation, co-founded by Anthropic, Block, and OpenAI, with support from Google, Microsoft, AWS, Cloudflare, and Bloomberg.

How MCP actually works

MCP has three components:

 

  • Host is the AI application your user interacts with (Claude, ChatGPT, Cursor, a custom app). It contains the LLM and manages connections.
  • Client lives inside the host. Each client maintains a dedicated, 1:1 connection to a single MCP server. One host can run many clients, each talking to a different server.
  • Server is what you build. It exposes your ServiceNow capabilities to the AI. Servers do not run AI models. They serve context.

The connection uses either stdio (local) or Streamable HTTP (remote, replaces the earlier SSE transport). Security is built in: OAuth 2.1 with PKCE, least-privilege permissions, and human-in-the-loop consent.

 

The three primitives

Primitive What it does ServiceNow example
Resources Read-only data (like GET). Can also be subscribed to for live updates. Fetch an incident record, retrieve a KB article
Tools Take action (like POST). Can trigger human-in-the-loop approval before executing sensitive actions. Create a P1 incident, modify a CMDB CI, migrate an update set
Prompts Guide model reasoning with reusable templates Triage prompt: check problems, check CIs, recommend assignment group

What ServiceNow is doing with MCP

 

The Zurich release brings native MCP support. ServiceNow is now both a consumer (connecting to external tools) and a provider (exposing capabilities to external AI agents).

Capability What it does
MCP Server Console Native admin interface in AI Agent Studio. Create servers, attach Now Assist Skills as tools, manage auth, publish.
AI Agent Fabric MCP client support. Now Assist AI Agents connect to external MCP servers for best-of-breed tools.
A2A Protocol Now Assist agents collaborate with external agents from other vendors (like Google Vertex). Federated token auth is supported.
AI Control Tower Governance, policy enforcement, observability, and audit trails across all agents.

The 3-layer agentic stack

 

Layer 1: MCP connects agents to tools, databases, and APIs.
Created by Anthropic (Nov 2024). 97M+ monthly SDK downloads as of Dec 2025.

Layer 2: A2A (Agent-to-Agent) lets agents discover, delegate to, and collaborate with other agents.
Created by Google (Apr 2025). 100+ enterprise supporters including ServiceNow.

Layer 3: WebMCP enables interactive UI components rendered directly in chat.
Chrome 146 Canary reportedly shipped built-in support (Feb 2026, per industry analysis).

All three governed by the Agentic AI Foundation (Linux Foundation), co-founded by Anthropic, Block, and OpenAI, with support from Google, Microsoft, AWS, Cloudflare, and Bloomberg.


Build your own MCP server: three paths

 

Path A: Standalone Python (FastMCP)

Best for: custom tools, any ServiceNow version, any LLM client. Requires Python 3.10+.

 

Install:

pip install fastmcp

Write server.py

import os
from fastmcp import FastMCP
# If using the MCP SDK bundled version instead:
# from mcp.server.fastmcp import FastMCP

SN_URL = os.environ["SN_URL"]      # https://your-instance.service-now.com
USER = os.environ["SN_USER"]        # your username
PASS = os.environ["SN_PASS"]        # your password

mcp = FastMCP("ServiceNow Tools")

@mcp.tool()
def get_incident(number: str) -> str:
    """Fetch incident from ServiceNow by number"""
    import requests
    url = f"{SN_URL}/api/now/table/incident"
    r = requests.get(url,
        params={"sysparm_query": f"number={number}",
                "sysparm_limit": "1"},
        auth=(USER, PASS))
    return r.json()["result"][0]

Set environment variables and run

export SN_URL=https://your-instance.service-now.com
export SN_USER=admin
export SN_PASS=your-password
fastmcp run server.py
# Starts on http://localhost:8000/mcp

 

Connect a client: 

This requires Claude Code (npm install -g @anthropic-ai/claude-code). For Claude Desktop, add the server in claude_desktop_config.json instead.

 

claude mcp add my-sn-server -- fastmcp run server.py

Debug

fastmcp dev launches your server with hot-reload. To open the visual MCP Inspector, run npx @modelcontextprotocol/inspector in a separate terminal and connect to your running server.

 

The three decorators: @mcp.tool() for actions, @mcp.resource() for read-only data, @mcp.prompt() for guided workflows.

fastmcp dev server.py

 

Path B: Zurich MCP Server Console (Native)

 

Best for: Zurich+ instances with Now Assist SKU. Governed and auditable out of the box.

Prerequisites: Zurich (Patch 4+), Now Assist SKU, sn_mcp_server plugin.

Steps:

  1. Open the MCP Server Console. A quickstart server is already available out of the box.
  2. Create a new server (or use the quickstart) and set authentication. OAuth is currently the only option. OAuth 2.1 is on the roadmap.
  3. Add Now Assist Skills as tools. Skills must already be built and published via Now Assist Skill Kit (NASK). You cannot create tools from scratch in the MCP Server Console.
  4. Publish. External clients can now discover and call your tools.

What the MCP Server Console gives you that DIY does not: AI Control Tower governance, built-in observability, consumption metering, managed OAuth, automatic tool discovery, session management, enterprise audit trail.

 

Good to knowThe MCP Server Console exposes Now Assist Skills as tools. Custom scripts and flows are not directly exposed, but there is a workaround: add your script or flow as a tool inside a Skill, then expose that Skill via MCP. Flows, Knowledge Graph, and Scripted REST APIs as first-class tool types are on the roadmap.

 

Path C: Community Open-Source (Fastest Start)

Best for: PoC, older ServiceNow versions, or when you need custom table access.

# No install needed. uvx downloads and runs it automatically.
claude mcp add servicenow -- uvx mcp-server-servicenow \
  --instance-url https://your-pdi.service-now.com \
  --auth-type basic --username admin --password your-password

One command. 18 tools out of the box: table CRUD, CMDB ops, system tools, update set management. Built on FastMCP 3.0 + Streamable HTTP + OAuth 2.1.

 

Note for SSO users: If your instance enforces SSO and disables basic auth (most production instances do), basic credentials will not work. Register an OAuth application in System OAuth > Application Registry and use: --auth-type oauth --client-id YOUR_ID --client-secret YOUR_SECRET --token-url https://your-instance.service-now.com/oauth_token.do. For dev/test only, a local service account with basic auth is acceptable. Do not use basic auth against production.

 

Which path should you pick?

Your situation Pick this
On Zurich+ with Now Assist Path B for governance and audit
Older version or no entitlement Path C for instant start, Path A for full control
Need custom table access Path A or C for direct access, or Path B by wrapping scripts/flows inside a Skill
SSO-enforced production instance Path A or C with OAuth (register app in System OAuth > Application Registry)
Want to use any LLM All three work with any MCP client

Testing and debugging

MCP Inspector is the official visual debugging tool.

 

# Terminal 1: start server with hot-reload
fastmcp dev server.py

# Terminal 2: launch visual inspector
npx @modelcontextprotocol/inspector

In Claude Code, check your connection:

claude mcp add my-server -- fastmcp run server.py
/mcp

Ask: "List the 5 most recent incidents." If it returns data, you are connected.

 

Common issues

Problem Fix
Stdout corruption Never print() in stdio servers. Use print(..., file=sys.stderr) or logging.info()
Tools not showing Check server URL, tools attached + active, auth scope includes tool discovery
Session expiry (SN native) Known issue: sessions expire after limited time. Check sn_mcp_client_server_session_mapping table
SSO-enforced instance, basic auth fails Basic auth is disabled when SSO is active. Register an OAuth app in System OAuth > Application Registry and use OAuth client credentials. Or create a local service account for dev/test only.
PDI hibernating Wake it at developer.servicenow.com. Click your instance > Wake Up. Takes about 2 minutes.

Security

Your MCP server is an API. Treat it with the same security rigor you would apply to any public-facing REST endpoint. The fact that an AI is calling it makes security more important, not less.

 

Authentication: OAuth 2.1 with PKCE for all remote servers (full OAuth 2.1 support is on the roadmap for the SN native MCP Server Console; OAuth is currently supported). Short-lived access tokens, recommended 15 to 60 minutes. Never log tokens or expose them to the UI or LLM. Use ServiceNow ACLs for per-user permissions.

 

Operational safety: Start read-only. Add write ops only with approval workflows. Log every tool call. Rate limit to prevent runaway agent loops. Write semantic tool descriptions because vague descriptions cause hallucination risk.


Resources

Resource Where
Official MCP docs modelcontextprotocol.io
FastMCP 3.0 gofastmcp.com
Python SDK github.com/modelcontextprotocol/python-sdk
Pre-built SN server (18 tools) github.com/jschuller/mcp-server-servicenow
MCP Inspector npx @modelcontextprotocol/inspector
Project scaffold uvx create-mcp-server
SN MCP Community FAQ ServiceNow Community: MCP and A2A FAQs

Three takeaways

1. The era of bespoke REST connectors is ending. MCP standardizes what used to take months into days. Over 1,000 pre-built servers available today.

2. Your new mandate is Context Engineering. The systematic design of the semantic information you provide to AI models. How you describe your tools matters as much as what they do.

3. The skills we build today become MCP-exposed tools tomorrow.

 

 

Fastest path to a working demo: Get a free PDI at developer.servicenow.com. Run claude mcp add servicenow -- uvx mcp-server-servicenow --instance-url https://your-pdi.service-now.com --auth-type basic --username admin --password your-password. Ask Claude to list your incidents. You are live.

 

 

Sources: MCP Specification (2025-11-25), Anthropic AAIF announcement (Dec 2025), Official MCP 2026 Roadmap (Mar 9, 2026), ServiceNow Community MCP Server Console docs (Jan 2026), ServiceNow Community MCP/A2A FAQ (Zurich Patch 4), FastMCP 3.0 release (Jan 19, 2026), MCP Python SDK, MCP security research (Apr 2025), Red Hat MCP security guide (Mar 2026). Full fact-check report available on request.

 

This article is part of a series from the AI Center of Excellence (CoE) team at ServiceNow. We work directly with enterprise customers to close the gap between AI licensing and realized value. If your team is navigating activation, reach out or drop a comment below with your biggest blocker. We read every one.

Comments
Paulsylo
Tera Sage

Hi @Vyoma - Thanks for this wonderful article and I am going through this. Infact, have some question, will mail you 

Version history
Last update:
7m ago
Updated by:
Contributors