Connectors · Service desk & support
ServiceNow MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to ServiceNow and the rest of your systems. It gives your agent 126 ServiceNow actions (50 reads, 51 writes and 25 that wait for a confirmation) and holds the ServiceNow credential itself, so the agent never does. It paces ServiceNow's limits and records every call.
100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.
claude mcp add --transport http actionlake https://connect.actionlake.com/mcpdo { action: "servicenow_table.incidents.list", intent: "check which ServiceNow account is connected"}# List ServiceNow incidents · read · 1 upstream call- 126actionsin one signed file
- 50readlook, never change
- 51writecreate and update
- 25wait for a yesdestructive, confirmed first
Set up
Connect ServiceNow in three steps.
- 01
Add actionlake to Claude.
Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
https://connect.actionlake.com/mcp - 02
Connect ServiceNow.
Username and secret. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.
usernameServiceNow integration userpasswordThat user's passwordinstance_hostWhere your ServiceNow lives: your instance host
account { op: "connections.requirements", service: "servicenow_table" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates the call and prices it, for free.do { action: "servicenow_table.incidents.list" }# list servicenow incidents · read · 1 upstream callcheck { action: "servicenow_table.incidents.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
ServiceNow at a glance
- Sign-in
- Username and secret. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.
- You provide
usernamepassword- Setup fields
instance_host- Limits we pace to
- 3,600 calls an hour, per connection
- API covered
- ServiceNow API now, at your ServiceNow instance's API base URL, which you enter when connecting (path /api/now)
- Built from
- ServiceNow's documentation, read 8 September 2026servicenow.com
- Service file
- Version 2.0.0, signed (Ed25519)
- Cached reads
- 50 of 50 reads, for up to an hour; a write clears what it affects
- Ready-made plans
- 8 in the store
- Shared entities
- 10, so ask can line ServiceNow up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in ServiceNow.
126 actions in 1 area. Every one carries its effect, so a key can allow the reads and hold the rest.
- 50readlook, never change
- 51writecreate and update
- 25destructivewait for a confirmation
ITSM
12650 read · 51 write · 25 destructive
List ServiceNow incidents · List ServiceNow users · List ServiceNow contracts · List ServiceNow groups
Top actions
The ServiceNow API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 103 of ServiceNow's 105 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
servicenow_table.incidents.listList ServiceNow incidents | Query the incident table with an encoded query. | read | service.ticket.list56 connectors |
servicenow_table.users.listList ServiceNow users | Query the sys_user table with an encoded query. | read | identity.user.list474 connectors |
servicenow_table.contracts.listList ServiceNow contracts | Query the ast_contract table with an encoded query. | read | service.contract.list23 connectors |
servicenow_table.groups.listList ServiceNow groups | Query the sys_user_group table with an encoded query. | read | identity.group.list262 connectors |
servicenow_table.configuration_items.listList ServiceNow configuration items | Query the cmdb_ci table with an encoded query. | read | asset.asset.list42 connectors |
servicenow_table.companies.listList ServiceNow companies | Query the core_company table with an encoded query. | read | crm.company.list162 connectors |
servicenow_table.incidents.createCreate a ServiceNow incident | Insert a record into the incident table. | write | service.ticket.create54 connectors |
servicenow_table.tasks.listList ServiceNow tasks | Query the task table with an encoded query. | read | work.task.list122 connectors |
servicenow_table.change_requests.listList ServiceNow change requests | Query the change_request table with an encoded query. | read | service.change.list5 connectors |
servicenow_table.contracts.createCreate a ServiceNow contract | Insert a record into the ast_contract table. | write | service.contract.create19 connectors |
servicenow_table.users.createCreate a ServiceNow user | Insert a record into the sys_user table. | write | identity.user.create262 connectors |
servicenow_table.incidents.deleteDelete a ServiceNow incident | Delete one incident record by its sys_id. | destructive | service.ticket.delete42 connectors |
Try it
Prompts to paste into Claude.
Each one names the ServiceNow actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Which ServiceNow tickets have been open the longest? Show me the ten oldest with their status.
calls
servicenow_table.incidents.list - Planread
Report servers, databases and their assets in ServiceNow.
calls
servicenow_table.servers.listservicenow_table.databases.listservicenow_table.network_gear.listservicenow_table.hardware_assets.listservicenow_table.locations.list - Planwrite
Onboard a user and their equipment request in ServiceNow. Ask me before anything is sent or changed.
calls
servicenow_table.companies.listservicenow_table.users.createservicenow_table.requests.createservicenow_table.catalog_tasks.createservicenow_table.users.get - Writewrite
Create a ServiceNow incident in ServiceNow. Show me exactly what you will send before you save it.
calls
servicenow_table.incidents.create - Across systemsread
For each customer, how many tickets are in ServiceNow and how many invoices in ConnectWise PSA?
calls
servicenow_table.incidents.listconnectwise_manage.invoices.list
Across your systems
ServiceNow, joined to the rest of your business.
One ask fetches from ServiceNow and another system, joins the rows on the same customer on our side, and hands your agent the answer, not every row.
For each customer, how many tickets are in ServiceNow and how many invoices in ConnectWise PSA?
servicenow_table.incidents.list+connectwise_manage.invoices.list, oncrm.company· ConnectWise PSAFor each customer, how many tickets are in ServiceNow and how many invoices in NetSuite?
servicenow_table.incidents.list+netsuite.views.invoices, oncrm.company· NetSuite
identity.user 517identity.group 239crm.company 227work.task 105service.ticket 62crm.location 49asset.asset 40knowledge.article 22ask { intent: "for each customer, how many tickets are in ServiceNow and how many invoices in ConnectWise PSA", steps: [ { action: "servicenow_table.incidents.list", as: "tix", input: {}, limit: 100, max_pages: 5 }, { action: "connectwise_manage.invoices.list", as: "inv", input: {}, limit: 100, max_pages: 5 }, { join: { left: "tix", right: "inv", on: "crm.company", group_by: "tix.company_name", select: ["tix.company_name", "count(tix.id) as tickets", "count(inv.id) as invoices"] } } ]}The plan store
Ready-made plans for ServiceNow.
8 plans in the store. Install one and your agent runs it by name; the reply says which connections are still missing. A schedule can run a plan on a timetable. There are no triggers or webhooks, by design.
Report servers, databases and their assets
Use it when Someone asks for a current inventory of infrastructure configuration items and the assets behind them.
Triage unassigned high priority incidents
Use it when A service desk lead wants unassigned incidents at a given priority pushed onto a named assignment group in one pass.
Close request items whose tasks are done
Use it when Fulfilment is finished on a batch of request items and someone wants them closed together with their parent requests.
A person decides
Close number of items resolved request items and their parent requests.
Raise a change request and its tasks
Use it when Someone needs a change request raised together with the implementation tasks that hang off it.
A person decides
Raise change request "short description" and create number of tasks change tasks under it.
Open a problem from repeat incidents
Use it when The same configuration item keeps generating incidents and a problem record should be opened against it.
Onboard a user and their equipment request
Use it when A new starter needs a ServiceNow user record plus a request and catalog task for their kit.
A person decides
Create ServiceNow user user name (email) and raise an equipment request for them.
Publish a knowledge article from a solved problem
Use it when A problem has been solved and the workaround should become a published knowledge article.
A person decides
Publish knowledge article "short description" written up from problem number.
Retire a decommissioned configuration item
Use it when Hardware has been decommissioned and its configuration item should be removed once nothing is still referencing it.
A person decides
Permanently delete configuration item name from the CMDB. number of items incidents still reference it.
account { op: "plans.install", slug: "servicenow_table-cmdb-server-inventory" }
# then ask for it by name; a schedule can run it on a timetableGovernance for ServiceNow
Destructive actions wait for a yes.
25 ServiceNow actions are destructive. These are all of them:
- Delete a ServiceNow incident
servicenow_table.incidents.delete - Delete a ServiceNow user
servicenow_table.users.delete - Delete a ServiceNow contract
servicenow_table.contracts.delete - Delete a ServiceNow group
servicenow_table.groups.delete - Delete a ServiceNow company
servicenow_table.companies.delete - Delete a ServiceNow task
servicenow_table.tasks.delete - Delete a ServiceNow change task
servicenow_table.change_tasks.delete - Delete a ServiceNow catalogue task
servicenow_table.catalog_tasks.delete - Delete a ServiceNow asset
servicenow_table.assets.delete - Delete a ServiceNow configuration item
servicenow_table.configuration_items.delete - Delete a ServiceNow change request
servicenow_table.change_requests.delete - Delete a ServiceNow location
servicenow_table.locations.delete - Delete a ServiceNow knowledge article
servicenow_table.knowledge_articles.delete - Delete a ServiceNow hardware asset
servicenow_table.hardware_assets.delete - Delete a ServiceNow SLA record
servicenow_table.slas.delete - Delete a ServiceNow problem
servicenow_table.problems.delete - Delete a ServiceNow requested item
servicenow_table.request_items.delete - Delete a ServiceNow service request
servicenow_table.requests.delete - Delete a ServiceNow computer
servicenow_table.computers.delete - Delete a ServiceNow application
servicenow_table.applications.delete - Delete a record from any ServiceNow table
servicenow_table.records.delete - Delete a ServiceNow database
servicenow_table.databases.delete - Delete a ServiceNow business service
servicenow_table.business_services.delete - Delete a ServiceNow server
servicenow_table.servers.delete - Delete a ServiceNow network device
servicenow_table.network_gear.delete
A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.
Delete a ServiceNow incident?
intent: the user asked me to delete a ServiceNow incident
account { op: "keys.create", name: "servicenow-table-agent", allowed_actions: ["servicenow_table.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "servicenow_table.incidents.delete", approver: "[email protected]" }, { match: "servicenow_table.users.delete", approver: "[email protected]" }, { match: "servicenow_table.contracts.delete", approver: "[email protected]" } ]}Cost
What ServiceNow costs on actionlake.
Every ServiceNow action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call ServiceNow refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
- 1upstream call per actionall 126 ServiceNow actions
- 50actions pageeach page of a long list is one call
- 50reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every ServiceNow action.
126 actions by area: the id your agent calls, what it does, and its effect.
ITSM126
servicenow_table.applications.createCreate a ServiceNow applicationwriteservicenow_table.applications.deleteDelete a ServiceNow applicationdestructiveservicenow_table.applications.getGet a ServiceNow applicationreadservicenow_table.applications.listList ServiceNow applicationsreadservicenow_table.applications.updateUpdate a ServiceNow applicationwriteservicenow_table.assets.createCreate a ServiceNow assetwriteservicenow_table.assets.deleteDelete a ServiceNow assetdestructiveservicenow_table.assets.getGet a ServiceNow assetreadservicenow_table.assets.listList ServiceNow assetsreadservicenow_table.assets.updateUpdate a ServiceNow assetwriteservicenow_table.business_services.createCreate a ServiceNow business servicewriteservicenow_table.business_services.deleteDelete a ServiceNow business servicedestructiveservicenow_table.business_services.getGet a ServiceNow business servicereadservicenow_table.business_services.listList ServiceNow business servicesreadservicenow_table.business_services.updateUpdate a ServiceNow business servicewriteservicenow_table.catalog_tasks.createCreate a ServiceNow catalogue taskwriteservicenow_table.catalog_tasks.deleteDelete a ServiceNow catalogue taskdestructiveservicenow_table.catalog_tasks.getGet a ServiceNow catalogue taskreadservicenow_table.catalog_tasks.listList ServiceNow catalogue tasksreadservicenow_table.catalog_tasks.updateUpdate a ServiceNow catalogue taskwriteservicenow_table.change_requests.createCreate a ServiceNow change requestwriteservicenow_table.change_requests.deleteDelete a ServiceNow change requestdestructiveservicenow_table.change_requests.getGet a ServiceNow change requestreadservicenow_table.change_requests.listList ServiceNow change requestsreadservicenow_table.change_requests.updateUpdate a ServiceNow change requestwriteservicenow_table.change_tasks.createCreate a ServiceNow change taskwriteservicenow_table.change_tasks.deleteDelete a ServiceNow change taskdestructiveservicenow_table.change_tasks.getGet a ServiceNow change taskreadservicenow_table.change_tasks.listList ServiceNow change tasksreadservicenow_table.change_tasks.updateUpdate a ServiceNow change taskwriteservicenow_table.companies.createCreate a ServiceNow companywriteservicenow_table.companies.deleteDelete a ServiceNow companydestructiveservicenow_table.companies.getGet a ServiceNow companyreadservicenow_table.companies.listList ServiceNow companiesreadservicenow_table.companies.updateUpdate a ServiceNow companywriteservicenow_table.computers.createCreate a ServiceNow computerwriteservicenow_table.computers.deleteDelete a ServiceNow computerdestructiveservicenow_table.computers.getGet a ServiceNow computerreadservicenow_table.computers.listList ServiceNow computersreadservicenow_table.computers.updateUpdate a ServiceNow computerwriteservicenow_table.configuration_items.createCreate a ServiceNow configuration itemwriteservicenow_table.configuration_items.deleteDelete a ServiceNow configuration itemdestructiveservicenow_table.configuration_items.getGet a ServiceNow configuration itemreadservicenow_table.configuration_items.listList ServiceNow configuration itemsreadservicenow_table.configuration_items.updateUpdate a ServiceNow configuration itemwriteservicenow_table.contracts.createCreate a ServiceNow contractwriteservicenow_table.contracts.deleteDelete a ServiceNow contractdestructiveservicenow_table.contracts.getGet a ServiceNow contractreadservicenow_table.contracts.listList ServiceNow contractsreadservicenow_table.contracts.updateUpdate a ServiceNow contractwriteservicenow_table.databases.createCreate a ServiceNow databasewriteservicenow_table.databases.deleteDelete a ServiceNow databasedestructiveservicenow_table.databases.getGet a ServiceNow databasereadservicenow_table.databases.listList ServiceNow databasesreadservicenow_table.databases.updateUpdate a ServiceNow databasewriteservicenow_table.groups.createCreate a ServiceNow groupwriteservicenow_table.groups.deleteDelete a ServiceNow groupdestructiveservicenow_table.groups.getGet a ServiceNow groupreadservicenow_table.groups.listList ServiceNow groupsreadservicenow_table.groups.updateUpdate a ServiceNow groupwriteservicenow_table.hardware_assets.createCreate a ServiceNow hardware assetwriteservicenow_table.hardware_assets.deleteDelete a ServiceNow hardware assetdestructiveservicenow_table.hardware_assets.getGet a ServiceNow hardware assetreadservicenow_table.hardware_assets.listList ServiceNow hardware assetsreadservicenow_table.hardware_assets.updateUpdate a ServiceNow hardware assetwriteservicenow_table.incidents.createCreate a ServiceNow incidentwriteservicenow_table.incidents.deleteDelete a ServiceNow incidentdestructiveservicenow_table.incidents.getGet a ServiceNow incidentreadservicenow_table.incidents.listList ServiceNow incidentsreadservicenow_table.incidents.updateUpdate a ServiceNow incidentwriteservicenow_table.knowledge_articles.createCreate a ServiceNow knowledge articlewriteservicenow_table.knowledge_articles.deleteDelete a ServiceNow knowledge articledestructiveservicenow_table.knowledge_articles.getGet a ServiceNow knowledge articlereadservicenow_table.knowledge_articles.listList ServiceNow knowledge articlesreadservicenow_table.knowledge_articles.updateUpdate a ServiceNow knowledge articlewriteservicenow_table.locations.createCreate a ServiceNow locationwriteservicenow_table.locations.deleteDelete a ServiceNow locationdestructiveservicenow_table.locations.getGet a ServiceNow locationreadservicenow_table.locations.listList ServiceNow locationsreadservicenow_table.locations.updateUpdate a ServiceNow locationwriteservicenow_table.network_gear.createCreate a ServiceNow network devicewriteservicenow_table.network_gear.deleteDelete a ServiceNow network devicedestructiveservicenow_table.network_gear.getGet a ServiceNow network devicereadservicenow_table.network_gear.listList ServiceNow network devicesreadservicenow_table.network_gear.updateUpdate a ServiceNow network devicewriteservicenow_table.problems.createCreate a ServiceNow problemwriteservicenow_table.problems.deleteDelete a ServiceNow problemdestructiveservicenow_table.problems.getGet a ServiceNow problemreadservicenow_table.problems.listList ServiceNow problemsreadservicenow_table.problems.updateUpdate a ServiceNow problemwriteservicenow_table.records.createCreate a record in any ServiceNow tablewriteservicenow_table.records.deleteDelete a record from any ServiceNow tabledestructiveservicenow_table.records.getGet any ServiceNow record by sys_idreadservicenow_table.records.listQuery any ServiceNow tablereadservicenow_table.records.patchPatch a record in any ServiceNow tablewriteservicenow_table.records.updateReplace a record in any ServiceNow tablewriteservicenow_table.request_items.createCreate a ServiceNow requested itemwriteservicenow_table.request_items.deleteDelete a ServiceNow requested itemdestructiveservicenow_table.request_items.getGet a ServiceNow requested itemreadservicenow_table.request_items.listList ServiceNow requested itemsreadservicenow_table.request_items.updateUpdate a ServiceNow requested itemwriteservicenow_table.requests.createCreate a ServiceNow service requestwriteservicenow_table.requests.deleteDelete a ServiceNow service requestdestructiveservicenow_table.requests.getGet a ServiceNow service requestreadservicenow_table.requests.listList ServiceNow service requestsreadservicenow_table.requests.updateUpdate a ServiceNow service requestwriteservicenow_table.servers.createCreate a ServiceNow serverwriteservicenow_table.servers.deleteDelete a ServiceNow serverdestructiveservicenow_table.servers.getGet a ServiceNow serverreadservicenow_table.servers.listList ServiceNow serversreadservicenow_table.servers.updateUpdate a ServiceNow serverwriteservicenow_table.slas.createCreate a ServiceNow SLA recordwriteservicenow_table.slas.deleteDelete a ServiceNow SLA recorddestructiveservicenow_table.slas.getGet a ServiceNow SLA recordreadservicenow_table.slas.listList ServiceNow SLA recordsreadservicenow_table.slas.updateUpdate a ServiceNow SLA recordwriteservicenow_table.tasks.createCreate a ServiceNow taskwriteservicenow_table.tasks.deleteDelete a ServiceNow taskdestructiveservicenow_table.tasks.getGet a ServiceNow taskreadservicenow_table.tasks.listList ServiceNow tasksreadservicenow_table.tasks.updateUpdate a ServiceNow taskwriteservicenow_table.users.createCreate a ServiceNow userwriteservicenow_table.users.deleteDelete a ServiceNow userdestructiveservicenow_table.users.getGet a ServiceNow userreadservicenow_table.users.listList ServiceNow usersreadservicenow_table.users.updateUpdate a ServiceNow userwrite
Questions
The ServiceNow MCP server, answered.
Is there a ServiceNow MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 126 ServiceNow actions, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by ServiceNow.
What do I need to connect ServiceNow?
ServiceNow integration user and That user's password. Plus your instance host. The free call account { op: "connections.requirements", service: "servicenow_table" } lists exactly what to paste.
Can an AI agent delete or change things in ServiceNow?
Only if its key allows it, and only with an explicit confirmation. 25 ServiceNow actions are destructive, including delete a ServiceNow incident, delete a ServiceNow user and delete a ServiceNow contract. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.
Will an AI agent use up my ServiceNow API limit?
actionlake paces every call to the limits in the ServiceNow service file: 3,600 calls an hour per connection. Repeated reads are answered from cache (50 ServiceNow actions can be), which never reaches ServiceNow.
What does a ServiceNow action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (50 ServiceNow actions page). Cache hits, searches, dry runs and calls ServiceNow refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
Which ServiceNow API does it cover?
The ServiceNow API now at your ServiceNow instance's API base URL, which you enter when connecting (path /api/now). It is built from ServiceNow's documentation as read on 8 September 2026. 126 actions in 1 area, each one in the signed service file (version 2.0.0).
Can I combine ServiceNow with my other systems?
Yes. ask joins ServiceNow to ConnectWise PSA or NetSuite on the same customer and returns the answer rather than every row. ServiceNow maps crm.company, which 227 other connectors also map.
Does actionlake keep my ServiceNow data, and where?
actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to an hour, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your ServiceNow credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.
Which AI clients can use it?
Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.
Give your agent ServiceNow today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.