SDLC工具MCP服务器
用于软件开发生命周期管理的综合模型上下文协议(MCP)服务器,为Maven项目分析、JIRA问题跟踪和Confluence文档提供集成工具。
概述
此MCP服务器为Claude Code等AI助手提供了专门的工具来管理整个软件开发生命周期,通过统一的界面集成Maven构建自动化、JIRA项目管理和Confluence知识管理。
主要特点
Maven集成
- Maven项目分析 -多模块项目结构的深入分析
- 依赖管理 -分析和理解依赖树
- 代码质量检查 -静态分析和质量指标
- 安全命令执行 -使用适当的保护措施运行Maven命令
- 自动化文档生成 -生成JavaDoc分析、README、API文档和变更日志
- 实施指南 -基于代码库模式的建议方法
JIRA集成
- 问题搜索 -使用JQL(JIRA查询语言)搜索JIRA问题
- 问题详细信息 -获取有关具体问题的全面信息
- 问题创建 -使用自定义字段创建新问题
- 问题更新 -以编程方式更新现有问题
汇流集成
- 页面搜索 -使用CQL(汇流查询语言)搜索汇流页面
- 页面内容 -检索和阅读页面内容
- 页面创建 -创建新的文档页面
- 知识管理 -组织和管理文件
高级功能
- MCP资源 -缓存和重用昂贵的分析结果
- MCP提示 -预定义的SDLC工作流提示,用于指导开发
- 多工具集成 -无缝结合Maven、JIRA和Confluence操作
SDLC角色集成
与中定义的SDLC角色无缝协作 .github/mcp/personas/:
- 分析师 -需求分析和代码库理解
- 建筑师 -解决方案设计和技术决策
- 开发者 -干净的代码实现
- 测试员 -全面的测试策略
- 审稿人 -代码质量审查
- 记录者 -技术文件
快速开始
先决条件
- Java 17或更高版本
- Maven 3.6+
- Claude Code CLI(用于MCP客户端)
- 带有API令牌的JIRA和/或Confluence帐户(可选,用于JIRA/Confluence功能)
构建
cd sdlc-tools-mcp-server
mvn clean package这将创建一个可执行JAR: target/sdlc-tools-mcp-server-2.0.0-SNAPSHOT-jar-with-dependencies.jar
配置
JIRA和汇流配置
为了避免在每次JIRA和Confluence工具调用时传递凭据,您可以使用以下任一方法配置一次:
- 环境变量 (出于安全考虑建议):
export JIRA_URL=https://your-domain.atlassian.net
export JIRA_EMAIL=your-email@example.com
export JIRA_API_TOKEN=your-jira-api-token
export CONFLUENCE_URL=https://your-domain.atlassian.net/wiki
export CONFLUENCE_EMAIL=your-email@example.com
export CONFLUENCE_API_TOKEN=your-confluence-api-token- 配置文件:
创建 application.properties 在以下位置之一:
- 服务器运行的当前目录 - ~/.sdlc-tools/application.properties
# JIRA Configuration
jira.url=https://your-domain.atlassian.net
jira.email=your-email@example.com
jira.api.token=your-jira-api-token
# Confluence Configuration
confluence.url=https://your-domain.atlassian.net/wiki
confluence.email=your-email@example.com
confluence.api.token=your-confluence-api-token复制 application.properties.example 开始:
cp application.properties.example application.properties
# Edit application.properties with your credentials- 生成API令牌:
- 访问 大西洋API代币 - 点击“创建API令牌” - 给它一个标签并复制令牌 - 如果JIRA和Confluence位于同一实例上,则可以对它们使用相同的令牌
配置优先 (从高到低):
- 工具参数(允许每次调用覆盖)
- 环境变量
application.properties在当前目录中application.properties在~/.sdlc-tools/
跑
java -jar target/sdlc-tools-mcp-server-*-jar-with-dependencies.jar服务器使用JSON-RPC 2.0协议通过标准输入/输出进行通信。
与Claude Code的集成
配置MCP服务器
添加到您的Claude Code MCP设置中(~/.config/claude-code/mcp-settings.json):
{
"mcpServers": {
"sdlc-tools": {
"command": "java",
"args": [
"-jar",
"/absolute/path/to/sdlc-tools-mcp-server-jar-with-dependencies.jar"
]
}
}
}使用Claude代码
- 启动克劳德代码 MCP服务器将自动连接
- 使用MCP工具 在您的提示中:
# Maven tools
@mcp sdlc-tools analyze-maven-project /path/to/your/maven/project
# JIRA tools
@mcp sdlc-tools jira-search-issues --jql "project = MYPROJ AND status = Open"
# Confluence tools
@mcp sdlc-tools confluence-search-pages --cql "space = DEV AND type = page"- 与人物角色结合 对于结构化开发:
@mcp sdlc-tools analyze-maven-project /path/to/project
Now act as the Analyst persona from .github/mcp/personas/01-analyst.md
and create a detailed analysis report for implementing feature X.可用工具
分析maven项目
分析Maven项目结构、模块、依赖关系和配置。
参数:
path(必填):Maven项目根目录的绝对路径
例子:
{
"name": "analyze-maven-project",
"arguments": {
"path": "/Users/dev/my-maven-project"
}
}退货:
- 项目元数据(groupId、artifactId、版本)
- 模块结构和层次结构
- 依赖关系和插件
- 源结构
分析依赖关系
深度依赖分析,包括传递依赖和冲突。
参数:
path(必填):Maven项目或模块的路径module(可选):要分析的特定模块
例子:
{
"name": "analyze-dependencies",
"arguments": {
"path": "/Users/dev/my-maven-project",
"module": "core-module"
}
}运行maven命令
安全地执行允许的Maven命令。
参数:
path(必填):Maven项目的路径command(必填):Maven命令(例如“clean test”)module(可选):要构建的特定模块
允许的命令:
clean,compile,test,package,verify,installdependency:tree,dependency:analyzejacoco:report,pmd:pmd,pmd:cpd
例子:
{
"name": "run-maven-command",
"arguments": {
"path": "/Users/dev/my-maven-project",
"command": "clean test",
"module": "core-module"
}
}代码质量检查
运行静态分析和代码质量检查。
参数:
path(必填):Maven项目或模块的路径
例子:
{
"name": "code-quality-check",
"arguments": {
"path": "/Users/dev/my-maven-project"
}
}生成文档
根据代码分析和Git历史生成全面的技术文档。
参数:
path(必填):Maven项目或模块的路径type(必填):文件类型-javadoc-analysis,readme,api-docs,changelog,或allpackageFilter(可选):API文档的包过滤器(例如。,com.example.api)maxCommits(可选):更改日志的最大提交数(默认值:100)outputFile(可选):是否将输出写入文件(默认值:false)
文档类型:
- javadoc分析 -分析JavaDoc的覆盖率,并为缺失的文档提供建议
- 自述文件 -基于Maven项目分析生成全面的README.md
- api文档 -为所有公共类和方法创建Markdown格式的API文档
- 更新日志 -按照Keep a CHANGELOG格式从Git提交历史生成CHANGELOG.md
- 全部 -生成所有文档类型
示例-JavaDoc分析:
{
"name": "generate-documentation",
"arguments": {
"path": "/Users/dev/my-maven-project",
"type": "javadoc-analysis"
}
}示例-生成README:
{
"name": "generate-documentation",
"arguments": {
"path": "/Users/dev/my-maven-project",
"type": "readme",
"outputFile": true
}
}示例-生成API文档:
{
"name": "generate-documentation",
"arguments": {
"path": "/Users/dev/my-maven-project",
"type": "api-docs",
"packageFilter": "com.example.api",
"outputFile": true
}
}示例-生成变更日志:
{
"name": "generate-documentation",
"arguments": {
"path": "/Users/dev/my-maven-project",
"type": "changelog",
"maxCommits": 50,
"outputFile": true
}
}示例-生成全部:
{
"name": "generate-documentation",
"arguments": {
"path": "/Users/dev/my-maven-project",
"type": "all",
"outputFile": true
}
}建议实施
提出基于代码库分析的实现方法。
参数:
path(必填):Maven项目的路径feature(必填):功能或错误修复说明analysisReport(可选):分析报告的路径
例子:
{
"name": "suggest-implementation",
"arguments": {
"path": "/Users/dev/my-maven-project",
"feature": "Add user authentication with JWT tokens"
}
}SDLC工作流示例
以下是如何将MCP服务器与SDLC角色一起使用,以实现完整的功能实现:
第一步:分析
@mcp maven-sdlc analyze-maven-project /path/to/project
Act as the Analyst persona (.github/mcp/personas/01-analyst.md)
and analyze the impact of adding user authentication to the project.第二步:建筑设计
Based on the analysis above, act as the Architect persona
(.github/mcp/personas/02-architect.md) and create a design document
for implementing JWT-based authentication.步骤3:实施
@mcp maven-sdlc suggest-implementation --feature "JWT authentication"
Act as the Developer persona (.github/mcp/personas/03-developer.md)
and implement the authentication service following the design.步骤4:测试
@mcp maven-sdlc run-maven-command --command "test"
Act as the Tester persona (.github/mcp/personas/04-tester.md)
and create comprehensive tests for the authentication feature.步骤5:代码审查
Act as the Reviewer persona (.github/mcp/personas/05-reviewer.md)
and review the authentication implementation for quality, security,
and best practices.第6步:文件
@mcp maven-sdlc generate-documentation --type "api-guide"
Act as the Documentor persona (.github/mcp/personas/06-documentor.md)
and create user documentation for the authentication API.JIRA工具
jira搜索问题
使用JQL(JIRA查询语言)搜索JIRA问题。
参数:
jiraUrl(可选):JIRA实例URL(例如,“https://your-domain.atlassian.net“)。如果未提供,则使用配置值。email(可选):用于身份验证的用户电子邮件。如果未提供,则使用配置值。apiToken(可选):JIRA API令牌。如果未提供,则使用配置值。jql(必填):JQL查询字符串maxResults(可选):最大结果数(默认值:50)
配置示例:
{
"name": "jira-search-issues",
"arguments": {
"jql": "project = PROJ AND status = Open",
"maxResults": 25
}
}内联凭据示例:
{
"name": "jira-search-issues",
"arguments": {
"jiraUrl": "https://your-domain.atlassian.net",
"email": "user@example.com",
"apiToken": "your-api-token",
"jql": "project = PROJ AND status = Open",
"maxResults": 25
}
}吉拉得到问题
获取有关特定JIRA问题的详细信息。
参数:
jiraUrl(可选):JIRA实例URL。如果未提供,则使用配置的值。email(可选):用于身份验证的用户电子邮件。如果未提供,则使用配置值。apiToken(可选):JIRA API令牌。如果未提供,则使用配置值。issueKey(必填):发布密钥(例如“PROJ-123”)
配置示例:
{
"name": "jira-get-issue",
"arguments": {
"issueKey": "PROJ-123"
}
}吉拉制造问题
在指定项目中创建新的JIRA问题。
参数:
jiraUrl(可选):JIRA实例URL。如果未提供,则使用配置的值。email(可选):用于身份验证的用户电子邮件。如果未提供,则使用配置值。apiToken(可选):JIRA API令牌。如果未提供,则使用配置值。projectKey(必填):项目密钥(例如“PROJ”)issueType(必填):问题类型(例如,“Bug”、“任务”、“故事”)summary(必填):问题摘要/标题description(可选):详细说明
配置示例:
{
"name": "jira-create-issue",
"arguments": {
"projectKey": "PROJ",
"issueType": "Bug",
"summary": "Fix login page error",
"description": "Users are unable to login when using special characters"
}
}汇流工具
汇流搜索页面
使用CQL(汇流查询语言)搜索汇流页面。
参数:
confluenceUrl(可选):汇流实例URL(例如,“https://your-domain.atlassian.net/wiki“)。如果未提供,则使用配置值。email(可选):用于身份验证的用户电子邮件。如果未提供,则使用配置值。apiToken(可选):Confluence API令牌。如果未提供,则使用配置值。cql(必填):CQL查询字符串limit(可选):最大结果数(默认值:25)
配置示例:
{
"name": "confluence-search-pages",
"arguments": {
"cql": "space = DEV AND type = page",
"limit": 10
}
}汇流获取页面
获取有关特定Confluence页面的详细信息。
参数:
confluenceUrl(可选):Confluence实例URL。如果未提供,则使用配置的值。email(可选):用于身份验证的用户电子邮件。如果未提供,则使用配置值。apiToken(可选):Confluence API令牌。如果未提供,则使用配置值。pageId(必填):页面IDexpand(可选):要展开的字段(默认值:“body.storage,version”)
配置示例:
{
"name": "confluence-get-page",
"arguments": {
"pageId": "123456789"
}
}汇流创建页面
在指定空间中创建新的Confluence页面。
参数:
confluenceUrl(可选):Confluence实例URL。如果未提供,则使用配置的值。email(可选):用于身份验证的用户电子邮件。如果未提供,则使用配置值。apiToken(可选):Confluence API令牌。如果未提供,则使用配置值。spaceKey(必填):空格键(例如“DEV”)title(必填):页面标题content(必填):Confluence存储格式(HTML)的页面内容parentId(可选):父页ID
配置示例:
{
"name": "confluence-create-page",
"arguments": {
"spaceKey": "DEV",
"title": "API Documentation",
"content": "
API Documentation
This page contains API documentation...
"
}
}可用资源
分析缓存
缓存Maven项目分析结果,以避免重新运行昂贵的操作。
URI模式: cache://analysis/{projectPath}
例子:
{
"uri": "cache://analysis//Users/dev/my-maven-project"
}退货:
- 缓存分析数据(如果可用)
- 缓存年龄和过期信息
- 提示:如果不存在缓存,则运行analyze maven项目
可用提示
sdlc完整工作流程
完成SDLC工作流程,从分析到实现功能或修复错误的文档。
参数:
projectPath(必填):Maven项目的路径task(必填):要实现的功能或要修复的错误type(可选):任务类型-feature或bugfix(默认值:功能)
例子:
{
"name": "sdlc-full-workflow",
"arguments": {
"projectPath": "/Users/dev/my-maven-project",
"task": "Add user authentication with JWT",
"type": "feature"
}
}退货: 一个结构化的多阶段工作流程,包括:
- 分析(分析师Persona)
- 建筑(建筑师Persona)
- 实现(开发人员角色)
- 测试(测试人员Persona)
- 评论(评论者Persona)
- 文档(Documentor Persona)
发展
项目结构
sdlc-tools-mcp-server/
├── pom.xml
├── README.md
└── src/
├── main/java/com/example/mcp/
│ ├── SdlcToolsMcpServer.java # Main entry point
│ ├── protocol/ # MCP protocol implementation
│ │ ├── McpServer.java
│ │ ├── Transport.java
│ │ └── StdioTransport.java
│ ├── clients/ # HTTP clients for integrations
│ │ ├── JiraClient.java
│ │ └── ConfluenceClient.java
│ ├── tools/ # Maven tools
│ │ ├── Tool.java
│ │ ├── AnalyzeMavenProjectTool.java
│ │ ├── AnalyzeDependenciesTool.java
│ │ ├── RunMavenCommandTool.java
│ │ ├── CodeQualityCheckTool.java
│ │ ├── GenerateDocumentationTool.java
│ │ ├── SuggestImplementationTool.java
│ │ ├── jira/ # JIRA integration tools
│ │ │ ├── SearchJiraIssuesTool.java
│ │ │ ├── GetJiraIssueTool.java
│ │ │ └── CreateJiraIssueTool.java
│ │ └── confluence/ # Confluence integration tools
│ │ ├── SearchConfluencePagesTool.java
│ │ ├── GetConfluencePageTool.java
│ │ └── CreateConfluencePageTool.java
│ ├── resources/ # MCP resources
│ │ ├── Resource.java
│ │ └── AnalysisCacheResource.java
│ └── prompts/ # MCP prompts
│ ├── Prompt.java
│ └── SdlcWorkflowPrompt.java
└── test/java/ # Unit tests运行测试
mvn test代码覆盖率
mvn clean verify jacoco:report
open target/site/jacoco/index.html代码质量
# PMD analysis
mvn pmd:pmd
# Code duplication detection
mvn pmd:cpd
# View reports
open target/site/pmd.html协议细节
服务器通过stdio实现JSON-RPC 2.0。每条消息都是一行JSON对象。
支持的方法
initialize-初始化服务器tools/list-列出可用工具tools/call-调用特定工具resources/list-列出可用资源(v2.0.0+)resources/read-读取特定资源(v2.0.0+)prompts/list-列出可用提示(v2.0.0+)prompts/get-获取带有参数的特定提示(v2.0.0+)
初始化请求
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {}
}列出工具请求
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list",
"params": {}
}调用工具请求
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "analyze-maven-project",
"arguments": {
"path": "/path/to/project"
}
}
}列表资源请求(v2.0.0+)
{
"jsonrpc": "2.0",
"id": 4,
"method": "resources/list",
"params": {}
}读取资源请求(v2.0.0+)
{
"jsonrpc": "2.0",
"id": 5,
"method": "resources/read",
"params": {
"uri": "cache://analysis//path/to/project"
}
}列表提示请求(v2.0.0+)
{
"jsonrpc": "2.0",
"id": 6,
"method": "prompts/list",
"params": {}
}获取提示请求(v2.0.0+)
{
"jsonrpc": "2.0",
"id": 7,
"method": "prompts/get",
"params": {
"name": "sdlc-full-workflow",
"arguments": {
"projectPath": "/path/to/project",
"task": "Add user authentication",
"type": "feature"
}
}
}故障排除
服务器无法启动
问题: Error: Could not find or load main class
解决方案: 确保您使用的JAR包含依赖项:
java -jar maven-sdlc-mcp-server-*-jar-with-dependencies.jarClaude Code无法连接
问题: MCP服务器没有响应
解决方案:
- 验证中的JAR路径
mcp-settings.json是绝对的 - 检查是否安装了Java 17+:
java -version - 手动测试服务器:
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}' | java -jar server.jar
工具执行失败
问题: “工具执行失败”错误
解决方案:
- 验证项目路径是否存在并包含
pom.xml - 检查Maven是否已安装:
mvn -version - 查看服务器日志以了解详细的错误消息
贡献
- 复刻仓库
- 创建要素分支:
git checkout -b feature/amazing-feature - 提交更改:
git commit -m 'Add amazing feature' - 推送到分支:
git push origin feature/amazing-feature - 打开拉取请求
开发指南
- 遵循Java最佳实践和编码标准
- 为所有新工具编写单元测试(目标覆盖率>80%)
- 添加功能时更新文档
- 使用SDLC角色来指导您的开发过程!
许可证
版权所有©2025。保留所有权利。
支持
- 文档:参见
.github/mcp/README.mdSDLC人物角色 - 问题:在GitHub上报告问题
- 讨论:加入讨论以获取问题和反馈
路线图
v2.0.0(已发布)
- \[x\] MCP资源支持缓存分析结果
- \[x\] MCP提示支持预定义的SDLC工作流程
- \[x\] 通过更好的错误代码增强错误处理
- \[x\] 整个服务器的全面日志记录
- \[x\] JIRA集成(搜索、获取、创建问题)
- \[x\] 汇流集成(搜索、获取、创建页面)
- \[x\] 将项目重命名为SDLC工具(删除了Maven特定的命名)
- \[x\] 多平台SDLC支持
- \[x\] 自动生成文档 (JavaDoc分析、自述、API文档、变更日志)
v2.1.0(计划中)
- \[\]完全PMD集成,用于代码质量检查
- \[\]依赖冲突解决建议
- \[\]与SonarQube集成
- \[\]其他JIRA工具(过渡问题,添加注释)
v2.2.0(计划中)
- \[\]大型项目的性能优化
- \[\]WebSocket传输选项
- \[\]其他工作流提示(调试、重构)
- \[\]更多资源类型(项目文件、配置)
v3.0.0(未来)
- \[\]支持Gradle项目
- \[\]人工智能驱动的代码生成
- \[\]与CI/CD平台集成
- \[\]多语言支持(Kotlin、Scala)
______________________________________________________________________
内置于❤️ 更好的人工智能辅助软件开发生命周期管理
