在线团队工具。MCP。Jira
当地人。用于Jira Cloud的NET 8 MCP服务器,使用JSON-RPC通过STDIO公开。
该项目专为代理驱动的开发工作流(例如,GitHub Copilot代理模式)而设计,在这种工作流中,工具在本地调用,Jira工作项通过有主见的命令进行管理。
这项服务做什么
- 作为控制台应用程序运行(不是web API)
- 通过以下方式进行沟通
stdin/stdout带有JSON RPC样式的消息 - 使用电子邮件+API令牌连接到Jira Cloud(基本身份验证)
- 显示工作流工具:
- create_development_task - start_task - complete_task - add_dev_comment - get_task_context
- 应用工作流默认值:
- 用途 DefaultProjectKey - 添加标签 online-team-tools 创建的任务 - Jira ADF中的格式描述 - 限制向安全状态的转换(In Progress, Done)
仓库的规划
OnlineTeamTools.MCP.Jira/-MCP控制台服务器OnlineTeamTools.MCP.Jira.Tests/- xUnit + Moq 单位测试Docs/-提示/规范工件
需求
- .NET SDK 8+
- Jira Cloud帐户
- Jira API代币
配置
该服务从以下位置加载设置 OnlineTeamTools.MCP.Jira/appsettings.json 以及环境变量。
OnlineTeamTools.MCP.Jira/appsettings.json:
{
"Jira": {
"BaseUrl": "${JIRA_BASE_URL}",
"Email": "${JIRA_EMAIL}",
"ApiToken": "${JIRA_API_TOKEN}",
"DefaultProjectKey": "${JIRA_DEFAULT_PROJECT_KEY}"
}
}创建 .env 在存储库根目录中:
JIRA_BASE_URL=https://your-domain.atlassian.net
JIRA_EMAIL=you@example.com
JIRA_API_TOKEN=your-api-token
JIRA_DEFAULT_PROJECT_KEY=PROJ笔记:
- 应用程序自动加载
.env从当前文件夹或父文件夹。 - 如果shell环境变量已经存在,它们将被保留。
构建和测试
从repo根目录:
dotnet build OnlineTeamTools.MCP.Jira.sln
dotnet test OnlineTeamTools.MCP.Jira.Tests/OnlineTeamTools.MCP.Jira.Tests.csproj在本地运行
从repo根目录:
cd OnlineTeamTools.MCP.Jira
dotnet run或者第一次构建后的快速路径:
cd OnlineTeamTools.MCP.Jira
dotnet run --no-build预期行为:
- 该进程似乎处于空闲状态,没有输出。
- 它正在等待JSON输入
stdin.
MCP请求格式
每行代表一个请求:
{"id":"1","method":"tools/list","params":{}}支持的方法:
tools/listtools/call
快速命令
1) 列出工具
cd OnlineTeamTools.MCP.Jira
printf '%s\n' '{"id":"1","method":"tools/list","params":{}}' | dotnet run --no-build2) 创建开发任务
cd OnlineTeamTools.MCP.Jira
printf '%s\n' '{"id":"2","method":"tools/call","params":{"name":"create_development_task","arguments":{"title":"Establish communication","description":"Establish communication between MCP server and Jira workflow."}}}' | dotnet run --no-build3) 启动任务
cd OnlineTeamTools.MCP.Jira
printf '%s\n' '{"id":"3","method":"tools/call","params":{"name":"start_task","arguments":{"issue_key":"OTT-1"}}}' | dotnet run --no-build4) 完成任务
cd OnlineTeamTools.MCP.Jira
printf '%s\n' '{"id":"4","method":"tools/call","params":{"name":"complete_task","arguments":{"issue_key":"OTT-1"}}}' | dotnet run --no-build5) 添加评论
cd OnlineTeamTools.MCP.Jira
printf '%s\n' '{"id":"5","method":"tools/call","params":{"name":"add_dev_comment","arguments":{"issue_key":"OTT-1","comment":"Work started."}}}' | dotnet run --no-build6) 获取任务上下文
cd OnlineTeamTools.MCP.Jira
printf '%s\n' '{"id":"6","method":"tools/call","params":{"name":"get_task_context","arguments":{"issue_key":"OTT-1"}}}' | dotnet run --no-build工具参考
create_development_task
输入:
title(必填)description(必填)
输出:
successissue_key
start_task
输入:
issue_key(必填)
输出:
successissue_keystate(In Progress)
complete_task
输入:
issue_key(必填)
输出:
successissue_keystate(Done)
add_dev_comment
输入:
issue_key(必填)comment(必填)
输出:
successissue_key
get_task_context
输入:
issue_key(必填)
输出:
successissue_keycontext(Jira的序列化JSON摘要)
常见故障排除
dotnet run 未显示输出
这是意料之中的。服务正在等待 stdin MCP请求。
appsettings.json was not found
从项目目录运行:
cd OnlineTeamTools.MCP.Jira
dotnet runInvalid URI: The format of the URI could not be determined
JIRA_BASE_URL 缺失/无效。设置一个完整的绝对URL:
JIRA_BASE_URL=https://your-domain.atlassian.net吉拉回来了 404 Issue does not exist or you do not have permission
- 验证
issue_key - 验证项目/问题的帐户权限
- 确认项目输入
.env匹配您的Jira项目
问题已创建,但在板上不可见
对于Scrum板,新创建的任务通常在待办事项列表中,直到分配给活动的冲刺。
直接打开:
https://.atlassian.net/browse/
安全说明
- 切勿提交真实凭证。
- 保持
.env脱离源代码控制。 - 如果令牌已暴露,请对其进行旋转。
