使用说明
MCP-连接Azure板和汇流
模型上下文协议 (MCP) 服务器,将 Azure Boards 和 Confluence API 显示为 MCP 兼容 AI 助手(Claude Code、Perplexity 等)的工具。
建筑
Claude Code / Perplexity
│
│ HTTPS
▼
Cloudflare Edge (WAF + Tunnel)
│
│ HTTP
▼
nginx (SSL termination) ── container mcp-nginx
│
│ HTTP proxy
▼
MCP Server (Express + MCP SDK) ── container mcp-server :3005
│
├── Azure DevOps API (PAT)
└── Confluence API (API Token)
先决条件
- Docker e Docker编写
- 已配置域的 Cloudflare 帐户
- 具有工作项目读取权限的 Azure DevOps PAT
- 大西洋API代币(汇流)
配置
1. 环境变量
创建文件 .env 从模板:
cp .env.template .env
填写变量 :
# Azure DevOps
AZURE_DEVOPS_ORG_URL=https://dev.azure.com/sua_organizacao
AZURE_DEVOPS_PROJECT=nome_do_projeto
AZURE_DEVOPS_PAT=seu_pat
AZURE_DEVOPS_TEAM=nome_da_equipa
# Confluence
CONFLUENCE_URL=https://sua-empresa.atlassian.net
CONFLUENCE_USER=email@exemplo.com
CONFLUENCE_API_TOKEN=seu_token
# Cloudflare Tunnel
CLOUDFLARE_TUNNEL_TOKEN=token_do_tunnel_cloudflare
# Token de segurança para a WAF rule do Cloudflare
CLAUDFLARE_SECURE_TOKEN_RULE=Bearer <token_gerado>
要生成安全令牌:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
2.Cloudflare隧道
-
访问 Cloudflare零信任 → 网络→ 隧道→ 创建隧道
-
选择 Cloudflare隧道 并将令牌复制到
CLOUDFLARE_TUNNEL_TOKEN -
嗯 公共主机名添加 :
| 价值 | |---|---| |子域名|
mcp(或其他) Domain 你的域名 |类型|HTTP| |URL|mcp-server:3005|
3. 通过WAF保护(Cloudflare)
在 Cloudflare 仪表板 → 您的域名 → 安全→ WAF → 自定义规则→ 创建规则:
- 表达:
not any(http.request.headers["authorization"][*] contains "Bearer <o-teu-token>") - 行动:阻止
这将阻止所有在边缘没有正确令牌的请求到达服务器之前。
部署
docker compose up -d
要检查日志:
docker compose logs -f
要在代码更改后重建:
docker compose up -d --build mcp-server
我们没有困惑
-
Acede ao困惑→ 设置→ MCP服务器 → Add
-
Prenche:
| 价值 | |---|---| |URL|
https://mcp.<teu-dominio>/mcp| |传输|流式HTTP| |身份验证| API密钥| |API密钥|Bearer <o-teu-token>| -
保存并激活服务器 。
Uso no Claude代码
添加到 ~/.claude/settings.json:
{
"mcpServers": {
"azure-boards-connector": {
"type": "http",
"url": "http://localhost:3005/mcp"
}
}
}
本地访问不需要身份验证 。WAF 规则仅适用于通过 Cloudflare 的请求。
可用工具
Azure板
| 工具 | 描述 |
|---|---|
getTasks |
活动tarefas的层次列表(史诗→用户故事→任务) |
getTaskDescription 特定任务的详细信息,描述和评论。 |
|
getChildTasks 父亲任务的女儿 |
|
countAllTasks 在项目中创建的任务总数 |
|
getTasksByType 按类型过滤的任务: Epic, User Story 或 Task |
|
getSprintUserStoriesWithChildren |
Sprint用户故事及其子任务 |
listTeams |
列出所有 Azure DevOps 项目团队 |
listTeamIterations 团队的冲刺(Sprint),通过过滤 current/past/future |
|
getIterationTasks 按 ID、名称、子字符串或数字分列 Sprint 的工作项目。 |
|
listSprints 列出项目中的所有 Sprint。 |
汇流
| 工具 | 描述 |
|---|---|
get_page 按ID检索页面 |
|
search_confluence 通过CQL搜索内容 |
|
list_spaces 列出所有可用空间。 |
|
create_page 创建新页面(Confluence Storage Format) |
|
update_page 更新现有页面 |
|
get_page_comments |
页面评论,按位置和深度过滤 |