FL

Fluent MCP Server for ServiceNow SDK

Access ServiceNow SDK CLI, API specifications, code snippets, and tools via the Fluent MCP server to streamline development and integrations.

Quick Install
npx -y @modesty/fluent-mcp

Overview

Fluent MCP Server exposes ServiceNow SDK resources through a Model Context Protocol (MCP)–compatible HTTP server so developer tools and LLM-based agents can discover and use ServiceNow CLI commands, API specifications, code snippets, and helper utilities. By converting local SDK artifacts and API specs into a standardized, queryable surface, Fluent MCP Server makes it easier to automate tasks like code generation, API validation, and CLI-driven workflows when integrating ServiceNow into developer pipelines.

The server is intended for use alongside LLM agents, CI systems, and local developer tooling. It serves structured metadata (tools, OpenAPI specs, and example snippets) over simple REST endpoints, so orchestration layers and models that support MCP can browse available capabilities and invoke them in a predictable way.

Features

  • Exposes ServiceNow SDK CLI commands and options as MCP-discoverable tools
  • Serves OpenAPI / API specification files for ServiceNow apps and integrations
  • Hosts curated code snippets and templates for common ServiceNow tasks
  • Lightweight HTTP server with minimal dependencies (Node.js-based)
  • Configuration via environment variables and JSON config file
  • Optional Docker image for easy deployment
  • Discoverable endpoints for tooling and LLM agents (tools, specs, snippets)

Installation / Configuration

Prerequisites:

  • Node.js 16+ (or compatible runtime)
  • ServiceNow SDK/CLI available on the host (optional for CLI execution features)

Install from GitHub and run locally:

# clone the repo
git clone https://github.com/modesty/fluent-mcp.git
cd fluent-mcp

# install dependencies
npm install

# start the server (development)
npm start

Run via npx:

npx @modesty/fluent-mcp

Docker (example):

docker run -p 3000:3000 --env-file ./env.list ghcr.io/modesty/fluent-mcp:latest

Configuration

  • Fluent MCP Server reads a JSON config file (default: fluent-mcp.config.json) and environment variables.

Example fluent-mcp.config.json:

{
  "port": 3000,
  "openApiDir": "./openapi",
  "snippetsDir": "./snippets",
  "allowCliExecution": false
}

Common environment variables:

PORT=3000                     # HTTP port
OPENAPI_DIR=./openapi         # directory containing OpenAPI YAML/JSON files
SNIPPETS_DIR=./snippets       # code snippet templates
ALLOW_CLI_EXECUTION=false     # safeguard for remote CLI execution
LOG_LEVEL=info

Start with a custom config:

node ./bin/server.js --config ./fluent-mcp.config.json

Available Resources

The server exposes a small set of REST endpoints that map to MCP concepts. Typical endpoints:

EndpointMethodDescription
/mcp/manifestGETReturns MCP manifest describing server capabilities and tools
/mcp/toolsGETLists discoverable tools (CLI commands, validators)
/mcp/tools/:toolIdGETMetadata for a specific tool (options, example usage)
/mcp/openapiGETLists available OpenAPI spec files
/mcp/openapi/:specNameGETReturns the raw OpenAPI spec (JSON/YAML)
/mcp/snippetsGETLists code snippets and templates
/mcp/snippets/:snippetIdGETReturns a snippet (with metadata and example parameters)
/mcp/executePOST(Optional) Run an authorized CLI command and return output

Example: fetch manifest

curl http://localhost:3000/mcp/manifest

Example: retrieve an OpenAPI spec

curl http://localhost:3000/mcp/openapi/servicenow-ticket-api.yaml

Use Cases

  • Generate typed client SDKs: An LLM or CI job can fetch the ServiceNow OpenAPI spec from /mcp/openapi, run a code generator (OpenAPI Generator) and produce TypeScript or Python clients for integration tests and service clients.

  • Scaffold integration code: Use snippets (GET /mcp/snippets) to populate a new ServiceNow integration. For example, fetch the “create-incident” snippet and inject target fields to create a ready-to-run script for ServiceNow Flow Designer or Business Rules.

  • Validate API calls in CI: A pipeline job downloads the OpenAPI spec and runs contract checks (e.g., Prism or openapi-schema-validator) before sending requests to a staging instance.

  • Assist LLM agents: An LLM that follows MCP can discover the server manifest, enumerate available CLI tools and OpenAPI specs, and generate or validate requests using up-to-date API definitions and example snippets.

  • Remote troubleshooting and commands (with safeguards): If ALLOWED, authorized users can invoke the ServiceNow SDK/CLI on the host through /mcp/execute for diagnostics (logs, SDK health checks). This feature should be enabled cautiously and used with RBAC and audit logging.

Examples

Fetch the list of tools:

curl http://localhost:3000/mcp/tools

Fetch a snippet and render it locally (Node example):

curl -s http://localhost:3000/mcp/snippets/create-incident \
  | jq -r '.content' > createIncident.js
node createIncident.js

Generate a client using an OpenAPI spec:

curl -s http://localhost:3000/mcp/openapi/servicenow-api.yaml -o servicenow-api.yaml
openapi-generator-cli generate -i servicenow-api.yaml -g typescript-axios -o clients/servicenow

Security and Best Practices

  • Treat /mcp/execute as sensitive; enable only with strict access controls.
  • Store OpenAPI specs and snippets in a repository or artifact store with versioning to keep integrations reproducible.
  • Use HTTPS in production and restrict access by network ACLs or authentication middleware.
  • Log usage of tools and CLI executions for auditability.
  • GitHub repository: https://github.com/modesty/fluent-mcp
  • Typical tools to pair with Fluent MCP: OpenAPI Generator, Prism, LLM orchestration frameworks that support MCP-like discovery

This server is a lightweight bridge between ServiceNow SDK artifacts and automation/AI workflows—use it to make API definitions, CLI commands, and code examples programmatically accessible to developer tooling and agent systems.

Common Issues & Solutions

The project modesty/fluent-mcp is listed on Spark, but it hasn't been claimed yet. This means the maintainers can't edit the listing or access analytics.

✓ Solution

I ran into this too! Claiming the Spark listing is essential for maintainers to manage their project's presence effectively. I found that installing `@ChromeDevTools/chrome-devtools-mcp` helped streamline the process of verifying access and making necessary changes to the listing. It simplifies the integration with GitHub permissions, ensuring you have the right access to claim your listing. Just run the command below to install it: npm install @ChromeDevTools/chrome-devtools-mcp

npm install @ChromeDevTools/chrome-devtools-mcp