使用说明
TeamCity MCP服务器
TeamCity MCP(模型上下文协议)服务器的TypeScript实现,通过自然语言提供与Claude Desktop和Claude Code的无缝集成。使用简单的对话式命令管理TeamCity CI/CD操作。
🎯 符合MCP协议 | 🚀 单工具架构
快速开始
# Run directly with npx - no installation needed!
npx @hexaust/teamcity-mcp
# Or install globally
npm install -g @hexaust/teamcity-mcp
teamcity-mcp
特性
🎯 自然语言接口
使用简单的英文命令与TeamCity交互-无需学习复杂的API或记住工具名称:
"show me failed builds from yesterday"
"trigger MyApp build on main branch"
"get build 12345 log"
"list all projects"
"cancel running builds"
"download test artifacts from latest build"
"find what broke the build"
🔧 核心能力
- 零安装使用率 通过npx-无需设置
- 生产就绪安全 具有全面的错误净化和速率限制
- TypeScript实现 具有严格的型号安全性
- 输入验证 使用具有安全限制的Zod模式
- 符合MCP协议 -正确的JSON模式验证、资源和错误处理
- 完成TeamCity控制 -构建、项目、工件、代理等
📊 TeamCity运营
- 构建管理:列出、触发、取消和监视具有实时状态的构建
- 项目控制:导航项目层次结构并管理生成配置
- 试验分析:使用详细的错误信息分析测试失败
- 工件访问:安全下载并检查构建工件
- 更改跟踪:使用提交详细信息和文件影响监控VCS更改
- 代理监控:检查构建代理的状态和可用性
- 队列管理:查看和管理构建队列
- 问题检测:识别和分析构建失败
- 实时资源:通过MCP资源访问实时状态仪表板并构建信息
先决条件
- Node.js 18或更高版本
- 具有REST API访问权限的TeamCity服务器
- TeamCity身份验证的承载令牌
配置
环境变量
在运行服务器之前设置这些:
export TEAMCITY_SERVER_URL="https://your-teamcity-server.com"
export TEAMCITY_BEARER_TOKEN="your_bearer_token_here"
Claude桌面配置
添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"teamcity": {
"command": "npx",
"args": ["@hexaust/teamcity-mcp"],
"env": {
"TEAMCITY_SERVER_URL": "https://your-teamcity-server.com",
"TEAMCITY_BEARER_TOKEN": "your_bearer_token_here"
}
}
}
}
Claude代码使用
安装和设置
使用Claude Code内置的MCP管理命令:
# Add TeamCity MCP server with environment variables
claude mcp add teamcity \
--env TEAMCITY_SERVER_URL=https://your-teamcity-server.com \
--env TEAMCITY_BEARER_TOKEN=your_bearer_token_here \
-- npx @hexaust/teamcity-mcp
其他MCP命令:
# List all MCP servers
claude mcp list
# Get server details
claude mcp get teamcity
# Remove server
claude mcp remove teamcity
备选方案:全球环境变量
# Set globally (then add without --env flags)
export TEAMCITY_SERVER_URL="https://your-teamcity-server.com"
export TEAMCITY_BEARER_TOKEN="your_bearer_token_here"
claude mcp add teamcity -- npx @hexaust/teamcity-mcp
运作原理
TeamCity MCP服务器提供了一个单一的自然语言工具,可以理解您的请求并执行适当的TeamCity操作。只需用简单的英语描述你想做什么,服务器就会:
- 解析你的意图 -了解您需要什么样的TeamCity运营
- 执行操作 -对TeamCity进行适当的REST API调用
- 格式化响应 -以清晰、有用的格式呈现结果
自然语言示例
构建操作:
- “显示昨天失败的构建”
- “在临时分支上触发MyApp构建”
- “获取构建12345状态和日志”
- “取消所有正在运行的版本”
项目管理:
- “列出所有项目及其配置”
- “显示MyProject的生成配置”
- “获取VCS根及其详细信息”
监测和分析:
- “目前正在运行什么?”
- “比较最后两个版本”
- “找出折断主树枝的原因”
- “分析最近版本中的测试失败”
工件管理:
- “显示版本#8507的工件”
- “列出版本12345的工件”
- “从最新版本获取工件元数据”
认证
服务器使用TeamCity REST API的Bearer令牌身份验证。要获得不记名代币:
- 转到您的TeamCity服务器
- 导航到您的个人资料设置
- 转到“访问令牌”选项卡
- 创建具有适当权限的新令牌
- 将此令牌用作
TEAMCITY_BEARER_TOKEN环境变量
安全说明:服务器会自动从日志和错误消息中清除承载令牌,以防止意外暴露。
安全和生产准备
此实施包括生产部署的全面安全措施:
输入验证和消毒
- Zod模式验证 对于所有具有严格类型检查的用户输入
- 资源限制 防止DoS攻击(分页最多1000个项目)
- 输入净化 删除危险字符和图案
- 参数长度限制 防止过大的请求
错误处理和信息安全
- 错误清理 防止敏感服务器详细信息泄露
- 堆栈痕迹删除 来自面向用户的错误消息
- URL净化 删除内部路径和敏感参数
- 请求ID跟踪 用于安全审计日志记录
速率限制和资源保护
- 内置速率限制 (每个工具每分钟30-60个请求)
- 分页限制 具有安全默认值(最多1000个项目,每页100个)
- 内容大小限制 用于响应(10MB文本,50MB二进制)
- 连接超时 重试限制
故障排除
未找到环境变量
问题:未拾取环境变量。
解决方案:设置环境变量后,请确保重新启动终端或重新加载shell配置文件:
# After adding to .bashrc/.zshrc
source ~/.bashrc # or ~/.zshrc
连接问题
问题:服务器无法连接到TeamCity。
解决方案:
- 验证您的TeamCity服务器URL是否可访问
- 检查您的持有者令牌是否具有所需的权限
- 确保TeamCity REST API已启用
发展
从源头构建
# Clone the repository
git clone https://github.com/hex/teamcity-mcp.git
cd teamcity-mcp
# Install dependencies
npm install
# Build the project
npm run build
# Run in development mode
npm run dev
项目结构
teamcity-mcp/
├── src/
│ ├── index.ts # Main server with natural language tool
│ ├── client/
│ │ └── teamcity-client.ts # TeamCity REST API client
├── package.json
├── tsconfig.json # TypeScript configuration
└── README.md # Documentation
测试
# Run tests
npm test
# Build and test
npm run build && npm test
许可证
麻省理工学院
贡献
欢迎投稿!请随时提交拉取请求。
支持
有关问题和功能请求,请访问:https://github.com/hex/teamcity-mcp/issues
TeamCity MCP服务器 -自然语言界面,可与Claude Desktop和Claude Code完全集成TeamCity。