How to integrate ServiceNow MCP with Vercel AI SDK v6

This guide walks you through connecting ServiceNow to Vercel AI SDK v6 using the Composio tool router. By the end, you'll have a working ServiceNow agent that can list all open incidents assigned to me, create a new servicenow change request, update priority of ticket inc0012345 to high through natural language commands. This guide will help you understand how to give your Vercel AI SDK agent real control over a ServiceNow account through Composio's ServiceNow MCP server. Before we dive in, let's take a quick look at the key ideas and tools involved.

ServiceNow logoServiceNow
BasicS2s Oauth2

ServiceNow is a cloud-based platform for automating digital workflows across IT, HR, and operations. It streamlines processes and improves efficiency for enterprise teams.

172 Tools

Introduction

This guide walks you through connecting ServiceNow to Vercel AI SDK v6 using the Composio tool router. By the end, you'll have a working ServiceNow agent that can list all open incidents assigned to me, create a new servicenow change request, update priority of ticket inc0012345 to high through natural language commands.

This guide will help you understand how to give your Vercel AI SDK agent real control over a ServiceNow account through Composio's ServiceNow MCP server.

Before we dive in, let's take a quick look at the key ideas and tools involved.

Also integrate ServiceNow with

TL;DR

Here's what you'll learn:
  • How to set up and configure a Vercel AI SDK agent with ServiceNow integration
  • Using Composio's Tool Router to dynamically load and access ServiceNow tools
  • Creating an MCP client connection using HTTP transport
  • Building an interactive CLI chat interface with conversation history management
  • Handling tool calls and results within the Vercel AI SDK framework

What is Vercel AI SDK?

The Vercel AI SDK is a TypeScript library for building AI-powered applications. It provides tools for creating agents that can use external services and maintain conversation state.

Key features include:

  • streamText: Core function for streaming responses with real-time tool support
  • MCP Client: Built-in support for Model Context Protocol via @ai-sdk/mcp
  • Step Counting: Control multi-step tool execution with stopWhen: stepCountIs()
  • OpenAI Provider: Native integration with OpenAI models

What is the ServiceNow MCP server, and what's possible with it?

The ServiceNow MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your ServiceNow account. It provides structured and secure access so your agent can perform ServiceNow operations on your behalf.

What is the Composio tool router, and how does it fit here?

What is Composio SDK?

Composio's Composio SDK helps agents find the right tools for a task at runtime. You can plug in multiple toolkits (like Gmail, HubSpot, and GitHub), and the agent will identify the relevant app and action to complete multi-step workflows. This can reduce token usage and improve the reliability of tool calls. Read more here: Getting started with Composio SDK

The tool router generates a secure MCP URL that your agents can access to perform actions.

How the Composio SDK works

The Composio SDK follows a three-phase workflow:

  1. Discovery: Searches for tools matching your task and returns relevant toolkits with their details.
  2. Authentication: Checks for active connections. If missing, creates an auth config and returns a connection URL via Auth Link.
  3. Execution: Executes the action using the authenticated connection.

Step-by-step Guide

Step by step09 STEPS
1

Prerequisites

Before you begin, make sure you have:
  • Node.js and npm installed
  • A Composio account with API key
  • An OpenAI API key
2

Getting API Keys for OpenAI and Composio

OpenAI API Key
  • Go to the OpenAI dashboard and create an API key. You'll need credits to use the models, or you can connect to another model provider.
  • Keep the API key safe.
Composio API Key
  • Log in to the Composio dashboard.
  • Navigate to your API settings and generate a new API key.
  • Store this key securely as you'll need it for authentication.
3

Install required dependencies

bash
npm install @ai-sdk/openai @ai-sdk/mcp @composio/core ai dotenv

First, install the necessary packages for your project.

What you're installing:

  • @ai-sdk/openai: Vercel AI SDK's OpenAI provider
  • @ai-sdk/mcp: MCP client for Vercel AI SDK
  • @composio/core: Composio SDK for tool integration
  • ai: Core Vercel AI SDK
  • dotenv: Environment variable management
4

Set up environment variables

bash
OPENAI_API_KEY=your_openai_api_key_here
COMPOSIO_API_KEY=your_composio_api_key_here
COMPOSIO_USER_ID=your_user_id_here

Create a .env file in your project root.

What's needed:

  • OPENAI_API_KEY: Your OpenAI API key for GPT model access
  • COMPOSIO_API_KEY: Your Composio API key for tool access
  • COMPOSIO_USER_ID: A unique identifier for the user session
5

Import required modules and validate environment

typescript
import "dotenv/config";
import { openai } from "@ai-sdk/openai";
import { Composio } from "@composio/core";
import * as readline from "readline";
import { streamText, type ModelMessage, stepCountIs } from "ai";
import { createMCPClient } from "@ai-sdk/mcp";

const composioAPIKey = process.env.COMPOSIO_API_KEY;
const composioUserID = process.env.COMPOSIO_USER_ID;

if (!process.env.OPENAI_API_KEY) throw new Error("OPENAI_API_KEY is not set");
if (!composioAPIKey) throw new Error("COMPOSIO_API_KEY is not set");
if (!composioUserID) throw new Error("COMPOSIO_USER_ID is not set");

const composio = new Composio({
  apiKey: composioAPIKey,
});
What's happening:
  • We're importing all necessary libraries including Vercel AI SDK's OpenAI provider and Composio
  • The dotenv/config import automatically loads environment variables
  • The MCP client import enables connection to Composio's tool server
6

Create Tool Router session and initialize MCP client

typescript
async function main() {
  // Create a tool router session for the user
  const session = await composio.create(composioUserID!, {
    toolkits: ["servicenow"],
  });

  const mcpUrl = session.mcp.url;
What's happening:
  • We're creating a Tool Router session that gives your agent access to ServiceNow tools
  • The create method takes the user ID and specifies which toolkits should be available
  • The returned mcp object contains the URL and authentication headers needed to connect to the MCP server
  • This session provides access to all ServiceNow-related tools through the MCP protocol
7

Connect to MCP server and retrieve tools

typescript
const mcpClient = await createMCPClient({
  transport: {
    type: "http",
    url: mcpUrl,
    headers: session.mcp.headers, // Authentication headers for the Composio MCP server
  },
});

const tools = await mcpClient.tools();
What's happening:
  • We're creating an MCP client that connects to our Composio Tool Router session via HTTP
  • The mcp.url provides the endpoint, and mcp.headers contains authentication credentials
  • The type: "http" is important - Composio requires HTTP transport
  • tools() retrieves all available ServiceNow tools that the agent can use
8

Initialize conversation and CLI interface

typescript
let messages: ModelMessage[] = [];

console.log("Chat started! Type 'exit' or 'quit' to end the conversation.\n");
console.log(
  "Ask any questions related to servicenow, like summarize my last 5 emails, send an email, etc... :)))\n",
);

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
  prompt: "> ",
});

rl.prompt();
What's happening:
  • We initialize an empty messages array to maintain conversation history
  • A readline interface is created to accept user input from the command line
  • Instructions are displayed to guide the user on how to interact with the agent
9

Handle user input and stream responses with real-time tool feedback

typescript
rl.on("line", async (userInput: string) => {
  const trimmedInput = userInput.trim();

  if (["exit", "quit", "bye"].includes(trimmedInput.toLowerCase())) {
    console.log("\nGoodbye!");
    rl.close();
    process.exit(0);
  }

  if (!trimmedInput) {
    rl.prompt();
    return;
  }

  messages.push({ role: "user", content: trimmedInput });
  console.log("\nAgent is thinking...\n");

  try {
    const stream = streamText({
      model: openai("gpt-5"),
      messages,
      tools,
      toolChoice: "auto",
      stopWhen: stepCountIs(10),
      onStepFinish: (step) => {
        for (const toolCall of step.toolCalls) {
          console.log(`[Using tool: ${toolCall.toolName}]`);
          }
          if (step.toolCalls.length > 0) {
            console.log(""); // Add space after tool calls
          }
        },
      });

      for await (const chunk of stream.textStream) {
        process.stdout.write(chunk);
      }

      console.log("\n\n---\n");

      // Get final result for message history
      const response = await stream.response;
      if (response?.messages?.length) {
        messages.push(...response.messages);
      }
    } catch (error) {
      console.error("\nAn error occurred while talking to the agent:");
      console.error(error);
      console.log(
        "\nYou can try again or restart the app if it keeps happening.\n",
      );
    } finally {
      rl.prompt();
    }
  });

  rl.on("close", async () => {
    await mcpClient.close();
    console.log("\n👋 Session ended.");
    process.exit(0);
  });
}

main().catch((err) => {
  console.error("Fatal error:", err);
  process.exit(1);
});
What's happening:
  • We use streamText instead of generateText to stream responses in real-time
  • toolChoice: "auto" allows the model to decide when to use ServiceNow tools
  • stopWhen: stepCountIs(10) allows up to 10 steps for complex multi-tool operations
  • onStepFinish callback displays which tools are being used in real-time
  • We iterate through the text stream to create a typewriter effect as the agent responds
  • The complete response is added to conversation history to maintain context
  • Errors are caught and displayed with helpful retry suggestions

Complete Code

Here's the complete code to get you started with ServiceNow and Vercel AI SDK:

typescript
import "dotenv/config";
import { openai } from "@ai-sdk/openai";
import { Composio } from "@composio/core";
import * as readline from "readline";
import { streamText, type ModelMessage, stepCountIs } from "ai";
import { createMCPClient } from "@ai-sdk/mcp";

const composioAPIKey = process.env.COMPOSIO_API_KEY;
const composioUserID = process.env.COMPOSIO_USER_ID;

if (!process.env.OPENAI_API_KEY) throw new Error("OPENAI_API_KEY is not set");
if (!composioAPIKey) throw new Error("COMPOSIO_API_KEY is not set");
if (!composioUserID) throw new Error("COMPOSIO_USER_ID is not set");

const composio = new Composio({
  apiKey: composioAPIKey,
});

async function main() {
  // Create a tool router session for the user
  const session = await composio.create(composioUserID!, {
    toolkits: ["servicenow"],
  });

  const mcpUrl = session.mcp.url;

  const mcpClient = await createMCPClient({
    transport: {
      type: "http",
      url: mcpUrl,
      headers: session.mcp.headers, // Authentication headers for the Composio MCP server
    },
  });

  const tools = await mcpClient.tools();

  let messages: ModelMessage[] = [];

  console.log("Chat started! Type 'exit' or 'quit' to end the conversation.\n");
  console.log(
    "Ask any questions related to servicenow, like summarize my last 5 emails, send an email, etc... :)))\n",
  );

  const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
    prompt: "> ",
  });

  rl.prompt();

  rl.on("line", async (userInput: string) => {
    const trimmedInput = userInput.trim();

    if (["exit", "quit", "bye"].includes(trimmedInput.toLowerCase())) {
      console.log("\nGoodbye!");
      rl.close();
      process.exit(0);
    }

    if (!trimmedInput) {
      rl.prompt();
      return;
    }

    messages.push({ role: "user", content: trimmedInput });
    console.log("\nAgent is thinking...\n");

    try {
      const stream = streamText({
        model: openai("gpt-5"),
        messages,
        tools,
        toolChoice: "auto",
        stopWhen: stepCountIs(10),
        onStepFinish: (step) => {
          for (const toolCall of step.toolCalls) {
            console.log(`[Using tool: ${toolCall.toolName}]`);
          }
          if (step.toolCalls.length > 0) {
            console.log(""); // Add space after tool calls
          }
        },
      });

      for await (const chunk of stream.textStream) {
        process.stdout.write(chunk);
      }

      console.log("\n\n---\n");

      // Get final result for message history
      const response = await stream.response;
      if (response?.messages?.length) {
        messages.push(...response.messages);
      }
    } catch (error) {
      console.error("\nAn error occurred while talking to the agent:");
      console.error(error);
      console.log(
        "\nYou can try again or restart the app if it keeps happening.\n",
      );
    } finally {
      rl.prompt();
    }
  });

  rl.on("close", async () => {
    await mcpClient.close();
    console.log("\n👋 Session ended.");
    process.exit(0);
  });
}

main().catch((err) => {
  console.error("Fatal error:", err);
  process.exit(1);
});

Conclusion

You've successfully built a ServiceNow agent using the Vercel AI SDK with streaming capabilities! This implementation provides a powerful foundation for building AI applications with natural language interfaces and real-time feedback.

Key features of this implementation:

  • Real-time streaming responses for a better user experience with typewriter effect
  • Live tool execution feedback showing which tools are being used as the agent works
  • Dynamic tool loading through Composio's Tool Router with secure authentication
  • Multi-step tool execution with configurable step limits (up to 10 steps)
  • Comprehensive error handling for robust agent execution
  • Conversation history maintenance for context-aware responses

You can extend this further by adding custom error handling, implementing specific business logic, or integrating additional Composio toolkits to create multi-app workflows.
TOOLS

Supported Tools

Every ServiceNow action and event your agent gets out of the box.

Attach file to record

Attaches a file to a specified record in a ServiceNow table.

Cancel change conflict check

Cancels the running conflict checking process for a specified ServiceNow change request.

Create a record

Creates a new record in a specified ServiceNow table with the provided field values.

Create attachment upload

Uploads a file as a multipart form-data attachment to a specified record in ServiceNow.

Create CI Lifecycle Management Action

Adds a specified configuration item (CI) action using the ServiceNow CI Lifecycle Management API.

Create ci lifecycle mgmt operators

Registers a new operator for a non-workflow user in the ServiceNow CI Lifecycle Management system.

Set CI Operational State

Sets the operational state for one or more configuration items (CIs) using the ServiceNow CI Lifecycle Management API.

Create CMDB Application Service

Creates an application service in ServiceNow CMDB or updates an existing one if a service with the same name already exists.

Create CMDB Linux Server

Creates a new Linux server configuration item (CI) in the ServiceNow CMDB.

Ingest CMDB Records

Inserts multiple records into a ServiceNow Import Set staging table.

Create CMDB Instance

Creates a single Configuration Item (CI) in ServiceNow CMDB with the specified attributes.

Create CMDB Instance Relation

Creates an inbound and/or outbound relation for a specific configuration item (CI) in the ServiceNow CMDB.

Create data classification classify

Assigns pre-defined or user-defined data classification labels to records in ServiceNow tables.

Create data classification clear

Removes all data classifications for a specific record in a ServiceNow table.

Enhanced CI Identify/Reconcile

Inserts or updates configuration items (CIs) in ServiceNow CMDB using the enhanced Identification and Reconciliation API.

Query CMDB Identify Reconcile

Queries the ServiceNow Identify and Reconcile API to determine whether a Configuration Item (CI) should be inserted (created) or updated in the CMDB based on identity matching rules.

CMDB Identify Reconcile QueryEnhanced

Performs identification and reconciliation of configuration items (CIs) in the ServiceNow CMDB.

Create Import Set

Inserts incoming data into a specified ServiceNow staging table and triggers the associated transform map to move the data into the production table.

Create incident

Creates a new incident record in ServiceNow with the provided details.

Create Incident

Creates a new incident record in ServiceNow with the provided field values.

Create ServiceNow Interaction

Creates a new interaction record in ServiceNow that can be linked to records in other tables (e.

Close Interaction

Closes an existing interaction record in ServiceNow by changing its state to closed.

Create push installation

Registers or updates a device token for receiving push notifications through ServiceNow.

Remove Push Installation

Deactivates a mobile device installation from receiving push notifications using the ServiceNow Push Installation API.

Create servic catalog items add to cart

Adds a specified catalog item to the current user's ServiceNow shopping cart.

Submit Service Catalog Producer Item

Submits a ServiceNow Service Catalog item using the submit_producer endpoint.

Checkout Service Catalog Cart

Checks out the Service Catalog shopping cart and submits the order as a request.

Submit Service Catalog Cart Order

Submits the Service Catalog shopping cart and creates a service catalog request.

Create servicecatalog items checkout guide

Checks out an order guide by updating variable values for selected catalog items.

Order Service Catalog Item Now

Orders a specified ServiceNow Service Catalog item immediately.

Insert Multiple Import Set Records

Inserts multiple records into a specified ServiceNow staging table and triggers the associated transform map.

Create sn chg rest change

Creates a new change request in ServiceNow using the Change Management REST API.

Create Change Request CI Association

Creates an association between a change request and one or more configuration items (CIs) in ServiceNow.

Start Change Conflict Check

Starts the conflict checking process for a ServiceNow change request, identifying scheduling conflicts with other changes or blackout windows.

Create sn chg rest change emergency

Creates an emergency change request in ServiceNow using the Change Management API.

Create Normal Change Request

Creates a normal change request in ServiceNow using the Change Management REST API.

Create sn chg rest change standard

Creates a new standard change request in ServiceNow using a pre-approved standard change template.

Create Change Task

Creates a new task for a ServiceNow change request using the Change Management REST API.

Create sn cicd app batch install

Installs two or more ServiceNow application packages in a single batch operation via the CICD API.

Install App from Repository

Installs the specified application from the ServiceNow app repository.

Run Full Instance Scan

Initiates a full instance scan by running all active checks present in the ServiceNow instance.

Create sn cicd instance scan suite scan combo

Runs a CI/CD scan using a suite and target (scoped app) combination in ServiceNow.

Activate Plugin

Activates the specified plugin in ServiceNow's CICD Plugin API.

Run Test Suite

Starts a specified automated test suite using ServiceNow's CI/CD Pipeline API.

Create SD-WAN Trouble Ticket

Creates a new trouble ticket in ServiceNow using the Service Operations Workspace Trouble Ticket Open API.

Create TMF Service Category

Creates a new service category record in the ServiceNow TMF Service Catalog API.

Create table

Inserts a new record into the specified ServiceNow table with the provided field values.

Create ServiceNow Incident

Creates a new incident record in the ServiceNow incident table using the Table API.

Create or Update CMDB CI via IRE

Creates or updates CMDB configuration items (CIs) using the ServiceNow Identification and Reconciliation Engine (IRE) via the identify-reconcile endpoint.

Delete a record

Permanently deletes a specific record from a ServiceNow table using its sys_id.

Delete attachment by

Permanently deletes a specific attachment from ServiceNow using its sys_id.

Delete attachment by id v1

Permanently deletes a specific attachment from ServiceNow using its sys_id via the v1 API endpoint.

Delete attachment csm

Permanently deletes a specific CSM (Customer Service Management) attachment from ServiceNow using its sys_id.

Delete change task

Permanently deletes a specific task from a ServiceNow change request using its sys_id.

Delete ci lifecycle mgmt action

Permanently deletes a specific CI Lifecycle Management action from ServiceNow using its sys_id.

Delete ci lifecycle mgmt operators

Permanently unregisters an operator from the ServiceNow CI Lifecycle Management system.

Delete cmdb instance relation

Permanently deletes a specific CMDB CI (Configuration Item) relation using its sys_id.

Delete emergency change request

Permanently deletes a specific emergency change request from ServiceNow using its sys_id.

Delete incident by

Permanently deletes a specific incident from ServiceNow using its sys_id.

Delete incident by id2

Permanently deletes a specific incident from ServiceNow using its sys_id via the Table API.

Delete servicecatalog cart

Removes a specific item from the current ServiceNow Service Portal shopping cart.

Delete service catalog cart empty

Empties all items from a specified Service Catalog shopping cart using its sys_id.

Delete sn chg rest change

Permanently deletes a specific change request using its sys_id via the Change Management REST API.

Delete Normal Change Request

Permanently deletes a normal change request identified by its sys_id using the ServiceNow Change Management REST API.

Delete sn chg rest change standard

Permanently deletes a standard change request from ServiceNow using its sys_id.

Delete table

Permanently deletes a specific record from a ServiceNow table using its sys_id.

Delete table incident

Permanently deletes a specific incident record from ServiceNow using its sys_id.

Find file

Retrieves attachment metadata from ServiceNow's sys_attachment table.

Get Activity Subscription Activities

Retrieves activity records from the ServiceNow ActivitySubscription API.

Get Activity Subscription Facets

Retrieves facets configured for an activity context in ServiceNow.

Get Agent Intelligence Solution Prediction

Predicts an output field value using a trained Agent Intelligence solution model.

List Agent Intelligence Solution Predictions

Retrieves a list of solution predictions from ServiceNow's Agent Intelligence engine.

Get All Data Classes

Retrieves all data classification records from the ServiceNow Data Classification API.

Get App Service CMDB Content

Retrieves a list of configuration items (CIs) associated with a specific application service in ServiceNow CMDB.

Get attachment by

Retrieves metadata for a specific attachment by its sys_id from ServiceNow.

Get Attachment by ID

Retrieves metadata for a specific attachment by its sys_id from ServiceNow.

Get attachment file

Downloads the binary file attachment with the specified sys_id from ServiceNow.

Get attachment file file

Downloads the binary file attachment with the specified sys_id from ServiceNow using the v1 API endpoint.

Get Attachment List

Retrieves metadata for multiple file attachments from ServiceNow's Attachment API.

Get change ci schedule

Retrieves available time slots for scheduling changes against a specific Configuration Item (CI).

Get Change Conflict Status

Retrieves the conflict status for a ServiceNow change request, identifying scheduling conflicts with other changes or blackout windows.

Get change nextstates

Retrieves a list of available next states for a specified change request based on the current state and workflow.

Get Change Request Configuration Items

Retrieves configuration items (CIs) associated with a specific change request in ServiceNow.

Get change schedule

Retrieves available time slots for scheduling a ServiceNow change request.

Get CI Lifecycle Management Action

Retrieves a specific CI Lifecycle Management action from ServiceNow using its sys_id.

Check CI Compatibility

Determines whether two specified Configuration Items (CIs) in the ServiceNow CMDB are compatible using the CI Lifecycle Management compatActions endpoint.

Check CI Lease Expiration Status

Determines whether a CI Lifecycle Management lease has expired for the specified lease record.

Check CI Not Allowed Ops Transition

Determines whether a configuration item (CI) can be transitioned based on CI lifecycle management rules.

Validate CI Lifecycle Management Requestor

Validates whether a specified active workflow requestor exists and is valid in ServiceNow CI Lifecycle Management.

Get CI Lifecycle Mgmt Status

Retrieves the current operational status for a Configuration Item (CI) in ServiceNow CMDB using the CI Lifecycle Management API.

Get CMDB Linux Server by ID

Retrieves a single CMDB Linux server configuration item (CI) by its sys_id, including its attributes and relationship information.

Find CSDM Application Service

Finds and returns basic information about one or more application services in the ServiceNow CMDB using the CSDM (Common Service Data Model) app_service find_service endpoint.

Get CMDB Instance by Class

Retrieves configuration items (CIs) from a specified CMDB class using the ServiceNow CMDB Instance API.

Get CMDB Instance by ID

Retrieves a single CMDB configuration item (CI) by its class name and sys_id, including its attributes and relationship information.

Get CMDB Class Metadata

Retrieves metadata and schema information for a specified CMDB (Configuration Management Database) class.

Get Cloud Catalog Services

Retrieves a list of catalog items from the ServiceNow Cloud Services Catalog API.

Get Email by ID

Retrieves a specific email record from ServiceNow's Email [sys_email] table by its sys_id.

Get Global User Role Inheritance

Retrieves the granted and inherited roles for a specified ServiceNow user using the Global User Role Inheritance API.

Get import

Retrieves the specified import staging record and its associated target records.

Get incident by

Retrieves a specific incident from ServiceNow by its sys_id.

Get incident by id2

Retrieves a specific incident from ServiceNow by its sys_id using the Table API.

Get Incidents

Retrieves incidents from the ServiceNow incident table using the Table API.

Get Performance Analytics Scorecards

Retrieves details about indicators from the Analytics Hub, including scorecard information for performance analytics.

Get records

Retrieves multiple records from a specified ServiceNow table with optional filtering and pagination.

Get Record Types

Retrieves all available table record types from the ServiceNow instance using the Table API documentation endpoint.

Get Rows from Table

Retrieves records from a specified ServiceNow table using the Table API v2.

Get servicatalog items by

Retrieves a specific Service Catalog item from ServiceNow using its sys_id.

Get Catalog Item Variables

Retrieves the list of variables defined for a ServiceNow Service Catalog item.

Get Service Catalog Cart

Retrieves the details of all items within the logged-in user's Service Catalog shopping cart.

Get Service Catalog Cart Delivery Address

Retrieves the delivery/shipping address configured for a user's Service Catalog shopping cart.

Get Service Catalog Catalog by ID

Retrieves the available information for a specified service catalog by its sys_id.

Get Service Catalog Catalog Categories

Retrieves the list of available categories for a specified ServiceNow Service Catalog.

Get Service Catalog Category by ID

Retrieves the available information for a specified service catalog category by its sys_id.

Get Service Catalog Item Delegation

Verifies whether a delegated user has access to a specific ServiceNow Service Catalog item.

Get Service Catalog Items List

Retrieves a list of catalog items from ServiceNow's Service Catalog API.

Get Service Catalog Wishlist List

Retrieves the list of items in the logged-in user's ServiceNow Service Catalog wishlist.

Get sn cdm shared libraries upload status

Retrieves the current status of a shared library upload operation in ServiceNow.

Get sn chg rest change by

Retrieves a specific change request from ServiceNow using its sys_id.

Get sn chg rest change emergency by

Retrieves a specific emergency change request from ServiceNow using its sys_id.

Get sn chg rest change emergency list

Retrieves one or more emergency change requests from ServiceNow using the Change Management API.

List ServiceNow Change Requests

Retrieves one or more change requests from ServiceNow based on specified filter criteria.

Get sn chg rest change model by

Retrieves a specific change model from ServiceNow using its sys_id.

Get sn chg rest change model list

Retrieves one or more change models from ServiceNow's Change Management API.

Get Normal Change Request by ID

Retrieves a specific normal change request from ServiceNow using its sys_id via the Change Management REST API.

List ServiceNow Normal Change Requests

Retrieves one or more normal change requests from ServiceNow's Change Management API.

Get sn chg rest change standard by

Retrieves a specific standard change request from ServiceNow using its sys_id.

Get sn chg rest change standard list

Retrieves one or more standard change requests from ServiceNow using the Change Management API.

Get ServiceNow Standard Change Template by ID

Retrieves a specific standard change template from ServiceNow using its sys_id.

List ServiceNow Standard Change Templates

Retrieves one or more standard change templates from ServiceNow's Change Management API.

Get Change Tasks

Retrieves one or more tasks associated with a specific ServiceNow change request.

Get sn cicd app batch results

Retrieves the results of a batch application install operation from ServiceNow CI/CD.

Get Instance Scan Result

Retrieves the current progress and status of a CI/CD instance scan operation in ServiceNow.

Get CI/CD Progress

Retrieves the current progress and status of a CI/CD operation in ServiceNow.

Get sn cicd testsuite results

Retrieves the results of a test suite run from ServiceNow CI/CD based on the result ID.

Get stats

Retrieves aggregate statistics for a specified ServiceNow table, including COUNT, AVG, MIN, MAX, and SUM calculations.

Get Table Records by ID

Retrieves multiple records from a specified ServiceNow table using the Table API.

Get Table Record by ID

Retrieves the record identified by the specified sys_id from the specified table.

Get table incident by

Retrieves a single incident record from ServiceNow by its sys_id using the Table API.

List ServiceNow Incidents

Retrieves one or more incident records from the ServiceNow incident table using the Table API.

Get ServiceNow Tables

Retrieves one or more records from a ServiceNow table using the Table API (GET /api/now/v2/table).

Get user

Retrieves a specific user record from ServiceNow using its sys_id.

Get users

Retrieves multiple user records from the ServiceNow sys_user table with optional filtering and pagination.

List ServiceNow Attachments

Retrieves metadata for multiple file attachments from ServiceNow's Attachment API.

List CMDB Linux Servers

Retrieves Linux server configuration items (CIs) from the ServiceNow CMDB using the cmdb_ci_linux_server class.

List CMDB Configuration Items

Retrieves configuration items (CIs) from the ServiceNow CMDB using the base cmdb_ci class.

List CMDB Relationship Types

Retrieves CMDB relationship types from the ServiceNow cmdb_rel_type table using the Table API.

List Service Catalog Catalogs

Retrieves a list of ServiceNow Service Catalog catalogs to which the user has access.

Refresh Impacted Services for Change

Refreshes and repopulates the impacted services/configuration items for a change request in ServiceNow using the Change Management REST API.

Retrieve sn cicd update set

Retrieves an update set with a given sys_id from the ServiceNow CICD (Continuous Integration/Continuous Delivery) plugin.

Schedule change first available

Updates the planned start and end times of a ServiceNow change request to the first available schedule slot.

Update cmdb csdm app service populate service

Populates an Application Service with CI (Configuration Item) relationships based on the CSDM (Common Service Data Model) model.

Update CMDB CSDM App Service Service Details

Updates the service details for a specific application service in the CMDB CSDM (Common Service Data Model).

Update cmdb instance by

Updates an existing configuration item (CI) record in the ServiceNow CMDB by its sys_id.

Update CMDB Instance by ID

Updates an existing Configuration Item (CI) instance in the ServiceNow CMDB.

Update conversation member drop

Drops an agent from a conversation in ServiceNow using the Conversation Member API.

Update incident by

Updates an existing incident in ServiceNow identified by its sys_id using the Table API.

Update incident by id2

Updates an existing incident record in ServiceNow using the Table API.

Update openframe voice interaction

Updates an existing voice interaction record in ServiceNow OpenFrame.

Update servicecatalog cart

Updates an existing item in the ServiceNow Service Portal shopping cart.

Update servicecatalog items submit guide

Submits an order guide in ServiceNow's Service Catalog with the specified variable values.

Update sn chg rest change

Updates an existing change request in ServiceNow using the Change Management REST API.

Update sn chg rest change emergency

Updates an existing emergency change request in ServiceNow using the Change Management API.

Update Normal Change Request

Updates a normal change request identified by its sys_id using the ServiceNow Change Management REST API.

Update ServiceNow Standard Change Request

Updates a standard change request in ServiceNow using its sys_id.

Update sn chg rest change task

Updates an existing change request task in ServiceNow using the Change Management REST API.

Update SD-WAN Trouble Ticket

Updates an existing trouble ticket in ServiceNow using the Service Operations Workspace Trouble Ticket Open API.

Update Trouble Ticket

Updates an existing trouble ticket in ServiceNow using the Trouble Ticket Open API.

Update table by

Updates an existing record in a specified ServiceNow table by its sys_id using the Table API.

Update table by id2

Updates an existing record in a specified ServiceNow table using its sys_id with the provided field values.

Update table incident

Updates an existing incident record in ServiceNow using the Table API.

Update table record

Updates an existing record in a specified ServiceNow table using the Table API.

Upload Attachment to ServiceNow Record

Uploads a file as an attachment to a specified record in ServiceNow.

FAQ

Frequently asked questions

With a standalone ServiceNow MCP server, the agents and LLMs can only access a fixed set of ServiceNow tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from ServiceNow and many other apps based on the task at hand, all through a single MCP endpoint.

Yes, you can. Vercel AI SDK v6 fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right ServiceNow tools.

Yes, absolutely. You can configure which ServiceNow scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your ServiceNow data and credentials are handled as safely as possible.

Start with ServiceNow.It takes 30 seconds.

Managed auth, hosted MCP servers, and every ServiceNow tool your agent needs.Free to start.

Start building