fix: Apply MCP node acquisition tool (#3510)

This commit is contained in:
shaohuzhang1 2025-07-08 17:02:02 +08:00 committed by GitHub
parent f04de2328a
commit fce2f50a01
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 15 additions and 11 deletions

View File

@ -572,8 +572,8 @@ class PlayDemoTextRequest(serializers.Serializer):
async def get_mcp_tools(servers):
async with MultiServerMCPClient(servers) as client:
return client.get_tools()
client = MultiServerMCPClient(servers)
return await client.get_tools()
class McpServersSerializer(serializers.Serializer):

View File

@ -71,7 +71,8 @@ class ApplicationAPI(APIView):
RoleConstants.USER.get_workspace_role(),
RoleConstants.WORKSPACE_MANAGE.get_workspace_role())
def get(self, request: Request, workspace_id: str):
return result.success(Query(data={'workspace_id': workspace_id, 'user_id': request.user.id}).list(request.query_params))
return result.success(
Query(data={'workspace_id': workspace_id, 'user_id': request.user.id}).list(request.query_params))
class Page(APIView):
authentication_classes = [TokenAuth]
@ -266,9 +267,11 @@ class McpServers(APIView):
[PermissionConstants.APPLICATION.get_workspace_application_permission()],
CompareConstants.AND),
RoleConstants.WORKSPACE_MANAGE.get_workspace_role())
def get(self, request: Request, workspace_id, application_id: str):
def post(self, request: Request, workspace_id, application_id: str):
return result.success(ApplicationOperateSerializer(
data={'mcp_servers': request.query_params.get('mcp_servers')}).get_mcp_servers())
data={'mcp_servers': request.query_params.get('mcp_servers'), 'workspace_id': workspace_id,
'user_id': request.user.id,
'application_id': application_id}).get_mcp_servers(request.data))
class SpeechToText(APIView):

View File

@ -289,11 +289,12 @@ const speechToText: (
/**
* mcp
*/
const getMcpTools: (application_id: String, loading?: Ref<boolean>) => Promise<Result<any>> = (
application_id,
loading,
) => {
return get(`${prefix.value}/${application_id}/mcp_tools`, undefined, loading)
const getMcpTools: (
application_id: String,
mcp_servers: any,
loading?: Ref<boolean>,
) => Promise<Result<any>> = (application_id, mcp_servers, loading) => {
return post(`${prefix.value}/${application_id}/mcp_tools`, { mcp_servers }, {}, loading)
}
/**

View File

@ -260,7 +260,7 @@ function getTools() {
MsgError(t('views.applicationWorkflow.nodes.mcpNode.mcpServerTip'))
return
}
applicationApi.getMcpTools(id, loading).then((res: any) => {
applicationApi.getMcpTools(id, form_data.value.mcp_servers, loading).then((res: any) => {
form_data.value.mcp_tools = res.data
MsgSuccess(t('views.applicationWorkflow.nodes.mcpNode.getToolsSuccess'))
// jsonmcp_server