最近我也折腾了一段时间 MCP,虽然它用的还是普通的文本模型,跟 GPT-4 比不了,但它那套插件机制、工具系统真的有点意思,特别适合做 AI Bot、自动化工作流这类应用。
今天就手把手带大家用 MCP Server 搭建一个「AI 搜索MCP client」,顺便也带大家快速入门 MCP 的平台能力。全流程基于开源项目,部署成本低,新手也能跟着搞起来。

本文都是基于开源项目的现成例子快速搭建,对于新手友好,如果你正打算自己搭建一个MCP client可以通过这种方式快速尝试!
文章涉及到的开源项目如下:
MCP 入门文档:liaokongVFX/MCP 中文入门指南
MCP Server 示例:mundane799699/mcp-server-example
MCP Client 成品:alejandro-ao/mcp-clients
什么是 MCP?
MCP(Model Context Protocol)是一个让语言模型接入外部资源和工具的协议,简单来说,MCP就像是网络中的HTTP协议或邮件中的SMTP协议一样,为AI模型提供了一种标准化的方式来连接不同的数据源和工具。

官方把它比作 AI 的 USB-C 接口。你可以把它理解成一种「插件标准」,让任何模型都可以调用各种能力,比如数据库查询、网页搜索、Python 执行等。

它有以下核心组成:
-
Resources:资源,比如数据库、API
-
Prompts:提示词,定义与模型的交互格式
-
Tools:工具,封装的功能模块
-
Sampling:采样方式
-
Roots:根目录配置
-
Transports:传输层,模型与外部世界连接方式
第一步:搭建 MCP Server
可以直接使用mcp server例子,快速实现一个用于网络搜索的MCP服务器。
1. 初始化项目
首先,我们先来通过 uv 初始化我们的项目。
# 初始化项目
uv init mcp_getting_started
cd mcp_getting_started
# 创建虚拟环境并进入虚拟环境
uv venv
.venv\Scripts\activate.bat
# 安装依赖
uv add "mcp[cli]" httpx openai
uv
是一个非常好用的 Python 构建工具,比 pip 快,推荐使用。
MCP 为我们提供了2个对象:mcp.server.FastMCP
和 mcp.server.Server
,mcp.server.FastMCP
是更高层的封装,我们这里就来使用它。
import httpx
from mcp.server import FastMCP
# # 初始化 FastMCP 服务器
app = FastMCP('web-search')
实现执行的方法非常简单,MCP 为我们提供了一个 @mcp.tool()
我们只需要将实现函数用这个装饰器装饰即可。函数名称将作为工具名称,参数将作为工具参数,并通过注释来描述工具与参数,以及返回值。
2. 创建 web_search.py
新建一个文件 web_search.py
,写入以下内容:
@app.tool()
async def web_search(query: str) -> str:
"""
搜索互联网内容
Args:
query: 要搜索内容
Returns:
搜索结果的总结
"""
async with httpx.AsyncClient() as client:
response = await client.post(
'https://open.bigmodel.cn/api/paas/v4/tools',
headers={'Authorization': '换成你自己的API KEY'},
json={
'tool': 'web-search-pro',
'messages': [
{'role': 'user', 'content': query}
],
'stream': False
}
)
res_data = []
for choice in response.json()['choices']:
for message in choice['message']['tool_calls']:
search_results = message.get('search_result')
if not search_results:
continue
for result in search_results:
res_data.append(result['content'])
return '\n\n\n'.join(res_data)
if __name__ == "__main__":
app.run(transport='stdio')
搜索接口来自智谱AI,调用一次大概 0.03 元,返回的内容质量不错,还会自动生成摘要。
官方文档:https://bigmodel.cn/dev/api/search-tool/web-search-pro
API Key 生成地址:https://bigmodel.cn/usercenter/proj-mgmt/apikeys
第二步:运行 MCP Client
npm install
npm run build
node build/index.js D:\project\PycharmProjects\mcp_getting_started\web_search.py
D:\project\PycharmProjects\mcp_getting_started\web_search.py
要换成你自己的路径
第三步:测试接口
用 Postman 或其他 API 工具测试:
接口 1:检查服务状态
bash
复制编辑
GET http://localhost:3000/health
返回:
json复制编辑{
"status": "ok",
"tools": ["web_search"]
}
接口 2:发起查询
bash复制编辑POST http://localhost:3000/chat
Content-Type: application/json
{
"query": "今天广州的天气"
}
返回示例:
json复制编辑{
"response": "[Calling tool web_search with args {\"query\":\"今天广州天气\"}]\n今天(2025年6月18日)广州的天气情况如下:……"
}

写在最后
MCP作为一个新兴的开源协议,为LLM连接真实世界的工具和数据提供了开放标准。虽然目前生态还在发展初期,但潜力巨大。
苏米建议大家可以从简单的工具开始,逐步探索更复杂的应用场景。
这次我们只是实现了一个简单的搜索工具,但 MCP 的能力远不止于此,它支持多个工具协同、工作流串联,还能自定义 Prompt 模板,甚至接入自己的模型、插件系统。
对比市面上一些“低代码AI平台”,MCP 更适合开发者自己 DIY,更灵活,也更可控。
如果你在实践过程中遇到问题,欢迎在评论区交流讨论。