tca-mcp-server 2.0.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/stdio.js CHANGED
@@ -13,4 +13,5 @@ process.env.TCA_ENV = env;
13
13
  registerTools(server);
14
14
  const transport = new StdioServerTransport();
15
15
  await server.connect(transport);
16
- console.log('Server started');
16
+ // 注意:stdio 模式下必须使用 stderr 输出日志,stdout 专用于 MCP 协议通信
17
+ console.error('TCA MCP Server started');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tca-mcp-server",
3
- "version": "2.0.0",
3
+ "version": "2.0.1",
4
4
  "description": "",
5
5
  "main": "./dist/stdio.js",
6
6
  "scripts": {
@@ -0,0 +1,55 @@
1
+ #!/bin/bash
2
+ # install.sh — 将 tca 技能目录软链到各 AI 客户端的 skills 目录
3
+ set -e
4
+
5
+ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
6
+ SKILL_DIR="$SCRIPT_DIR/tca"
7
+
8
+ if [ ! -d "$SKILL_DIR" ]; then
9
+ echo "❌ 未找到技能目录: $SKILL_DIR"
10
+ exit 1
11
+ fi
12
+
13
+ # 定义各客户端 skills 目录
14
+ CODEX_HOME="${CODEX_HOME:-$HOME/.codex}"
15
+ TARGETS=(
16
+ "$CODEX_HOME/skills"
17
+ "$HOME/.claude/skills"
18
+ "$HOME/.cursor/skills"
19
+ "$HOME/.codebuddy/skills"
20
+ )
21
+
22
+ INSTALLED=0
23
+
24
+ for SKILLS_DIR in "${TARGETS[@]}"; do
25
+ TARGET="$SKILLS_DIR/tca"
26
+
27
+ # 如果 skills 父目录不存在(客户端未安装),跳过
28
+ PARENT_DIR="$(dirname "$SKILLS_DIR")"
29
+ if [ ! -d "$PARENT_DIR" ]; then
30
+ echo "⏭ 跳过 $SKILLS_DIR(客户端目录不存在)"
31
+ continue
32
+ fi
33
+
34
+ # 创建 skills 目录(如果不存在)
35
+ mkdir -p "$SKILLS_DIR"
36
+
37
+ # 如果目标已存在且不是软链,跳过
38
+ if [ -e "$TARGET" ] && [ ! -L "$TARGET" ]; then
39
+ echo "⏭ 跳过 $TARGET(已存在且非软链)"
40
+ continue
41
+ fi
42
+
43
+ # 创建或更新软链
44
+ ln -sfn "$SKILL_DIR" "$TARGET"
45
+ echo "✅ 已链接 $TARGET → $SKILL_DIR"
46
+ INSTALLED=$((INSTALLED + 1))
47
+ done
48
+
49
+ echo ""
50
+ if [ $INSTALLED -gt 0 ]; then
51
+ echo "🎉 安装完成!已链接到 $INSTALLED 个客户端。"
52
+ echo " 如果客户端正在运行,请重启以加载技能。"
53
+ else
54
+ echo "⚠️ 未安装到任何客户端。请确认至少安装了一个支持的 AI 客户端。"
55
+ fi
package/skill/pack.sh ADDED
@@ -0,0 +1,32 @@
1
+ #!/bin/bash
2
+ # pack.sh — 打包 tca 技能目录为 zip 文件
3
+ set -e
4
+
5
+ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
6
+ SKILL_DIR="$SCRIPT_DIR/tca"
7
+ OUTPUT="${1:-$SCRIPT_DIR/releases/tca.zip}"
8
+
9
+ if [ ! -d "$SKILL_DIR" ]; then
10
+ echo "❌ 未找到技能目录: $SKILL_DIR"
11
+ exit 1
12
+ fi
13
+
14
+ # 确保输出目录存在
15
+ OUTPUT_DIR="$(dirname "$OUTPUT")"
16
+ mkdir -p "$OUTPUT_DIR"
17
+
18
+ # 删除旧的输出文件
19
+ rm -f "$OUTPUT"
20
+
21
+ # 打包(排除 .gitignore 中的常见条目和 .DS_Store)
22
+ cd "$SCRIPT_DIR"
23
+ zip -r "$OUTPUT" tca/ \
24
+ -x "*.DS_Store" \
25
+ -x "*__MACOSX*" \
26
+ -x "*.git*" \
27
+ -x "*node_modules*" \
28
+ -x "*.env*"
29
+
30
+ echo ""
31
+ echo "✅ 打包完成: $OUTPUT"
32
+ echo " 大小: $(du -h "$OUTPUT" | cut -f1)"
@@ -0,0 +1,70 @@
1
+ # tca-skill
2
+
3
+ 供 AI 助手(Cursor、Claude、CodeBuddy、Codex)使用的腾讯云代码分析(TCA)技能包。安装后,Agent 可按照技能说明调用 TCA MCP Server 进行代码质量扫描、问题排查与修复等场景。
4
+
5
+ ## 技能内容概览
6
+
7
+ - **调用方式**:MCP 协议,通过 `npx -y -p tca-mcp-server@latest tca-mcp-stdio` 启动
8
+ - **凭证**:需配置 `TCA_TOKEN` 和 `TCA_USER_NAME`,访问 [个人 Token 页面](https://tca.tencent.com/user/token) 获取
9
+ - **核心能力**:项目配置管理(17 个工具)、全量/增量代码扫描、问题分级查看与自动修复、任务监控与报告
10
+ - 详见 `tca/SKILL.md`
11
+
12
+ ## CodeBuddy 中使用
13
+
14
+ 从 Knot 下载技能的 zip 包,在 CodeBuddy 中安装即可使用。
15
+
16
+ ## 手动安装(可以给其他智能体使用)
17
+
18
+ 克隆或下载本项目后,在项目根目录执行:
19
+
20
+ ```bash
21
+ ./install.sh
22
+ ```
23
+
24
+ 脚本会在以下目录创建指向 `tca` 的软链(若目录存在且目标非软链则跳过):
25
+
26
+ | 客户端 | 技能目录 |
27
+ | --------- | ---------------------------------------------- |
28
+ | Codex | `$CODEX_HOME/skills`(默认 `~/.codex/skills`) |
29
+ | Claude | `~/.claude/skills` |
30
+ | Cursor | `~/.cursor/skills` |
31
+ | CodeBuddy | `~/.codebuddy/skills` |
32
+
33
+ 安装后若客户端已运行,可重启以加载技能。
34
+
35
+ ## 打包
36
+
37
+ 生成仅含 `tca` 目录的 zip(排除 `.gitignore` 中的条目):
38
+
39
+ ```bash
40
+ ./pack.sh
41
+ # 输出默认: releases/tca.zip
42
+
43
+ ./pack.sh releases/tca-1.0.zip # 指定输出路径
44
+ ```
45
+
46
+ ## 项目结构
47
+
48
+ ```
49
+ .
50
+ ├── README.md # 本文件
51
+ ├── install.sh # 安装脚本(软链到各客户端 skills)
52
+ ├── pack.sh # 打包脚本
53
+ ├── tca/ # 技能目录
54
+ │ ├── SKILL.md # 技能主文档(名称、描述、调用规则、凭证、工作流)
55
+ │ ├── setup.sh # 环境检查与配置验证脚本
56
+ │ └── references/ # 参考文档
57
+ │ ├── api_references.md # 全部 17 个工具的完整 API 文档
58
+ │ ├── tca-setup.md # 场景:项目初始化配置
59
+ │ ├── tca-code-scan.md # 场景:代码扫描分析
60
+ │ ├── tca-issue-fix.md # 场景:问题排查与修复
61
+ │ └── tca-job-monitor.md # 场景:任务状态监控
62
+ └── releases/ # 打包输出(已在 .gitignore)
63
+ ```
64
+
65
+ ## 相关链接
66
+
67
+ - 🏠 **TCA 官网**:https://tca.tencent.com
68
+ - 📖 **使用文档**:https://tca.tencent.com/document/zh/guide/
69
+ - 🔑 **获取 Token**:https://tca.tencent.com/user/token
70
+ - 📦 **npm 包**:https://www.npmjs.com/package/tca-mcp-server
@@ -1,8 +1,18 @@
1
1
  ---
2
- name: tca-mcp-server
2
+ name: tca
3
3
  description: 腾讯云代码分析(TCA),提供完整的代码分析操作能力。当用户需要进行代码质量检查、安全扫描、代码规范检查时使用此skill,包括:(1) 配置和管理TCA分析项目 (2) 启动全量/增量代码扫描 (3) 查看和修复代码问题 (4) 监控扫描任务状态 (5) 获取分析报告。
4
4
  homepage: https://tca.tencent.com
5
- metadata: { 'openclaw': { 'primaryEnv': 'TCA_TOKEN', 'category': 'tencent', 'emoji': '🔍' } }
5
+ metadata:
6
+ {
7
+ 'openclaw':
8
+ {
9
+ 'primaryEnv': 'TCA_TOKEN',
10
+ 'category': 'tencent',
11
+ 'tencentTokenMode': 'custom',
12
+ 'tokenUrl': 'https://tca.tencent.com/user/token',
13
+ 'emoji': '🔍',
14
+ },
15
+ }
6
16
  ---
7
17
 
8
18
  # 腾讯云代码分析(TCA)MCP 使用指南
@@ -48,10 +58,23 @@ metadata: { 'openclaw': { 'primaryEnv': 'TCA_TOKEN', 'category': 'tencent', 'emo
48
58
 
49
59
  ## API详细参考文档
50
60
 
51
- 阅读文件 `references/api_references.md` 查看所有工具的完整 API 说明,该文件包含所有工具的参数说明、返回值说明及枚举值说明。
61
+ 首先需要阅读文件 `references/api_references.md` 查看所有工具的完整 API 说明,该文件包含所有工具的参数说明、返回值说明及枚举值说明。
62
+
63
+ ### 🎯 场景化文档指引
64
+
65
+ 根据您的具体任务场景,选择相应的参考文档进行查阅:
66
+
67
+ | 任务场景 | 推荐参考文档 | 主要用途 |
68
+ | ------------------------------------------------------ | ---------------------------------------- | ---------------------------------- |
69
+ | **首次配置** - 初始化 TCA 项目、接入仓库、创建分析项目 | 阅读文件 `references/tca-setup.md` | 交互式引导完成项目配置的完整工作流 |
70
+ | **代码扫描** - 启动全量/增量扫描、获取扫描结果 | 阅读文件 `references/tca-code-scan.md` | 从启动扫描到获取分析报告的完整流程 |
71
+ | **问题修复** - 查看代码问题、分析根因、修复代码 | 阅读文件 `references/tca-issue-fix.md` | 问题排查、根因分析与自动修复工作流 |
72
+ | **任务监控** - 查看任务状态、历史记录、分析报告 | 阅读文件 `references/tca-job-monitor.md` | 任务状态监控与历史记录查询工作流 |
52
73
 
53
74
  ## ⚙️ 快速配置
54
75
 
76
+ 在 OpenClaw 中使用时,需要先完成本地安装和注册。
77
+
55
78
  ### 环境变量
56
79
 
57
80
  使用前需要配置以下环境变量:
@@ -61,9 +84,28 @@ metadata: { 'openclaw': { 'primaryEnv': 'TCA_TOKEN', 'category': 'tencent', 'emo
61
84
  | `TCA_TOKEN` | TCA 平台个人 Token | 访问 [个人中心 → 个人Token](https://tca.tencent.com/user/token) 获取 |
62
85
  | `TCA_USER_NAME` | TCA 平台用户名 | 访问 [个人中心 → 个人Token](https://tca.tencent.com/user/token) 获取 |
63
86
 
64
- ### MCP 客户端配置
87
+ > ⚠️ **如果 `TCA_TOKEN` 或 `TCA_USER_NAME` 为空或未配置**,请先访问 [https://tca.tencent.com/user/token](https://tca.tencent.com/user/token) 获取,否则所有工具调用将返回鉴权失败。
88
+
89
+ ### 安装步骤
90
+
91
+ 1. 运行 `setup.sh` 完成 MCP 服务注册:
92
+
93
+ ```bash
94
+ bash setup.sh
95
+ ```
96
+
97
+ > `setup.sh` 会自动将 TCA MCP Server 注册到 mcporter,并验证配置是否成功。
98
+ > 如果未执行 setup,所有工具调用将无法找到 `tca` 服务。
99
+
100
+ 2. 验证安装是否成功:
101
+
102
+ ```bash
103
+ mcporter list | grep tca
104
+ ```
105
+
106
+ ### MCP 客户端手动配置
65
107
 
66
- MCP 客户端(如 Cursor、VSCode CodeBuddy 等)的配置文件中添加:
108
+ 如果不使用 OpenClaw/mcporter,也可以在 MCP 客户端(如 Cursor、VSCode CodeBuddy 等)的配置文件中直接添加:
67
109
 
68
110
  ```json
69
111
  {
@@ -82,9 +124,10 @@ metadata: { 'openclaw': { 'primaryEnv': 'TCA_TOKEN', 'category': 'tencent', 'emo
82
124
 
83
125
  ### 安装验证
84
126
 
85
- 配置完成后,MCP 客户端会自动启动 TCA MCP Server。可以通过以下方式验证:
127
+ 配置完成后,可以通过以下方式验证:
86
128
 
87
- - AI 对话中输入 "列出我的TCA团队",如果返回团队列表则说明配置成功
129
+ - **OpenClaw**:运行 `mcporter list | grep tca` 确认服务已注册
130
+ - **MCP 客户端**:在 AI 对话中输入 "列出我的TCA团队",如果返回团队列表则说明配置成功
88
131
  - 如果返回鉴权失败,请检查 `TCA_TOKEN` 和 `TCA_USER_NAME` 是否正确
89
132
 
90
133
  ## 🔧 工具列表
@@ -1,37 +1,18 @@
1
1
  #!/bin/bash
2
- # Setup script for 腾讯云代码分析(TCA)MCP Server
2
+ # Setup script for 腾讯云代码分析(TCA)MCP Skill
3
3
 
4
4
  set -e
5
5
 
6
6
  echo "🚀 设置腾讯云代码分析(TCA)MCP Server..."
7
7
  echo ""
8
8
 
9
- # 检查 Node.js 环境
10
- if ! command -v node &> /dev/null; then
11
- echo "❌ 未找到 Node.js,请先安装 Node.js >= 22.0.0"
12
- echo " 推荐使用 nvm 安装:https://github.com/nvm-sh/nvm"
13
- exit 1
14
- fi
15
-
16
- NODE_VERSION=$(node -v | cut -d'v' -f2 | cut -d'.' -f1)
17
- if [ "$NODE_VERSION" -lt 22 ]; then
18
- echo "⚠️ Node.js 版本过低(当前:$(node -v)),需要 >= 22.0.0"
19
- echo " 请升级 Node.js 版本"
20
- exit 1
21
- fi
22
- echo "✅ Node.js 版本检查通过:$(node -v)"
23
-
24
- # 检查 npx
25
- if ! command -v npx &> /dev/null; then
26
- echo "❌ 未找到 npx,请确保 npm 已正确安装"
27
- exit 1
28
- fi
29
- echo "✅ npx 可用"
30
-
31
- # 检查环境变量
32
- echo ""
9
+ # ───────────────────────────────────────
10
+ # 1. 检查环境变量
11
+ # ───────────────────────────────────────
33
12
  echo "🔧 检查环境变量配置..."
34
13
 
14
+ HAS_ERROR=false
15
+
35
16
  if [ -z "$TCA_TOKEN" ]; then
36
17
  echo "⚠️ TCA_TOKEN 环境变量未设置"
37
18
  echo " 请访问 https://tca.tencent.com/user/token 获取 Token"
@@ -57,20 +38,97 @@ if [ "$HAS_ERROR" = true ]; then
57
38
  exit 1
58
39
  fi
59
40
 
60
- # 验证 MCP Server 是否可以正常启动
41
+ # ───────────────────────────────────────
42
+ # 2. 检查 Node.js 版本(mcporter 和 tca-mcp-server 均需要 >= 22)
43
+ # ───────────────────────────────────────
44
+ if ! command -v node &> /dev/null; then
45
+ echo "❌ 未找到 Node.js,请先安装 Node.js >= 22.0.0"
46
+ echo " 推荐使用 nvm 安装:https://github.com/nvm-sh/nvm"
47
+ exit 1
48
+ fi
49
+
50
+ NODE_VERSION=$(node -v | cut -d'v' -f2 | cut -d'.' -f1)
51
+ if [ "$NODE_VERSION" -lt 22 ]; then
52
+ echo "❌ Node.js 版本过低(当前:$(node -v)),mcporter 和 tca-mcp-server 均需要 >= 22.0.0"
53
+ echo " 请升级:nvm install 22 && nvm use 22"
54
+ exit 1
55
+ fi
56
+ echo "✅ Node.js 版本检查通过:$(node -v)"
57
+
58
+ # ───────────────────────────────────────
59
+ # 3. 检查 mcporter(OpenClaw 模式)
60
+ # ───────────────────────────────────────
61
+ if command -v mcporter &> /dev/null; then
62
+ echo ""
63
+ echo "📦 检测到 mcporter,使用 OpenClaw 模式注册 MCP 服务..."
64
+ echo ""
65
+
66
+ # 注册 TCA MCP Server 到 mcporter(stdio 传输模式)
67
+ mcporter config add tca \
68
+ --command "npx" \
69
+ --arg "-y" \
70
+ --arg "-p" \
71
+ --arg "tca-mcp-server@latest" \
72
+ --arg "tca-mcp-stdio" \
73
+ --env "TCA_TOKEN=$TCA_TOKEN" \
74
+ --env "TCA_USER_NAME=$TCA_USER_NAME" \
75
+ --transport stdio \
76
+ --scope home
77
+
78
+ echo ""
79
+ echo "✅ mcporter 注册完成!"
80
+ echo ""
81
+
82
+ # 验证配置
83
+ echo "🧪 验证配置..."
84
+ if mcporter list 2>&1 | grep -q "tca"; then
85
+ echo "✅ 配置验证成功!"
86
+ echo ""
87
+ mcporter list | grep -A 1 "tca" || true
88
+ else
89
+ echo "⚠️ 配置验证失败,请检查环境变量是否正确"
90
+ fi
91
+
92
+ echo ""
93
+ echo "─────────────────────────────────────"
94
+ echo "🎉 设置完成!"
95
+ echo ""
96
+ echo "📖 使用方法:"
97
+ echo " mcporter call tca list_orgs"
98
+ echo ""
99
+ echo "🏠 TCA 官网:https://tca.tencent.com"
100
+ echo ""
101
+ exit 0
102
+ fi
103
+
104
+ # ───────────────────────────────────────
105
+ # 4. 非 mcporter 模式:输出 MCP 客户端配置
106
+ # ───────────────────────────────────────
107
+ echo ""
108
+ echo "📦 mcporter 未安装,使用 MCP 客户端直接配置模式..."
109
+ echo ""
110
+
111
+ # 检查 npx
112
+ if ! command -v npx &> /dev/null; then
113
+ echo "❌ 未找到 npx,请确保 npm 已正确安装"
114
+ exit 1
115
+ fi
116
+ echo "✅ npx 可用"
117
+
118
+ # 预下载 MCP Server 包(不启动进程)
61
119
  echo ""
62
- echo "🧪 验证 TCA MCP Server..."
63
- if npx -y -p tca-mcp-server@latest tca-mcp-stdio --version 2>/dev/null; then
64
- echo "✅ TCA MCP Server 安装验证成功"
120
+ echo "🧪 预下载 TCA MCP Server..."
121
+ if npm view tca-mcp-server version 2>/dev/null; then
122
+ echo "✅ TCA MCP Server 包可用,客户端首次启动时会自动下载"
65
123
  else
66
124
  echo "ℹ️ 首次运行时 npx 会自动下载 tca-mcp-server,无需手动安装"
67
125
  fi
68
126
 
69
127
  echo ""
70
128
  echo "─────────────────────────────────────"
71
- echo "🎉 设置完成!"
129
+ echo "🎉 环境检查完成!"
72
130
  echo ""
73
- echo "📖 MCP 客户端配置示例(添加到 MCP 配置文件中):"
131
+ echo "📖 请将以下配置添加到你的 MCP 客户端配置文件中:"
74
132
  echo ""
75
133
  echo ' {'
76
134
  echo ' "mcpServers": {'
@@ -85,6 +143,12 @@ echo ' }'
85
143
  echo ' }'
86
144
  echo ' }'
87
145
  echo ""
146
+ echo "📁 各客户端配置文件路径:"
147
+ echo " Cursor: ~/.cursor/mcp.json"
148
+ echo " CodeBuddy: VS Code 设置中搜索 MCP 或 ~/.codebuddy/mcp.json"
149
+ echo " Claude Desktop: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)"
150
+ echo " Windsurf: ~/.windsurf/mcp.json"
151
+ echo ""
88
152
  echo "🏠 TCA 官网:https://tca.tencent.com"
89
153
  echo "📖 使用文档:https://tca.tencent.com/document/zh/guide/"
90
154
  echo ""
package/src/stdio.ts CHANGED
@@ -17,4 +17,5 @@ process.env.TCA_ENV = env;
17
17
  registerTools(server);
18
18
  const transport = new StdioServerTransport();
19
19
  await server.connect(transport);
20
- console.log('Server started');
20
+ // 注意:stdio 模式下必须使用 stderr 输出日志,stdout 专用于 MCP 协议通信
21
+ console.error('TCA MCP Server started');