LLMs之PE之MCP:模型上下文协议 (MCP)的简介、安装和使用方法、案例应用之详细攻略

LLMs之PE之MCP:模型上下文协议 (MCP)的简介、安装和使用方法、案例应用之详细攻略

目录

MCP的简介

1、特点

2、为什么需要 MCP?

3、MCP总体架构

MCP的安装和使用方法

1、安装

2、使用方法

2.1、开发流程

2.2、最佳实践

2.3、后续步骤

MCP的案例应用


MCP的简介

2024年11月25日,Anthropic发布了MCP。模型上下文协议 (MCP) 是一种开放协议,用于简化大型语言模型 (LLM) 应用程序与外部数据源和工具之间的集成。它类似于 USB-C 接口,为 AI 应用提供标准化的连接方式,使 LLM 可以连接到不同的数据源和工具。 MCP 由 Anthropic 公司发起并维护,是一个开源项目,鼓励社区贡献。

总而言之,MCP 提供了一种灵活、可扩展且安全的机制,用于将 LLM 与外部数据源和工具集成,从而构建更强大和更智能的 AI 应用程序。 其开源特性和社区支持,也保证了其持续发展和改进。MCP 通过标准化 LLM 与外部资源的交互方式,简化了构建基于 LLM 的复杂应用的流程,并提升了应用的灵活性和安全性。 它提供了一套完整的工具和资源,帮助开发者构建和部署基于 MCP 的应用。

博客首发地址https://www.anthropic.com/news/model-context-protocol

官网地址Introduction - Model Context Protocol
GitHub地址https://github.com/modelcontextprotocol
文档地址https://docs.anthropic.com/en/docs/agents-and-tools/mcp

1、特点

>> 标准化MCP 提供了一种标准化的方式,让应用程序为 LLM 提供上下文信息。这使得 LLM 可以轻松地与各种数据源和工具集成,而无需针对每个数据源编写特定的代码。

>> 可扩展性:MCP 支持多种编程语言的 SDK,包括 TypeScript、Python、Java、Kotlin 和 C#,方便开发者在不同的环境中使用。 它还支持多种传输方式,并提供灵活的扩展性,允许开发者根据需要添加新的功能和集成。

>> 安全性MCP 提供了最佳实践,用于在基础设施内保护数据安全。

>> 互操作性:MCP 允许在不同的 LLM 提供商和厂商之间切换,提高了系统的灵活性。

>> 预构建集成:MCP 提供不断增长的预构建集成列表,LLM 可以直接插入这些集成。

>> 简化构建复杂工作流:MCP 有助于在 LLM 之上构建代理和复杂工作流。

2、为什么需要 MCP?

LLM 经常需要与数据和工具集成,MCP 提供以下优势
>> 预构建集成:提供不断增长的预构建集成列表,LLM 可以直接使用。
>> 灵活性:允许在不同的 LLM 提供商和厂商之间灵活切换。
>> 数据安全:提供最佳实践,用于保护基础设施中的数据安全。
>> 构建复杂工作流:帮助构建基于 LLM 的代理和复杂工作流。

3、MCP总体架构

MCP 的核心遵循客户端-服务器架构,其中主机应用程序可以连接到多个服务器:
>> MCP 主机 (Hosts):例如 Claude Desktop、IDE 或其他想要通过 MCP 访问数据的 AI 工具。
>> MCP 客户端 (Clients):协议客户端,与服务器保持一对一连接。
>> MCP 服务器 (Servers):轻量级程序,通过标准化的 MCP 协议公开特定功能。
>> 本地数据源 (Local Data Sources):计算机的文件、数据库和 MCP 服务器可以安全访问的服务。
>> 远程服务 (Remote Services):通过互联网(例如,通过 API)提供的外部系统,MCP 服务器可以连接到这些系统。

MCP安装和使用方法

MCP 的安装和使用方法取决于你所选择的 SDK 和应用场景。 GitHub 上提供了多种语言的 SDK,例如 TypeScript SDK、Python SDK、Java SDK、Kotlin SDK 和 C# SDK。 每个 SDK 都提供了相应的文档和示例代码,指导开发者如何使用 MCP。

1、安装

>> 选择合适的 SDK根据你的编程语言和项目需求,选择合适的 SDK。

>> 安装 SDK根据 SDK 的文档说明,安装相应的依赖包。

>> 创建服务器开发一个 MCP 服务器,该服务器负责连接到你的数据源或工具,并通过 MCP 协议与 LLM 客户端通信。 GitHub 上提供了服务器模板,可以作为参考。

>> 创建客户端开发一个 MCP 客户端,该客户端负责与 MCP 服务器通信,并将上下文信息传递给 LLM。 同样,GitHub 上也提供了客户端模板。

>> 集成 LLM将 MCP 客户端集成到你的 LLM 应用程序中,使 LLM 可以访问 MCP 服务器提供的数据和工具。

2、使用方法

2.1、开发流程

  1. 准备文档:
    在开始之前,需要收集必要的文档,以帮助LLM(如Claude)理解MCP的相关内容。这些文档包括:

    • 访问 MCP文档 并复制完整的文档文本。
    • 导航到MCP的TypeScript SDK或Python SDK代码库,复制README文件和其他相关文档。
  2. 描述服务器:
    向Claude清晰地描述你想要构建的服务器。具体包含:

    • 服务器将暴露哪些资源
    • 提供哪些工具
    • 应该提供哪些提示
    • 需要与哪些外部系统交互
      例如,可以描述构建一个连接到公司PostgreSQL数据库的MCP服务器,暴露表架构作为资源,并提供运行只读SQL查询的工具。
  3. 与Claude合作:
    在构建MCP服务器时,可以通过以下方式与Claude进行互动:

    • 首先专注于核心功能,然后逐步添加更多特性。
    • 请求Claude解释不理解的代码部分。
    • 根据需要请求修改或改进。
    • 让Claude帮助测试服务器并处理边界情况。
  4. Claude的功能支持:
    Claude可以帮助实现所有关键的MCP特性,包括:

    • 资源管理和暴露
    • 工具定义和实现
    • 提示模板和处理器
    • 错误处理和日志记录
    • 连接和传输设置

2.2、最佳实践

在使用Claude构建MCP服务器时,建议遵循以下最佳实践:

  • 将复杂的服务器分解为更小的组件。
  • 在继续之前彻底测试每个组件。
  • 注意安全性——验证输入并适当限制访问。
  • 为未来的维护良好地记录代码。
  • 仔细遵循MCP协议规范。

2.3、后续步骤

在Claude帮助你构建服务器之后:

  • 认真审查生成的代码。
  • 使用MCP Inspector工具测试服务器。
  • 将其连接到Claude.app或其他MCP客户端。
  • 根据实际使用情况和反馈进行迭代。

MCP案例应用

GitHub 上的 servers 目录列出了多个已维护的 MCP 服务器,以及 example-clients 展示了支持 MCP 集成的客户端列表。 虽然具体案例应用细节没有在提供的链接中详细描述,但从其架构和功能描述可以推断出 MCP 可用于构建各种 AI 应用,例如:

>> AI 驱动的 IDE将 IDE 与代码库、文档和其他工具集成。

>> 增强型聊天界面将聊天界面与外部知识库和服务集成。

>> 自定义 AI 工作流创建自定义的 AI 工作流,将 LLM 与各种数据源和工具连接起来。

>> Claude for Desktop该应用直接使用了 MCP 来连接预构建的服务器,访问各种数据和功能。

持续更新中……

### minimind LLMs 源码解读分析 #### full_sft.py 文件解析 `full_sft.py` 是一个用于实现基于 PyTorch 的分布式混合精度语言模型全参数训练框架的脚本[^1]。该文件主要关注于如何高效地利用硬件资源,在大规模数据集上进行高效的训练。 为了支持分布式训练,此模块引入了 `torch.distributed.launch` 工具来启动多进程环境,并通过配置 GPU 设备来进行并行计算。对于优化器的选择,默认采用 AdamW 来更新权重参数;同时为了加速收敛过程以及提高数值稳定性,还应用了梯度裁剪技术防止梯度过大造成不稳定现象发生。 此外,考虑到现代深度学习任务中常见的内存瓶颈问题,这里实现了自动混合精度机制 (Automatic Mixed Precision, AMP),它允许网络中的某些部分以较低位宽的数据类型运行从而节省显存空间而不影响最终性能表现。 ```python from torch.cuda.amp import GradScaler, autocast scaler = GradScaler() with autocast(): outputs = model(inputs) loss.backward() scaler.step(optimizer) scaler.update() ``` #### eval.py 文件解析 另一方面,《eval.py》则专注于构建一个可以与用户实时互动交流的人工智能系统[^2]。具体来说就是创建了一个命令行界面(Command Line Interface, CLI), 让使用者能够输入自然语言查询语句得到相应的回复结果。 在这个过程中涉及到的关键组件包括但不限于: - **Tokenizer**: 负责将原始文本转换成 token 序列以便送入 Transformer 编解码架构处理; - **Model Inference Pipeline**: 定义好推理流程之后就可以调用预训练好的 checkpoint 进行预测操作了; - **Response Generation Logic**: 根据上下文信息动态调整生成策略确保对话连贯性逻辑一致性. ```python tokenizer = AutoTokenizer.from_pretrained('pretrained_model_path') model = AutoModelForCausalLM.from_pretrained('pretrained_model_path') input_text = "你好" inputs = tokenizer(input_text, return_tensors="pt").to(device) outputs = model.generate(**inputs, max_length=50) response = tokenizer.decode(outputs[0], skip_special_tokens=True) print(response) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个处女座的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值