模型上下文协议服务器

该项目专注于使用Python代码构建自定义模型上下文协议(MCP)服务器,旨在标准化AI应用程序与数据和工具的连接方式。

  • by beenlanced
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 beenlanced/ai_mcp_server

使用说明

模型上下文协议服务器

img来源:模型上下文协议可视化指南

项目描述

本项目侧重于使用Python代码构建自定义模型上下文协议(MCP)服务器。该项目的灵感来自Dave Ebbelaar的 面向Python开发人员的MCP速成课程该项目不再使用依赖于Claude Desktop、Cursor或其他个人AI助理的个人MCP服务器。相反,该项目展示了如何将MCP构建到Python应用程序和代理系统中。我的项目产生了与 面向Python开发人员的MCP速成课程 当然,但在MCP工具的构建方面有所不同,特别是在将Gemini AI用于模型方面与OpenAI有所不同 _课程_Gemini AI模型的实现需要MCP协议实现的差异,但在大多数情况下,事件的总体流程遵循MCP标准所概述的相同通用方法。

这个项目很重要,因为它提供了如何构建可以在基于Python的应用程序中使用MCP的生产系统的理解。

此外,该项目只是了解更多关于这种广受欢迎的标准化协议的好方法。

项目的关键组成部分:

  • 了解MCP的技术架构

  • 使用Python软件开发工具包(SDK)构建自定义MCP服务器

    • 我展示了一些使用MCP服务器的简单示例 STDIO 和 STREAMABLE-HTTP 运输
    • 我将展示如何为这些服务器构建客户端测试代码
    • 我展示了MCP与简单的Python函数调用有何不同
    • 我将展示如何构建Docker容器,以在本地和远程运行MCP服务器,就像在生产环境中一样。
  • 将这些服务器集成到Python应用程序中

  • 就何时以及如何使用MCP做出明智的决定

目标

该项目包含以下关键要素:

  • Docker 为了将MCP服务器远程使用容器化,
  • FastMCP 使用标准化AI应用程序如何连接到数据和工具的模型上下文协议(MCP)简化服务器和客户端创建的Python框架,
  • Gemini AI,我使用谷歌的高级人工智能模型(例如LLM)来生成各种类型的内容,包括与MCP服务器及其MCP工具、提示和资源结合使用的文本。
  • gemini-2.5-flash 我使用的生成式人工智能模型,
  • Git (版本控制),
  • MCP 该协议标准化了AI应用程序如何连接到数据和工具,
  • Node.js JavaScript运行时环境,帮助运行MCP检查器,
  • NPM Node包管理器Node.js的默认包管理器,
  • Prompt Engineering 为LLM提供关于如何检索信息的指令,
  • Python 标准模块,以及
  • uv 包管理,包括使用 ruff 用于裁剪和格式化。

技术栈

入门指南

以下是一些帮助您设置此项目的说明。


安装步骤

先决条件

  • 要运行MCP检查器,您需要确保您有 Node.js 和 NPM 安装在您的机器上。

  • 在中设置Gemini AI API密钥 .env 文件。看 .env.example 作为一个例子

获取代码——克隆Repo

  1. 克隆仓库(或将其作为zip文件下载):

    git clone https://github.com/beenlanced/ai_mcp_server.git
    
  2. 创建名为的虚拟环境 .venv 使用 uv Python 3.12版本:

    uv venv --python=3.12
    
  3. 激活虚拟环境: .venv

    在macOS和Linux上:

    source .venv/bin/activate #mac
    

    在Windows上:

     # In cmd.exe
     venv\Scripts\activate.bat
    
  4. 使用安装软件包 pyproject.toml 或(见特别注释部分)

    uv pip install -r pyproject.toml
    

运行代码

  • 按照每个MCP目录中的说明操作MCP服务器和客户端。

参考文献

[1] MCP Python SDK

[2] FastMCP

[3] 基于Google Gemini 2.5 Pro的模型上下文协议(MCP)——深度学习(完整代码)

[4] 了解MCP基础知识 使用远程服务器


结束语

感谢您的光临。

给这个项目一颗星(⭐) 如果你喜欢它,或者它对你有帮助!

你已经 beenlanced! 😉


致谢

我要感谢所有为这个项目的发展和成功提供帮助的个人和组织。你的支持,无论是通过贡献、灵感还是鼓励,都是无价的。非常感谢。

具体而言,我要承认:


许可证

此项目根据MIT许可证获得许可-请参阅 许可证 详细信息文件