tca-mcp-server 2.0.1 → 2.0.2
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/tools/index.js +14 -2
- package/package.json +1 -1
- package/skill/tca/SKILL.md +85 -25
- package/skill/tca/setup.sh +56 -117
- package/skill/tca.zip +0 -0
- package/src/tools/index.ts +16 -2
package/dist/tools/index.js
CHANGED
|
@@ -4,9 +4,21 @@ import registerJob from './job.js';
|
|
|
4
4
|
import registerIssueReport from './issue.js';
|
|
5
5
|
import registerSetup from './setup.js';
|
|
6
6
|
export function registerTools(server) {
|
|
7
|
+
// 支持两种配置方式:
|
|
8
|
+
// 1. TCA_TOKEN="用户名:Token" (OpenClaw 单输入框模式,推荐)
|
|
9
|
+
// 2. TCA_TOKEN="Token" + TCA_USER_NAME="用户名" (传统分离模式,向后兼容)
|
|
10
|
+
const rawToken = process.env.TCA_TOKEN || '';
|
|
11
|
+
let token = rawToken;
|
|
12
|
+
let userName = process.env.TCA_USER_NAME || '';
|
|
13
|
+
if (!userName && rawToken.includes(':')) {
|
|
14
|
+
// 从 "用户名:Token" 格式中拆分
|
|
15
|
+
const colonIndex = rawToken.indexOf(':');
|
|
16
|
+
userName = rawToken.substring(0, colonIndex);
|
|
17
|
+
token = rawToken.substring(colonIndex + 1);
|
|
18
|
+
}
|
|
7
19
|
TcaClient.initTcaClient({
|
|
8
|
-
token
|
|
9
|
-
userName
|
|
20
|
+
token,
|
|
21
|
+
userName,
|
|
10
22
|
baseUrl: process.env.TCA_BASE_URL || 'https://tca.tencent.com/',
|
|
11
23
|
env: process.env.TCA_ENV || 'saas',
|
|
12
24
|
});
|
package/package.json
CHANGED
package/skill/tca/SKILL.md
CHANGED
|
@@ -6,6 +6,7 @@ metadata:
|
|
|
6
6
|
{
|
|
7
7
|
'openclaw':
|
|
8
8
|
{
|
|
9
|
+
'requires': { 'env': ['TCA_TOKEN'] },
|
|
9
10
|
'primaryEnv': 'TCA_TOKEN',
|
|
10
11
|
'category': 'tencent',
|
|
11
12
|
'tencentTokenMode': 'custom',
|
|
@@ -73,39 +74,88 @@ metadata:
|
|
|
73
74
|
|
|
74
75
|
## ⚙️ 快速配置
|
|
75
76
|
|
|
76
|
-
|
|
77
|
+
### 关于 TCA MCP Server
|
|
77
78
|
|
|
78
|
-
|
|
79
|
+
TCA MCP Server 是一个发布在 npm 上的包(包名:`tca-mcp-server`),通过 stdio 协议提供 MCP 服务。
|
|
79
80
|
|
|
80
|
-
|
|
81
|
+
- **npm 包名**:`tca-mcp-server`
|
|
82
|
+
- **启动命令**:`npx -y -p tca-mcp-server@latest tca-mcp-stdio`
|
|
83
|
+
- **传输协议**:stdio(标准输入输出)
|
|
84
|
+
- **运行时要求**:Node.js >= 22
|
|
85
|
+
- **⚠️ 无需全局安装**:不要使用 `npm install -g`,直接通过 `npx` 按需拉取即可
|
|
81
86
|
|
|
82
|
-
|
|
83
|
-
| --------------- | ------------------ | -------------------------------------------------------------------- |
|
|
84
|
-
| `TCA_TOKEN` | TCA 平台个人 Token | 访问 [个人中心 → 个人Token](https://tca.tencent.com/user/token) 获取 |
|
|
85
|
-
| `TCA_USER_NAME` | TCA 平台用户名 | 访问 [个人中心 → 个人Token](https://tca.tencent.com/user/token) 获取 |
|
|
87
|
+
### 获取 Token
|
|
86
88
|
|
|
87
|
-
|
|
89
|
+
使用前必须配置 `TCA_TOKEN` 环境变量,否则所有工具调用将返回鉴权失败:
|
|
88
90
|
|
|
89
|
-
|
|
91
|
+
1. 访问 [TCA 个人Token页面](https://tca.tencent.com/user/token)
|
|
92
|
+
2. 登录后复制页面上的 **用户名** 和 **个人 Token**
|
|
93
|
+
3. 在 OpenClaw 中配置环境变量 `TCA_TOKEN`,格式为:`用户名:Token`
|
|
90
94
|
|
|
91
|
-
|
|
95
|
+
> **📌 Token 格式**:`TCA_TOKEN` 的值为 `用户名:Token`(用英文冒号 `:` 分隔)
|
|
96
|
+
> 例如:用户名为 `zhangsan`,Token 为 `abc123def456`,则填入 `zhangsan:abc123def456`
|
|
97
|
+
|
|
98
|
+
| 变量名 | 说明 | 获取方式 |
|
|
99
|
+
| ----------- | ---------------------------------- | -------------------------------------------------------------------- |
|
|
100
|
+
| `TCA_TOKEN` | TCA 平台凭证,格式:`用户名:Token` | 访问 [个人中心 → 个人Token](https://tca.tencent.com/user/token) 获取 |
|
|
101
|
+
|
|
102
|
+
> ⚠️ **向后兼容**:如果你同时设置了 `TCA_TOKEN`(纯 Token)和 `TCA_USER_NAME`(用户名)两个环境变量,系统仍然可以正常工作。合并格式 `用户名:Token` 仅在 `TCA_USER_NAME` 未设置时生效。
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
### 方式一:mcporter 注册(OpenClaw 平台推荐)
|
|
107
|
+
|
|
108
|
+
[mcporter](https://mcporter.pages.oa.com/) 是 OpenClaw 平台提供的 MCP 服务管理 CLI 工具,可统一注册和管理多个 MCP 服务。
|
|
109
|
+
|
|
110
|
+
**自动注册**(运行 setup.sh):
|
|
92
111
|
|
|
93
112
|
```bash
|
|
94
113
|
bash setup.sh
|
|
95
114
|
```
|
|
96
115
|
|
|
97
|
-
> `setup.sh`
|
|
98
|
-
> 如果未执行 setup,所有工具调用将无法找到 `tca` 服务。
|
|
116
|
+
> `setup.sh` 会自动检测并安装 mcporter(如未安装),然后将 TCA MCP Server 注册为 stdio 类型的 MCP 服务。
|
|
99
117
|
|
|
100
|
-
|
|
118
|
+
**手动注册**(如果不想运行 setup.sh,可手动执行以下命令):
|
|
101
119
|
|
|
102
120
|
```bash
|
|
103
|
-
mcporter
|
|
121
|
+
mcporter config add tca \
|
|
122
|
+
--command "npx" \
|
|
123
|
+
--arg "-y" \
|
|
124
|
+
--arg "-p" \
|
|
125
|
+
--arg "tca-mcp-server@latest" \
|
|
126
|
+
--arg "tca-mcp-stdio" \
|
|
127
|
+
--env "TCA_TOKEN=<用户名>:<Token>" \
|
|
128
|
+
--transport stdio \
|
|
129
|
+
--scope home
|
|
104
130
|
```
|
|
105
131
|
|
|
106
|
-
|
|
132
|
+
> ⚠️ mcporter 的参数名是 `--arg`(单数,可重复),不是 `--args`。
|
|
133
|
+
|
|
134
|
+
**注册后验证**:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
# 查看已注册的服务
|
|
138
|
+
mcporter list tca
|
|
139
|
+
|
|
140
|
+
# 调用工具测试
|
|
141
|
+
mcporter call tca list_orgs
|
|
142
|
+
```
|
|
107
143
|
|
|
108
|
-
|
|
144
|
+
**mcporter 常用命令**:
|
|
145
|
+
|
|
146
|
+
| 命令 | 说明 |
|
|
147
|
+
| ---------------------------- | --------------------------- |
|
|
148
|
+
| `mcporter list` | 列出所有已注册的 MCP 服务 |
|
|
149
|
+
| `mcporter list tca` | 查看 tca 服务详情和工具列表 |
|
|
150
|
+
| `mcporter call tca <工具名>` | 调用 tca 的指定工具 |
|
|
151
|
+
| `mcporter config get tca` | 查看 tca 的配置信息 |
|
|
152
|
+
| `mcporter config remove tca` | 移除 tca 服务注册 |
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
### 方式二:MCP 客户端手动配置
|
|
157
|
+
|
|
158
|
+
在 MCP 客户端(如 Cursor、CodeBuddy、Claude Desktop、Windsurf 等)的配置文件中添加以下 JSON:
|
|
109
159
|
|
|
110
160
|
```json
|
|
111
161
|
{
|
|
@@ -114,21 +164,31 @@ mcporter list | grep tca
|
|
|
114
164
|
"command": "npx",
|
|
115
165
|
"args": ["-y", "-p", "tca-mcp-server@latest", "tca-mcp-stdio"],
|
|
116
166
|
"env": {
|
|
117
|
-
"TCA_TOKEN": "
|
|
118
|
-
"TCA_USER_NAME": "<你的TCA_USER_NAME>"
|
|
167
|
+
"TCA_TOKEN": "<用户名>:<Token>"
|
|
119
168
|
}
|
|
120
169
|
}
|
|
121
170
|
}
|
|
122
171
|
}
|
|
123
172
|
```
|
|
124
173
|
|
|
125
|
-
|
|
174
|
+
> 💡 也支持分开配置 `"TCA_TOKEN": "<Token>"` + `"TCA_USER_NAME": "<用户名>"`
|
|
126
175
|
|
|
127
|
-
|
|
176
|
+
各客户端配置文件路径:
|
|
177
|
+
|
|
178
|
+
| 客户端 | 配置文件路径 |
|
|
179
|
+
| -------------- | -------------------------------------------------------------------------- |
|
|
180
|
+
| Cursor | `~/.cursor/mcp.json` |
|
|
181
|
+
| CodeBuddy | VS Code 设置中搜索 MCP 或 `~/.codebuddy/mcp.json` |
|
|
182
|
+
| Claude Desktop | `~/Library/Application Support/Claude/claude_desktop_config.json`(macOS) |
|
|
183
|
+
| Windsurf | `~/.windsurf/mcp.json` |
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
### 安装验证
|
|
128
188
|
|
|
129
|
-
- **
|
|
130
|
-
- **MCP
|
|
131
|
-
- 如果返回鉴权失败,请检查 `TCA_TOKEN`
|
|
189
|
+
- **mcporter 模式**:运行 `mcporter list tca` 确认服务已注册,或运行 `mcporter call tca list_orgs` 测试调用
|
|
190
|
+
- **MCP 客户端模式**:在 AI 对话中输入"列出我的TCA团队",如果返回团队列表则说明配置成功
|
|
191
|
+
- 如果返回鉴权失败,请检查 `TCA_TOKEN` 格式是否为 `用户名:Token`
|
|
132
192
|
|
|
133
193
|
## 🔧 工具列表
|
|
134
194
|
|
|
@@ -235,7 +295,7 @@ mcporter list | grep tca
|
|
|
235
295
|
|
|
236
296
|
| 错误信息 | 错误类型 | 解决方案 |
|
|
237
297
|
| ----------------------------------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
|
|
238
|
-
| **401 Unauthorized** | Token 鉴权失败 | 🔑 检查 `TCA_TOKEN`
|
|
298
|
+
| **401 Unauthorized** | Token 鉴权失败 | 🔑 检查 `TCA_TOKEN` 格式是否为 `用户名:Token`,可访问 [个人Token页面](https://tca.tencent.com/user/token) 重新获取 |
|
|
239
299
|
| **403 Forbidden** | 权限不足 | 🔒 确认用户是否有对应团队/项目组的访问权限 |
|
|
240
300
|
| **404 Not Found** | 资源不存在 | 🔍 检查 `orgSid`、`teamName`、`repoId`、`projectId` 是否正确,可通过 `list_orgs` → `list_teams` → `list_repos` → `list_projects` 重新获取 |
|
|
241
301
|
| **请提供 mcpConfigFile 或 orgSid 等参数** | 参数缺失 | 📝 `start_scan` 等工具需要传入配置文件路径或直接传入 4 个参数(orgSid、teamName、repoId、projectId) |
|
|
@@ -244,7 +304,7 @@ mcporter list | grep tca
|
|
|
244
304
|
|
|
245
305
|
### 问题排查步骤
|
|
246
306
|
|
|
247
|
-
1. **检查环境变量**:确认 `TCA_TOKEN`
|
|
307
|
+
1. **检查环境变量**:确认 `TCA_TOKEN` 已正确配置(格式:`用户名:Token`)
|
|
248
308
|
2. **检查网络连接**:确认能访问 TCA 官网 https://tca.tencent.com
|
|
249
309
|
3. **检查参数**:确认传入工具的参数值正确(如 `orgSid`、`repoId` 等)
|
|
250
310
|
4. **查看工具列表**:确认所调用的工具名称正确
|
package/skill/tca/setup.sh
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
# Setup script for 腾讯云代码分析(TCA)MCP Skill
|
|
3
|
+
# 使用 Custom Token 认证
|
|
4
|
+
# TCA_TOKEN 格式:用户名:Token(由 OpenClaw 平台注入)
|
|
3
5
|
|
|
4
6
|
set -e
|
|
5
7
|
|
|
6
|
-
echo "🚀 设置腾讯云代码分析(TCA)MCP
|
|
8
|
+
echo "🚀 设置腾讯云代码分析(TCA)MCP Skill..."
|
|
7
9
|
echo ""
|
|
8
10
|
|
|
9
11
|
# ───────────────────────────────────────
|
|
@@ -11,144 +13,81 @@ echo ""
|
|
|
11
13
|
# ───────────────────────────────────────
|
|
12
14
|
echo "🔧 检查环境变量配置..."
|
|
13
15
|
|
|
14
|
-
HAS_ERROR=false
|
|
15
|
-
|
|
16
16
|
if [ -z "$TCA_TOKEN" ]; then
|
|
17
17
|
echo "⚠️ TCA_TOKEN 环境变量未设置"
|
|
18
|
-
echo " 请访问 https://tca.tencent.com/user/token
|
|
19
|
-
echo "
|
|
18
|
+
echo " 请访问 https://tca.tencent.com/user/token 获取用户名和 Token"
|
|
19
|
+
echo " 然后在 OpenClaw 中配置环境变量 TCA_TOKEN,格式:用户名:Token"
|
|
20
20
|
echo ""
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
echo "✅ TCA_TOKEN 已配置"
|
|
21
|
+
echo "❌ 请先配置 TCA_TOKEN 环境变量后重试"
|
|
22
|
+
exit 1
|
|
24
23
|
fi
|
|
25
24
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
25
|
+
# 支持两种格式:
|
|
26
|
+
# 1. 合并格式:TCA_TOKEN="用户名:Token"(OpenClaw 推荐)
|
|
27
|
+
# 2. 分离格式:TCA_TOKEN="Token" + TCA_USER_NAME="用户名"(向后兼容)
|
|
28
|
+
if [ -z "$TCA_USER_NAME" ] && echo "$TCA_TOKEN" | grep -q ":"; then
|
|
29
|
+
# 从 "用户名:Token" 格式中拆分
|
|
30
|
+
TCA_USER_NAME_PARSED=$(echo "$TCA_TOKEN" | cut -d: -f1)
|
|
31
|
+
TCA_TOKEN_PARSED=$(echo "$TCA_TOKEN" | cut -d: -f2-)
|
|
32
|
+
echo "✅ TCA_TOKEN 已配置(合并格式,用户名:$TCA_USER_NAME_PARSED)"
|
|
32
33
|
else
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
if [ "$
|
|
37
|
-
|
|
38
|
-
|
|
34
|
+
TCA_USER_NAME_PARSED="$TCA_USER_NAME"
|
|
35
|
+
TCA_TOKEN_PARSED="$TCA_TOKEN"
|
|
36
|
+
echo "✅ TCA_TOKEN 已配置"
|
|
37
|
+
if [ -n "$TCA_USER_NAME" ]; then
|
|
38
|
+
echo "✅ TCA_USER_NAME 已配置"
|
|
39
|
+
else
|
|
40
|
+
echo "⚠️ TCA_USER_NAME 未设置,TCA_TOKEN 中也未包含用户名"
|
|
41
|
+
echo " TCA_TOKEN 格式应为:用户名:Token"
|
|
42
|
+
echo "❌ 请修正 TCA_TOKEN 格式后重试"
|
|
43
|
+
exit 1
|
|
44
|
+
fi
|
|
39
45
|
fi
|
|
40
46
|
|
|
41
47
|
# ───────────────────────────────────────
|
|
42
|
-
# 2. 检查
|
|
48
|
+
# 2. 检查 mcporter
|
|
43
49
|
# ───────────────────────────────────────
|
|
44
|
-
if ! command -v
|
|
45
|
-
echo "
|
|
46
|
-
|
|
47
|
-
|
|
50
|
+
if ! command -v mcporter &> /dev/null; then
|
|
51
|
+
echo "⚠️ 未找到 mcporter,正在安装..."
|
|
52
|
+
npm install -g mcporter
|
|
53
|
+
echo "✅ mcporter 安装完成"
|
|
48
54
|
fi
|
|
49
55
|
|
|
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
56
|
# ───────────────────────────────────────
|
|
59
|
-
# 3.
|
|
57
|
+
# 3. 添加 MCP 配置
|
|
60
58
|
# ───────────────────────────────────────
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
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 ""
|
|
59
|
+
echo "🔧 配置 mcporter..."
|
|
60
|
+
|
|
61
|
+
mcporter config add tca \
|
|
62
|
+
--command "npx" \
|
|
63
|
+
--arg "-y" \
|
|
64
|
+
--arg "-p" \
|
|
65
|
+
--arg "tca-mcp-server@latest" \
|
|
66
|
+
--arg "tca-mcp-stdio" \
|
|
67
|
+
--env "TCA_TOKEN=$TCA_USER_NAME_PARSED:$TCA_TOKEN_PARSED" \
|
|
68
|
+
--transport stdio \
|
|
69
|
+
--scope home
|
|
81
70
|
|
|
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
71
|
echo ""
|
|
108
|
-
echo "
|
|
72
|
+
echo "✅ 配置完成!"
|
|
109
73
|
echo ""
|
|
110
74
|
|
|
111
|
-
#
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
echo "✅
|
|
117
|
-
|
|
118
|
-
# 预下载 MCP Server 包(不启动进程)
|
|
119
|
-
echo ""
|
|
120
|
-
echo "🧪 预下载 TCA MCP Server..."
|
|
121
|
-
if npm view tca-mcp-server version 2>/dev/null; then
|
|
122
|
-
echo "✅ TCA MCP Server 包可用,客户端首次启动时会自动下载"
|
|
75
|
+
# ───────────────────────────────────────
|
|
76
|
+
# 4. 验证配置
|
|
77
|
+
# ───────────────────────────────────────
|
|
78
|
+
echo "🧪 验证配置..."
|
|
79
|
+
if mcporter list 2>&1 | grep -q "tca"; then
|
|
80
|
+
echo "✅ 配置验证成功!"
|
|
81
|
+
mcporter list | grep -A 1 "tca" || true
|
|
123
82
|
else
|
|
124
|
-
echo "
|
|
83
|
+
echo "⚠️ 配置验证失败,请检查网络或 Token 是否正确"
|
|
125
84
|
fi
|
|
126
85
|
|
|
127
86
|
echo ""
|
|
128
87
|
echo "─────────────────────────────────────"
|
|
129
|
-
echo "🎉
|
|
130
|
-
echo ""
|
|
131
|
-
echo "📖 请将以下配置添加到你的 MCP 客户端配置文件中:"
|
|
132
|
-
echo ""
|
|
133
|
-
echo ' {'
|
|
134
|
-
echo ' "mcpServers": {'
|
|
135
|
-
echo ' "tca-mcp-server": {'
|
|
136
|
-
echo ' "command": "npx",'
|
|
137
|
-
echo ' "args": ["-y", "-p", "tca-mcp-server@latest", "tca-mcp-stdio"],'
|
|
138
|
-
echo ' "env": {'
|
|
139
|
-
echo " \"TCA_TOKEN\": \"$TCA_TOKEN\","
|
|
140
|
-
echo " \"TCA_USER_NAME\": \"$TCA_USER_NAME\""
|
|
141
|
-
echo ' }'
|
|
142
|
-
echo ' }'
|
|
143
|
-
echo ' }'
|
|
144
|
-
echo ' }'
|
|
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"
|
|
88
|
+
echo "🎉 设置完成!"
|
|
151
89
|
echo ""
|
|
152
|
-
echo "
|
|
153
|
-
echo "
|
|
90
|
+
echo "📖 使用方法:"
|
|
91
|
+
echo " mcporter call tca list_orgs"
|
|
154
92
|
echo ""
|
|
93
|
+
echo "📖 更多信息请查看 SKILL.md"
|
package/skill/tca.zip
ADDED
|
Binary file
|
package/src/tools/index.ts
CHANGED
|
@@ -6,9 +6,23 @@ import registerIssueReport from './issue.js';
|
|
|
6
6
|
import registerSetup from './setup.js';
|
|
7
7
|
|
|
8
8
|
export function registerTools(server: McpServer) {
|
|
9
|
+
// 支持两种配置方式:
|
|
10
|
+
// 1. TCA_TOKEN="用户名:Token" (OpenClaw 单输入框模式,推荐)
|
|
11
|
+
// 2. TCA_TOKEN="Token" + TCA_USER_NAME="用户名" (传统分离模式,向后兼容)
|
|
12
|
+
const rawToken = process.env.TCA_TOKEN || '';
|
|
13
|
+
let token = rawToken;
|
|
14
|
+
let userName = process.env.TCA_USER_NAME || '';
|
|
15
|
+
|
|
16
|
+
if (!userName && rawToken.includes(':')) {
|
|
17
|
+
// 从 "用户名:Token" 格式中拆分
|
|
18
|
+
const colonIndex = rawToken.indexOf(':');
|
|
19
|
+
userName = rawToken.substring(0, colonIndex);
|
|
20
|
+
token = rawToken.substring(colonIndex + 1);
|
|
21
|
+
}
|
|
22
|
+
|
|
9
23
|
TcaClient.initTcaClient({
|
|
10
|
-
token
|
|
11
|
-
userName
|
|
24
|
+
token,
|
|
25
|
+
userName,
|
|
12
26
|
baseUrl: process.env.TCA_BASE_URL || 'https://tca.tencent.com/',
|
|
13
27
|
env: process.env.TCA_ENV || 'saas',
|
|
14
28
|
});
|