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

MCP Opentext Octane

MCP Server

一个将OpenText ALM Octane实体作为工具暴露给LLM使用的MCP服务器,支持故事、功能、史诗、缺陷、任务、发布和工作项的读取和更新操作。

工具数

21

提示词数

0

GitHub Stars

0

资源数

0
软件开发GoAPI集成模型集成

安装说明

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

作者 / 组织

roygabriel

提供方

roygabriel

最后核验

2026/5/17 20:23

快速接入

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

详细介绍

mcp辛烷

早期阿尔法 --该项目正在积极开发中,尚未准备好投入生产。API、工具模式和行为可能会更改,恕不另行通知。使用风险自负。

A. 模型上下文协议 (MCP)服务器,它公开OpenText ALM Octane实体作为LLM消费的工具。在单个Octane工作区中为故事、功能、史诗、缺陷、任务、发布和工作项提供读取和更新操作。

特性

  • 7种实体类型的21个MCP工具(获取、列出、更新)
  • 基于Cookie的会话身份验证,到期时自动重新身份验证
  • 通过自动进行乐观锁定 version_stamp 处理更新
  • Octane查询语法支持过滤和搜索
  • 每个实体类型的默认字段预测,以保持响应的重点
  • 带请求跟踪的结构化JSON日志记录

需求

  • 转到1.25+
  • 访问OpenText ALM Octane实例
  • API密钥凭据或用户名/密码

安装

go install github.com/roygabriel/mcp-opentext-octane@latest

或者从源代码构建:

git clone https://github.com/roygabriel/mcp-opentext-octane.git
cd mcp-opentext-octane
make build

配置

配置是从环境变量加载的。可选 .env 文件支持通过 godotenv.

变量必填描述
OCTANE_URL基本URL(例如。, https://octane.example.com)
OCTANE_SHARED_SPACE_ID共享空间ID(数字)
OCTANE_WORKSPACE_ID工作区ID(数字)
OCTANE_CLIENT_ID否\*API密钥客户端ID
OCTANE_CLIENT_SECRET否\*API密钥客户端机密
OCTANE_USERNAME否\*用户登录名
OCTANE_PASSWORD否\*用户密码
LOG_LEVEL日志记录级别: DEBUG, INFO (默认), WARN, ERROR

\*要么 CLIENT_ID + CLIENT_SECRETUSERNAME + PASSWORD 必须提供。首选API密钥身份验证。

示例 .env

OCTANE_URL=https://octane.example.com
OCTANE_SHARED_SPACE_ID=1001
OCTANE_WORKSPACE_ID=2001
OCTANE_CLIENT_ID=my_api_client_id@internal
OCTANE_CLIENT_SECRET=my_secret

MCP客户端配置

克劳德桌面/克劳德代码

添加到MCP设置中:

{
  "mcpServers": {
    "octane": {
      "command": "/path/to/mcp-opentext-octane",
      "env": {
        "OCTANE_URL": "https://octane.example.com",
        "OCTANE_SHARED_SPACE_ID": "1001",
        "OCTANE_WORKSPACE_ID": "2001",
        "OCTANE_CLIENT_ID": "my_api_client_id@internal",
        "OCTANE_CLIENT_SECRET": "my_secret"
      }
    }
  }
}

工具

实体类型

实体获取列表更新
用户故事get_storylist_storysupdate_story
特点get_featurelist_featuresupdate_feature
Epicget_epiclist_epicsupdate_epic
缺陷get_defectlist_defectsupdate_defect
任务get_tasklist_tasksupdate_task
释放get_releaselist_releasesupdate_release
工作项目get_work_itemlist_work_itemsupdate_work_item

获取

按ID检索单个实体。

参数:

  • id (数字,必填)——实体ID
  • fields (字符串,可选)--逗号分隔的字段名。省略使用实体特定的默认值

列表

通过过滤、排序和分页来搜索和列出实体。

参数:

  • query (string,可选)--辛烷值查询筛选器(请参见 查询句法)
  • fields (字符串,可选)--逗号分隔的字段名。省略使用实体特定的默认值
  • order_by (字符串,可选)--要排序的字段名。前缀为 - 用于下降
  • limit (数字,默认值:50)--返回的最大结果数(1-200)
  • offset (number,默认值:0)--分页时要跳过的结果数

更新

更新现有实体上的字段。版本控制(version_stamp)是自动处理的。

参数:

  • id (数字,必填)——实体ID
  • fields (object,必填)--将字段名转换为新值的对象

不可变字段 (无法更新): id, type, subtype, creation_time, last_modified, version_stamp, workspace_id, logical_name, invested_hours

查询句法

query 参数使用Octane的原生查询语言:

模式描述示例
field='value'完全匹配name='Login bug'
field='val*'通配符匹配name='Login*'
field={ref.value}参考匹配phase={phase.new}
;以及phase={phase.new};priority={list_node.priority.high}
`\\``phase={phase.new}\\phase={phase.open}`
field={null}空检查owner={null}
field>='date'日期比较creation_time>='2024-01-01T00:00:00Z'

最大查询长度:2000个字符。

参考场

引用字段是JSON对象,具有 idtype 物业。它们用于更新指向其他实体的字段。

// Set phase
{"phase": {"id": "phase.new", "type": "phase"}}

// Set priority
{"priority": {"id": "list_node.priority.critical", "type": "list_node"}}

// Assign owner (workspace user)
{"owner": {"id": 5001, "type": "workspace_user"}}

// Assign to sprint
{"sprint": {"id": 2001, "type": "sprint"}}

// Clear a field
{"sprint": null}

每个实体的默认字段

时中 fields 如果省略参数,则每种实体类型都会返回一组精心策划的默认字段:

实体默认字段
故事id、名称、阶段、优先级、故事_点、所有者、功能、发布、里程碑、冲刺、团队、被阻止、被阻止原因、排名、项目起源、描述、创建_时间、最后修改
特征id、名称、阶段、优先级、史诗、发布、里程碑、排名、所有者、描述、创建时间、最后修改时间
Epicid、名称、阶段、发布、所有者、描述、创建时间、最后修改时间
缺陷id、名称、阶段、优先级、故事点、所有者、功能、发布、里程碑、冲刺、团队、被阻止、被阻止原因、排名、项目起源、描述、创建时间、最后修改
任务id、名称、阶段、所有者、backlog_item、sprint、团队、估计小时数、剩余小时数、投资小时数、阻塞、阻塞原因、描述、创建时间、最后修改时间
发布id、名称、开始日期、结束日期、创建时间、最后修改时间
工作项id、名称、子类型、阶段、优先级、所有者、发布、冲刺、团队、creation_time、last_modified

码头工人

使用Docker构建和运行:

# Build
docker build -t mcp-opentext-octane:latest .

# Or via Makefile
make docker

图像使用a 无发行版 非根基,攻击面最小。

发展

先决条件

安装开发工具:

make tools

这将安装 golangci-lintgovulncheck.

命令

命令描述
make all跑兽医、剪毛、测试和构建
make build构建二进制文件
make test运行具有种族检测和覆盖的测试
make cover生成HTML覆盖率报告
make vet快跑 go vet
make lint快跑 golangci-lint
make vuln快跑 govulncheck
make run构建并运行
make docker构建Docker镜像
make clean删除二进制文件和覆盖率文件

项目结构

mcp-opentext-octane/
├── config/
│   ├── config.go          # Environment-based configuration
│   └── config_test.go
├── octane/
│   ├── client.go          # HTTP client with auth and retry
│   ├── client_test.go
│   └── types.go           # Entity, EntityList, QueryParams, constants
├── tools/
│   ├── interfaces.go      # OctaneReader, OctaneWriter, OctaneService
│   ├── handlers.go        # Generic handler factories (get, list, update)
│   ├── handlers_test.go
│   ├── mock_test.go       # MockOctaneService for testing
│   ├── validate.go        # Input validation
│   └── validate_test.go
├── main.go                # Tool registration, middleware, server setup
├── middleware_test.go
├── Makefile
├── Dockerfile
├── .golangci.yml
└── sonar-project.properties

建筑

  • 通用处理程序模式 --三个处理器工厂(GetEntityHandler, ListEntitiesHandler, UpdateEntityHandler)提供所有7种实体类型,由实体类型字符串参数化
  • 动态实体模型 --辛烷有4500多个可能的字段。实体使用 map[string]interface{} 每个类型都有默认的字段投影,而不是类型化结构
  • Cookie会话身份验证 --在第一次请求时延迟身份验证,存储 LWSSO_COOKIE_KEY 在cookie罐中,对401个响应重试一次
  • 乐观锁定 --更新执行GET,然后执行PUT以获取当前 version_stamp,防止过时数据冲突
  • 可测试性 --外部依赖关系位于接口后面(OctaneReader, OctaneWriter, HTTPBackend)用于使用模拟进行单元测试

持续集成

GitHub Actions在推送模式下运行 main/dev 对于pull请求:

  • 测试go vet,使用种族检测器进行测试,80%覆盖率门
  • 棉绒golangci-lint (错误检查、政府、统计检查、未使用、无效分配、gosec、gocritic)
  • 漏洞扫描govulncheck
  • 构建 --取决于测试和棉绒通过情况

Dependabot配置为每周更新Go模块和GitHub操作。

许可证

许可证 了解详情。

目录标签

目录标签

软件开发GoAPI集成模型集成ALM工具本地部署LLM集成项目管理API服务器

接入字段

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

未说明

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

session

工具数量(toolCount,工具数)

21

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明session部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP