Token导航 LogoToken导航TokenDH.com
Go MCP Servicenow logo
AI代理stdio官方级别未说明来源级核验

Go MCP Servicenow

MCP Server

一个Go语言实现的ServiceNow MCP协议服务器,使AI助手能够通过标准化协议与ServiceNow实例交互。

工具数

69

提示词数

0

GitHub Stars

0

资源数

0
GoClaudeAI代理Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

JeremyProffitt

提供方

JeremyProffitt

最后核验

2026/5/17 20:22

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run -p 3000:3000 \

详细介绍

立即访问mcp服务

ServiceNow的模型上下文协议(MCP)服务器的Go实现。该服务器使AI助手能够通过标准化协议与ServiceNow实例进行交互。

特性

  • 完全支持MCP协议:基于JSON-RPC 2.0的通信
  • 多种身份验证方法:基本身份验证、OAuth 2.0、API密钥
  • 全面的ServiceNow覆盖:跨多个领域的70多种工具
  • 双服务器模式:Stdio(用于本地)和HTTP(用于远程/容器化)
  • 只读模式:写入操作的可选限制
  • 速率限制:内置保护(每20秒5次通话)

ServiceNow概念

了解这些核心的ServiceNow概念将帮助您有效地使用此MCP服务器:

sys_id

ServiceNow中的每条记录都有一个唯一的32个字符的十六进制标识符,称为 sys_id。这是所有记录的主键。

  • 格式:32个十六进制字符(例如。, a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6)
  • 用法:大多数工具接受sys_id或人类可读标识符(如INC0010001)
  • 示例:何时 get_incident 回报 sys_id: "6816f79cc0a8016401c5a33be04be441",使用此值进行更新

显示值vs值

ServiceNow引用字段可以返回原始值或人类可读的显示值:

  • 价值:引用记录的sys_id
  • 显示值:人类可读的文本(例如,用户的全名而不是sys_id)
  • 此服务器返回 display_value 默认情况下,为了可读性

编码查询语法

许多列表工具支持ServiceNow的编码查询语法进行高级过滤:

运算符含义示例
=等于state=1
!=不等于state!=7
^以及state=1^priority=2
^ORstate=1^ORstate=2
LIKE包含short_descriptionLIKEnetwork
STARTSWITH开始于numberSTARTSWITHINC
>大于priority>2
<小于sys_created_on<2024-01-01
ORDERBY升序排序ORDERBYsys_created_on
ORDERBYDESC降序排序ORDERBYDESCpriority

示例:查找高优先级未解决事件: state=1^priority<=2^ORDERBYDESCsys_created_on

参数格式

记录标识符

大多数工具接受多种标识符格式:

类型数字格式sys_id格式
事故INC0010001a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6
变更请求CHG001000132个字符的十六进制字符串
知识文章KB001000132个字符的十六进制字符串
用户admin (用户名)或 admin@example.com (电子邮件)32个字符的十六进制字符串

国家价值观

不同的记录类型使用不同的状态代码:

事件:

  • 1
  • 2 =进行中
  • 3 =暂停
  • 6 =已解决
  • 7 =关闭
  • 8 =已取消

变更请求:

  • -5
  • -4 =评估
  • -3 =授权
  • -2 =预定
  • -1 =实施
  • 0 =审核
  • 3 =关闭
  • 4 =已取消

优先级和影响值

价值优先级影响/紧迫性
1严重
2
3中等
4-
5规划-

日期/时间格式

使用ISO 8601格式: YYYY-MM-DD HH:MM:SS

例子: 2024-12-15 14:30:00

工具参考

事件管理

工具说明关键参数
list_incidents列出带有过滤功能的事件limit, state, assigned_to, category, query
get_incident获取事件详细信息incident_id (编号或sys_id)
create_incident创建新事件short_description (必填), priority, category
update_incident更新现有事件incident_id,要更新的字段
add_incident_comment添加评论/工作注释incident_id, comment, is_work_note
resolve_incident解决事件incident_id, resolution_code, resolution_notes

变更管理

工具说明关键参数
list_change_requests列表更改与筛选limit, state, type, assigned_to
get_change_request获取更改详细信息change_id (编号或sys_id)
create_change_request创建新更改short_description, type (正常/标准/紧急)
update_change_request更新现有更改change_id,要更新的字段
add_change_task添加要更改的任务change_id, short_description
submit_change_for_approval提交审批change_id
approve_change批准待定变更change_id, comments
reject_change拒绝待处理的更改change_id, reason

服务目录

工具说明关键参数
list_catalogs列出服务目录limit
list_catalog_items列出可订购项目limit, category, query
get_catalog_item获取商品详细信息item_id
list_catalog_categories列出类别catalog_id, parent_id
list_catalog_item_variables列出表单变量item_id
create_catalog_category创建类别title, catalog_id
update_catalog_category更新类别category_id,要更新的字段
update_catalog_item更新项目item_id,要更新的字段
create_catalog_item_variable创建表单字段item_id, name, question_text, type
move_catalog_items将项目移动到类别item_ids, target_category_id

知识库

工具说明关键参数
list_knowledge_bases列出知识库limit, active
list_knowledge_articles列出文章limit, knowledge_base, category, query
get_knowledge_article获取文章详细信息article_id (编号或sys_id)
list_kb_categories列出KB类别knowledge_base, parent
create_knowledge_base创建KBtitle, description
create_kb_category创建类别label, knowledge_base
create_knowledge_article创建文章short_description, text, knowledge_base
update_knowledge_article更新文章article_id,要更新的字段
publish_knowledge_article发表文章article_id

用户和组

工具说明关键参数
list_users列出具有筛选功能的用户limit, active, department, query
get_user获取用户详细信息user_id (sys_id、用户名或电子邮件)
list_groups列出组limit, active, query
create_user创建用户user_name, first_name, last_name, email
update_user更新用户user_id,要更新的字段
create_group创建组name, description
update_group更新组group_id,要更新的字段
add_group_members将用户添加到组group_id, user_ids
remove_group_members从组中删除用户group_id, user_ids

工作流

工具说明关键参数
list_workflows列出工作流limit, active, table
get_workflow获取工作流详细信息workflow_id (sys_id或名称)
create_workflow创建工作流name, table
update_workflow更新工作流程workflow_id,要更新的字段
delete_workflow删除工作流workflow_id

脚本包括

工具说明关键参数
list_script_includes列表脚本包括limit, active, query
get_script_include获取脚本详细信息script_id (sys_id或名称)
create_script_include创建脚本name, api_name, script
update_script_include更新脚本script_id,要更新的字段
delete_script_include删除脚本script_id

变更集(更新集)

工具说明关键参数
list_changesets列出更新集limit, state, created_by
get_changeset获取变更集详细信息changeset_id (sys_id或名称)
create_changeset创建更新集name, description
update_changeset更新变更集changeset_id,要更新的字段
commit_changeset标记为完成changeset_id

敏捷开发

工具说明关键参数
list_stories列出用户故事limit, state, sprint, assigned_to
list_epics列出史诗limit, state, product
list_scrum_tasks列出scrum任务limit, story, state, assigned_to
list_projects列出项目limit, state, active
create_story创建用户故事short_description, story_points, sprint
update_story更新故事story_id,要更新的字段
create_epic创造史诗short_description, product
update_epic更新史诗epic_id,要更新的字段
create_scrum_task创建任务short_description, story, type
update_scrum_task更新任务task_id,要更新的字段
create_project创建项目short_description, start_date, end_date
update_project更新项目project_id,要更新的字段

常见工作流

事件生命周期

  1. 创建偶发事件: create_incident 随着 short_descriptioncategory
  2. 分配给组/用户: update_incident 随着 assignment_groupassigned_to
  3. 添加工作笔记: add_incident_comment 随着 is_work_note: true
  4. 更新进度: update_incident 随着 state: "2" (进行中)
  5. 解决: resolve_incident 随着 resolution_coderesolution_notes

变更请求流程

  1. 创建更改: create_change_request 随着 type (正常/标准/紧急)
  2. 添加任务: add_change_task 对于每个实施步骤
  3. 提交审批: submit_change_for_approval
  4. 批准/拒绝: approve_changereject_change
  5. 跟踪进度: update_change_request 状态更新

知识文章发布

  1. 创建文章: create_knowledge_article (创建于草稿状态)
  2. 更新内容: update_knowledge_article 精炼
  3. 发布: publish_knowledge_article 使可见

用户入职培训

  1. 创建用户: create_user 带有必填字段
  2. 查找组: list_groups 识别相关群体
  3. 添加到组: add_group_members 对于每个组

安装

从源代码构建

git clone https://github.com/elastiflow/go-mcp-servicenow.git
cd go-mcp-servicenow
go build -o go-mcp-servicenow .

码头工人

docker build -t go-mcp-servicenow .

配置

环境变量

变量描述必填
SERVICENOW_INSTANCE_URLServiceNow实例URL(例如。,https://dev12345.service-now.com)
SERVICENOW_AUTH_TYPE身份验证类型: basic, oauth,或 api_key是的
SERVICENOW_USERNAME基本/oauth身份验证用户名基本/outh身份验证用户名
SERVICENOW_PASSWORD基本/oauth身份验证密码基本/outh身份验证密码
SERVICENOW_CLIENT_IDOAuth客户端ID用于OAuth
SERVICENOW_CLIENT_SECRETOAuth客户端机密用于OAuth
SERVICENOW_API_KEYAPI_key auth的API密钥用于API_key
READ_ONLY_MODE设置为 true 禁用写入操作
MCP_AUTH_TOKENHTTP模式身份验证令牌
MCP_LOG_DIR日志文件目录
MCP_LOG_LEVEL日志级别:调试、信息、警告、错误

身份验证类型

基本身份验证

export SERVICENOW_INSTANCE_URL="https://dev12345.service-now.com"
export SERVICENOW_AUTH_TYPE="basic"
export SERVICENOW_USERNAME="admin"
export SERVICENOW_PASSWORD="password"

OAuth 2.0(客户端凭据)

export SERVICENOW_INSTANCE_URL="https://dev12345.service-now.com"
export SERVICENOW_AUTH_TYPE="oauth"
export SERVICENOW_CLIENT_ID="your_client_id"
export SERVICENOW_CLIENT_SECRET="your_client_secret"

OAuth 2.0(密码授权)

export SERVICENOW_INSTANCE_URL="https://dev12345.service-now.com"
export SERVICENOW_AUTH_TYPE="oauth"
export SERVICENOW_CLIENT_ID="your_client_id"
export SERVICENOW_CLIENT_SECRET="your_client_secret"
export SERVICENOW_USERNAME="admin"
export SERVICENOW_PASSWORD="password"

API密钥

export SERVICENOW_INSTANCE_URL="https://dev12345.service-now.com"
export SERVICENOW_AUTH_TYPE="api_key"
export SERVICENOW_API_KEY="your_api_key"

用法

标准模式(默认)

./go-mcp-servicenow

HTTP模式

./go-mcp-servicenow --http --host 0.0.0.0 --port 3000

命令行选项

标志描述默认值
--http在HTTP模式下运行false
--hostHTTP主机127.0.0.1
--portHTTP端口3000
--read-only启用只读模式false
--log-dir日志目录操作系统临时目录
--log-level日志级别信息
--version显示版本-

HTTP模式详细信息

在HTTP模式下运行时,服务器会公开:

  • POST / -MCP JSON-RPC端点
  • GET /health -健康检查端点(返回 {"status":"ok","version":"X.X.X"})

认证:HTTP模式需要 Authorization 所有请求的标头(除 /health).授权层是可插拔的;默认情况下,它接受任何令牌。

按请求凭据:在HTTP模式下,ServiceNow凭据可以通过标头而不是环境变量传递,从而启用多用户场景:

标题描述
X-ServiceNow-UsernameServiceNow用户名(覆盖 SERVICENOW_USERNAME)
X-ServiceNow-PasswordServiceNow密码(覆盖 SERVICENOW_PASSWORD)
X-ServiceNow-API-KeyServiceNow API密钥(重写 SERVICENOW_API_KEY)

这些标头会覆盖相应的环境变量(如果存在)。

码头工人

docker run -p 3000:3000 \
  -e SERVICENOW_INSTANCE_URL="https://dev12345.service-now.com" \
  -e SERVICENOW_AUTH_TYPE="basic" \
  -e SERVICENOW_USERNAME="admin" \
  -e SERVICENOW_PASSWORD="password" \
  go-mcp-servicenow

Claude桌面集成

添加到您的Claude Desktop配置(claude_desktop_config.json):

{
  "mcpServers": {
    "servicenow": {
      "command": "/path/to/go-mcp-servicenow",
      "env": {
        "SERVICENOW_INSTANCE_URL": "https://dev12345.service-now.com",
        "SERVICENOW_AUTH_TYPE": "basic",
        "SERVICENOW_USERNAME": "admin",
        "SERVICENOW_PASSWORD": "password"
      }
    }
  }
}

API端点(HTTP模式)

端点方法描述
/POSTMCP JSON-RPC端点
/healthGET健康检查

错误处理

常见错误及解决方法:

错误原因解决方案
“超出速率限制”请求太多等待20秒,降低请求频率
“找不到记录”ID无效验证记录号或sys_ID是否存在
“写入操作被阻止”启用只读模式删除 --read-only 旗帜或 READ_ONLY_MODE=true
“身份验证失败”凭据无效检查用户名/密码或令牌有效性
“拒绝访问”权限不足确保用户具有所需的ServiceNow角色

发展

项目结构

go-mcp-servicenow/
├── main.go
├── go.mod
├── Dockerfile
├── ecs-task-definition.json
├── README.md
└── pkg/
    ├── mcp/
    │   ├── server.go      # MCP server implementation
    │   └── types.go       # MCP protocol types
    ├── auth/
    │   └── auth.go        # MCP authentication
    ├── logging/
    │   └── logging.go     # Structured logging
    ├── servicenow/
    │   ├── client.go      # ServiceNow API client
    │   └── config.go      # Configuration handling
    └── tools/
        ├── registry.go    # Tool registration
        ├── helpers.go     # Utility functions
        ├── incidents.go   # Incident tools
        ├── catalog.go     # Catalog tools
        ├── change.go      # Change management tools
        ├── knowledge.go   # Knowledge base tools
        ├── users.go       # User/group tools
        ├── workflow.go    # Workflow tools
        ├── script_include.go  # Script include tools
        ├── changeset.go   # Changeset tools
        └── agile.go       # Agile tools

建筑

go build -o go-mcp-servicenow .

测试

go test ./...

许可证

MIT许可证

学分

搬运来的 梯队人工智能实验室/servicenow mcp python

目录标签

目录标签

GoClaudeAI代理ServiceNow集成本地部署MCP协议ITSM自动化AI助手接口企业IT管理

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

69

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP