github TypeScript analyzed 5acdcc7

LeassTaTT/servicenow-mcp-ai

github

ServiceNow MCP server — 67 tools over the full REST surface, with plan-and-apply write safety, capability preflight and an ACL security scan.

maintainer
LeassTaTT
licence
MIT
first seen
2026-06-18
last seen
2026-06-26
releases · 30d
0
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 20 tools
transport stdio · streamable-http · http verified reported listed in the official MCP registry counts 20 tools · 0 res · 0 prompts permission surface via README inference

tools

  • admin

    servicenow_set_credentials

  • aggregate

    servicenow_aggregate

  • all

    every package below.

  • atf

    servicenow_list_atf_tests

  • attachment

    servicenow_list_attachments

  • batch

    servicenow_batch

  • catalog

    servicenow_list_catalogs

  • change

    servicenow_list_changes

  • cmdb

    servicenow_list_cis

  • codecheck

    servicenow_lint_script

  • core

    (default) — table, schema, aggregate, attachment.

  • docs

    servicenow_docs_list

  • email

    servicenow_send_email

  • flows

    servicenow_trace_table_event

  • importset

    servicenow_insert_import_set_row

  • instance

    servicenow_snapshot_instance

  • knowledge

    servicenow_search_knowledge

  • schema

    servicenow_list_tables

  • scripts

    servicenow_list_scripts

  • table

    servicenow_query_table

skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 5acdcc7 · analyzer v33 · 1w ago

skills & prompt files 1

danger signals3

code evidence vv2.0.0 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 139

filesystem 24

  • fs (weak) IvanBBaev-servicenow-mcp-ai-5acdcc7/scripts/gen-manifest.mjs :5 import { writeFileSync } from "node:fs";
  • fs (weak) IvanBBaev-servicenow-mcp-ai-5acdcc7/scripts/readme-tools.mjs :6 import { readFileSync, writeFileSync } from "node:fs";
  • fs (weak) IvanBBaev-servicenow-mcp-ai-5acdcc7/scripts/ts-source-loader.mjs :7 import { existsSync } from "node:fs";
  • fs IvanBBaev-servicenow-mcp-ai-5acdcc7/src/api/compare.ts :2 import { promises as fs } from "node:fs";
  • fs IvanBBaev-servicenow-mcp-ai-5acdcc7/src/api/docs.ts :1 import { promises as fs } from "node:fs";
  • fs IvanBBaev-servicenow-mcp-ai-5acdcc7/src/core/auth.ts :1 import { readFileSync } from "node:fs";
  • fs IvanBBaev-servicenow-mcp-ai-5acdcc7/src/core/config.ts :8 } from "node:fs";
  • fs IvanBBaev-servicenow-mcp-ai-5acdcc7/src/core/mtls.ts :1 import { readFileSync } from "node:fs";
  • fs IvanBBaev-servicenow-mcp-ai-5acdcc7/src/core/write-journal.ts :1 import { appendFileSync, mkdirSync } from "node:fs";
  • fs (weak) IvanBBaev-servicenow-mcp-ai-5acdcc7/test/all-tools-smoke.test.js :4 import { mkdtempSync, rmSync } from "node:fs";
  • fs (weak) IvanBBaev-servicenow-mcp-ai-5acdcc7/test/codecheck.test.js :4 import { mkdtempSync, rmSync, existsSync } from "node:fs";
  • fs (weak) IvanBBaev-servicenow-mcp-ai-5acdcc7/test/compare.test.js :3 import { promises as fs } from "node:fs";
show 12 more
  • fs (weak) IvanBBaev-servicenow-mcp-ai-5acdcc7/test/config-store.test.js :3 import { promises as fs } from "node:fs";
  • fs (weak) IvanBBaev-servicenow-mcp-ai-5acdcc7/test/docs.test.js :3 import { promises as fs } from "node:fs";
  • fs (weak) IvanBBaev-servicenow-mcp-ai-5acdcc7/test/env-docs-sync.test.js :15 import { readFileSync, readdirSync } from "node:fs";
  • fs (weak) IvanBBaev-servicenow-mcp-ai-5acdcc7/test/jira-http.test.js :3 import fs from "node:fs/promises";
  • fs (weak) IvanBBaev-servicenow-mcp-ai-5acdcc7/test/manifest-snapshot.test.js :3 import { readFileSync } from "node:fs";
  • fs (weak) IvanBBaev-servicenow-mcp-ai-5acdcc7/test/mcp-smoke.test.js :3 import { promises as fs } from "node:fs";
  • fs (weak) IvanBBaev-servicenow-mcp-ai-5acdcc7/test/oauth.test.js :6 import { mkdtempSync, rmSync, readFileSync } from "node:fs";
  • fs (weak) IvanBBaev-servicenow-mcp-ai-5acdcc7/test/profiles.test.js :3 import { promises as fs } from "node:fs";
  • fs (weak) IvanBBaev-servicenow-mcp-ai-5acdcc7/test/readme-sync.test.js :3 import { readFileSync } from "node:fs";
  • fs (weak) IvanBBaev-servicenow-mcp-ai-5acdcc7/test/snapshot.test.js :3 import { promises as fs } from "node:fs";
  • fs (weak) IvanBBaev-servicenow-mcp-ai-5acdcc7/test/write-journal.test.js :7 import { mkdtempSync, readFileSync, rmSync } from "node:fs";
  • fs (weak) IvanBBaev-servicenow-mcp-ai-5acdcc7/test/write-mode.test.js :3 import { mkdtempSync, readFileSync, readdirSync } from "node:fs";

shell / exec 1

  • shell IvanBBaev-servicenow-mcp-ai-5acdcc7/src/core/oauth-login.ts :2 import { spawn } from "node:child_process";

network 6

  • net IvanBBaev-servicenow-mcp-ai-5acdcc7/src/core/auth.ts :240 res = await fetch(url, {
  • net IvanBBaev-servicenow-mcp-ai-5acdcc7/src/core/http.ts :148 return fetch(url, init);
  • net IvanBBaev-servicenow-mcp-ai-5acdcc7/src/core/jira/http.ts :150 fetch(url, {
  • net IvanBBaev-servicenow-mcp-ai-5acdcc7/src/core/oauth-login.ts :1 import { createServer } from "node:http";
  • net IvanBBaev-servicenow-mcp-ai-5acdcc7/src/mcp/transport.ts :1 import { createServer } from "node:http";
  • net (weak) IvanBBaev-servicenow-mcp-ai-5acdcc7/test/oauth.test.js :4 import { createServer } from "node:http";

secrets 8

  • secrets IvanBBaev-servicenow-mcp-ai-5acdcc7/src/core/jira/config.ts :23 apiToken: process.env.JIRA_API_TOKEN?.trim() ?? "",
  • secrets IvanBBaev-servicenow-mcp-ai-5acdcc7/src/core/mtls.ts :30 process.env.SN_TLS_CLIENT_KEY,
  • secrets IvanBBaev-servicenow-mcp-ai-5acdcc7/src/core/settings.ts :216 return process.env.SN_HTTP_TOKEN?.trim() || undefined;
  • secrets (weak) IvanBBaev-servicenow-mcp-ai-5acdcc7/test/auth.test.js :14 process.env.SN_OAUTH_CLIENT_SECRET = "shhh";
  • secrets (weak) IvanBBaev-servicenow-mcp-ai-5acdcc7/test/config-store.test.js :27 process.env.SN_PASSWORD = "changed-behind-the-back";
  • secrets (weak) IvanBBaev-servicenow-mcp-ai-5acdcc7/test/helpers.js :17 process.env.SN_PASSWORD = "s3cret";
  • secrets (weak) IvanBBaev-servicenow-mcp-ai-5acdcc7/test/jira-http.test.js :73 assert.equal(process.env.JIRA_API_TOKEN, "secret-token");
  • secrets (weak) IvanBBaev-servicenow-mcp-ai-5acdcc7/test/oauth.test.js :176 assert.equal(process.env.SN_OAUTH_REFRESH_TOKEN, "rt-123");

install hooks 1

  • prepublishOnly IvanBBaev-servicenow-mcp-ai-5acdcc7/package.json :46 npm run check

declared dependencies 13

  • @modelcontextprotocol/sdk@^1.12.0
  • dotenv@^16.4.5
  • zod@^3.23.8
  • @eslint/js@^9.39.4
  • @types/node@^22.0.0
  • c8@^11.0.0
  • eslint@^9.39.4
  • eslint-config-prettier@^9.1.2
  • fast-check@^4.8.0
  • globals@^15.15.0
  • prettier@^3.8.4
  • typescript@^5.5.0
show 1 more
  • typescript-eslint@^8.61.0