mirror of
https://github.com/agentuniverse-ai/agentUniverse.git
synced 2026-02-09 01:59:19 +08:00
docs: Add MCP Server docs.
This commit is contained in:
81
docs/guidebook/zh/How-to/使用与发布MCP服务/如何使用MCP服务.md
Normal file
81
docs/guidebook/zh/How-to/使用与发布MCP服务/如何使用MCP服务.md
Normal 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'
|
||||
```
|
||||
|
||||
2)SSE模式连接示例如下:
|
||||
```yaml
|
||||
name: 'search_toolkit'
|
||||
description: |
|
||||
这是一个搜索相关的工具包
|
||||
transport: 'sse'
|
||||
url: 'http://localhost:8000/sse'
|
||||
|
||||
metadata:
|
||||
type: 'TOOLKIT'
|
||||
module: 'agentuniverse.agent.action.toolkit.mcp_toolkit'
|
||||
class: 'MCPToolkit'
|
||||
```
|
||||
|
||||
3)Streamable 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)。
|
||||
37
docs/guidebook/zh/How-to/使用与发布MCP服务/如何发布MCP服务.md
Normal file
37
docs/guidebook/zh/How-to/使用与发布MCP服务/如何发布MCP服务.md
Normal 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)。
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user