使用说明
@suffle/jira mcp服务器
MCP(模型上下文协议)服务器,用于用Jira票证数据丰富提示。将Atlassian文档格式(ADF)转换为Markdown,并提供强大的模板系统。
特性
- 🎫 通过REST API获取全面的Jira票证数据
- 📝 将ADF(Atlassian文档格式)富文本转换为Markdown
- 🎨 具有条件句和循环的强大模板
- 🔧 通过环境变量轻松配置
- 📦 作为npm包使用
npx - 💪 具有完全类型安全的TypeScript
安装
作为全球套餐
npm install -g @suffle/jira-mcp-server
# or
pnpm add -g @suffle/jira-mcp-server
配备npx(无需安装)
npx @suffle/jira-mcp-server
快速开始
1.获取Jira API证书
- 首选https://id.atlassian.com/manage-profile/security/api-tokens
- 点击“创建API令牌”
- 保存API密钥
2.配置环境变量
设置这些环境变量:
export JIRA_BASE_URL="https://your-domain.atlassian.net"
export JIRA_USERNAME="your-email@example.com"
export JIRA_API_KEY="your-api-key-here"
可选:
export JIRA_PROMPT_PATH="/path/to/custom-template.txt"
3.配置MCP客户端
适用于克劳德桌面
编辑MCP配置文件:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"jira": {
"command": "npx",
"args": ["@suffle/jira-mcp-server"],
"env": {
"JIRA_BASE_URL": "https://your-domain.atlassian.net",
"JIRA_USERNAME": "your-email@example.com",
"JIRA_API_KEY": "your-api-key-here"
}
}
}
}
对于VS代码MCP
创建 .vscode/mcp.json:
{
"servers": {
"jira": {
"command": "npx",
"args": ["@suffle/jira-mcp-server"],
"env": {
"JIRA_BASE_URL": "https://your-domain.atlassian.net",
"JIRA_USERNAME": "your-email@example.com",
"JIRA_API_KEY": "your-api-key-here",
"JIRA_PROMPT_PATH": "${workspaceFolder}/prompts/my-template.txt"
}
}
}
}
4.使用提示
在您的MCP客户端(Claude Desktop、VS Code等)中:
/jira_ticket PROJ-123
这将获取票证数据,并在发送前将丰富的提示插入到您的消息输入中以供查看和编辑。##模板系统
模板语法
基本占位符:
{{ ticket.key }}
{{ ticket.summary }}
{{ ticket.description }}
{{ ticket.status }}
{{ ticket.priority }}
{{ ticket.assignee }}
{{ ticket.reporter }}
{{ ticket.issueType }}
{{ ticket.created }}
{{ ticket.updated }}
{{ ticket.url }}
{{ today }}
{{ now }}
条件块:
{{#if ticket.assignee}}
Assignee: {{ ticket.assignee }}
{{/if}}
循环(用于数组):
{{#if ticket.labels}}
Labels:
{{#each ticket.labels}}
- {{ this }}
{{/each}}
{{/if}}
可用数据字段
简单字段:
ticket.key-Jira票证密钥(例如PROJ-123)ticket.id-内部票IDticket.summary-门票摘要/标题ticket.description-门票描述ticket.status-当前状态ticket.statusCategory-状态类别(待办、进行中、已完成)ticket.priority-优先级ticket.issueType-问题类型(Bug、故事、任务等)ticket.assignee-指定人员姓名ticket.assigneeEmail-受让人电子邮件ticket.reporter-报告人姓名ticket.reporterEmail-记者电子邮件ticket.created-创建日期(格式化)ticket.updated-上次更新日期(格式化)ticket.url-门票的直接URL
数组字段(与 #each):
ticket.labels-标签数组ticket.components-组件阵列ticket.fixVersions-修复版本数组ticket.affectedVersions-受影响版本数组
日期字段:
today-当前日期(格式化)now-当前日期和时间(格式化)
示例模板
# {{ ticket.key }}: {{ ticket.summary }}
**Type:** {{ ticket.issueType }}
**Status:** {{ ticket.status }}
**Priority:** {{ ticket.priority }}
## Description
{{ ticket.description }}
## Details
- **Reporter:** {{ ticket.reporter }}
{{#if ticket.assignee}}
- **Assignee:** {{ ticket.assignee }}
{{/if}}
- **Created:** {{ ticket.created }}
- **Updated:** {{ ticket.updated }}
{{#if ticket.labels}}
## Labels
{{#each ticket.labels}}
- {{ this }}
{{/each}}
{{/if}}
{{#if ticket.components}}
## Components
{{#each ticket.components}}
- {{ this }}
{{/each}}
{{/if}}
[View in Jira]({{ ticket.url }})
可用数据字段
| 字段 | 描述 | 类型 |
|---|---|---|
ticket.key |
票证密钥 | 字符串 |
ticket.id |
内部ID | 字符串 |
ticket.summary |
标题 | 字符串 |
ticket.description |
描述(Markdown) | 字符串 |
ticket.status |
状态名称 | 字符串 |
ticket.statusCategory |
状态类别 | 字符串 |
ticket.priority |
优先级 | 字符串 |
ticket.issueType |
问题类型 | 字符串 |
ticket.assignee |
受让人姓名 | string |
ticket.assigneeEmail |
受让人电子邮件 | string |
ticket.reporter |
报告者名称 | 字符串 |
ticket.reporterEmail |
报告人电子邮件 | string |
ticket.created |
创建日期 | 字符串 |
ticket.updated |
上次更新 | string |
ticket.labels |
标签 | 数组 |
ticket.components |
组件 | 阵列 |
ticket.fixVersions |
修复版本 | 数组 |
ticket.affectedVersions |
受影响的版本 | 阵列 |
ticket.url |
票证URL | 字符串 |
多种配置
您可以使用不同的模板文件运行多个服务器实例:
{
"mcpServers": {
"jira-default": {
"command": "npx",
"args": ["@suffle/jira-mcp-server"],
"env": {
"JIRA_BASE_URL": "https://your-domain.atlassian.net",
"JIRA_USERNAME": "your-email@example.com",
"JIRA_API_KEY": "your-api-key-here"
}
},
"jira-detailed": {
"command": "npx",
"args": ["@suffle/jira-mcp-server"],
"env": {
"JIRA_BASE_URL": "https://your-domain.atlassian.net",
"JIRA_USERNAME": "your-email@example.com",
"JIRA_API_KEY": "your-api-key-here",
"JIRA_PROMPT_PATH": "/Users/you/templates/detailed.txt"
}
}
}
}
发展
地方发展
git clone https://github.com/suffle/jira-mcp-server.git
cd jira-mcp-server
pnpm install
pnpm build
运行测试
pnpm test
pnpm test:coverage
出版
当你推送一个git标签时,包会自动发布到npm:
git tag v1.0.1
git push origin v1.0.1
所需的GitHub机密:
NPM_TOKEN-您的npm身份验证令牌
要获取npm令牌:
- 首选https://www.npmjs.com/settings/YOUR_USERNAME/tokens
- 点击“生成新令牌”→ “经典令牌”
- 选择“自动化”类型
- 复制令牌并将其添加到您的GitHub存储库机密中
许可证
麻省理工学院
作者
洗牌
仓库
https://github.com/suffle/jira-mcp-server
