
最初是个人项目,后来发展成在工作场所及其他地方广泛使用的东西。ServiceNow 的 MCP 服务器
概览
用于ServiceNow集成的MCP服务器。通过stdio传输使用FastMCP,采用OAuth 2.0客户端凭证。 当前版本:(25个工具)。5.0.0“硼”表面出现了破坏——用一个最小响应合同剔除了39个→25个。如果是从v4升级,请阅读MIGRATION_v4_to_v5.md。完整历史见 CHANGELOG.md。 † 发布版本字符串直接连接 4.0.0 → 4.3.0。4.1.0 和 4.2.0 从未发布或标记——“4.1.0” 标记的是 CHANGELOG 中的作品集,而非可安装版本。 v4.0 是一个破坏性版本。如果是从 v3 升级,请查看 MIGRATION_v3_to_v4.md。 向后兼容的 Shims 使所有 v3 导入路径和测试补丁目标在一个发布周期内保持正常工作;它们在 4.1.0 中被删除。直接从 http_layer、oauth 和过滤导入。 这在Windows 11和macOS上运行,大约需要2分钟。 向你的IT部门询问三点:- 你公司的ServiceNow地址(看起来像https://company.service-now.com)] - 一个客户ID - 一个客户秘密 1.
概述(AI 翻译)
用于ServiceNow集成的MCP服务器。通过stdio传输使用FastMCP,采用OAuth 2.0客户端凭证。
支持本项目
发行亮点
当前版本:5.0.2(25个工具)。5.0.0“硼”表面正在崩溃——用一个最小响应合同剔除了39个→25个。如果是从v4升级,请阅读MIGRATION_v4_to_v5.md。完整历史见 CHANGELOG.md。
| 发布 | 发生了什么变化 |
|---|---|
| 5.0.2 | readOnlyHint 在所有 25 个工具上(19 次读取 / 6 次写)上都被服务,因此主机可以自动批准读取。依赖锁定:uv.lock 在 .mcpb (uv run --frozen --no-dev])、fastmcp **Do not pass secrets with -e KEY=value.** They land in shell history and are visible via ps/docker inspect. Use –env-file’ 进行本地测试;参见生产环境:Azure 容器应用 + 密钥库中的生产环境。 |
该图像默认设置为 MCP_TRANSPORT=sse。代理在 http:// :8000/sse 连接。
配置
在项目根创建.env:
需要OAuth 2.0客户端凭证。不支持基本认证。有关ServiceNow端设置,请参见OAUTH_SETUP_GUIDE.md。
Claude 桌面 / Claude 代码集成
Claude Desktop — 配置文件位置:
本页由 AI 翻译,技术细节请以原文为准。
README
以下为原文 README 节选,完整内容请查看原文。
Personal MCP ServiceNow Integration
MCP server for ServiceNow integration. Uses FastMCP over stdio transport, OAuth 2.0 client credentials.
Support This Project
Release highlights
Current release: 5.0.2 (25 tools). The 5.0.0 “Boron” surface was breaking — culled 39 → 25 with one minimal response contract. If upgrading from v4, read MIGRATION_v4_to_v5.md. Full history in CHANGELOG.md.
| Release | What changed |
|---|---|
| 5.0.2 | readOnlyHint served on all 25 tools (19 read / 6 write) so hosts can auto-approve reads. Dependencies locked: uv.lock shipped in the .mcpb (uv run --frozen --no-dev), fastmcp<4 ceiling (4.0.x deferred), direct pins pruned 20 → 6, pip-audit clean. No tool-surface change. |
| 5.0.1 | Two silent-data-loss fixes in get_kb_articles_by_state, both found live. A draft filter now finds drafts on already-published articles (the priority collapse hid them — live, 1 reported against 48 real); entries carry states_present and the state filter tests membership. The raw scan no longer inherits max_results, which had made a truncated fetch report the wrong current_state; a capped scan now says scan_incomplete instead of guessing. |
| 5.0.0 “Boron” | Breaking. Tool surface culled 39 → 25 (5 diagnostics folded into one health_check; the NL/filter and smart-KB/SLA read tools removed — the host model does NL→filter natively). One minimal response contract across every tool: list {result, returned_count, truncated}, single-record {record}, write {record, message}, failure {error:{code, message}} — no more bare-string returns or result-is-sometimes-a-dict. TableSpec makes per-table config one source of truth; tool selection guidance is a structured registry injected into each docstring. ~2000 lines of dead NL-engine code removed. See MIGRATION_v4_to_v5.md. |
| 4.5.0 | Tool-selection docstring protocol on all 39 tools (WHEN TO USE / WHEN NOT TO USE / PREFER OVER / TABLES / SIDE EFFECT / EXAMPLE). Non-breaking — no tool added, removed, or re-signatured. The fatal footguns (LIKE-not-CONTAINS, reference fields hold sys_ids) now sit inline on search_records and filter_records. Static tool-selection preferred-hit rose 21/30 → 29/30, ambiguity 66 → 50 plausible paths. |
安装
docker run -d \配置
{
"mcpServers": {
"servicenow": {
"command": "python",
"args": ["/full/path/to/personal-mcp-servicenow/personal_mcp_servicenow_main.py"]
}
}
}