servicenow-mcp-server 2.1.1 → 2.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -66,7 +66,16 @@
66
66
  "Bash(brew install:*)",
67
67
  "Bash(mcp-publisher init:*)",
68
68
  "Bash(mcp-publisher login:*)",
69
- "Bash(mcp-publisher publish:*)"
69
+ "Bash(mcp-publisher publish:*)",
70
+ "Bash(docker build:*)",
71
+ "Bash(docker login:*)",
72
+ "Bash(docker tag:*)",
73
+ "Bash(docker push:*)",
74
+ "Bash(magick:*)",
75
+ "Bash(docker info:*)",
76
+ "Bash(docker scout:*)",
77
+ "Bash(docker run:*)",
78
+ "Bash(git restore:*)"
70
79
  ],
71
80
  "deny": [],
72
81
  "ask": []
package/.dockerignore ADDED
@@ -0,0 +1,52 @@
1
+ # Node modules (will be installed in container)
2
+ node_modules/
3
+ npm-debug.log
4
+ # Keep package-lock.json for reproducible builds
5
+ # package-lock.json
6
+
7
+ # Development files
8
+ .env
9
+ .env.*
10
+ .env.backup
11
+ .DS_Store
12
+ *.log
13
+
14
+ # Git
15
+ .git/
16
+ .gitignore
17
+ .github/
18
+
19
+ # MCP Registry tokens
20
+ .mcpregistry_*
21
+
22
+ # Config with credentials
23
+ config/servicenow-instances.json
24
+
25
+ # Tests
26
+ tests/
27
+ coverage/
28
+ *.test.js
29
+ __tests__/
30
+
31
+ # Development tools
32
+ .vscode/
33
+ .idea/
34
+ *.swp
35
+ *.swo
36
+
37
+ # Documentation (keep essential only)
38
+ docs/research/
39
+
40
+ # Examples and scripts
41
+ examples/
42
+ scripts/extract-table-metadata.js
43
+ scripts/background_script_*.js
44
+ scripts/link_ui_policy_actions_*.js
45
+ scripts/set_update_set_*.js
46
+ scripts/test_*.js
47
+
48
+ # Setup files
49
+ setup/
50
+
51
+ # IDE
52
+ .claude/
package/Dockerfile ADDED
@@ -0,0 +1,55 @@
1
+ # ServiceNow MCP Server - Docker Image
2
+ # Author: nczitzer
3
+ # Part of Happy Technologies composable service ecosystem
4
+
5
+ # Stage 1: Dependencies
6
+ FROM node:22-alpine AS dependencies
7
+
8
+ WORKDIR /app
9
+
10
+ # Copy package files
11
+ COPY package*.json ./
12
+
13
+ # Install all dependencies (including dev for build)
14
+ RUN npm install && \
15
+ npm cache clean --force
16
+
17
+ # Stage 2: Production
18
+ FROM node:22-alpine AS production
19
+
20
+ # Set working directory
21
+ WORKDIR /app
22
+
23
+ # Security: Update Alpine packages to patch vulnerabilities
24
+ RUN apk update && \
25
+ apk upgrade --no-cache && \
26
+ rm -rf /var/cache/apk/*
27
+
28
+ # Copy package.json only (not package-lock to avoid dev dependency references)
29
+ COPY package.json ./
30
+
31
+ # Install only production dependencies and generate clean lockfile
32
+ RUN npm install --package-lock-only --omit=dev && \
33
+ npm ci --omit=dev && \
34
+ npm cache clean --force
35
+
36
+ # Copy application source
37
+ COPY src/ ./src/
38
+ COPY config/ ./config/
39
+ COPY docs/ ./docs/
40
+ COPY LICENSE ./
41
+ COPY README.md ./
42
+
43
+ # Create directory for config
44
+ RUN mkdir -p /app/config
45
+
46
+ # Expose HTTP server port (for SSE transport)
47
+ EXPOSE 3000
48
+
49
+ # Health check
50
+ HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
51
+ CMD node -e "require('http').get('http://localhost:3000/health', (r) => {process.exit(r.statusCode === 200 ? 0 : 1)})"
52
+
53
+ # Default to HTTP server (SSE transport)
54
+ # Use stdio-server.js for Claude Desktop integration
55
+ CMD ["node", "src/server.js"]
package/README.md CHANGED
@@ -549,6 +549,20 @@ DEBUG=true npm run dev
549
549
  - **Tables Supported:** 160+ ServiceNow tables via generic tools
550
550
  - **Batch Operations:** 43+ parallel calls tested successfully
551
551
 
552
+ ## 🙏 Acknowledgments
553
+
554
+ This project was inspired by and built upon ideas from the [Echelon AI Labs ServiceNow MCP Server](https://github.com/echelon-ai-labs/servicenow-mcp). We're grateful for their pioneering work in bringing Model Context Protocol capabilities to ServiceNow, which provided valuable insights and inspiration for developing this multi-instance, metadata-driven implementation.
555
+
556
+ **Key innovations we've added:**
557
+ - Multi-instance support with dynamic routing
558
+ - 40+ tools with natural language search
559
+ - Local script development with Git integration
560
+ - Automated background script execution via sys_trigger
561
+ - Dynamic schema discovery across 160+ tables
562
+ - Convenience tools for common ITSM operations
563
+
564
+ We encourage the community to explore both implementations and contribute to advancing ServiceNow automation through MCP.
565
+
552
566
  ## 📄 License
553
567
 
554
568
  This project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for details.
@@ -0,0 +1,322 @@
1
+ # MCP Server Directory Submissions
2
+
3
+ This guide tracks submissions to major MCP directories for the ServiceNow MCP Server.
4
+
5
+ ## ✅ Already Published
6
+
7
+ ### 1. Official MCP Registry
8
+ - **Status:** ✅ Published
9
+ - **URL:** https://registry.modelcontextprotocol.io/servers/io.github.nickzitzer/servicenow-nodejs
10
+ - **Version:** 2.1.1
11
+ - **Date:** 2025-10-17
12
+
13
+ ### 2. npm Registry
14
+ - **Status:** ✅ Published
15
+ - **URL:** https://www.npmjs.com/package/servicenow-mcp-server
16
+ - **Version:** 2.1.1
17
+
18
+ ### 3. Docker Hub
19
+ - **Status:** ✅ Published
20
+ - **URL:** https://hub.docker.com/r/nczitzer/mcp-servicenow-nodejs
21
+ - **Tags:** 2.1.1, latest
22
+
23
+ ---
24
+
25
+ ## 📋 Pending Submissions
26
+
27
+ ### 1. Official Anthropic Server List (GitHub)
28
+ **Repository:** https://github.com/modelcontextprotocol/servers
29
+
30
+ **Submission Method:** Pull Request
31
+
32
+ **Steps:**
33
+ 1. Fork the repository
34
+ 2. Read CONTRIBUTING.md: https://github.com/modelcontextprotocol/servers/blob/main/CONTRIBUTING.md
35
+ 3. Add server to appropriate category (alphabetically)
36
+ 4. Submit PR with server details
37
+
38
+ **Server Entry Format:**
39
+ ```markdown
40
+ ### ServiceNow MCP Server
41
+ Multi-instance ServiceNow MCP server with 40+ tools, natural language search, and local script development.
42
+
43
+ - **Author:** nczitzer (Happy Technologies LLC)
44
+ - **Repository:** https://github.com/Happy-Technologies-LLC/mcp-servicenow-nodejs
45
+ - **npm:** https://www.npmjs.com/package/servicenow-mcp-server
46
+ - **Docker:** https://hub.docker.com/r/nczitzer/mcp-servicenow-nodejs
47
+ - **MCP Registry:** https://registry.modelcontextprotocol.io/servers/io.github.nickzitzer/servicenow-nodejs
48
+ - **Features:**
49
+ - 40+ MCP tools for ServiceNow operations
50
+ - Multi-instance support
51
+ - Natural language query interface
52
+ - Local script development with Git integration
53
+ - Update set management
54
+ - Background script execution
55
+ - 160+ ServiceNow tables supported
56
+ ```
57
+
58
+ **Status:** 🟡 Ready to submit
59
+
60
+ ---
61
+
62
+ ### 2. Cline's MCP Marketplace
63
+ **Repository:** https://github.com/cline/mcp-marketplace
64
+
65
+ **Submission Method:** GitHub Issue
66
+
67
+ **Steps:**
68
+ 1. Go to: https://github.com/cline/mcp-marketplace/issues/new
69
+ 2. Create issue with:
70
+ - **GitHub Repo URL:** https://github.com/Happy-Technologies-LLC/mcp-servicenow-nodejs
71
+ - **Logo Image:** 400×400 PNG (use assets/logo.svg converted to PNG)
72
+ 3. Wait for review (typically a couple days)
73
+
74
+ **Logo Preparation:**
75
+ ```bash
76
+ # Convert SVG to PNG (400x400)
77
+ # Use ImageMagick or online converter
78
+ convert assets/logo.svg -resize 400x400 assets/logo-400x400.png
79
+ ```
80
+
81
+ **Status:** 🟡 Ready to submit (need PNG logo)
82
+
83
+ ---
84
+
85
+ ### 3. Smithery
86
+ **Website:** https://smithery.ai/
87
+
88
+ **Submission Method:** Via website or GitHub
89
+
90
+ **Steps:**
91
+ 1. Visit https://smithery.ai/
92
+ 2. Look for "Submit Server" or "Add Server" option
93
+ 3. Provide server details:
94
+ - npm package: servicenow-mcp-server
95
+ - GitHub: https://github.com/Happy-Technologies-LLC/mcp-servicenow-nodejs
96
+ - Description: Multi-instance ServiceNow MCP server with 40+ tools
97
+
98
+ **Alternative:** Check https://github.com/smithery-ai for submission guidelines
99
+
100
+ **Status:** 🔴 Need to find submission form
101
+
102
+ ---
103
+
104
+ ### 4. MCPHub.io
105
+ **Website:** https://mcphub.io/
106
+
107
+ **Submission Method:** Website form or automated discovery
108
+
109
+ **Details:**
110
+ - MCPHub indexes MCP servers from npm and GitHub
111
+ - May auto-discover from npm registry
112
+ - Check website for manual submission option
113
+
114
+ **Steps:**
115
+ 1. Visit https://mcphub.io/
116
+ 2. Search for "servicenow-mcp-server" to see if auto-indexed
117
+ 3. If not found, look for submission form
118
+
119
+ **Status:** 🟡 Check if auto-indexed
120
+
121
+ ---
122
+
123
+ ### 5. mcp.run
124
+ **Website:** https://cloudmcp.run/
125
+
126
+ **Details:**
127
+ - Registry and control plane for MCP servers
128
+ - Integrates with official MCP registry
129
+ - May auto-discover from registry.modelcontextprotocol.io
130
+
131
+ **Steps:**
132
+ 1. Check if already listed (since we're on official registry)
133
+ 2. If not, contact via website
134
+
135
+ **Status:** 🟡 Check if auto-indexed
136
+
137
+ ---
138
+
139
+ ### 6. PulseMCP
140
+ **Website:** Community newsletter/hub
141
+
142
+ **Submission Method:** Newsletter submission or community post
143
+
144
+ **Steps:**
145
+ 1. Find PulseMCP submission form or contact
146
+ 2. Submit server announcement
147
+ 3. Include:
148
+ - Project name
149
+ - Description
150
+ - Key features
151
+ - Links (GitHub, npm, Docker, MCP Registry)
152
+
153
+ **Status:** 🔴 Need to find submission process
154
+
155
+ ---
156
+
157
+ ### 7. mcpserverdirectory.com
158
+ **Website:** https://mcpserverdirectory.com
159
+
160
+ **Submission Method:** Website form
161
+
162
+ **Steps:**
163
+ 1. Visit website
164
+ 2. Find "Submit Server" or similar
165
+ 3. Fill out form with server details
166
+
167
+ **Status:** 🔴 Need to access website
168
+
169
+ ---
170
+
171
+ ### 8. mcpnodes.com
172
+ **Website:** https://mcpnodes.com
173
+
174
+ **Submission Method:** Website form
175
+
176
+ **Steps:**
177
+ 1. Visit website
178
+ 2. Find submission form
179
+ 3. Submit server details
180
+
181
+ **Status:** 🔴 Need to access website
182
+
183
+ ---
184
+
185
+ ### 9. OpenTools
186
+ **Website:** Open registry for MCP servers
187
+
188
+ **Submission Method:** TBD
189
+
190
+ **Status:** 🔴 Need to find website/submission process
191
+
192
+ ---
193
+
194
+ ## 📦 Server Details for Submissions
195
+
196
+ Use this standardized information for all submissions:
197
+
198
+ **Name:** ServiceNow MCP Server
199
+
200
+ **Short Description:** Multi-instance ServiceNow MCP server with 40+ tools and intelligent schema discovery
201
+
202
+ **Long Description:**
203
+ A revolutionary metadata-driven ServiceNow MCP server supporting multiple ServiceNow instances simultaneously with automatic schema discovery and optimized tool generation. Features 40+ MCP tools, natural language search, local script development with Git integration, and comprehensive ITSM operations.
204
+
205
+ **Author:** nczitzer / Happy Technologies LLC
206
+
207
+ **License:** MIT
208
+
209
+ **Category:** ITSM, Enterprise, Automation, ServiceNow
210
+
211
+ **Tags:** servicenow, itsm, mcp, automation, enterprise, multi-instance, workflow, cmdb, service-catalog
212
+
213
+ **Links:**
214
+ - GitHub: https://github.com/Happy-Technologies-LLC/mcp-servicenow-nodejs
215
+ - npm: https://www.npmjs.com/package/servicenow-mcp-server
216
+ - Docker Hub: https://hub.docker.com/r/nczitzer/mcp-servicenow-nodejs
217
+ - MCP Registry: https://registry.modelcontextprotocol.io/servers/io.github.nickzitzer/servicenow-nodejs
218
+ - Documentation: https://github.com/Happy-Technologies-LLC/mcp-servicenow-nodejs#readme
219
+
220
+ **Key Features:**
221
+ - 40+ MCP tools for ServiceNow operations
222
+ - Multi-instance support (connect to dev, test, prod simultaneously)
223
+ - Natural language query interface (query ServiceNow in plain English)
224
+ - Local script development with Git integration and watch mode
225
+ - Automated background script execution
226
+ - Update set management with batch operations
227
+ - 160+ ServiceNow tables supported via generic tools
228
+ - Convenience tools for common ITSM operations
229
+ - Docker support for easy deployment
230
+ - Comprehensive documentation and examples
231
+
232
+ **Installation:**
233
+ ```bash
234
+ # npm
235
+ npm install -g servicenow-mcp-server
236
+
237
+ # Docker
238
+ docker pull nczitzer/mcp-servicenow-nodejs:latest
239
+
240
+ # Via MCP Registry
241
+ # Use Claude Desktop MCP browser
242
+ ```
243
+
244
+ **Quick Start:**
245
+ ```bash
246
+ # Run with environment variables
247
+ export SERVICENOW_INSTANCE_URL=https://dev.service-now.com
248
+ export SERVICENOW_USERNAME=admin
249
+ export SERVICENOW_PASSWORD=password
250
+ servicenow-mcp-server
251
+ ```
252
+
253
+ **Logo:**
254
+ - SVG: assets/logo.svg (teal/ServiceNow colors)
255
+ - PNG (400x400): assets/logo-400x400.png (needs conversion)
256
+
257
+ ---
258
+
259
+ ## 🎯 Action Items
260
+
261
+ ### Immediate Actions:
262
+ 1. ✅ Convert logo SVG to 400x400 PNG for Cline marketplace
263
+ 2. 🔲 Submit PR to modelcontextprotocol/servers
264
+ 3. 🔲 Submit issue to Cline's mcp-marketplace
265
+ 4. 🔲 Check if auto-indexed on MCPHub.io and mcp.run
266
+ 5. 🔲 Find Smithery submission process
267
+
268
+ ### Research Needed:
269
+ - PulseMCP submission process
270
+ - mcpserverdirectory.com access
271
+ - mcpnodes.com submission form
272
+ - OpenTools platform details
273
+
274
+ ---
275
+
276
+ ## 📝 Submission Checklist Template
277
+
278
+ For each directory:
279
+ - [ ] Found submission process
280
+ - [ ] Prepared required materials (logo, description, etc.)
281
+ - [ ] Submitted application
282
+ - [ ] Received confirmation
283
+ - [ ] Server listed/approved
284
+ - [ ] Added listing URL to this document
285
+
286
+ ---
287
+
288
+ ## 📊 Submission Status Summary
289
+
290
+ | Directory | Status | Date Submitted | Date Approved | Listing URL |
291
+ |-----------|--------|----------------|---------------|-------------|
292
+ | Official MCP Registry | ✅ Live | 2025-10-17 | 2025-10-17 | https://registry.modelcontextprotocol.io/servers/io.github.nickzitzer/servicenow-nodejs |
293
+ | npm Registry | ✅ Live | 2025-10-17 | 2025-10-17 | https://www.npmjs.com/package/servicenow-mcp-server |
294
+ | Docker Hub | ✅ Live | 2025-10-17 | 2025-10-17 | https://hub.docker.com/r/nczitzer/mcp-servicenow-nodejs |
295
+ | Anthropic Servers (GitHub) | 🟡 Ready | - | - | - |
296
+ | Cline Marketplace | 🟡 Ready | - | - | - |
297
+ | MCPHub.io | 🟡 Check | - | - | - |
298
+ | mcp.run | 🟡 Check | - | - | - |
299
+ | Smithery | 🔴 Research | - | - | - |
300
+ | PulseMCP | 🔴 Research | - | - | - |
301
+ | mcpserverdirectory.com | 🔴 Research | - | - | - |
302
+ | mcpnodes.com | 🔴 Research | - | - | - |
303
+ | OpenTools | 🔴 Research | - | - | - |
304
+
305
+ **Legend:**
306
+ - ✅ Live - Published and available
307
+ - 🟡 Ready - Ready to submit, action needed
308
+ - 🟡 Check - May be auto-indexed, needs verification
309
+ - 🔴 Research - Need to find submission process
310
+
311
+ ---
312
+
313
+ ## 🔗 Useful Links
314
+
315
+ - MCP Specification: https://spec.modelcontextprotocol.io/
316
+ - MCP SDK: https://www.npmjs.com/package/@modelcontextprotocol/sdk
317
+ - Project Repository: https://github.com/Happy-Technologies-LLC/mcp-servicenow-nodejs
318
+ - Happy Technologies: https://happy-tech.biz
319
+
320
+ ---
321
+
322
+ *Last Updated: 2025-10-17*
Binary file
@@ -0,0 +1,30 @@
1
+ version: '3.8'
2
+
3
+ services:
4
+ servicenow-mcp-server:
5
+ image: nczitzer/mcp-servicenow-nodejs:latest
6
+ build:
7
+ context: .
8
+ dockerfile: Dockerfile
9
+ container_name: servicenow-mcp-server
10
+ ports:
11
+ - "3000:3000"
12
+ environment:
13
+ # Single instance mode (legacy .env support)
14
+ - SERVICENOW_INSTANCE_URL=${SERVICENOW_INSTANCE_URL}
15
+ - SERVICENOW_USERNAME=${SERVICENOW_USERNAME}
16
+ - SERVICENOW_PASSWORD=${SERVICENOW_PASSWORD}
17
+ - SERVICENOW_AUTH_TYPE=${SERVICENOW_AUTH_TYPE:-basic}
18
+
19
+ # Multi-instance mode (specify instance name)
20
+ - SERVICENOW_INSTANCE=${SERVICENOW_INSTANCE}
21
+ volumes:
22
+ # Mount config file for multi-instance support
23
+ - ./config/servicenow-instances.json:/app/config/servicenow-instances.json:ro
24
+ restart: unless-stopped
25
+ healthcheck:
26
+ test: ["CMD", "node", "-e", "require('http').get('http://localhost:3000/health', (r) => {process.exit(r.statusCode === 200 ? 0 : 1)})"]
27
+ interval: 30s
28
+ timeout: 3s
29
+ retries: 3
30
+ start_period: 5s
@@ -0,0 +1,332 @@
1
+ # Docker Deployment Guide
2
+
3
+ Deploy ServiceNow MCP Server using Docker for easy, consistent, and portable deployment.
4
+
5
+ ## 🚀 Quick Start
6
+
7
+ ### Option 1: Docker Hub (Recommended)
8
+
9
+ ```bash
10
+ # Pull the latest image
11
+ docker pull nczitzer/mcp-servicenow-nodejs:latest
12
+
13
+ # Run with environment variables (single instance)
14
+ docker run -d \
15
+ -p 3000:3000 \
16
+ -e SERVICENOW_INSTANCE_URL=https://dev123456.service-now.com \
17
+ -e SERVICENOW_USERNAME=admin \
18
+ -e SERVICENOW_PASSWORD=your-password \
19
+ --name servicenow-mcp-server \
20
+ nczitzer/mcp-servicenow-nodejs:latest
21
+ ```
22
+
23
+ ### Option 2: Docker Compose
24
+
25
+ ```bash
26
+ # Create .env file
27
+ cat > .env <<EOF
28
+ SERVICENOW_INSTANCE_URL=https://dev123456.service-now.com
29
+ SERVICENOW_USERNAME=admin
30
+ SERVICENOW_PASSWORD=your-password
31
+ SERVICENOW_AUTH_TYPE=basic
32
+ EOF
33
+
34
+ # Start with docker-compose
35
+ docker-compose up -d
36
+ ```
37
+
38
+ ### Option 3: Build Locally
39
+
40
+ ```bash
41
+ # Build the image
42
+ docker build -t servicenow-mcp-server .
43
+
44
+ # Run the container
45
+ docker run -d -p 3000:3000 \
46
+ -e SERVICENOW_INSTANCE_URL=https://dev123456.service-now.com \
47
+ -e SERVICENOW_USERNAME=admin \
48
+ -e SERVICENOW_PASSWORD=your-password \
49
+ servicenow-mcp-server
50
+ ```
51
+
52
+ ## 🌐 Multi-Instance Configuration
53
+
54
+ For multi-instance support, mount your config file:
55
+
56
+ ```bash
57
+ # Create config file
58
+ cp config/servicenow-instances.example.json config/servicenow-instances.json
59
+ # Edit with your instances
60
+
61
+ # Run with mounted config
62
+ docker run -d \
63
+ -p 3000:3000 \
64
+ -v $(pwd)/config/servicenow-instances.json:/app/config/servicenow-instances.json:ro \
65
+ --name servicenow-mcp-server \
66
+ nczitzer/mcp-servicenow-nodejs:latest
67
+ ```
68
+
69
+ Or use docker-compose:
70
+
71
+ ```yaml
72
+ services:
73
+ servicenow-mcp-server:
74
+ image: nczitzer/mcp-servicenow-nodejs:latest
75
+ ports:
76
+ - "3000:3000"
77
+ volumes:
78
+ - ./config/servicenow-instances.json:/app/config/servicenow-instances.json:ro
79
+ ```
80
+
81
+ ## 🔍 Health Check
82
+
83
+ The container includes a health check endpoint:
84
+
85
+ ```bash
86
+ # Check container health
87
+ docker ps
88
+
89
+ # Test health endpoint
90
+ curl http://localhost:3000/health
91
+
92
+ # Check logs
93
+ docker logs servicenow-mcp-server
94
+ ```
95
+
96
+ ## 🛠️ Environment Variables
97
+
98
+ ### Single Instance Mode
99
+
100
+ | Variable | Required | Default | Description |
101
+ |----------|----------|---------|-------------|
102
+ | `SERVICENOW_INSTANCE_URL` | Yes | - | ServiceNow instance URL |
103
+ | `SERVICENOW_USERNAME` | Yes | - | ServiceNow username |
104
+ | `SERVICENOW_PASSWORD` | Yes | - | ServiceNow password |
105
+ | `SERVICENOW_AUTH_TYPE` | No | `basic` | Authentication type |
106
+
107
+ ### Multi-Instance Mode
108
+
109
+ | Variable | Required | Default | Description |
110
+ |----------|----------|---------|-------------|
111
+ | `SERVICENOW_INSTANCE` | No | `default` | Instance name from config file |
112
+
113
+ ## 📊 Resource Requirements
114
+
115
+ **Minimum:**
116
+ - CPU: 0.5 cores
117
+ - Memory: 256MB
118
+ - Disk: 500MB
119
+
120
+ **Recommended:**
121
+ - CPU: 1 core
122
+ - Memory: 512MB
123
+ - Disk: 1GB
124
+
125
+ ## 🔒 Security Best Practices
126
+
127
+ ### 1. Use Docker Secrets (Production)
128
+
129
+ ```bash
130
+ # Create secrets
131
+ echo "your-password" | docker secret create servicenow_password -
132
+
133
+ # Run with secrets
134
+ docker service create \
135
+ --name servicenow-mcp-server \
136
+ --secret servicenow_password \
137
+ -e SERVICENOW_INSTANCE_URL=https://prod.service-now.com \
138
+ -e SERVICENOW_USERNAME=admin \
139
+ nczitzer/mcp-servicenow-nodejs:latest
140
+ ```
141
+
142
+ ### 2. Use Read-Only Config Mount
143
+
144
+ ```bash
145
+ docker run -d \
146
+ -v $(pwd)/config/servicenow-instances.json:/app/config/servicenow-instances.json:ro \
147
+ nczitzer/mcp-servicenow-nodejs:latest
148
+ ```
149
+
150
+ ### 3. Network Isolation
151
+
152
+ ```bash
153
+ # Create isolated network
154
+ docker network create mcp-network
155
+
156
+ # Run in isolated network
157
+ docker run -d \
158
+ --network mcp-network \
159
+ -p 3000:3000 \
160
+ nczitzer/mcp-servicenow-nodejs:latest
161
+ ```
162
+
163
+ ## 🔄 Updates & Maintenance
164
+
165
+ ### Update to Latest Version
166
+
167
+ ```bash
168
+ # Pull latest image
169
+ docker pull nczitzer/mcp-servicenow-nodejs:latest
170
+
171
+ # Stop and remove old container
172
+ docker stop servicenow-mcp-server
173
+ docker rm servicenow-mcp-server
174
+
175
+ # Start new container
176
+ docker run -d -p 3000:3000 \
177
+ -e SERVICENOW_INSTANCE_URL=... \
178
+ --name servicenow-mcp-server \
179
+ nczitzer/mcp-servicenow-nodejs:latest
180
+ ```
181
+
182
+ ### View Logs
183
+
184
+ ```bash
185
+ # Follow logs
186
+ docker logs -f servicenow-mcp-server
187
+
188
+ # Last 100 lines
189
+ docker logs --tail 100 servicenow-mcp-server
190
+ ```
191
+
192
+ ### Restart Container
193
+
194
+ ```bash
195
+ docker restart servicenow-mcp-server
196
+ ```
197
+
198
+ ## 🚀 Production Deployment
199
+
200
+ ### Kubernetes (k8s)
201
+
202
+ ```yaml
203
+ apiVersion: apps/v1
204
+ kind: Deployment
205
+ metadata:
206
+ name: servicenow-mcp-server
207
+ spec:
208
+ replicas: 3
209
+ selector:
210
+ matchLabels:
211
+ app: servicenow-mcp-server
212
+ template:
213
+ metadata:
214
+ labels:
215
+ app: servicenow-mcp-server
216
+ spec:
217
+ containers:
218
+ - name: servicenow-mcp-server
219
+ image: nczitzer/mcp-servicenow-nodejs:latest
220
+ ports:
221
+ - containerPort: 3000
222
+ env:
223
+ - name: SERVICENOW_INSTANCE_URL
224
+ valueFrom:
225
+ secretKeyRef:
226
+ name: servicenow-credentials
227
+ key: instance-url
228
+ - name: SERVICENOW_USERNAME
229
+ valueFrom:
230
+ secretKeyRef:
231
+ name: servicenow-credentials
232
+ key: username
233
+ - name: SERVICENOW_PASSWORD
234
+ valueFrom:
235
+ secretKeyRef:
236
+ name: servicenow-credentials
237
+ key: password
238
+ resources:
239
+ requests:
240
+ memory: "256Mi"
241
+ cpu: "250m"
242
+ limits:
243
+ memory: "512Mi"
244
+ cpu: "500m"
245
+ livenessProbe:
246
+ httpGet:
247
+ path: /health
248
+ port: 3000
249
+ initialDelaySeconds: 10
250
+ periodSeconds: 30
251
+ ---
252
+ apiVersion: v1
253
+ kind: Service
254
+ metadata:
255
+ name: servicenow-mcp-server
256
+ spec:
257
+ selector:
258
+ app: servicenow-mcp-server
259
+ ports:
260
+ - port: 80
261
+ targetPort: 3000
262
+ type: LoadBalancer
263
+ ```
264
+
265
+ ### Docker Swarm
266
+
267
+ ```bash
268
+ # Initialize swarm
269
+ docker swarm init
270
+
271
+ # Deploy stack
272
+ docker stack deploy -c docker-compose.yml servicenow-mcp
273
+ ```
274
+
275
+ ## 🐛 Troubleshooting
276
+
277
+ ### Container Won't Start
278
+
279
+ ```bash
280
+ # Check logs
281
+ docker logs servicenow-mcp-server
282
+
283
+ # Check environment variables
284
+ docker exec servicenow-mcp-server env
285
+
286
+ # Run interactively
287
+ docker run -it --rm \
288
+ -e SERVICENOW_INSTANCE_URL=... \
289
+ nczitzer/mcp-servicenow-nodejs:latest \
290
+ sh
291
+ ```
292
+
293
+ ### Health Check Failing
294
+
295
+ ```bash
296
+ # Test health endpoint manually
297
+ docker exec servicenow-mcp-server curl http://localhost:3000/health
298
+
299
+ # Check if server is running
300
+ docker exec servicenow-mcp-server ps aux
301
+ ```
302
+
303
+ ### Connection Issues
304
+
305
+ ```bash
306
+ # Verify port mapping
307
+ docker port servicenow-mcp-server
308
+
309
+ # Test from host
310
+ curl http://localhost:3000/health
311
+
312
+ # Test from inside container
313
+ docker exec servicenow-mcp-server curl http://localhost:3000/health
314
+ ```
315
+
316
+ ## 📦 Available Tags
317
+
318
+ - `latest` - Latest stable release
319
+ - `2.1.1` - Specific version
320
+ - `2.1` - Minor version (auto-updates patch releases)
321
+ - `2` - Major version (auto-updates minor/patch releases)
322
+
323
+ ## 🔗 Links
324
+
325
+ - **Docker Hub:** https://hub.docker.com/r/nczitzer/mcp-servicenow-nodejs
326
+ - **GitHub:** https://github.com/Happy-Technologies-LLC/mcp-servicenow-nodejs
327
+ - **npm:** https://www.npmjs.com/package/servicenow-mcp-server
328
+ - **MCP Registry:** https://registry.modelcontextprotocol.io/servers/io.github.nickzitzer/servicenow-nodejs
329
+
330
+ ## 📄 License
331
+
332
+ MIT License - Copyright © 2025 Happy Technologies LLC
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "servicenow-mcp-server",
3
- "version": "2.1.1",
3
+ "version": "2.1.3",
4
4
  "description": "Multi-instance ServiceNow MCP server with 40+ tools, natural language search, and local script development",
5
5
  "main": "src/server.js",
6
6
  "type": "module",