mcpField
🧠
🧠 Model Context Protocol (MCP)

🧠 Model Context Protocol (MCP)

本地服务
github.com/Ginga1402AI 与智能体281 周前更新

关于 🧠 Model Context Protocol (MCP)

这是一个使用 LangChain MCP Adapters 和 Ollama 的开源 Python MCP 客户端与服务端示例,包含数学和模拟天气服务,以及单服务端和多服务端客户端示例。

主要功能

  1. 01演示数学和天气 MCP 服务
  2. 02让客户端连接单个服务
  3. 03发现多个服务中的工具
  4. 04结合 Ollama 使用 LangChain MCP Adapters

适用场景

  1. 01学习基础 MCP 客户端与服务端交互
  2. 02试用数学工具客户端
  3. 03探索跨两个服务的工具发现

MCP 相关

包含提供简单数学运算和模拟天气响应的 MCP 服务,以及连接单个或两个服务的客户端示例。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

🧠 Model Context Protocol (MCP)

一种开源标准,可将大语言模型(LLM)与外部世界(数据库、API、服务等)无缝连接。


🌐 什么是 MCP?

Model Context Protocol (MCP) 是一种全新的开源协议,旨在通过让 LLM 与外部工具、服务和数据源交互,增强 LLM 的能力。MCP 充当转换层,使模型能够以标准化、可扩展且可扩容的方式与 API、数据库及其他服务交互。


🚨 问题

LLM 本身无法执行现实世界中的任务,只能生成文本。要构建强大的 AI 助手,我们需要将它们与以下工具集成:

  • 邮件服务
  • 搜索 API
  • 数据库
  • 自定义脚本

但集成多个工具并不容易。API 差异很大,维护起来令人头疼,扩展也很困难。


✅ MCP 解决方案

MCP 提供了一个标准化接口,抽象掉工具集成中的复杂性。正如 REST 标准化了 Web 服务,MCP 也标准化了 LLM 与工具的交互方式,让集成更简洁、更轻松,也更适应未来发展。


🔮 为什么选择 MCP?

MCP 帮助你基于 LLM 构建 Agent 和复杂工作流。LLM 经常需要与数据和工具集成,而 MCP 提供:

  1. 不断扩充的预构建集成列表,LLM 可直接接入使用
  2. 在不同 LLM 提供商和供应商之间切换的灵活性
  3. 在你的基础设施内保护数据的最佳实践

🧩 架构与组件

组件描述
MCP 客户端面向 LLM 的组件,可部署在聊天应用、开发工具或助手中。
MCP 服务由服务提供商构建。将服务功能(例如数据库查询、API 调用)转换为 LLM 可理解的格式。
MCP 协议双向传输层,可在客户端与服务之间实现安全、结构化的通信。
服务正在访问的实际工具或外部资源(例如 Weather API、SQL DB)。

🔁 工作原理(流程示例)

README 配图
  1. 用户通过 MCP 主机(例如聊天应用)发送查询。
  2. MCP 客户端识别出需要使用外部工具。
  3. MCP 服务公布可用工具。
  4. LLM 决定要使用哪些工具,并向客户端发出指示。
  5. 客户端向相关 MCP 服务发送请求。
  6. 服务连接到外部服务并检索数据。
  7. 响应返回给 LLM,以生成最终输出。

✨ 主要优势

  • ✅ 简化工具集成
  • 🚀 扩展 LLM 能力
  • 🛠️ 可扩展、易维护的架构
  • 🤝 标准化通信层
  • 💡 推动 AI 应用开发者创新

🛠️ 使用的技术栈

  • Python - Python 为 CodeBuddy 提供核心支持,可稳健地集成各种库和框架。
  • Langchain - LangChain 是一个框架,旨在简化使用大语言模型构建应用的过程。
  • Ollama - 它提供简单的 API,用于创建、运行和管理模型,还提供一个预构建模型库,可轻松用于各种应用。
  • langchain-mcp-adapters - 这个库提供轻量级封装,使 Anthropic Model Context Protocol (MCP) 工具兼容 LangChain 和 LangGraph。

🧩 文件概览

文件描述
client.py一个基础的 MCP 客户端,仅与单个 mathserver 交互。
mathserver.py一个 MCP 服务,提供简单的数学运算(例如加法、乘法)。
weatherserver.py一个模拟天气数据响应的 MCP 服务。
multiclient.py一个多客户端设置,其中 MCP 客户端可以同时连接数学服务和天气服务。

🔄 工作原理

  1. client.py 脚本模拟 AI 助手(或大模型),仅与 Math MCP Server 交互。

  2. multiclient.py 脚本演示了一个更高级的用例:MCP 客户端从多个服务(数学 + 天气)发现并使用工具。

  3. mathserver.py 和 weatherserver.py 提供可供 MCP 客户端使用的功能。

🚀 运行演示

  1. 启动服务:

    python mathserver.py
    python weatherserver.py
    
    
  2. 运行单客户端演示:

    python client.py
    
    
  3. Run Multi-Client Demo:

    python multiclient.py
    
    

🚀 参与其中

欢迎贡献!如果你有任何建议,或希望改进此项目,请 Fork 此代码库并提交 Pull Request。

有兴趣为 MCP 做贡献?敬请关注:

  • 贡献指南
  • 路线图
  • Issue 模板

欢迎给代码库点个 ⭐️ 并参与讨论!


许可证

本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。