str: """执行 SQL 查询""" ...">
96SEO 2026-08-01 17:29 0
搭好一个 Agent 之后第一件事往往是给它加工具:搜索、代码执行、数据库查询、API 调用…,
用传统的 Function Calling,工具定义是这样的:

@tooldef search_jira -> str:
"""搜索 Jira 工单"""
...
@tooldef query_database -> str:
"""执行 SQL 查询"""
...
agent = create_react_agent
这套方案很好用——直到你开始建立第二个 Agent。
痛点:同一套工具要在每个 Agent 中重复定义/复制粘贴。一旦逻辑改动,你得在四个文件里都改;如果工具用 TypeScript 写就更麻烦。
这就是 MCP 要解决的问题:把工具从“每个 Agent 自己定义”变成“统一的服务,所有 Agent 按协议连接”。
MCP 把工具调用拆成三个角色:
┌────────────────────────────────────────────────────────────────┐
│ MCP 架构 │
├──────────────────┬──────────────────────────────────────────────┤
│ Host │ 承载 Agent 的环境:Claude Desktop、 │
│ │ Claude Code、自定义 LangChain App │
│ │ 包含一个或多个 MCP Client │
├──────────────────┼──────────────────────────────────────────────┤
│ Client │ 内嵌在 Host 里的协议客户端 │
│ │ 负责与 MCP Server 建立连接和通信 │
├──────────────────┼──────────────────────────────────────────────┤
│ Server │ 独立进程。暴露工具 │
│ │ 也可以暴露资源和提示 │
└──────────────────┴──────────────────────────────────────────────┘
通信方式的观点是,本地:stdio
从远程来看,HTTP + SSE
@lc_tooldef calculator -> str:
"""Evaluate a simple arithmetic expression."""
...
@lc_tooldef text_stats -> str:
"""Return word count,sentence count。and character count."""
...
@lc_tooldef wear_mock -> str:
"""Return mock wear data for a city."""
...
traditional_tools =
agent = create_react_agent
说到实测三个问题,
Q: What is ** + /?A: The result of ** + / is .
Q: Analyze this text: 'Python is elegant. It is readable. Everyone loves it!
怎么说呢,'
A: X words,Y sentences。
Z characters.
Q: What's wear in Beijing?A: sunny,°C,humidity %.
痛点:
用 FastMCP 实现一样的三个工具,作为独立 MCP Server:
# tools_server.py
from mcp.server.fastmcp import FastMCP
mcp = FastMCP
@mcp.tool
def calculator -> str:
"""Evaluate a simple arithmetic expression ."""
...
@mcp.tool
def text_stats -> str:
"""Return word count,sentence count,and character count for given text."""
...
@mcp.tool
def wear_mock -> str:
"""Return mock wear data for a city ."""
...
if __name__ == "__main__":
mcp.run
Client 侧连接并发现工具:
from mcp import ClientSession,StdioServerParameters
from mcp.client.stdio import stdio_client
server_params = StdioServerParameters(
command="python"。args=
)
async with stdio_client as :
async with ClientSession as session:
await session.initialize # 初始化连接
tools_result = await session.list_tools # 动态发现所有可用工具
print
实测 list_tools 返回:
Server: demo-tools
Discovered tools:
● calculator — Evaluate a simple arithmetic expression .
● text_stats — Return word count,sentence count and character count for given text.
● wear_mock — Return mock wear data for a city .
关键点:
把 MCP 工具模式自动转换成 LangChain Tool 对象。Agent 代码几乎与上面相同,只是通过异步客户端获取 Tool 列表并注入到 Agent 中。
from langchain_mcp_adapters.client import MultiServerMCPClient
client = MultiServerMCPClient({
"demo-tools": {
"command": "python","args":,"transport": "stdio"。}
})
mcp_tools = await client.get_tools #
agent = create_react_agent
result = await agent.ainvoke]})
print
注意事项:
.
| 维度 | Function Calling | MCP |
|---|---|---|
| 工具定义位置 | .在 Agent 代码里 | .在独立 MCP Server | .
| 工具发现方式 | .import / 硬编码 | .list_tools – 动态发现 | .
| 跨 Agent 重用 | .copy-paste 或 re-import | .所有 Agents 同一 Server | .
| 更新机制 | .修改每个 Agent 文件 | .只需更新 Server | .
| 跨语言支持 | .Avoiding se pitfalls ensures smoor team collaboration and faster delivery. | - Simplify development by focusing on core business logic rar than plumbing details. | - Create reusable services that can be shared across multiple projects without duplication. | - Your product roadmap becomes clearer when you can decouple features from infrastructure concerns.| - Simplify maintenance across teams by centralizing tool logic in one place. \t\t\t\t\t\t\t\t\t\t\t ';} },{ "name"这方面,"LangChain Integration","type":"text/html" |
Truncated due to length limit.'>'/>
官方 MCP Servers:
server-filesystem — 本地文件程序读写
server-github — GitHub Repo / Issue / PR 操作
server-postgres — PostgreSQL 查询
server-brave-search — 网络搜索
社区维护:
搜索 awesome-mcp-servers 获取完整列表
包括的观点是。Jira、Slack、Notion、Linear、Figma 等Claude Code 的工具就是通过 MCP 接入的: → 文件读写、终端命令、代码搜索…,都是 MCP Server 工具
“MCP解决的是‘怎么调取…”,而不是单纯把功能放进程序里。话说回来,功能模块化后才能真正实现可维护和复用。其实,
“动态发现让代理不必知道具体名称”。所以真正解耦了业务与技术细节。“独立进程带来跨语言能力”,即便是 JavaScript 写成服务也能被 Python 调用。
Sorry,我之前出现了一些排版错误。下面重新给出完整且简洁的 HTML 内容,并突出使用者痛点:
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback