二级栏目网站中国站长之家爱站网
二级栏目网站,中国站长之家爱站网,做网页的工具,大港天津网站建设在 AI 智能体技术飞速发展的今天#xff0c;我们正见证着一场从只会聊天的 LLM向能干活的智能体的范式转移。这一转型的核心挑战在于#xff1a;LLM 如何安全、高效地与外部世界连接#xff1f;
本文将深入剖析业界最受关注的解决方案——模型上下…在 AI 智能体技术飞速发展的今天我们正见证着一场从只会聊天的 LLM向能干活的智能体的范式转移。这一转型的核心挑战在于LLM 如何安全、高效地与外部世界连接本文将深入剖析业界最受关注的解决方案——模型上下文协议Model Context Protocol, MCP并探讨它与**智能体技能Agent Skills**之间的协作关系。一、MCP 是什么AI 界的USB-C标准问题的由来在 MCP 出现之前将 AI 连接到数据库、API 或企业系统通常需要为每个数据源编写定制化的集成代码针对不同 AI 应用重复开发相同的连接器维护大量脆弱的胶水代码MCP 的核心理念建立一个开放标准让 AI 应用与外部数据源之间的对接变得像插 USB-C 接口一样简单——一次开发到处使用。架构设计三层分工明确MCP 采用经典的客户端-服务器架构包含三个核心角色┌─────────────────────────────────────────┐ │ 宿主 (Host) │ │ 如: Claude Desktop、VS Code │ │ ┌───────────────────────────────┐ │ │ │ MCP 客户端 (Client) │ │ │ │ 负责协议通信 │ │ │ └───────────┬───────────────────┘ │ └───────────────┼─────────────────────────┘ │ JSON-RPC 2.0 ┌───────────▼───────────┐ │ MCP 服务器 (Server) │ │ ┌─────────────────┐ │ │ │ 工具 (Tools) │ │ │ │ 资源 (Resources)│ │ │ │ 提示词 (Prompts)│ │ │ └─────────────────┘ │ └───────────────────────┘实际交互流程示例用户在 VS Code 中询问“查询用户表结构”LLM 识别需要调用 MCP 工具execute_sqlMCP客户端向 MCP 服务器发送 JSON-RPC 请求MCP服务器执行 SQL 查询并返回 JSON 格式结果MCP客户端收到后返回到LLM上下文中LLM 基于返回数据生成自然语言回复⚠️注意MCP服务器只与MCP客户端进行交互。二、三大核心原语构建能力的基础模块MCP 服务器通过三类原语Primitives向 AI 暴露能力1. 工具Tools- LLM 的执行手控制权由 LLM 决定何时调用特性可以对外部系统进行操作写数据库、发邮件、执行代码类比REST API 的 POST 请求代码示例Python# 目前已经有了专门的类来实现MCP服务如FASTMCPmcp.tool()defexecute_sql(query:str)-str:在生产数据库上执行只读 SQL 查询 Args: query: 标准 SQL 语句必须包含 LIMIT 子句 # 安全检查ifLIMITnotinquery.upper():raiseValueError(查询必须包含 LIMIT 以防止全表扫描)returndatabase.execute(query)2. 资源Resources- 知识的信息源控制权由应用程序管理访问权限特性只读数据不产生副作用类比REST API 的 GET 请求典型用途本地文件内容file:///path/to/doc.md实时日志流logs://production/errors数据库表结构schema://users3. 提示词Prompts- 工作流的模板引擎控制权由用户选择和触发特性预设的指令框架确保任务执行一致性使用场景# 提示词代码审查助手 请按以下标准审查代码 1. 安全性检查 SQL 注入、XSS 等漏洞 2. 性能识别 N1 查询、内存泄漏 3. 可维护性评估命名规范、注释完整性 [用户代码将插入此处]三、传输协议深度解析MCP 服务器支持多种传输机制以适应不同部署场景stdio标准输入输出适用场景用于本地部署MCP服务然后通过stdio协议进行本地自调用。如Claude Desktop与本地自己部署的MCP服务的调用。关键限制# ❌ 错误示例 - 会破坏 JSON-RPC 通信print(正在查询数据库...)# ✅ 正确示例 - 使用标准错误输出调试importsysprint(DEBUG: 查询参数query,filesys.stderr)原因stdio 模式下标准输出stdout专用于传输 JSON-RPC 消息print()等方法会将信息存储到stdin中从而破坏了传输的 JSON-RPC。任何非协议数据都会导致连接崩溃。HTTP SSE组合优势HTTP POST客户端向远程MCP服务器发送指令可以对MCP服务进行操作如插入数据到数据库等SSE服务器发送事件MCP服务器完成操作后推送实时更新如进度条到MCP客户端。四、性能优化渐进式上下文加载Token 消耗控制策略假设场景接入 100 个 MCP 服务每个服务提供 10 个工具。传统做法不可行将所有工具的完整文档一次性加载到上下文估算 Token 消耗100 × 10 × 50 50,000 tokensMCP 的分层加载机制初始化阶段- 仅传输元数据{name:execute_sql,description:执行只读 SQL 查询,inputSchema:{type:object,properties:{query:{type:string}}}}调用阶段- 按需加载详细数据LLM 根据元数据判断是否需要调用工具仅当工具被触发时实际数据才进入上下文这里的设计思想类似于agent skillToken 节省初始阶段仅消耗约 5,000 tokens减少 90%五、MCP 与 Agent Skills策略与执行的完美配合许多开发者混淆两者的定位。实际上它们是互补关系对比矩阵维度Agent SkillsMCP本质知识与工作流SOP连接能力表现形式Markdown 文档代码服务器作用对象指导 LLM 的决策逻辑提供 LLM 的执行手段类比企业操作手册API 接口skill 仅仅会将skill中定义的信息加载到模型上下文中当需要的时候并不具备调用外部接口的能力。协作示例数据库审计智能体Skill 文档database-audit-skill.md# 数据库审计技能 ## 核心原则 1. 所有查询必须包含 LIMIT 子句最大 1000 2. 禁止使用 SELECT *必须明确列名 3. 敏感字段如密码需脱敏处理 ## 工作流程 1. 解析用户需求 → 生成 SQL 2. 调用 MCP 工具audit_query执行查询 3. 格式化结果并标注风险点MCP 服务器执行层mcp.tool()defaudit_query(sql:str)-dict:执行审计查询并返回风险评分# Skill 的策略在这里被强制执行validate_sql_safety(sql)# 检查 LIMIT、SELECT * 等resultexecute_with_monitoring(sql)return{data:mask_sensitive_fields(result),risk_score:calculate_risk(sql)}协作逻辑Skill定义了什么是安全的查询策略层MCP提供了如何执行查询的能力执行层LLM 先阅读 Skill 学习最佳实践再通过 MCP 调用工具六、实战部署快速上手场景 1为 Claude Desktop 添加 GitHub 集成步骤安装官方 MCP 服务器npminstall-g modelcontextprotocol/server-github配置claude_desktop_config.json{mcpServers:{github:{command:mcp-server-github,env:{GITHUB_TOKEN:your_token_here}}}}重启 Claude Desktop测试查询列出我的仓库中最近打开的 Issues场景 2自定义 MCP 服务器天气查询完整代码TypeScriptimport{Server}frommodelcontextprotocol/sdk/server/index.js;import{StdioServerTransport}frommodelcontextprotocol/sdk/server/stdio.js;constservernewServer({name:weather-server,version:1.0.0},{capabilities:{tools:{}}});server.setRequestHandler(tools/list,async()({tools:[{name:get_weather,description:获取指定城市的天气,inputSchema:{type:object,properties:{city:{type:string}},required:[city]}}]}));server.setRequestHandler(tools/call,async(request){if(request.params.nameget_weather){constweatherawaitfetchWeather(request.params.arguments.city);return{content:[{type:text,text:JSON.stringify(weather)}]};}});consttransportnewStdioServerTransport();awaitserver.connect(transport);七、生态现状与未来展望MCP Registry生态系统的催化剂类似于 npm、PyPIAnthropic 推出了 MCP Registry提供官方验证的服务器热门集成生产力Google Drive、Slack、Notion开发工具GitHub、GitLab、Sentry数据库PostgreSQL、MongoDB、Snowflake监控Prometheus、Datadog未来趋势企业级功能增强细粒度权限控制RBAC审计日志与合规性支持多租户隔离工具链完善可视化配置工具性能监控仪表板自动化测试框架跨模型兼容性OpenAI GPTs 支持 MCP开源模型Llama、Mistral原生集成总结MCP 的诞生标志着 AI 生态系统迈向标准化与模块化时代。它不仅打破了模型的知识截止日期限制更让企业能够以安全、可控的方式授权 AI 访问私有数据。核心洞察MCP提供手执行能力Agent Skills提供脑决策逻辑两者结合才能构建真正强大的智能体未来构建企业级 AI 应用可能只需三步从 MCP Registry 挑选标准服务器编写定制化的 Agent Skills通过配置文件完成集成下一步行动如果你想深入实践推荐从以下方向入手官方文档GitHub 示例仓库社区 Discord - 与全球开发者交流经验