ServiceNow MCP Server

ServiceNow MCP Server

site icon
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

常见问题解答

  1. 错误:argument after ** must be a mapping, not CreateChangeRequestParams
  2. 原因:传递了 CreateChangeRequestParams 对象而不是字典。
  3. 解决方案:确保传递字典参数。

  4. 错误:Missing required parameter 'type'

  5. 原因:缺少创建变更请求的必需参数。
  6. 解决方案:确保包含所有必需参数。

  7. 错误:Invalid value for parameter 'type'

  8. 原因:提供了无效的 type 参数值。
  9. 解决方案:使用 "normal"、"standard" 或 "emergency"。

  10. 错误:Cannot find get_headers method in either auth_manager or server_config

  11. 原因:参数顺序错误或对象缺少必需方法。
  12. 解决方案:确保正确传递参数顺序。

使用教程

使用依赖

  • Python 3.11 或更高版本
  • 具有适当访问权限的 ServiceNow 实例

安装教程

  1. 克隆仓库: git clone https://github.com/yourusername/servicenow-mcp.git cd servicenow-mcp

  2. 创建虚拟环境并安装包: python -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate pip install -e .

  3. 创建 .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

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。