MCP客户端-服务器解决方案

一个基于Pydantic AI框架和Gemini-2.0-Flash LLM的定制化MCP客户端-服务器解决方案,支持与Brave搜索MCP服务器和自定义邮件发送服务器交互。

  • by Praneethvvs
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 praneethvvs/mcp_server_example

使用说明

mcp_server_示例

该项目演示了构建自定义MCP客户端-服务器解决方案的实现,该客户端使用Pydantic AI框架开发,并与Brave Search MCP服务器和自定义Send_Email服务器交互,所有这些都由Gemini-2.0-Flash LLM提供支持。这种方法消除了对Claude Desktop等预构建解决方案的需求,提供了对客户端-服务器集成的完全灵活性和控制。

演示视频

在此处观看演示视频: 演示视频

先决条件

要设置和运行自定义MCP服务器,请确保您具备以下条件:

  • Python 3.12:从下载并安装最新版本 Python官方网站.

  • Node.js 22.14.0:从安装此版本 Node.js官方网站.

  • Gemini API密钥:在上注册免费API密钥 谷歌人工智能工作室.

  • 勇敢搜索API密钥:访问获取免费API密钥 勇敢搜索API页面 并注册一个帐户。

  • Gmail应用密码:按照以下步骤为您的Gmail帐户生成16个字符的应用程序密码:

    1. 引导到 Google帐户安全设置.
    2. 在“登录谷歌”下,选择“应用程序密码”
    3. 选择需要密码的应用程序和设备,然后单击“生成”
    4. 复制生成的16个字符的密码,以便在您的应用程序中使用。

安装说明

1) 克隆项目

将存储库克隆到本地计算机:

git clone <repository_url>
cd mcp_server_example

2) 创建虚拟环境

为项目创建一个Python虚拟环境:

python -m venv venv

3) 激活虚拟环境

激活虚拟环境:

  • 在Windows上:

    .\venv\Scripts\ctivate
    
  • 在MacOS/Linux上:

    source venv/bin/activate
    

4) 安装MCP服务器的要求

导航到 mcp_server 目录并安装必要的依赖项:

cd mcp_server
pip install -r requirements.txt

5) 安装MCP客户端的要求

接下来,导航到 mcp_client 目录并安装必要的依赖项:

cd mcp_client
pip install -r requirements.txt

6) 填充 .env 文件

您需要为服务器和客户端配置环境变量。创建 .env 两者中的文件 mcp_server 和 mcp_client 目录,并用以下键填充它们:

  • GEMINI_API_KEY -从谷歌人工智能工作室免费API密钥。
  • BRAVE_API_KEY -勇敢搜索提供免费API密钥。
  • GMAIL_APP_PASSWORD --生成的应用程序密码(不是您的Gmail密码)。
  • SENDER_EMAIL -发件人的电子邮件地址(您为其创建gmail_app_password的帐户)。

7) 安装Brave Search MCP服务器

安装MCP服务器。这将由mcp_client使用STDIO调用

npm install -g @modelcontextprotocol/server-brave-search

8) 运行服务器

在中运行以下命令启动MCP服务器 mcp_server 目录。这将由mcp_client使用SSE调用

cd mcp_server
python main.py

9) 运行客户端

服务器运行后,启动MCP客户端:

cd mcp_client
python main.py

10) 调用这两个工具的示例提示

非常重要的注意:会话记忆尚未实现,消息之间也没有传递上下文,因此如果你想调用多个工具,请确保在同一消息中提供完整的上下文。

  1. 找到最奇怪的食物组合,实际上味道很好,并通过电子邮件发送主题为“食物融合惨败!添加一个有趣的注释:是时候为你的味蕾增添趣味了!'“发送到<email_id>

  2. 查找喜剧演员最有趣的语录,并发送主题为“喜剧金奖!添加一条个人信息:“准备好放声大笑吧!”!'发送到<email_id>。

  3. 搜索有关太空的最奇怪的事实,并发送主题为“宇宙好奇心!添加一个有趣的注释:“准备好让你大吃一惊!”!'发送到<email_id>。

  4. 找到前5个不寻常的旅行目的地,并以“另类冒险!“添加一个有趣的注释:”是时候开始计划你的下一次度假了!'发送到<email_id>