Skip to content

Commit e1cda29

Browse files
bingggclaude[bot]
andauthored
fix(mcp): use proper envId retrieval for GitHub issue generation 🐛 (#140)
- Replace regex-based envId extraction with proper getEnvId function - Update generateGitHubIssueLink to use cloudBaseOptions parameter - Follow established envId priority order from cloudbase-manager - Maintains backward compatibility when envId retrieval fails Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> Co-authored-by: Booker Zhao <binggg@users.noreply.github.com>
1 parent 0b2a2ca commit e1cda29

1 file changed

Lines changed: 20 additions & 3 deletions

File tree

mcp/src/utils/tool-wrapper.ts

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { ToolAnnotations, Tool } from "@modelcontextprotocol/sdk/types.js";
33
import { reportToolCall } from './telemetry.js';
44
import { debug } from './logger.js';
55
import { CloudBaseOptions } from '../types.js';
6+
import { getEnvId } from '../cloudbase-manager.js';
67
import { shouldRegisterTool } from './cloud-mode.js';
78
import os from 'os';
89

@@ -28,11 +29,27 @@ declare const __MCP_VERSION__: string;
2829
* @param toolName 工具名称
2930
* @param errorMessage 错误消息
3031
* @param args 工具参数
32+
* @param cloudBaseOptions CloudBase 配置选项
3133
* @returns GitHub Issue 创建链接
3234
*/
33-
function generateGitHubIssueLink(toolName: string, errorMessage: string, args: any): string {
35+
async function generateGitHubIssueLink(toolName: string, errorMessage: string, args: any, cloudBaseOptions?: CloudBaseOptions): Promise<string> {
3436
const baseUrl = 'https://github.com/TencentCloudBase/CloudBase-AI-ToolKit/issues/new';
3537

38+
// 尝试获取环境ID
39+
let envIdSection = '';
40+
try {
41+
const envId = await getEnvId(cloudBaseOptions);
42+
if (envId) {
43+
envIdSection = `
44+
## 环境ID
45+
${envId}
46+
`;
47+
}
48+
} catch (error) {
49+
// 如果获取 envId 失败,不添加环境ID部分
50+
debug('无法获取环境ID:', error);
51+
}
52+
3653
// 构建标题
3754
const title = `MCP工具错误: ${toolName}`;
3855

@@ -44,7 +61,7 @@ function generateGitHubIssueLink(toolName: string, errorMessage: string, args: a
4461
\`\`\`
4562
${errorMessage}
4663
\`\`\`
47-
64+
${envIdSection}
4865
## 环境信息
4966
- 操作系统: ${os.type()} ${os.release()}
5067
- Node.js版本: ${process.version}
@@ -105,7 +122,7 @@ function createWrappedHandler(name: string, handler: any, server: ExtendedMcpSer
105122
});
106123

107124
// 生成 GitHub Issue 创建链接
108-
const issueLink = generateGitHubIssueLink(name, errorMessage, args);
125+
const issueLink = await generateGitHubIssueLink(name, errorMessage, args, cloudBaseOptions);
109126

110127
// 创建增强的错误消息,包含 GitHub Issue 链接
111128
const enhancedErrorMessage = `${errorMessage}\n\n🔗 遇到问题?请复制以下链接到浏览器打开\n即可自动携带错误详情快速创建 GitHub Issue:\n${issueLink}`;

0 commit comments

Comments
 (0)