Skip to main content

Announcing StackOne Defender: leading open-source prompt injection guard for your agent Read More

ServiceNow MCP Server
for AI Agents

Production-ready ServiceNow MCP server with 74 extensible actions — plus built-in authentication, security, and optimized execution.

ServiceNow logo
ServiceNow MCP Server
Built by StackOne StackOne

Coverage

74 Agent Actions

Create, read, update, and delete across ServiceNow — and extend your agent's capabilities with custom actions.

Authentication

Agent Tool Authentication

Per-user OAuth in one call. Your ServiceNow MCP server gets session-scoped tokens with zero credentials stored on your infra.

Agent Auth →

Security

Agent Protection

Every ServiceNow tool response scanned for prompt injection in milliseconds — 88.7% accuracy, all running on CPU.

Prompt Injection Defense →

Performance

Max Agent Context. Min Cost.

Free up to 96% of your agent's context window to enhance reasoning and reduce cost, on every ServiceNow call.

Tools Discovery →

What is the ServiceNow MCP Server?

A ServiceNow MCP server lets AI agents read and write ServiceNow data through the Model Context Protocol — Anthropic's open standard for connecting LLMs to external tools. StackOne's ServiceNow MCP server ships with 74 pre-built actions, fully extensible via the Connector Builder — plus managed authentication, prompt injection defense, and optimized agent context. Connect it from MCP clients like Claude Desktop, Cursor, and VS Code, or from agent frameworks like OpenAI Agents SDK, LangChain, and Vercel AI SDK.

All ServiceNow MCP Tools and Actions

Every action from ServiceNow's API, ready for your agent. Create, read, update, and delete — scoped to exactly what you need.

Table Records

  • Create Table Record

    Create a new record in any ServiceNow table using the Table API with dynamic field support. Use get_table_schema with the table_name to discover required fields and all available attributes. Use get_choice_list to get valid values for choice/dropdown fields.

  • List Table Records

    Retrieve records from any ServiceNow table using the Table API with filtering, pagination, and field selection support. Use list_tables to discover available tables in your instance and get_table_schema with the table_name to discover available fields for filtering and selection.

  • Get Table Record

    Retrieve a single record by sys_id from any ServiceNow table using the Table API. Use list_tables to discover available tables and get_table_schema to see available fields.

  • Update Table Record

    Update an existing record in any ServiceNow table using the Table API with dynamic field support. Use get_table_schema with the table_name to discover updateable fields. Use get_choice_list to get valid values for choice/dropdown fields before updating.

  • Delete Table Record

    Delete a record from any ServiceNow table using the Table API. Ensure you have the correct sys_id from list or get operations before deletion.

Tables

  • Create Table

    Create a new table in ServiceNow by inserting a record into sys_db_object. This creates the table structure. Use create_table_field to add fields/columns to the table. Requires admin permissions.

  • List Tables

    Retrieve a list of all tables in the ServiceNow instance from sys_db_object. Returns table names, labels, super classes, and accessibility info. Use this to discover available tables before creating records.

Incidents

  • Create Incident

    Create a new incident in ServiceNow. Use get_table_schema with table_name=incident to discover all available fields and required fields. Use get_choice_list to get valid values for state, priority, urgency, impact fields.

  • List Incidents

    Retrieve a list of all incidents from ServiceNow. Use get_table_schema action with table_name=incident to discover available fields, or get_choice_list to get valid values for state, priority, urgency fields.

  • Get Incident

    Retrieve a single incident by sys_id from ServiceNow. Use list_table_columns with table_name=incident to see all available fields you can request in sysparm_fields parameter.

  • Update Incident

    Update an existing incident in ServiceNow. Use get_table_schema with table_name=incident to discover updateable fields. Use get_choice_list to get valid values for state, priority, urgency, impact fields.

  • Delete Incident

    Delete an incident from ServiceNow

Problems

  • Create Problem

    Create a new problem record in ServiceNow for tracking root cause of recurring incidents. Use get_table_schema with table_name=problem to discover required fields. Use get_choice_list to get valid values for state, problem_state, priority fields.

  • List Problems

    Retrieve a list of all problem records from ServiceNow for root cause analysis of recurring incidents. Use get_table_schema with table_name=problem to discover available fields.

  • Get Problem

    Retrieve a single problem record by sys_id from ServiceNow

  • Update Problem

    Update an existing problem record in ServiceNow. Use get_table_schema with table_name=problem to discover updateable fields. Use get_choice_list to get valid values for state, problem_state fields.

  • Delete Problem

    Delete a problem record from ServiceNow. Note that some problem states (e.g., Known Error) may be protected by business rules and cannot be deleted.

Change Requests

  • Create Change Request

    Create a new change request in ServiceNow for planned infrastructure or service modifications. Use get_table_schema with table_name=change_request to discover required fields. Use get_choice_list to get valid values for type, state, risk, impact fields.

  • List Change Requests

    Retrieve a list of all change request records from ServiceNow for managing planned infrastructure and service changes. Use get_table_schema with table_name=change_request to discover available fields.

  • Get Change Request

    Retrieve a single change request record by sys_id from ServiceNow

  • Update Change Request

    Update an existing change request in ServiceNow. Use get_table_schema with table_name=change_request to discover updateable fields. Use get_choice_list to get valid values for type, state, risk fields.

  • Delete Change Request

    Delete a change request from ServiceNow

Tasks

  • Create Task

    Create a new task record in ServiceNow. Use get_table_schema with table_name=task to discover required fields. Use get_choice_list to get valid values for state, priority fields.

  • List Tasks

    Retrieve a list of all task records from ServiceNow (base table for incidents, problems, etc.). Use get_table_schema with table_name=task to discover available fields.

  • Get Task

    Retrieve a single task record by sys_id from ServiceNow

  • Update Task

    Update an existing task record in ServiceNow. Use get_table_schema with table_name=task to discover updateable fields. Use get_choice_list to get valid values for state field.

  • Delete Task

    Delete a task record from ServiceNow

Service Catalog Requests

  • Create Service Catalog Request

    Create a new service catalog request in ServiceNow. Use get_table_schema with table_name=sc_request to discover required fields. Use get_choice_list to get valid values for request_state, priority fields.

  • List Service Catalog Requests

    Retrieve a list of service catalog request records from ServiceNow. Use get_table_schema with table_name=sc_request to discover available fields.

  • Get Service Catalog Request

    Retrieve a single service catalog request by sys_id from ServiceNow

  • Update Service Catalog Request

    Update an existing service catalog request in ServiceNow

  • Delete Service Catalog Request

    Delete a service catalog request from ServiceNow

Service Catalog Request Items

  • Create Service Catalog Request Item

    Create a new service catalog request item in ServiceNow. Required fields are request (parent sc_request sys_id) and cat_item (catalog item sys_id). Use list_catalog_requests to find request sys_ids and list_catalog_items to find cat_item sys_ids.

  • List Service Catalog Request Items

    Retrieve a list of service catalog request item records from ServiceNow (individual items within requests)

  • Get Service Catalog Request Item

    Retrieve a single service catalog request item by sys_id from ServiceNow

  • Update Service Catalog Request Item

    Update an existing service catalog request item in ServiceNow

  • Delete Service Catalog Request Item

    Delete a service catalog request item from ServiceNow

Knowledge Articles

  • Create Knowledge Article

    Create a new knowledge base article in ServiceNow. Use get_table_schema with table_name=kb_knowledge to discover required fields. Use get_choice_list to get valid values for workflow_state, article_type fields.

  • List Knowledge Articles

    Retrieve a list of knowledge base articles from ServiceNow. Use get_table_schema with table_name=kb_knowledge to discover available fields.

  • Get Knowledge Article

    Retrieve a single knowledge article by sys_id from ServiceNow

  • Update Knowledge Article

    Update an existing knowledge base article in ServiceNow. Use get_table_schema with table_name=kb_knowledge to discover updateable fields. Use get_choice_list to get valid values for workflow_state field.

  • Delete Knowledge Article

    Delete a knowledge article from ServiceNow

Knowledge Categorys

  • Create Knowledge Category

    Create a new knowledge base category in ServiceNow

  • Get Knowledge Category

    Retrieve a single knowledge category by sys_id from ServiceNow

Knowledge Bases

  • Create Knowledge Base

    Create a new knowledge base in ServiceNow

  • List Knowledge Bases

    Retrieve a list of knowledge bases from ServiceNow

  • Get Knowledge Base

    Retrieve a single knowledge base by sys_id from ServiceNow

User Roles

  • List User Roles

    Retrieve a list of user roles from ServiceNow sys_user_role table

  • Get User Role

    Retrieve a single user role by sys_id from ServiceNow. Use list_user_roles to find valid role sys_ids first.

Locations

  • Create Location

    Create a new location in ServiceNow

  • List Locations

    Retrieve a list of company locations from ServiceNow cmn_location table

  • Get Location

    Retrieve a single location by sys_id from ServiceNow

Departments

  • Create Department

    Create a new department in ServiceNow

  • List Departments

    Retrieve a list of departments from ServiceNow cmn_department table

  • Get Department

    Retrieve a single department by sys_id from ServiceNow

Users

  • Create User

    Create a new user in ServiceNow sys_user table. Use get_table_schema with table_name=sys_user to discover required fields and all available user attributes.

  • List Users

    Retrieve a list of users from ServiceNow sys_user table to get sys_id values for caller_id and assigned_to fields. Use get_table_schema with table_name=sys_user to discover available fields.

  • Get User

    Retrieve a single user by sys_id from ServiceNow sys_user table

  • Update User

    Update an existing user in ServiceNow sys_user table

  • Delete User

    Delete a user from ServiceNow sys_user table

Groups

  • Create Group

    Create a new assignment group in ServiceNow sys_user_group table. Use get_table_schema with table_name=sys_user_group to discover required fields and group attributes.

  • List Groups

    Retrieve a list of assignment groups from ServiceNow sys_user_group table to get sys_id values for assignment_group field. Use get_table_schema with table_name=sys_user_group to discover available fields.

  • Get Group

    Retrieve a single assignment group by sys_id from ServiceNow sys_user_group table

  • Update Group

    Update an existing assignment group in ServiceNow sys_user_group table

  • Delete Group

    Delete an assignment group from ServiceNow sys_user_group table

Other (9)

  • Create Table Field

    Add a new field/column to a ServiceNow table by inserting into sys_dictionary. Use after create_table to define the table structure. Use get_table_schema to see existing fields.

  • Get Table Schema

    Retrieve complete field schema for a ServiceNow table from sys_dictionary. Returns field names, types, max length, mandatory status, and reference tables. Use to discover available fields before creating/updating records.

  • Get Table Metadata

    Retrieve detailed metadata about a specific ServiceNow table from sys_db_object including structure, parent tables, access controls, and configuration. Useful for understanding table relationships and inheritance.

  • List Table Columns

    Retrieve simplified list of column names, labels, and types for a ServiceNow table from sys_dictionary. Returns field names, labels, data types, max length, mandatory status, and default values. Lightweight alternative to get_table_schema.

  • Get Choice List

    Retrieve valid choices (dropdown options) for a field in a ServiceNow table from sys_choice. Returns label, value, sequence, and status for choice fields like state, priority, urgency, impact. Essential for building forms with proper validation.

  • Get Reference Qualifiers

    Retrieve reference qualifier rules for fields that reference other tables from sys_dictionary. Returns filtering rules that limit which records can be selected (e.g., only active users for assigned_to field).

  • List Knowledge Categories

    Retrieve a list of knowledge base categories from ServiceNow

  • List User Role Assignments

    Retrieve a list of user-role assignments from ServiceNow sys_user_has_role table

  • Assign Role To User

    Create a new user-role assignment in ServiceNow. Use list_users to find user sys_ids and list_user_roles to find role sys_ids before creating the assignment.

Set Up Your ServiceNow MCP Server in Minutes

One endpoint. Any framework. Your agent is talking to ServiceNow in under 10 lines of code.

MCP Clients

Agent Frameworks

Claude Desktop
{
  "mcpServers": {
    "stackone": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote@latest",
        "https://api.stackone.com/mcp?x-account-id=<account_id>",
        "--header",
        "Authorization: Basic <YOUR_BASE64_TOKEN>"
      ]
    }
  }
}

More ERP / ITSM MCP Servers

ServiceNow MCP Server FAQ

ServiceNow MCP server vs direct API integration — what's the difference?
A ServiceNow MCP server and direct API integration serve different use cases. Direct API integration is for software-to-software — backend code calling ServiceNow. A ServiceNow MCP server is for AI agents — MCP clients like Claude and Cursor, plus framework agents built with OpenAI, LangChain, or Vercel AI — discovering and calling ServiceNow at runtime. StackOne provides both.
How does ServiceNow authentication work for AI agents?
ServiceNow authentication for AI agents works through a StackOne Connect Session. Create one via the dashboard or the SDK — you get an auth link and ready-to-paste config for Claude Desktop, Cursor, and other MCP clients. Your user authenticates their own ServiceNow account; StackOne handles token exchange, storage, and refresh. Credentials never reach the LLM, and each user is isolated via origin_owner_id.
Are ServiceNow MCP tools vulnerable to prompt injection?
Yes — ServiceNow MCP tools can be vulnerable to indirect prompt injection. Any tool that reads user-written content — documents, messages, tickets, records, or free-text fields — is a potential vector. StackOne Defender scans every tool response before it enters the agent's context — regex patterns in ~1ms, then a MiniLM classifier in ~4ms. 88.7% accuracy, CPU-only.
What is the context bloat of a ServiceNow agent and how do I avoid it?
Context bloat happens when ServiceNow tool schemas and API responses eat your ServiceNow agent's memory, preventing it from reasoning effectively. A single ServiceNow query can return a massive JSON response, and connecting multiple tools compounds the problem. Tools Discovery and Code Mode reduce context bloat — loading only relevant tools per query and keeping raw responses out of the agent's context.
Can I limit which actions my ServiceNow agent can access?
Yes — you can limit which actions your ServiceNow agent can access directly from the StackOne dashboard. Toggle actions on or off, or restrict them to specific accounts, with no code changes to your agent. Session tokens can be scoped to exact actions so if one leaks, exposure stays contained.
Can I create custom agent actions for my ServiceNow MCP server?
Yes — you can create custom agent actions for your ServiceNow MCP server using Connector Builder. It's an integration agent your coding assistant (Claude Code, Cursor, or Copilot) can invoke to research ServiceNow's API, generate production-ready connector YAML, test against the live API, and validate before you ship.
When should I NOT use a ServiceNow MCP server?
Skip a ServiceNow MCP server if your integration is purely software-to-software — direct ServiceNow API integration is simpler when no AI agent is involved. For deterministic, compliance-critical operations (financial transactions, regulatory reporting), direct API gives you predictable behavior without agent-driven decision-making. MCP shines when AI agents need to dynamically discover and call ServiceNow actions at runtime.
What AI frameworks and AI clients does the StackOne ServiceNow MCP server support?
The StackOne ServiceNow MCP server supports both. MCP clients (paste-and-go apps): Claude Desktop, Claude Code, Cursor, VS Code, Goose. Agent frameworks (code SDKs you build with): OpenAI Agents SDK, Anthropic, Vercel AI, Google ADK, CrewAI, Pydantic AI, LangChain, LangGraph, Azure AI Foundry.

Put your AI agents to work

All the tools you need to build and scale AI agent integrations, with best-in-class connectivity, execution, and security.