mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-07-05 02:55:48 +08:00
Refa: migrate MCP APIs to RESTful api (#14317)
### What problem does this PR solve? migrate MCP APIs to RESTful api ### Type of change - [x] Refactoring
This commit is contained in:
@@ -141,8 +141,12 @@ export const useDeleteMcpServer = () => {
|
||||
} = useMutation({
|
||||
mutationKey: [McpApiAction.DeleteMcpServer],
|
||||
mutationFn: async (ids: string[]) => {
|
||||
const { data = {} } = await mcpServerService.delete({ mcp_ids: ids });
|
||||
if (data.code === 0) {
|
||||
const results = await Promise.all(
|
||||
ids.map((id) => mcpServerService.delete({ mcp_id: id })),
|
||||
);
|
||||
const failed = results.find(({ data = {} }) => data.code !== 0);
|
||||
const data = failed?.data ?? { code: 0, data: true };
|
||||
if (!failed) {
|
||||
message.success(i18n.t(`message.deleted`));
|
||||
|
||||
queryClient.invalidateQueries({
|
||||
@@ -188,8 +192,23 @@ export const useExportMcpServer = () => {
|
||||
} = useMutation<ResponseType<IExportedMcpServers>, Error, string[]>({
|
||||
mutationKey: [McpApiAction.ExportMcpServer],
|
||||
mutationFn: async (ids) => {
|
||||
const { data = {} } = await mcpServerService.export({ mcp_ids: ids });
|
||||
if (data.code === 0) {
|
||||
const results = await Promise.all(
|
||||
ids.map((id) => mcpServerService.export({ mcp_id: id })),
|
||||
);
|
||||
const failed = results.find(({ data = {} }) => data.code !== 0);
|
||||
const data = (failed?.data ?? {
|
||||
code: 0,
|
||||
data: results.reduce<IExportedMcpServers>(
|
||||
(acc, result) => ({
|
||||
mcpServers: {
|
||||
...acc.mcpServers,
|
||||
...(result.data?.data?.mcpServers ?? {}),
|
||||
},
|
||||
}),
|
||||
{ mcpServers: {} },
|
||||
),
|
||||
}) as ResponseType<IExportedMcpServers>;
|
||||
if (!failed) {
|
||||
message.success(i18n.t(`message.operated`));
|
||||
}
|
||||
return data;
|
||||
|
||||
@@ -43,12 +43,7 @@ interface ISymbol {
|
||||
}
|
||||
|
||||
export interface IExportedMcpServers {
|
||||
mcpServers: McpServers;
|
||||
}
|
||||
|
||||
interface McpServers {
|
||||
fetch_2: IExportedMcpServer;
|
||||
github_1: IExportedMcpServer;
|
||||
mcpServers: Record<string, IExportedMcpServer>;
|
||||
}
|
||||
|
||||
export interface IExportedMcpServer {
|
||||
|
||||
@@ -1,57 +1,27 @@
|
||||
import { IPaginationRequestBody } from '@/interfaces/request/base';
|
||||
import api from '@/utils/api';
|
||||
import registerServer from '@/utils/register-server';
|
||||
import request from '@/utils/request';
|
||||
|
||||
const {
|
||||
listMcpServer,
|
||||
createMcpServer,
|
||||
updateMcpServer,
|
||||
deleteMcpServer,
|
||||
getMcpServer,
|
||||
importMcpServer,
|
||||
exportMcpServer,
|
||||
testMcpServer,
|
||||
} = api;
|
||||
|
||||
const methods = {
|
||||
list: {
|
||||
url: listMcpServer,
|
||||
method: 'post',
|
||||
},
|
||||
get: {
|
||||
url: getMcpServer,
|
||||
method: 'get',
|
||||
},
|
||||
create: {
|
||||
url: createMcpServer,
|
||||
method: 'post',
|
||||
},
|
||||
update: {
|
||||
url: updateMcpServer,
|
||||
method: 'post',
|
||||
},
|
||||
delete: {
|
||||
url: deleteMcpServer,
|
||||
method: 'post',
|
||||
},
|
||||
import: {
|
||||
url: importMcpServer,
|
||||
method: 'post',
|
||||
},
|
||||
export: {
|
||||
url: exportMcpServer,
|
||||
method: 'post',
|
||||
},
|
||||
test: {
|
||||
url: testMcpServer,
|
||||
method: 'post',
|
||||
},
|
||||
} as const;
|
||||
|
||||
const mcpServerService = registerServer<keyof typeof methods>(methods, request);
|
||||
const mcpServerService = {
|
||||
get: (params: { mcp_id: string }) =>
|
||||
request.get(api.getMcpServer(params.mcp_id), {
|
||||
params: { mode: 'preview' },
|
||||
}),
|
||||
create: (params?: Record<string, any>) =>
|
||||
request.post(api.createMcpServer, { data: params }),
|
||||
update: ({ mcp_id, ...params }: Record<string, any>) =>
|
||||
request.put(api.updateMcpServer(mcp_id), { data: params }),
|
||||
delete: ({ mcp_id }: { mcp_id: string }) =>
|
||||
request.delete(api.deleteMcpServer(mcp_id)),
|
||||
import: (params?: Record<string, any>) =>
|
||||
request.post(api.importMcpServer, { data: params }),
|
||||
export: ({ mcp_id }: { mcp_id: string }) =>
|
||||
request.get(api.exportMcpServer(mcp_id)),
|
||||
test: (params: Record<string, any>) =>
|
||||
request.post(api.testMcpServer(params.name || 'preview'), { data: params }),
|
||||
};
|
||||
|
||||
export default mcpServerService;
|
||||
|
||||
export const listMcpServers = (params?: IPaginationRequestBody, body?: any) =>
|
||||
request.post(api.listMcpServer, { data: body || {}, params });
|
||||
request.get(api.listMcpServer, { params: { ...params, ...(body || {}) } });
|
||||
|
||||
@@ -220,14 +220,15 @@ export default {
|
||||
`${webAPI}/canvas/${canvasId}/completion`,
|
||||
|
||||
// mcp server
|
||||
listMcpServer: `${webAPI}/mcp_server/list`,
|
||||
getMcpServer: `${webAPI}/mcp_server/detail`,
|
||||
createMcpServer: `${webAPI}/mcp_server/create`,
|
||||
updateMcpServer: `${webAPI}/mcp_server/update`,
|
||||
deleteMcpServer: `${webAPI}/mcp_server/rm`,
|
||||
importMcpServer: `${webAPI}/mcp_server/import`,
|
||||
exportMcpServer: `${webAPI}/mcp_server/export`,
|
||||
testMcpServer: `${webAPI}/mcp_server/test_mcp`,
|
||||
listMcpServer: `${restAPIv1}/mcp/servers`,
|
||||
getMcpServer: (id: string) => `${restAPIv1}/mcp/servers/${id}`,
|
||||
createMcpServer: `${restAPIv1}/mcp/servers`,
|
||||
updateMcpServer: (id: string) => `${restAPIv1}/mcp/servers/${id}`,
|
||||
deleteMcpServer: (id: string) => `${restAPIv1}/mcp/servers/${id}`,
|
||||
importMcpServer: `${restAPIv1}/mcp/servers/import`,
|
||||
exportMcpServer: (id: string) =>
|
||||
`${restAPIv1}/mcp/servers/${id}?mode=download`,
|
||||
testMcpServer: (id: string) => `${restAPIv1}/mcp/servers/${id}/test`,
|
||||
|
||||
// next-search
|
||||
createSearch: `${restAPIv1}/searches`,
|
||||
|
||||
Reference in New Issue
Block a user