dw做网站 如何设置转动济南高端网站建设

张小明 2026/1/12 12:27:44
dw做网站 如何设置转动,济南高端网站建设,怎么做网站搜索,信息化建设 公司网站用 MCP 打通本地项目与大模型#xff1a;从概念到实战 一文搞清#xff1a;MCP 是什么、如何和 LangGraph / CrewAI / AutoGen 配合、以及如何给本地项目写一个可用的 MCP Server。 这里写目录标题用 MCP 打通本地项目与大模型#xff1a;从概念到实战1. MCP 是什么#xf…用 MCP 打通本地项目与大模型从概念到实战一文搞清MCP 是什么、如何和 LangGraph / CrewAI / AutoGen 配合、以及如何给本地项目写一个可用的 MCP Server。这里写目录标题用 MCP 打通本地项目与大模型从概念到实战1. MCP 是什么2. MCP 的四层理解路径难度 1白话视角难度 2工程师视角难度 3系统设计视角1. 数据立方体 → 工具立方体2. 调用流程3. Agent 框架中的位置难度 4协议与生态视角3. MCP 工作原理图Mermaid1. 整体架构谁跟谁说话2. 一次“工具调用”的完整时序3. MCP Server 内部结构示意4. 本地开发环境中的位置4. MCP 与 LangGraph / CrewAI / AutoGen 的关系一句话对比抽象层级 职责对比工具接入方式为什么说“能组合拳”典型使用场景选型建议5. 实战给本地项目写一个 MCP Server环境准备如何运行 测试如何接入 ChatGPT / IDE / Agent 框架如何继续扩展6. 参考架构与最佳实践7. 结语1. MCP 是什么MCPModel Context Protocol是一个开放协议用来标准化「大模型 ↔ 外部世界工具 / 数据 / 应用之间如何说话与协作」你可以把它类比成浏览器世界里的 HTTP API数据库世界里的 SQL在“AI 工具”世界里MCP 扮演“统一插座 协议层”的角色有了 MCP大模型不再只是“会聊天”而是可以读写文件、本地项目代码访问数据库、搜索引擎、内部 API调用自动化脚本、测试、构建流水线在受控范围内操作你的本地/企业系统一句话MCP 让模型从「只能说」变成「能干活」。2. MCP 的四层理解路径难度 1白话视角从小白角度看MCP 就是一个“给 AI 插各种电器的万能插座”以前AI 只能在上下文里“想象”文件和数据现在AI 可以通过 MCP 实际去打开文件、查数据库、调 API当然这些能力都是你显式授权、显式暴露的工具它解决的问题是不同 AI 产品、不同模型厂商各自定义工具接入方式 → 混乱工程师每接一次模型就要重写一次工具层 → 浪费安全边界模糊 → 难以审核与合规MCP 给的是统一约定“工具长什么样、怎么描述、怎么调用”对话式调用流程由模型自己决定什么时候调用哪个工具难度 2工程师视角从工程角度看MCP 做了三件事把外部世界抽象成三类资源Tools工具可执行动作例如run_sql、search_docs、create_file、send_emailResources资源可浏览的数据或状态例如文件系统、数据库表、知识库、项目结构Prompts模板可复用的提示模板例如generate_unit_test、summarize_contract等统一调用方式模型向 MCP Server 发起标准化请求类似 JSON-RPClistTools/callToollistResources/readResourcelistPrompts/callPromptClient 与 Server 解耦上层任何 MCP ClientChatGPT、Claude、IDE 插件、Agent 框架……下层你的 MCP Server封装 DB、本地项目、API、脚本……两者中间用 MCP 协议连接中间层可以任意替换换模型工具层不用重写换工具实现上层编排逻辑不用大改难度 3系统设计视角从架构视角看MCP 是一个**“AI 运行时能力层AI Runtime Capability Layer”**1. 数据立方体 → 工具立方体传统 BI 里有“数据立方体”Data Cube现在你可以理解为 MCP 在构建“能力立方体”每个 MCP Server 暴露自己的一组 Tools / Resources / Prompts多个 MCP Server 可以串联在一起共同构成一个能力网格2. 调用流程典型调用链是用户 - 模型 - MCP Client - MCP Server - 工具/资源 - MCP Server - MCP Client - 模型 - 用户中间模型会决定「要不要用工具」选择「用哪个工具」构造参数解析返回结果把结果用自然语言 / 结构化形式呈现给用户3. Agent 框架中的位置在 LangGraph / CrewAI / AutoGen 等框架里MCP 可以作为“所有工具的统一底座”LangGraph 节点内部调用 MCP ToolsCrewAI 的 Agent 绑定的 Tools 底层用 MCPAutoGen 的代码执行 / 工具调用也可通过 MCP这样工具开发只做一遍各种框架通吃。难度 4协议与生态视角再严谨一点从协议和标准的角度看MCP 基于JSON-RPC 双向流规范了几个核心能力工具发现与调用listTools/callTool资源浏览listResources/readResourcePrompt 模板listPrompts/callPrompt事件流部分实现订阅更新、状态变化等工具、资源、Prompt 的描述采用结构化 Schema常见是 JSON Schema在生态层面MCP 被多家模型厂商采纳为标准接口IDE / Agent 平台 / 企业 AI 应用可以直接对接 MCP ServerMCP Server 可以开源、复用、组合成为“AI 世界的微服务”3. MCP 工作原理图Mermaid以下是几张常用的架构/时序图全部用 Mermaid 编写可直接在支持 Mermaid 的 Markdown 环境中渲染。1. 整体架构谁跟谁说话对话按照 MCP 协议发起请求JSON-RPC 双向通道调用访问使用用户大模型 (如 GPT / Claude)MCP 客户端 (ChatGPT / IDE 插件 / 中间层)MCP 服务器Tools执行动作 (API / 脚本 / 服务)Resources数据源 (文件 / DB / 知识库)Prompts可复用提示模板外部系统 / 服务外部数据源 (文件 / 数据库 / 对象存储)2. 一次“工具调用”的完整时序用户大模型MCP 客户端MCP 服务器Tool/Resource自然语言问题例查一下最近的订单统计解析意图 规划是否需要调用工具发起 MCP 工具调用请求(callTool: get_orders_stats, args)通过 JSON-RPC 转发 callTool 请求执行具体工具 / 访问资源(如查数据库 / 读文件 / 调 API)返回结构化结果JSON 等JSON-RPC 响应工具结果将结果交回模型结合用户问题 工具结果进行推理返回自然语言回答 必要的数据/表格用户大模型MCP 客户端MCP 服务器Tool/Resource3. MCP Server 内部结构示意MCP 服务器listTools / callTool / listResources 等JSON-RPC 处理层Tools 描述name description inputSchemaResources 描述listResources / readResourcePrompts 描述可复用 Prompt 模板执行层脚本 / API Client / 命令行等数据访问层文件系统 / 数据库 / 搜索引擎Prompt 模板引擎MCP 客户端4. 本地开发环境中的位置MCP Server on Local Machine内置 Chat / CopilotMCP 协议MCP 本地服务器Git / 本地代码仓库 Tool项目构建 / 测试脚本 Tool本地文件系统 Resource内部 API Resource项目专用 Prompt 模板开发者IDE / 开发工具 (VSCode / Cursor 等)LLM MCP 客户端本地代码仓库 / 文件企业内网系统 / 服务4. MCP 与 LangGraph / CrewAI / AutoGen 的关系很多人会问“MCP 和 LangGraph / CrewAI / AutoGen 是竞品吗”答案是不是同一层的东西更像是“可以叠加的组合拳”。一句话对比MCP标准化协议解决“模型 ↔ 工具 / 数据”怎么连的问题。LangGraphAgent / 工作流编排框架用“有状态图”描述复杂流程。CrewAI多 Agent 协作框架主打“像组织一个团队那样组织 Agent”。AutoGen多 Agent 对话与协作框架更偏研究和复杂协作模式。你可以简单记MCP 能力层工具协议LangGraph / CrewAI / AutoGen 编排层流程与 Agent 逻辑抽象层级 职责对比维度MCPLangGraphCrewAIAutoGen类型协议 / 能力层框架 Runtime框架 产品化工具框架关注点工具 / 资源 / Prompt 标准化有状态图、检查点、人工介入、生产级编排多 Agent 分工协作、任务流水线多 Agent 对话模式、事件驱动面向对象模型客户端 外部系统Agent / State / Node / EdgeAgent / Task / CrewAgent / 对话 Session可替代关系通用标准层内部可以调用 MCP 工具可把 MCP 工具作为 Agent 的工具集合可用 MCP 作为工具层工具接入方式为什么说“能组合拳”在MCP 视角MCP 只规定“工具长什么样 怎样调用”不规定编排逻辑。在Agent 框架视角LangGraph / CrewAI / AutoGen 各自有自己的Tool抽象这些 Tool 的底层完全可以统一为MCP 调用。这意味着你可以只实现一套 MCP Server然后在 LangGraph 里当作工具使用在 CrewAI 里当作 Agent 的工具集合在 AutoGen 里作为工具执行后端在 ChatGPT / Claude / IDE 中直接被模型调用工具开发成本只做一遍跨平台复用。典型使用场景选型建议可以按下面思路做初步选型工具层要不要标准化如果你满足以下任一情况未来会接多个模型 / 多家厂商会有多个入口ChatGPT / 内部前端 / IDE / Agent 框架那么建议优先铺 MCP作为统一能力层。编排层如何选流程复杂、多步骤、需要持久化 / 回溯 / 人工审核→ 更适合用LangGraph。偏向“多角色团队协作式自动化”调研 → 撰写 → 审核 → 发布→ 很适合CrewAI。需要做多 Agent 协作的研究、实验新范式→AutoGen非常合适。组合拳架构推荐底层MCP Server 封装所有系统能力中间LangGraph / CrewAI / AutoGen 作为 orchestrator顶层ChatGPT / 内部前端 / IDE 等各种入口共享这一套 MCP 能力。5. 实战给本地项目写一个 MCP Server下面是一个可直接运行的示例用Python 官方 MCP SDKFastMCP把你本地项目目录暴露成三类工具 一个资源工具list_project_files列项目文件read_project_file读文件内容search_in_project在项目内简单全文搜索。资源project://readme项目 README 内容。注意所有路径都被限制在指定的BASE_DIR下避免路径越界。环境准备mkdirmcp-local-projectcdmcp-local-project python -m venv .venv# Windows# .venv\Scripts\activate# macOS / Linuxsource.venv/bin/activate pipinstallmcp[cli]核心代码示例server.py# server.py 一个针对本地项目的简单 MCP Server 示例 - 使用 FastMCP官方 Python SDK - 暴露项目文件浏览 / 阅读 / 搜索为 MCP 工具和资源 importosfrompathlibimportPathfromtypingimportList,Dictfrommcp.server.fastmcpimportFastMCP# 配置你的项目根目录 # 优先用环境变量 MCP_PROJECT_ROOT否则默认使用当前文件所在目录BASE_DIRPath(os.getenv(MCP_PROJECT_ROOT,Path(__file__).parent)).resolve()def_safe_path(relative:str)-Path: 将相对路径转成绝对路径并确保仍然位于 BASE_DIR 内部防止目录穿越。 candidate(BASE_DIR/relative).resolve()ifnotstr(candidate).startswith(str(BASE_DIR)):raiseValueError(路径越界只能访问项目根目录之下的文件)returncandidate# 创建 MCP Server名字随便起建议有意义一点mcpFastMCP(nameLocalProjectServer,json_responseTrue)# 工具 1列出项目文件 mcp.tool()deflist_project_files(subdir:str.,max_files:int100,)-List[str]: 列出项目目录下的文件相对路径。 - subdir: 相对项目根目录的子目录例如 src、tests - max_files: 最多返回多少个文件防止结果太大 root_safe_path(subdir)ifnotroot.exists():raiseFileNotFoundError(f子目录不存在:{subdir})files:List[str][]forpathinroot.rglob(*):ifpath.is_file():relpath.relative_to(BASE_DIR).as_posix()files.append(rel)iflen(files)max_files:breakreturnfiles# 工具 2读取单个项目文件 mcp.tool()defread_project_file(path:str,max_bytes:int20000,)-str: 读取项目中的某个文本文件。 - path: 文件相对项目根目录的路径例如 src/app/main.py - max_bytes: 最多返回多少字节内容避免一次性把巨型文件塞进上下文 file_path_safe_path(path)ifnotfile_path.is_file():raiseFileNotFoundError(f文件不存在:{path})datafile_path.read_text(encodingutf-8,errorsreplace)iflen(data)max_bytes:datadata[:max_bytes]\n\n...[内容已截断]...returndata# 工具 3在项目中做简单字符串搜索 mcp.tool()defsearch_in_project(pattern:str,max_results:int20,)-List[Dict[str,str]]: 在项目中做简单的字符串搜索不区分大小写。 - pattern: 要搜索的子串 - max_results: 最多返回多少条匹配结果 ifnotpattern:raiseValueError(pattern 不能为空)results:List[Dict[str,str]][]lower_patternpattern.lower()allowed_suffixes{.py,.md,.txt,.json,.yaml,.yml,.toml}forfinBASE_DIR.rglob(*):ifnotf.is_file():continue# 只在常见文本文件中搜索避免扫二进制/图片iff.suffixandf.suffix.lower()notinallowed_suffixes:continuetry:textf.read_text(encodingutf-8,errorsignore)exceptException:continueidxtext.lower().find(lower_pattern)ifidx-1:continuestartmax(0,idx-80)endmin(len(text),idxlen(pattern)80)snippettext[start:end].replace(\n, )results.append({path:f.relative_to(BASE_DIR).as_posix(),snippet:snippet,})iflen(results)max_results:breakreturnresults# 资源示例项目 README mcp.resource(project://readme)defproject_readme()-str: 返回项目根目录下的 README 内容如果存在。 fornamein(README.md,readme.md,README.txt,Readme.md):candidateBASE_DIR/nameifcandidate.exists():returncandidate.read_text(encodingutf-8,errorsreplace)return未在项目根目录找到 README 文件。if__name____main__:# 使用 HTTP 作为传输层默认监听 http://localhost:8000/mcp# 某些客户端/IDE 也可以用 transportstdiomcp.run(transportstreamable-http)如何运行 测试指定要暴露的项目根目录# 假设你的项目在 /Users/john/my_projectexportMCP_PROJECT_ROOT/Users/john/my_project# Windows PowerShell:# $env:MCP_PROJECT_ROOTC:\Users\john\my_project启动 MCP Serverpython server.py# 默认在 http://localhost:8000/mcp 暴露 MCP 端点用 MCP Inspector 调试推荐npx -y modelcontextprotocol/inspector在浏览器中填写 MCP Server URLhttp://localhost:8000/mcp连接后可以查看listTools/listResources手动调用list_project_files/read_project_file/search_in_project读取project://readme资源如何接入 ChatGPT / IDE / Agent 框架在支持 MCP 的客户端中配置MCP Server 地址http://localhost:8000/mcp之后模型就可以直接阅读你的本地项目代码根据上下文自动调用搜索工具结合文件内容给你 refactor / bug fix / 文档生成建议。在 Agent 框架中例如 LangGraph / CrewAI / AutoGen可以封装一个“调用 MCP 工具”的通用函数把 MCP Server 暴露的工具当作这些框架中的 tools 使用。如何继续扩展在上述示例基础上你可以很自然地增加更多工具例如run_tests()运行项目测试pytest / npm test返回摘要build_project()触发构建脚本注意要严格白名单search_legal_clauses()如果是律所项目对合同模板库做结构化检索get_api_endpoints()解析路由配置导出 API 列表给模型参考。设计原则所有文件访问走_safe_path只允许在BASE_DIR内活动所有有副作用的操作走白名单只允许执行明确列出的脚本/命令工具输入参数尽量结构化 明确类型利于模型构造正确参数。6. 参考架构与最佳实践一个推荐的整体架构是底层能力层MCP Serversdb-mcp-server封装数据库访问fs-mcp-server封装文件系统 / 文档库project-mcp-server封装本地项目相关能力thirdparty-mcp-server封装第三方 API邮件、日程、CRM……。中间编排层Agent / Workflow 框架LangGraph处理长流程、有状态、有人工审核的业务CrewAI处理“多角色团队协作式”的业务场景AutoGen用于研究性、多 Agent 协作模式实验。顶层入口层ChatGPT / Claude / 公司内部前端IDEVSCode / Cursor / JetBrains内网 BotSlack / Teams / 钉钉 / 企业微信。所有入口共用一套 MCP 能力层升级工具或接新系统只需要在 MCP Server 扩展即可。7. 结语如果只用一句话概括这部分内容MCP 是一个统一的“AI 能力层协议”让工具只写一次、到处可用并能和 LangGraph / CrewAI / AutoGen 等框架组合成强大的 Agent 系统。你现在已经具备对 MCP 在整个 Agent 生态中位置的认知一个可运行的本地项目 MCP Server 示例接入与扩展的基本思路。接下来你可以试着在自己的真实项目里改造这个示例把它接入 IDE / Agent 框架逐步把“日常重复工作”迁移到 MCP Agent 上。这将是从“会用大模型”迈向“打造 AI 能力平台”的关键一步。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站建设专员帮人做ppt的网站

AutoGPT能否接入腾讯文档?在线协作文档操控 在智能办公的浪潮中,一个现实而迫切的问题浮现出来:我们能否让AI真正“动手”工作,而不是仅仅回答问题?想象这样一个场景——你刚开完一场会议,还没来得及整理纪…

张小明 2026/1/10 13:21:55 网站建设

增加网站备案wordpress与

限流在很多场景中用来限制并发和请求量,比如说秒杀抢购,保护自身系统和下游系统不被巨型流量冲垮等。 以微博为例,例如某某明星公布了恋情,访问从平时的50万增加到了500万,系统的规划能力,最多可以支撑200万…

张小明 2026/1/11 10:48:58 网站建设

利用vps做网站wordpress 顶部栏大小

选择与使用Shell 在Debian GNU/Linux系统中, /etc/profile 被配置为调用 /etc/bash.bashrc ,默认的 ~/.profile 被配置为调用 ~/.bashrc ,这样交互式登录shell也能获取交互式非登录shell的所有配置文件。 1. 交互式登录shell 交互式登录shell的配置文件因shell类…

张小明 2026/1/11 10:48:54 网站建设

国外地图搜房网站建设安庆网站设计

Rust 1.92.0 正式发布本次更新主要集中在为“Never Type” (!) 的稳定化做准备、修复 Linux 平台上的 panic 回溯问题,以及稳定了一批标准库 API。语言特性与编译器更新Never Type (!) 稳定化准备:为了推进 ! 类型(表示永远不会返回的类型&am…

张小明 2026/1/12 2:24:54 网站建设