Merge branch 'feat/mcp' into deploy/dev

This commit is contained in:
Novice
2025-07-02 15:25:17 +08:00
15 changed files with 90 additions and 79 deletions

View File

@ -46,11 +46,11 @@ class MCPToolProviderController(ToolProviderController):
tools = []
tools_data = json.loads(db_provider.tools)
remote_mcp_tools = [RemoteMCPTool(**tool) for tool in tools_data]
user = db_provider.load_user()
tools = [
ToolEntity(
identity=ToolIdentity(
author=db_provider.user.name if db_provider.user else "Anonymous",
author=user.name if user else "Anonymous",
name=remote_mcp_tool.name,
label=I18nObject(en_US=remote_mcp_tool.name, zh_Hans=remote_mcp_tool.name),
provider=db_provider.server_identifier,
@ -72,7 +72,7 @@ class MCPToolProviderController(ToolProviderController):
return cls(
entity=ToolProviderEntityWithPlugin(
identity=ToolProviderIdentity(
author=db_provider.user.name if db_provider.user else "Anonymous",
author=user.name if user else "Anonymous",
name=db_provider.name,
label=I18nObject(en_US=db_provider.name, zh_Hans=db_provider.name),
description=I18nObject(en_US="", zh_Hans=""),

View File

@ -1,4 +1,5 @@
import base64
import json
from collections.abc import Generator
from typing import Any, Optional
@ -49,6 +50,11 @@ class MCPTool(Tool):
for content in result.content:
if isinstance(content, TextContent):
yield self.create_text_message(content.text)
try:
yield self.create_json_message(json.loads(content.text))
except json.JSONDecodeError:
pass
elif isinstance(content, ImageContent):
yield self.create_blob_message(
blob=base64.b64decode(content.data), meta={"mime_type": content.mimeType}