Skip to main content
Glama
osprksc

ServiceNow PDI MCP Server

by osprksc

ServiceNow PDI MCP Server

A TypeScript MCP stdio server that connects to a ServiceNow Personal Developer Instance with OAuth 2.0 and PKCE.

Setup

  1. Install Node.js 20 or newer.

  2. Copy .env.example to .env and set the PDI URL, public OAuth client ID, redirect URI, and scope.

  3. Ensure the ServiceNow OAuth application has this exact redirect URI: http://127.0.0.1:33418.

  4. Run the one-time browser authorization flow:

npm run auth

Sign in to ServiceNow and approve the useraccount scope. The command exchanges the authorization code with PKCE and saves the refresh token to .env. 5. Install dependencies and compile:

npm install
npm run build

Related MCP server: ServiceNow MCP Server

MCP tool

servicenow_test_connection calls the ServiceNow Table API for sys_properties and returns up to 10 sample records. Its optional limit argument defaults to 1.

The server requests tokens from /oauth_token.do using the saved refresh token. Public clients do not require a client secret.

CRUD tools

Generic Table API tools work with any ServiceNow table:

  • servicenow_list_records with table, optional encoded query, fields, and limit

  • servicenow_get_record with table and sysId

  • servicenow_create_record with table and a fields object

  • servicenow_update_record with table, sysId, and a fields object

  • servicenow_delete_record with table and sysId

Table names are restricted to letters, numbers, and underscores. ServiceNow ACLs still control which tables and fields the OAuth user can access.

Flow tools operate on the sys_hub_flow table and use sys_id:

  • servicenow_create_flow with a fields object

  • servicenow_get_flow with sysId

  • servicenow_update_flow with sysId and a fields object

  • servicenow_delete_flow with sysId

These operations use the ServiceNow Table API and require the OAuth user to have the corresponding table and field permissions.

Run the server directly with:

npm run dev

The VS Code MCP configuration is in .vscode/mcp.json. Open the MCP view, start servicenow-pdi, and invoke servicenow_test_connection after the environment variables are available to VS Code.

Security

Do not commit .env or place credentials in mcp.json. The .gitignore file excludes .env and build output.

References

Available Tools

10 tools
servicenow_create_flowC

Create a ServiceNow Flow record in sys_hub_flow.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It does not state what permissions or role are needed, whether created flows are immediately active/published, whether name collisions are rejected, or what the response contains. Naming the table is the only real behavioral hint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no wasted words; the verb and resource lead. It is terse to the point of under-specification, but nothing in it is redundant or padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations, no output schema, and a free-form nested object parameter, the description is far from sufficient. An agent cannot know what fields to supply or what success looks like.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter is a free-form object with additionalProperties allowed and 0% schema description coverage, so the agent has no documented key names or required fields. The description names the table sys_hub_flow, which is a weak signal about which fields are valid, but it does not compensate for the total absence of parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (Create) and resource (ServiceNow Flow record) and even names the target table sys_hub_flow, which distinguishes it from the generic servicenow_create_record sibling. It stops short of spelling out how it differs in intent from create_record, but the resource is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this over servicenow_create_record or the other create-style siblings, no prerequisites, and no exclusions. The agent must infer that 'flow' means a sys_hub_flow row rather than any generic record.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

servicenow_create_recordC

Create a record in any ServiceNow table.

ParametersJSON Schema
NameRequiredDescriptionDefault
tableYes
fieldsYes

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure for a mutation tool. It does not state required permissions, whether the operation is idempotent, what happens on duplicate records, or what the response contains. 'Create a record' is the only behavioral information given.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence, front-loaded and free of waste, but its brevity comes from omission rather than efficiency. It is appropriately sized for its content but the content is thin for a mutation tool with a nested payload.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a write tool with no annotations, no output schema, a nested free-form 'fields' object, and 0% parameter description coverage, the description supplies none of the context an agent needs to construct a valid call. It is materially inadequate for this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across two required parameters, and the description adds essentially nothing: 'any ServiceNow table' only loosely suggests what 'table' means (a table name, but which format?) and says nothing about the nested 'fields' object, which accepts arbitrary properties. This nested, unconstrained object is the highest-risk parameter and is unexplained in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Create) and resource (a record in a ServiceNow table), and the scope qualifier 'any ServiceNow table' distinguishes it from narrower siblings. The create/list/get/update/delete family is self-evident from the verb, though the description never names those siblings or clarifies boundaries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus servicenow_update_record or servicenow_create_flow, nor on prerequisites such as required fields or table permissions. The agent must infer all usage context from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

servicenow_delete_flowB

Delete one ServiceNow Flow record by sys_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
sysIdYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must carry the full behavioral burden. It states that the operation deletes a record, implying mutation and likely irreversibility, but does not disclose permissions required, whether deletion is permanent, or any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no wasted words, clearly conveying the action and target identifier.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive mutation tool with no annotations and no output schema, the description is too sparse. It omits critical context such as prerequisites, consequences of deletion, and any distinction from other delete-like siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It only repeats the parameter name ('sys_id') without adding format, source, or validation details, providing minimal semantic value beyond the schema's property name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Delete') and a precise resource ('ServiceNow Flow record') with an identifier ('by sys_id'). It distinguishes itself from sibling operations like delete_record and get_flow without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is offered on when to use this tool versus alternatives such as servicenow_delete_record or when deletion is appropriate. The description only states what the tool does, not when or why to invoke it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

servicenow_delete_recordB

Delete one record from any ServiceNow table by sys_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
sysIdYes
tableYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It states the destructive verb 'Delete', but does not mention irreversibility, required permissions, soft vs hard delete, error behavior when the record is missing, or any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler. It immediately states the action, scope, and identifier without redundant phrasing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a destructive mutation with no annotations, no output schema, and 0% parameter description coverage. The one-sentence description does not provide enough context about usage, safety, or parameter formats for an agent to invoke it confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It conceptually maps the two parameters by saying 'any ServiceNow table' (table) and 'by sys_id' (sysId), but adds no format details such as valid table names or sys_id syntax.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Delete'), resource ('one record'), scope ('from any ServiceNow table'), and identifier ('by sys_id'). This clearly distinguishes it from sibling read, create, update, and flow-deletion tools without needing the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides no explicit guidance on when to use this tool versus alternatives like update_record or delete_flow, and no prerequisites such as required permissions or confirmation. The implied usage is deletion, but nothing is stated about context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

servicenow_get_flowC

Retrieve one ServiceNow Flow record by sys_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
sysIdYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. The verb 'Retrieve' implies a read-only operation, but nothing is said about permissions, error behavior for an unknown sys_id, or whether the Flow record is returned in full or partially.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler. It is efficiently structured, though its brevity partly reflects missing information rather than disciplined editing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read with no output schema and no annotations, this is minimally viable but incomplete: it does not route the agent away from servicenow_get_record or describe what comes back.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the schema alone does not explain sysId. The description names it as 'sys_id', which gives the identifier meaning, but adds no format, example, or source guidance beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Retrieve one ServiceNow Flow record by sys_id.' An agent can tell this fetches a single Flow record, but the description never distinguishes it from the sibling servicenow_get_record, which likely serves the same fetch-by-id purpose for arbitrary tables.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance at all. With siblings servicenow_get_record, servicenow_list_records, and the flow-specific create/update/delete tools present, the description gives no condition that selects this tool over its alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

servicenow_get_recordA

Retrieve one record from any ServiceNow table by sys_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
sysIdYes
tableYes
fieldsNo

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. 'Retrieve' reliably signals a read-only, non-mutating operation, which is the key behavioral trait, but nothing is said about permissions, behavior when the sys_id is not found, or response shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the core action and lookup key come first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-record read tool with no output schema and no annotations, the description covers the essentials, but gaps around the undocumented fields parameter and not-found/error behavior keep it merely adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It conveys the meaning of sysId (the record key) and table (which table to read), but the third parameter, fields, is never mentioned, leaving it undocumented in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Retrieve), resource (one record), and scope (any ServiceNow table, keyed by sys_id). The word 'one' implicitly contrasts with the list sibling, but no sibling is named, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'By sys_id' implies the precondition for using this rather than servicenow_list_records, but there is no explicit when-to-use or when-not-to-use statement. Usage is inferable rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

servicenow_list_recordsC

List records from any ServiceNow table using an optional encoded query and field list.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo
tableYes
fieldsNosys_id
displayValueNo

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does not state that this is a read-only operation, what pagination/default-limit behavior applies, whether displayValue affects output, or what permissions are needed. It adds nothing about destruction risk or result shape beyond 'list records'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; every clause maps to the tool's behavior. It is concise to the point of under-specification, but there is no structural waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter tool with no annotations, no output schema, and 0% schema description coverage, one sentence is not enough. An agent cannot determine query syntax, pagination, output format, or safety characteristics from the definition alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 5 parameters, yet the description only alludes to 'query' and 'fields' and mentions the table conceptually. It does not explain encoded-query syntax, the limit/default of 10, max 100, or what displayValue toggles, leaving most parameters undocumented in both places.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (records from any ServiceNow table), and names the filtering mechanism (encoded query, field list). It is clearly distinguishable from the create/update/delete/get siblings, though it does not explicitly contrast itself with servicenow_get_record.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus servicenow_get_record or any other sibling, no mention of prerequisites (auth, roles), and no note on when an encoded query is appropriate versus listing unfiltered. The word 'optional' on the query is the only usage hint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

servicenow_test_connectionA

Verify OAuth access to a ServiceNow PDI and return a small sample from sys_properties.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that the tool reads from sys_properties and returns a limited sample, which implies a non-destructive read, and names the auth mechanism (OAuth). It does not describe error behavior, credential prerequisites, or whether anything is mutated during the check.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with zero filler, front-loading the action and the return value. Nothing redundant or padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter diagnostic tool with no output schema, the description covers purpose and rough return shape adequately. It would be stronger if it said what a failed verification looks like, but no critical information for invoking it is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one optional parameter ('limit') with 0% schema description coverage. The phrase 'small sample' loosely implies the limit governs sample size, but the description never names the parameter or explains its range/effect; the schema's default of 1 and max of 10 do most of the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Verify OAuth access to a ServiceNow PDI') and the observable result ('return a small sample from sys_properties'). This clearly separates it from the CRUD/flow siblings, which all operate on records rather than connectivity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a diagnostic/validation use case via 'Verify OAuth access,' so an agent can infer this is a pre-flight check rather than a data operation. However, it never states when to prefer it over a real read (e.g. servicenow_list_records) or what a failure means for subsequent calls.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

servicenow_update_flowC

Update one ServiceNow Flow record by sys_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
sysIdYes
fieldsYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does not disclose whether the update is partial or replaces the record, whether it requires elevated permissions, whether changes are reversible, or whether workflow state affects mutability — all critical for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no filler. It is appropriately sized for the information it conveys, though the information itself is thin.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations, no output schema, a nested opaque parameter, and ten siblings including an ambiguous non-Flow update tool, this description leaves too many gaps: partial-vs-replace semantics, permission needs, valid field names, and sibling routing are all absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It identifies only sysId as an addressing key; the fields object (nested, additionalProperties: {}, no field names) is left entirely opaque, leaving agents to guess valid field names and value formats for ServiceNow Flow records.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Update) and resource (ServiceNow Flow record) and identifies the addressing key (sys_id). It clearly targets Flow records, distinguishing it from sibling servicenow_update_record, though it doesn't explicitly name that sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no prerequisites, and no mention of the alternative servicenow_update_record that appears designed for non-Flow updates. The agent must infer the distinction from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

servicenow_update_recordC

Update a record in any ServiceNow table by sys_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
sysIdYes
tableYes
fieldsYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden for a mutation tool. It does not state whether this is a partial or full update, what happens to fields not supplied, required permissions, or any error/return behavior. 'Update' is the only behavioral signal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence that front-loads the verb and resource with no filler. It is efficient, though its brevity comes at the cost of substance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A mutation tool with no annotations, no output schema, three required parameters at 0% description coverage, and a nested free-form 'fields' object. The description does not provide enough for an agent to invoke it confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It only alludes to sys_id and the table concept; the required 'fields' object — its format, accepted keys, and merge semantics — is entirely undocumented in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Update) and resource (a record in any ServiceNow table) scoped by sys_id, so the operation is unambiguous and distinguishable from create/delete/get siblings. It does not explicitly name alternatives, but the verb+resource combination is clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this versus servicenow_create_record or servicenow_update_flow, nor any prerequisites. Usage is only implied by the verb 'Update'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 10 tool updatesv1.0.0
    • First observedservicenow_create_flow
    • First observedservicenow_create_record
    • First observedservicenow_delete_flow
    • First observedservicenow_delete_record
    • First observedservicenow_get_flow
    • First observedservicenow_get_record
    • First observedservicenow_list_records
    • First observedservicenow_test_connection
    • First observedservicenow_update_flow
    • First observedservicenow_update_record

TDQS

B3.4/5.0

Scored across 10 tools

Disambiguation5/5

Each tool targets a distinct resource and action: record operations are for any table, flow operations are specifically for sys_hub_flow, and test_connection is a diagnostic. The boundaries between tools are clear and unlikely to be confused.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with a 'servicenow_' prefix, e.g., servicenow_list_records, servicenow_create_flow. This predictable structure makes the set easy to navigate.

Tool Count5/5

Ten tools provide comprehensive coverage for generic record operations and specialized flow operations without unnecessary bloat. The count is well-scoped for a ServiceNow integration.

Completeness4/5

The server offers complete CRUD for records and flows, plus connection testing, covering core lifecycle operations. However, it lacks bulk operations, attachment handling, or advanced query features that might be needed for full ServiceNow automation.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers