Files
hunjing/frontend/src/lib/api/mcp.ts
T
2026-08-21 16:00:13 +08:00

81 lines
2.2 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* MCP server API(百工枢,/tools/mcp-servers,skills-design §5)。
*
* 支持两种传输协议:streamable-http / stdio。
* stdio 模式通过 start / stop / restart 控制子进程生命周期。
*/
import { apiDelete, apiGet, apiPost, apiPatch } from "./client";
import type {
CreateMcpServerRequest,
McpServer,
McpServerProcessStatus,
} from "@/types/api";
/** 列举 MCP server */
export function listMcpServers(status?: string): Promise<McpServer[]> {
return apiGet<McpServer[]>(
"/tools/mcp-servers",
status ? { status } : undefined,
);
}
/** 注册 MCP server */
export function registerMcpServer(
body: CreateMcpServerRequest,
): Promise<McpServer> {
return apiPost<McpServer>("/tools/mcp-servers", body);
}
/** 更新 MCP server */
export function updateMcpServer(
serverId: string,
body: Partial<CreateMcpServerRequest>,
): Promise<McpServer> {
return apiPatch<McpServer>(`/tools/mcp-servers/${serverId}`, body);
}
/** 删除 MCP server */
export function deleteMcpServer(serverId: string): Promise<void> {
return apiDelete<void>(`/tools/mcp-servers/${serverId}`);
}
/** 查询 MCP server 进程状态 */
export function getMcpServerStatus(
serverId: string,
): Promise<McpServerProcessStatus> {
return apiGet<McpServerProcessStatus>(
`/tools/mcp-servers/${serverId}/status`,
);
}
/** 启动 stdio MCP server 子进程 */
export function startMcpServer(
serverId: string,
): Promise<McpServerProcessStatus> {
return apiPost<McpServerProcessStatus>(
`/tools/mcp-servers/${serverId}/start`,
);
}
/** 停止 stdio MCP server 子进程 */
export function stopMcpServer(
serverId: string,
): Promise<McpServerProcessStatus> {
return apiPost<McpServerProcessStatus>(`/tools/mcp-servers/${serverId}/stop`);
}
/** 重启 stdio MCP server 子进程 */
export function restartMcpServer(
serverId: string,
): Promise<McpServerProcessStatus> {
return apiPost<McpServerProcessStatus>(
`/tools/mcp-servers/${serverId}/restart`,
);
}
/** 刷新 MCP server 工具清单(重新拉取并注册到运行时) */
export function refreshMcpServerTools(serverId: string): Promise<McpServer> {
return apiPost<McpServer>(`/tools/mcp-servers/${serverId}/refresh`);
}