
ServiceNow MCP Server

2025.05.09
0
PythonServiceNow 集成工作流自动化交流协作
ServiceNow MCP Server 是一个实现 Model Completion Protocol (MCP) 的服务,用于连接 Claude 和 ServiceNow 实例,实现无缝集成。它支持多种认证方式,提供丰富的工具集,用于查询、创建、更新和删除 ServiceNow 记录,执行脚本和工作流,以及管理服务目录、变更请求、知识库等。
View on GitHub
Overview
基本能力
产品定位
ServiceNow MCP Server 是一个桥接服务,允许 Claude 通过 MCP 协议与 ServiceNow 实例交互,实现数据检索和操作。
核心功能
- 支持多种认证方式(Basic、OAuth、API Key)
- 查询和操作 ServiceNow 记录和表
- 执行 ServiceNow 脚本和工作流
- 访问和优化服务目录
- 调试模式支持
- 支持 stdio 和 Server-Sent Events (SSE) 通信
适用场景
- 自动化 ServiceNow 任务
- 集成 ServiceNow 数据到 Claude
- 服务目录优化
- 变更管理
- 知识库管理
工具列表
事件管理工具
- create_incident
- update_incident
- add_comment
- resolve_incident
- list_incidents
服务目录工具
- list_catalog_items
- get_catalog_item
- list_catalog_categories
- create_catalog_category
- update_catalog_category
- move_catalog_items
- create_catalog_item_variable
- list_catalog_item_variables
- update_catalog_item_variable
- list_catalogs
目录优化工具
- get_optimization_recommendations
- update_catalog_item
变更管理工具
- create_change_request
- update_change_request
- list_change_requests
- get_change_request_details
- add_change_task
- submit_change_for_approval
- approve_change
- reject_change
工作流管理工具
- list_workflows
- get_workflow
- create_workflow
- update_workflow
- delete_workflow
脚本包含管理工具
- list_script_includes
- get_script_include
- create_script_include
- update_script_include
- delete_script_include
变更集管理工具
- list_changesets
- get_changeset_details
- create_changeset
- update_changeset
- commit_changeset
- publish_changeset
- add_file_to_changeset
知识库管理工具
- create_knowledge_base
- list_knowledge_bases
- create_category
- create_article
- update_article
- publish_article
- list_articles
- get_article
用户管理工具
- create_user
- update_user
- get_user
- list_users
- create_group
- update_group
- add_group_members
- remove_group_members
- list_groups
UI 策略工具
- create_ui_policy
- create_ui_policy_action
常见问题解答
- 错误:
argument after ** must be a mapping, not CreateChangeRequestParams
- 原因:传递了
CreateChangeRequestParams
对象而不是字典。 -
解决方案:确保传递字典参数。
-
错误:
Missing required parameter 'type'
- 原因:缺少创建变更请求的必需参数。
-
解决方案:确保包含所有必需参数。
-
错误:
Invalid value for parameter 'type'
- 原因:提供了无效的
type
参数值。 -
解决方案:使用 "normal"、"standard" 或 "emergency"。
-
错误:
Cannot find get_headers method in either auth_manager or server_config
- 原因:参数顺序错误或对象缺少必需方法。
- 解决方案:确保正确传递参数顺序。
使用教程
使用依赖
- Python 3.11 或更高版本
- 具有适当访问权限的 ServiceNow 实例
安装教程
-
克隆仓库:
git clone https://github.com/yourusername/servicenow-mcp.git cd servicenow-mcp
-
创建虚拟环境并安装包:
python -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate pip install -e .
-
创建
.env
文件:SERVICENOW_INSTANCE_URL=https://your-instance.service-now.com SERVICENOW_USERNAME=your-username SERVICENOW_PASSWORD=your-password SERVICENOW_AUTH_TYPE=basic # 或 oauth, api_key
调试方式
标准 (stdio) 模式
启动 MCP 服务器:
python -m servicenow_mcp.cli
或使用环境变量:
SERVICENOW_INSTANCE_URL=https://your-instance.service-now.com SERVICENOW_USERNAME=your-username SERVICENOW_PASSWORD=your-password SERVICENOW_AUTH_TYPE=basic python -m servicenow_mcp.cli
Server-Sent Events (SSE) 模式
启动 SSE 服务器:
servicenow-mcp-sse --instance-url=https://your-instance.service-now.com --username=your-username --password=your-password
自定义主机和端口:
servicenow-mcp-sse --host=127.0.0.1 --port=8000