feat(mcp): add front-end API wrappers and types

- Add McpServer and McpStatus types
- Add window.api wrappers for MCP commands
- Extend vite-env.d.ts global typings for MCP APIs
This commit is contained in:
Jason
2025-10-08 22:35:02 +08:00
parent e7a584c5ba
commit 94192a3720
3 changed files with 95 additions and 2 deletions

View File

@@ -1,6 +1,6 @@
import { invoke } from "@tauri-apps/api/core";
import { listen, UnlistenFn } from "@tauri-apps/api/event";
import { Provider, Settings, CustomEndpoint } from "../types";
import { Provider, Settings, CustomEndpoint, McpStatus, McpServer } from "../types";
// 应用类型
export type AppType = "claude" | "codex";
@@ -279,6 +279,69 @@ export const tauriAPI = {
}
},
// Claude MCP获取状态settings.local.json + mcp.json
getClaudeMcpStatus: async (): Promise<McpStatus> => {
try {
return await invoke<McpStatus>("get_claude_mcp_status");
} catch (error) {
console.error("获取 MCP 状态失败:", error);
throw error;
}
},
// Claude MCP读取 mcp.json 文本
readClaudeMcpConfig: async (): Promise<string | null> => {
try {
return await invoke<string | null>("read_claude_mcp_config");
} catch (error) {
console.error("读取 mcp.json 失败:", error);
throw error;
}
},
// Claude MCP设置项目级启用开关
setClaudeMcpEnableAllProjects: async (enable: boolean): Promise<boolean> => {
try {
return await invoke<boolean>("set_claude_mcp_enable_all_projects", { enable });
} catch (error) {
console.error("写入 settings.local.json 失败:", error);
throw error;
}
},
// Claude MCP新增/更新服务器定义
upsertClaudeMcpServer: async (
id: string,
spec: McpServer | Record<string, any>,
): Promise<boolean> => {
try {
return await invoke<boolean>("upsert_claude_mcp_server", { id, spec });
} catch (error) {
console.error("保存 MCP 服务器失败:", error);
throw error;
}
},
// Claude MCP删除服务器定义
deleteClaudeMcpServer: async (id: string): Promise<boolean> => {
try {
return await invoke<boolean>("delete_claude_mcp_server", { id });
} catch (error) {
console.error("删除 MCP 服务器失败:", error);
throw error;
}
},
// Claude MCP校验命令是否在 PATH 中
validateMcpCommand: async (cmd: string): Promise<boolean> => {
try {
return await invoke<boolean>("validate_mcp_command", { cmd });
} catch (error) {
console.error("校验 MCP 命令失败:", error);
return false;
}
},
// ours: 第三方/自定义供应商——测速与端点管理
// 第三方/自定义供应商:批量测试端点延迟
testApiEndpoints: async (