Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Multi-instance read-only MCP server for ServiceNow
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
SN_INSTANCE_CONFIG, SN_MCP_SERVER_VERBOSE, SN_LOG_DIR, GITHUB_TOKENค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"sn": {
"command": "npx",
"args": [
"-y",
"@imjaineel-dev/sn-mcp-server"
],
"env": {
"SN_INSTANCE_CONFIG": "ใส่ค่าของคุณ",
"SN_MCP_SERVER_VERBOSE": "ใส่ค่าของคุณ",
"SN_LOG_DIR": "ใส่ค่าของคุณ",
"GITHUB_TOKEN": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add sn --env SN_INSTANCE_CONFIG='ใส่ค่าของคุณ' --env SN_MCP_SERVER_VERBOSE='ใส่ค่าของคุณ' --env SN_LOG_DIR='ใส่ค่าของคุณ' --env GITHUB_TOKEN='ใส่ค่าของคุณ' -- npx -y @imjaineel-dev/sn-mcp-serverเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"sn": {
"command": "npx",
"args": [
"-y",
"@imjaineel-dev/sn-mcp-server"
],
"env": {
"SN_INSTANCE_CONFIG": "ใส่ค่าของคุณ",
"SN_MCP_SERVER_VERBOSE": "ใส่ค่าของคุณ",
"SN_LOG_DIR": "ใส่ค่าของคุณ",
"GITHUB_TOKEN": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"sn": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@imjaineel-dev/sn-mcp-server"
],
"env": {
"SN_INSTANCE_CONFIG": "ใส่ค่าของคุณ",
"SN_MCP_SERVER_VERBOSE": "ใส่ค่าของคุณ",
"SN_LOG_DIR": "ใส่ค่าของคุณ",
"GITHUB_TOKEN": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
SN_MCP_SERVER_VERBOSE envSN_LOG_DIR envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub ImJaineel ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: SN_INSTANCE_CONFIG, GITHUB_TOKEN
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (2.2.22) เข้า registry 3 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Hunter Killer
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Liquidation walls, snapshot age, evidence labels and a public record. Managed OAuth.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
A read-only Model Context Protocol (MCP) server for ServiceNow — built for developers, AI workflows, and tools that need deep visibility into ServiceNow across multiple instances (Prod, Dev, Test, PDI).
sn_sdk_explain tool is registered when now-sdk is installed globally (npm install -g now-sdk)SN_MCP_VERBOSE=truesn_read_docs searches the ServiceNowDocs repo, returns file_path/raw_url for direct reads, and can resolve the selected branch when a non-default version is requestednpx @imjaineel-dev/sn-mcp-server --config ./sn-instance.json
git clone https://github.com/ImJaineel/SN-MCP-Server.git
cd SN-MCP-Server npm install npm start # auto-detects sn-instance.json in repo root
sn-instance.json{
"default": "dev", "instances": [ { "alias": "prod", "label": "Production", "instance": "mycompany-prod", "auth": "oauth2", "grant_type": "client_credentials", "client_id": "your-client-id", "client_secret": "your-client-secret" }, { "alias": "dev", "label": "Development", "instance": "mycompany-dev", "auth": "basic", "username": "svc_mcp_readonly", "password": "your-password-here" } ] }
📄 Full example: sn-instance.example.json
| Field | Required | Description |
|---|---|---|
alias | ✅ | Short name used in tool calls ("prod", "dev-2") |
instance | ✅ | Subdomain ("mycompany-dev") or full URL ("https://...") |
auth | optional | "basic" (default) or "oauth2" |
label | optional | Human-friendly display name |
default | optional | Use either a top-level "default" alias or per-entry "default": true to select the default instance |
auth: "basic")| Field | Required | Description |
|---|---|---|
username | ✅ | Service account username |
password | ✅ | Password or API token |
auth: "oauth2")| Field | Required | Description |
|---|---|---|
grant_type | ✅ | "client_credentials", "password", "authorization_code", or "jwt_bearer" |
client_id / client_secret | ✅ | OAuth application credentials |
username / password | conditional | Required for password grant |
refresh_token | conditional | Required for authorization_code grant |
jwt_private_key / jwt_subject | conditional | Required for jwt_bearer grant (PEM key string & subject user) |
jwt_issuer | optional | Optional issuer value for jwt_bearer |
token_url | optional | Override the default token endpoint (default: /oauth_token.do) |
Default selection is resolved in this order:
"default" alias in the config object"default": trueAll optional — set them in your shell, in the MCP client "env" block, or in a .env file at the project root. Values from the shell take precedence over .env.
Note: If you are running the server from a local clone, a root-level
.envfile is loaded automatically at startup.
| Variable | Description | Default |
|---|---|---|
SN_INSTANCE_CONFIG | Path to sn-instance.json | Auto-resolved |
SN_MCP_VERBOSE | Set to "true" to enable debug logs | false |
LOGS_TIMEZONE | IANA timezone for log timestamps (CURRENT, GLOBAL, or a named zone) | CURRENT |
SN_LOG_DIR | Override log file directory | OS temp folder |
GITHUB_TOKEN | GitHub Personal Access Token for sn_read_docs (branch lookup and GitHub search) | none |
CLI flags are also supported as an alternative to environment variables:
--config → sets SN_INSTANCE_CONFIG--verbose → sets SN_MCP_VERBOSE=true--github-token → sets GITHUB_TOKENVS Code: Press
Ctrl+Shift+P, select Add MCP
Claude Desktop: Edit
~/Library/Application Support/Claude/claude_desktop_config.json(macOS) or%APPDATA%\Claude\claude_desktop_config.json(Windows)
Gemini Code Assist: Create or edit
~/.gemini/mcp.json
Amazon Q: Create or edit
~/.aws/amazonq/mcp.json
Using npx (recommended):
{
"mcpServers": { "servicenow": { "command": "npx", "args": ["sn-mcp-server", "--config", "/absolute/path/to/sn-instance.json"], } } }
Using local clone:
{
"mcpServers": { "servicenow": { "command": "node", "args": ["/absolute/path/to/SN-MCP-Server/src/index.js"] } } }
⚠️ Always use absolute paths in MCP client configs.
# Standard start (auto-detects ./sn-instance.json)
npm start
node src/index.js --config /path/to/sn-instance.json
npm run dev node src/index.js --config ./sn-instance.json --verbose
npm run watch
npm run inspect
npx sn-mcp-server --help
Each server run creates a new timestamped log file:
2026-04-09T14-32-01.123Z.log
Stored in the OS temp directory:
| OS | Default log location |
|---|---|
| Windows | %TEMP%\ImJaineel_SN-MCP-Instance_logs\ |
| macOS | $TMPDIR/ImJaineel_SN-MCP-Instance_logs/ |
| Linux | /tmp/ImJaineel_SN-MCP-Instance_logs/ |
Override with SN_LOG_DIR env var. Log files are cleaned up automatically by the OS on reboot.
The startup banner always prints the exact log file path:
Log file : /tmp/ImJaineel_SN-MCP-Instance_logs/2026-04-09T14-32-01.123Z.log
The server exposes 16 tools at runtime when the current environment supports them:
sn-instance.json| Tool | Description | Visibility |
|---|---|---|
sn_list_instances | List all configured instances and their aliases, labels, and URLs. | Visible when sn-instance.json is configured and loaded. |
sn_ping | Test connectivity to a specific instance or the default instance. | Visible when sn-instance.json is configured and loaded. |
sn_get_identity | Query users, groups, and group membership from identity tables. | Visible when sn-instance.json is configured and loaded. |
sn_inspect_table | Inspect table schema or search for matching tables by name/label. | Visible when sn-instance.json is configured and loaded. |
sn_aggregate_table | Run aggregate queries such as count, sum, avg, min, and max. | Visible when sn-instance.json is configured and loaded. |
sn_query_table | Generic read from any ServiceNow table with encoded queries, fields, paging, and display values. | Visible when sn-instance.json is configured and loaded. |
sn_get_record | Resolve and fetch a record by sys_id, record number, task table, or CMDB CI class. | Visible when sn-instance.json is configured and loaded. |
sn_get_attachment | Fetch attachment metadata or file content from the Attachment API. | Visible when sn-instance.json is configured and loaded. |
sn_get_update_sets | List update sets or drill into the files inside a specific update set. | Visible when sn-instance.json is configured and loaded. |
sn_code_search | Search scripting artifacts using the native ServiceNow Code Search API. | Visible when sn-instance.json is configured and loaded. |
sn_get_scripted_artifacts | Fetch Script Includes, Business Rules, Client Scripts, UI Actions, Scheduled Jobs, Fix Scripts, and Scripted REST artifacts. | Visible when sn-instance.json is configured and loaded. |
sn_legacy_workflow_search | Search classic workflow activity variable values and resolve the owning workflow versions. | Visible when sn-instance.json is configured and loaded. |
sn_get_legacy_workflow_artifacts | Fetch legacy workflow artifacts from wf_* tables. | Visible when sn-instance.json is configured and loaded. |
sn_get_workflow_studio_artifacts | Fetch Workflow Studio and Flow Designer artifacts from sys_hub_* and related tables. | Visible when sn-instance.json is configured and loaded. |
| Tool | Description | Visibility |
|---|---|---|
sn_read_docs | Search, browse, and read ServiceNowDocs markdown by release branch. Search mode returns file_path and raw_url values for direct reads, and get_file accepts either a raw GitHub URL or a repo-relative path. | Always visible. |
sn_sdk_explain | Query the ServiceNow SDK for explanations of SDK skills, APIs, and concepts via now-sdk. | Visible only when now-sdk is installed and can be executed successfully. |
sn-instance.json provided). In that mode, only the 2 knowledge tools remain visible.now-sdk; if the package is not installed or cannot be executed, the tool is omitted entirely. Install it globally with: npm install -g now-sdkinstance parameter. If omitted, the server uses the configured default instance.sn_get_scripted_artifacts table="sys_script_include" query="nameLIKEMorpheus" instance="prod"
sn_query_table table="incident" query="state=1" instance="dev" sn_get_update_sets instance="pdi"
{ "tool": "sn_query_table", "table": "incident", "query": "active=true", "limit": 5 }
{ "tool": "sn_read_docs", "mode": "search", "search": "Install the ServiceNow SDK in an application", "version": "australia" }
Use mode": "get_file" with the returned file_path or raw_url to read the matching doc.
{ "tool": "sn_get_record", "number": "INC0012345" }
{ "tool": "sn_legacy_workflow_search", "query": "morpheus", "instance": "prod" }
`json
ตัดมาแค่ช่วงต้น อ่านต่อใน repo