docs: Add MCP Server docs.

This commit is contained in:
Jerry Z H
2025-05-22 12:02:22 +08:00
parent cee0bce277
commit 9677a68219
5 changed files with 132 additions and 13 deletions

View File

@@ -0,0 +1,81 @@
# 如何在agentUniverse中使用MCP服务
在agentUniverse中您只需通过以下2个步骤即可将任意MCP服务接入并将其作为工具供智能体使用。
## step1. 通过MCPToolkit将您指定MCP服务作为工具包接入
MCPServer当前版本可分为三类通信模式,1)通过标准输入输出流(stdio)连接2)通过SSE方式连接3通过Streamable HTTP连接下列是各类不同MCP模式的配置yaml样例。
1)标准输入输出流(stdio)模式连接示例如下:
```yaml
name: 'docx_toolkit'
description: |
这是一个docx相关的工具集
transport: 'stdio'
command: 'uvx'
args:
- 'mcp-server-office'
metadata:
type: 'TOOLKIT'
module: 'agentuniverse.agent.action.toolkit.mcp_toolkit'
class: 'MCPToolkit'
```
2SSE模式连接示例如下
```yaml
name: 'search_toolkit'
description: |
这是一个搜索相关的工具包
transport: 'sse'
url: 'http://localhost:8000/sse'
metadata:
type: 'TOOLKIT'
module: 'agentuniverse.agent.action.toolkit.mcp_toolkit'
class: 'MCPToolkit'
```
3Streamable HTTP连接示例如下
```yaml
name: 'weather'
transport: 'streamable_http'
url: 'http://localhost:8000/mcp'
metadata:
type: 'TOOLKIT'
module: 'agentuniverse.agent.action.toolkit.mcp_toolkit'
class: 'MCPToolkit'
```
- `transport``url``command``args``env`等参数均与mcp官方定义一致。
## step2. 将MCPToolkit配置给agent供agent使用MCP服务
通过步骤一我们已经将mcp服务接入了进一步您可以MCPToolkit配置给agent供agent使用MCP服务。
配置方式将您想使用的MCPToolkit列表挂载在agent配置文件的 [`action`->`toolkit`] 属性中。
下面是一个完整的示例配置在该agent中使用了步骤一中配置的stdio模式下的docx mcp服务。
```yaml
info:
name: 'demo_agent_with_mcp_toolkit'
description: 'A simple demonstration react agent designed to showcase
the integration and usage of mcp toolkits.'
profile:
prompt_version: qwen_react_agent.cn
llm_model:
name: 'qwen3-32b'
stop: 'Observation'
temperature: 0.1
action:
toolkit:
- 'docx_toolkit'
memory:
name: 'demo_memory'
metadata:
type: 'AGENT'
module: 'agentuniverse.agent.template.react_agent_template'
class: 'ReActAgentTemplate'
```
详细的案例app代码地址可以参考[MCP使用样例app](/examples/sample_apps/toolkit_demo_app)MCPToolkit接入您可参考[配置文件](/examples/sample_apps/toolkit_demo_app/intelligence/agentic/toolkit/docx_toolkit.yaml), Agent配置MCPToolkit可参考[配置文件](/examples/sample_apps/toolkit_demo_app/intelligence/agentic/agent/agent_instance/demo_agent_with_mcp_toolkit.yaml),测试启动入口见[文件](/examples/sample_apps/toolkit_demo_app/intelligence/test/run_demo_agent_with_mcp_toolkit.py)。
更多详细内容您可阅读文档[MCP工具包](../../In-Depth_Guides/原理介绍/工具包/MCP工具包.md)、[MCP工具](../../In-Depth_Guides/原理介绍/工具/MCP工具.md)。

View File

@@ -0,0 +1,37 @@
# 如何在agentUniverse中发布MCP服务
在agentUniverse中您只需通过以下2个步骤即可将您开发的工具(Tool)或者工具包(ToolKit)发布为MCP服务。
## step1. 在要发布的Tool或ToolKit配置中添加MCP服务发布参数
您可以在您想要发布的Tool或ToolKit配置中添加`as_mcp_tool: true`标记,示例如下:
```yaml
name: 'tool_name'
description: 'tool description'
as_mcp_tool: true
```
该工具会被添加到agentUniverse中的默认MCP Server当中 默认server名字为`default_mcp_server`
## step2. 启动MCP Server
通过MCPServerManager启动MCP服务将步骤一中标记的工具、工具集合一键发布为MCP服务。
```python
from agentuniverse.agent_serve.web.mcp.mcp_server_manager import MCPServerManager
from agentuniverse.base.agentuniverse import AgentUniverse
class ServerApplication:
"""
Server application.
"""
@classmethod
def start(cls):
AgentUniverse().start(core_mode=True)
MCPServerManager().start_server()
if __name__ == "__main__":
ServerApplication.start()
```
启动后您可以通过下列地址访问:
- `http://0.0.0.0:8890/default_mcp_server/sse`
完整的MCP服务发布用例您可以在[标准样例工程](/examples/sample_standard_app)中查看, 您可以使用[mcp_application.py](/examples/sample_standard_app/bootstrap/intelligence/mcp_application.py)进行MCP服务启动, 在该样例中我们将[mock_search_tool工具](/examples/sample_standard_app/intelligence/agentic/tool/custom/mock_search_tool.yaml)发布为了default_mcp_server。
您可以进一步指定所发布的MCP服务端口、host地址、通信类型等更详细的内容请参考文档[MCP_Server](/docs/guidebook/zh/In-Depth_Guides/技术组件/服务化/MCP_Server.md)。

View File

@@ -1,7 +1,7 @@
# MCP工具
MCP工具是一类特殊的工具Tool它通过调用MCPServer的Tool完成相应的任务。
根据MCPServer的种类可分为两类一是通过标准输入输出流连接的MCPServer另一种是通过SSE连接的MCPServer
MCPServer当前版本可分为三类通信模式,1)通过标准输入输出流(stdio)连接2)通过SSE方式连接3通过Streamable HTTP连接下列是各类不同MCP模式的配置yaml样例
通过标准输入输出流连接的MCPTool定义示例如下
```yaml
@@ -55,4 +55,4 @@ metadata:
工具定义示例可参考:[duckduckgo_search_mcp_tool](../../../../../../examples/sample_apps/toolkit_demo_app/intelligence/agentic/tool/duckduckgo_search_mcp_tool.yaml)
工具调用可参考示例:[demo_react_agent_with_single_mcp_tool](../../../../../../examples/sample_apps/toolkit_demo_app/intelligence/agentic/agent/agent_instance/demo_react_agent_with_single_mcp_tool.yaml)
工具调用可参考示例:[demo_agent_with_mcp_tool](../../../../../../examples/sample_apps/toolkit_demo_app/intelligence/agentic/agent/agent_instance/demo_agent_with_mcp_tool.yaml)

View File

@@ -2,7 +2,7 @@
MCPToolkit是工具包中的一个特殊分类它能够通过配置链接MCPServer获取工具信息并通过这些信息自动创建对应的MCPTool。
根据MCPServer的种类可分为两类一是通过标准输入输出流连接的MCPServer另一种是通过SSE连接的MCPServer
MCPServer当前版本可分为三类通信模式,1)通过标准输入输出流(stdio)连接2)通过SSE方式连接3通过Streamable HTTP连接下列是各类不同MCP模式的配置yaml样例
通过标准输入输出流连接的MCPToolkit定义示例如下
```yaml
@@ -49,6 +49,6 @@ metadata:
- 关于`transport``url``command``args``env`参数的填写方式请参考[MCP工具](../工具/MCP工具.md)
完整工具包定义示例可参考:[duckduckgo_search_mcp_tool](../../../../../../examples/sample_apps/toolkit_demo_app/intelligence/agentic/toolkit/docx_toolkit.yaml)
完整工具包定义示例可参考:[docx_toolkit](../../../../../../examples/sample_apps/toolkit_demo_app/intelligence/agentic/toolkit/docx_toolkit.yaml)
工具包调用可参考示例:[demo_react_agent_with_single_mcp_tool](../../../../../../examples/sample_apps/toolkit_demo_app/intelligence/agentic/agent/agent_instance/demo_agent_with_mcp_toolkit.yaml)
工具包调用可参考示例:[demo_agent_with_mcp_toolkit](../../../../../../examples/sample_apps/toolkit_demo_app/intelligence/agentic/agent/agent_instance/demo_agent_with_mcp_toolkit.yaml)

View File

@@ -5,6 +5,15 @@ agentUniverse允许用户将自己的工具通过MCP Server的形式对外提供
## 1. 标记需要发布的工具
您可以在工具(Tool)或者工具包(Toolkit)的yaml定义文件中将工具或工具包标识为可通过MCP Server调用
您可以按照如下配置:
```yaml
name: 'tool_name'
description: 'tool description'
as_mcp_tool: true
```
该工具会被添加到agentUniverse中的默认MCP Server当中 默认server名字为`default_mcp_server`
如果您需要指定MCP服务命名或发布成多个MCP服务可以使用server_name字段按照如下配置
```yaml
name: 'tool_name'
description: 'tool description'
@@ -13,14 +22,6 @@ as_mcp_tool:
```
其中as_mcp_tool表示该工具或工具包可以通过MCP Server调用而server_name表示所属的MCP服务名称不同的MCP服务独立运行互不冲突。
如果您不需要单独区分MCP服务可以不使用server_name字段按照如下配置
```yaml
name: 'tool_name'
description: 'tool description'
as_mcp_tool: true
```
该工具会被添加到agentUniverse中的默认MCP Server当中 默认server名字为`default_mcp_server`
## 2.启动MCP Server
您可以参考示例工程中MCP Server启动的写法
```python