Jira数据检索服务

一个后端服务,通过安全的MCP端点让AI客户端检索Jira问题数据,并对Jira响应进行标准化处理,确保输出确定性,同时记录每次Jira交互以供审计。

  • by muuminbaargeele
  • Shell
  • 本地部署
  • 更新于
在 GitHub 查看 muuminbaargeele/jira-mcp-server

使用说明

Jira MCP服务器

仅后端服务,允许AI客户端通过 安全MCP端点。该服务将Jira响应标准化,并保留输出 并记录每个Jira交互以供审计。

主要特点

  • 安全OAuth客户端凭据访问(承载令牌)。
  • 用于AI的确定性、规范化Jira问题输出。
  • 对请求、响应和错误进行审核日志记录。
  • 具有稳定错误响应的只读Jira访问。

技术栈

  • Node.js+TypeScript
  • NestJS
  • 类型ORM+MySQL
  • JWT验证工作

先决条件

  • Node.js 20 LTS
  • MySQL 8+
  • 具有目标项目只读访问权限的Jira帐户
  • OAuth客户端凭据(客户端id/机密)和JWKS URL

入门指南

  1. 安装依赖项。
  2. 创建本地 .env 包含所需变量的文件。
  3. 以开发模式启动服务。
npm install
npm run start:dev

配置(.env)

所需变量:

  • JIRA_BASE_URL
  • JIRA_EMAIL
  • JIRA_API_TOKEN
  • JIRA_TIMEOUT_MS
  • JIRA_RETRY_COUNT
  • JIRA_MAX_CONCURRENT
  • JIRA_MIN_TIME_MS
  • OAUTH_JWKS_URL
  • OAUTH_CLIENT_ID
  • OAUTH_CLIENT_SECRET
  • DB_HOST
  • DB_PORT
  • DB_NAME
  • DB_USER
  • DB_PASSWORD
  • AUDIT_RETENTION_DAYS
  • AUDIT_RETENTION_INTERVAL_MINUTES

可选变量:

  • OAUTH_AUDIENCE
  • OAUTH_ISSUER
  • PORT

API

检索Jira问题

POST /mcp/jira/issue

标题:

  • Authorization: Bearer <access_token>

主体:

{
  "key": "ABC-123"
}

笔记:

  • 响应是一个标准化的问题有效载荷。
  • 错误是稳定的,不会暴露Jira凭据。

脚本

  • npm run build -将TypeScript编译为 dist/
  • npm run start -运行编译输出
  • npm run start:dev -使用ts节点运行
  • npm run lint -lint TypeScript
  • npm run format -格式化源文件

项目笔记

  • 启动时会自动运行迁移,以创建缺少的审核表。
  • 此项目仅是后端,没有UI。