首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >如何快捷易用地接入MCP Server

如何快捷易用地接入MCP Server

作者头像
张逸
发布2026-06-11 20:22:59
发布2026-06-11 20:22:59
60
举报
文章被收录于专栏:斑斓斑斓

随着MCP的日益普及,许多AI能力都需要封装为一个个MCP。之前我在文章MCP:AI原生应用开发的Building Blocks中介绍过MCP Server Hub,它的目的是方便大家发现好的MCP Server & Tool资源。

今天介绍一款开源的框架mcp-use,它可以降低我们创建MCP的难度,例如让开发者轻松地将任何 LLM 连接到诸如网络浏览、文件操作等工具,构建具有工具访问权限的自定义 MCP Agent。

MCP-Use 是连接任何 LLM 到任何 MCP 服务器的开源方式,并构建具有工具访问权限的自定义 MCP 代理,无需使用闭源或应用程序客户端。让开发者轻松地将任何 LLM 连接到诸如网络浏览、文件操作等工具。

我正在考虑为我们团队的工具平台集成MCP,通过mcp-use,开发工作量会得到极大降低。例如说,我希望自己的工具能够成为MCP Host,则可以在工具层面同样定义类似Cursor那样的mcp.json文件,如:

代码语言:javascript
复制
{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": ["@playwright/mcp@latest"],
      "env": {
        "DISPLAY": ":1"
      }
    }
  }
}
代码语言:javascript
复制
这个文件可以作为config,传给mcp-use,用于创建MCP Client:
代码语言:javascript
复制
client = MCPClient.from_config_file(
        os.path.join("mcp.json")
    )
代码语言:javascript
复制
也可以把配置放到代码中,然后根据该配置创建MCP Client:
代码语言:javascript
复制
    config = {
      "mcpServers": {
        "playwright": {
          "command": "npx",
          "args": ["@playwright/mcp@latest"],
          "env": {
            "DISPLAY": ":1"
          }
        }
      }
    }

client = MCPClient.from_dict(config)
代码语言:javascript
复制
接下来,通过智能体把LLM与MCP Client连接起来:
代码语言:javascript
复制
# Create LLM
llm = ChatOpenAI(model="gpt-4o")

# Create agent with the client
agent = MCPAgent(llm=llm, client=client, max_steps=30)
代码语言:javascript
复制
然后就可以通过智能体接受用户请求:
代码语言:javascript
复制
# Run the query
result = await agent.run(
    "Find the best restaurant in San Francisco",
)
代码语言:javascript
复制
通过mcp-use创建的智能体除了可以通过run运行以执行查询外,还支持流式输出,即通过调用astream(query):
代码语言:javascript
复制
async for chunk in agent.astream("Find the best restaurant in San Francisco"):
    print(chunk["messages"], end="", flush=True)
代码语言:javascript
复制
mcp-use不仅支持连接本地部署(通过前面所示的Config文件)的MCP Server之外,还支持Http连接,特别适用于与基于 Web 的 MCP 服务器集成。连接的方法完全一样,只需要将config的内容设置为你要连接的http通信协议的MCP Server即可。例如我之前一直是在Cursor下连接墨问MCP Server,它在Cursor的mcp.json中的配置为:
代码语言:javascript
复制
{
  "mcpServers": {
    "墨问创作助手": {
      "url": "https://open.mowen.cn/api/open/mcp/v1/note?key=[我的API Key]"
    }
  }
}
代码语言:javascript
复制
现在,也可以将其配置为mcp-use要求的格式:
代码语言:javascript
复制
    config = {
        "mcpServers": {
            "http": {
                "url": "https://open.mowen.cn/api/open/mcp/v1/note?key=[我的API Key]"
            }
        }
    }
代码语言:javascript
复制
有了这一特性,我们就可以在工具平台的集成中心接入越来越多的MCP Server,最后,也可以打造为我们自己的MCP Server HUB。
代码语言:javascript
复制

或许会有疑问:随着接入的MCP Server越来越多,超过单个节点的负载,又该怎么办?没关系,mcp-use还支持多服务器的配置,而在默认情况下,MCPAgent能够访问所有配置服务器中的工具。如果需要为特定任务指定一个特定的服务器,可以在调用 agent.run() 方法时指定 server_name

框架还提供了服务器管理器,使得智能体能够动态选择服务器,只需要在初始化 MCPAgent时通过设置use_server_manager=True就可以启用服务器管理器。

除此之外,mcp-use还支持对工具访问的控制,以提供更好的安全性和对智能体能力的控制;它甚至支持将自己创建的智能体交给LangChain来调用,这一特性的实现也很简单,无非就是引入一个适配器模式,通过定义LangChainAdapter适配器类,就可以以如下方式把mcp-use创建的client传递给适配器的create_tools()函数,然后就变成了LangChain的实现方式:

代码语言:javascript
复制
    # Initialize MCP client
    client = MCPClient.from_config_file("examples/browser_mcp.json")
    llm = ChatOpenAI(model="gpt-4o")

    # Create adapter instance
    adapter = LangChainAdapter()
    # Get LangChain tools with a single line
    tools = await adapter.create_tools(client)

    # Create a custom LangChain agent
    llm_with_tools = llm.bind_tools(tools)
    result = await llm_with_tools.ainvoke("What tools do you have available ? ")
代码语言:javascript
复制
这个框架目前在github上已有4.6k的star,目前版本为1.6.7。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-08-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 逸言 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档