ServiceNow MCP服务器

一个允许Claude与ServiceNow实例交互的MCP服务器,将ServiceNow功能暴露为Claude可以直接调用的工具。

  • by mady22070
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 mady22070/ServiceNowMCPServer

使用说明

servicenow mcp

一个MCP(模型上下文协议)服务器,允许Claude与ServiceNow实例交互。将ServiceNow功能作为工具公开,Claude可以直接从Claude Desktop或任何兼容MCP的客户端调用。

需求

  • Python 3.10+
  • ServiceNow实例(开发人员实例工作正常)
  • Claude Desktop或其他MCP客户端

安装

pip install -r requirements.txt

对于基于RAG的知识搜索(可选):

pip install chromadb sentence-transformers

配置

设置以下环境变量(或复制 .env.example 到 .env):

SERVICENOW_INSTANCE_URL=https://your-instance.service-now.com
SERVICENOW_USERNAME=your-username
SERVICENOW_PASSWORD=your-password

# Optional — enables semantic knowledge search
OPENAI_API_KEY=your-openai-key

选择交通工具

服务器支持两种传输方式:

运输 何时使用
stdio (默认) Claude Desktop--标准本地设置
http Cursor、Cline、LangChain、OpenAI代理SDK、任何web客户端

Claude桌面设置

将此添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "servicenow": {
      "command": "python",
      "args": ["-m", "servicenow_mcp"],
      "env": {
        "SERVICENOW_INSTANCE_URL": "https://your-instance.service-now.com",
        "SERVICENOW_USERNAME": "your-username",
        "SERVICENOW_PASSWORD": "your-password"
      }
    }
  }
}

HTTP传输(游标、Cline、LangChain、OpenAI代理SDK)

以HTTP模式启动服务器:

MCP_TRANSPORT=http python -m servicenow_mcp

MCP端点位于 http://localhost:8000/mcp.

要在所有请求上要求API密钥,请执行以下操作:

MCP_TRANSPORT=http MCP_API_KEY=your-secret-key python -m servicenow_mcp

客户必须包括 Authorization: Bearer your-secret-key 在每一个请求中。

光标/线配置

{
  "mcpServers": {
    "servicenow": {
      "url": "http://localhost:8000/mcp",
      "headers": {
        "Authorization": "Bearer your-secret-key"
      }
    }
  }
}

Docker+HTTP模式

docker run -p 8000:8000 \
  -e MCP_TRANSPORT=http \
  -e MCP_API_KEY=your-secret-key \
  -e SERVICENOW_INSTANCE_URL=https://your-instance.service-now.com \
  -e SERVICENOW_USERNAME=your-username \
  -e SERVICENOW_PASSWORD=your-password \
  servicenow-mcp

包含什么

工具按域分组到包中:

类别 包装
核心开发 脚本、开发、后台脚本、高级开发
数据/配置 表、数据导入/导出、更新集、附件
ITSM 事件、变更、问题、请求、批准
CMDB/发现 CMDB、CSDM、发现、ITAM、ITOM、SAM/HAM
工作流 流设计器、管道、规划器
集成 脚本化REST API,集成中心
UI UI生成器、服务目录、用户体验
应用程序开发 范围应用程序、最佳实践、命名约定
测试 ATF,故障排除
知识 文档搜索、知识库、RAG搜索
安全 治理、模拟、事件

使用Docker运行

如果你不想处理Python环境,你可以在Docker中运行服务器。

  1. 确保你有 Docker 桌面版 安装并运行。

  2. 复制 .env.example 到 .env 并填写您的ServiceNow凭据:

    cp .env.example .env
    # then open .env and set SERVICENOW_INSTANCE_URL, SERVICENOW_USERNAME, SERVICENOW_PASSWORD
    
  3. 构建并启动容器:

    docker-compose up --build
    

    第一次运行需要一分钟的时间来下载和构建所有内容。在那之后,它很快。

  4. 要阻止它:

    docker-compose down
    

就是这样。日志保存到 logs/ 项目目录中的文件夹。

如果你想在Claude Desktop上使用它,你仍然需要通过运行它 python -m servicenow_mcp (Claude Desktop集成讨论的是stdin/stdout,而不是HTTP)。如果你将其作为独立服务运行或独立测试,Docker会更有用。

运行测试

pytest

贡献

看 贡献.md.

许可证

麻省理工学院——见 许可证.