公寓信息检索聊天机器人

一个基于Model Context Protocol的远程服务器项目,提供公寓信息检索功能,并通过LangChain和OpenAI实现交互式聊天机器人。

  • by matfonseca
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 matfonseca/remote_mcp

使用说明

远程MCP(模型上下文协议)服务器

一个演示项目,展示了用于公寓信息检索的远程MCP服务器,客户端使用LangChain和OpenAI创建了一个交互式聊天机器人。

概述

这个项目由两个主要部分组成:

  1. MCP 服务器 (remote_mcp/server.py): 一个提供公寓信息工具的FastMCP服务器
  2. MCP 客户端 (client_mcp/client.py): 基于LangChain的聊天机器人客户端,用于连接远程MCP服务器

服务器通过模型上下文协议提供公寓搜索功能,而客户端则提供了一个由OpenAI的GPT模型驱动的交互式聊天界面。

特点/特性

  • 🏠 一个房子的图标,常用于表示住宅或家 公寓搜索获取任何城市的公寓房源信息
  • 🤖 机器人 AI驱动的聊天使用OpenAI GPT-4的交互式聊天机器人
  • 🌐(地球/网络) **远程MCP(管理控制面板/主机)**远程部署的服务器(Render.com)
  • ⚡(闪电符号,常用于表示快速、能量或电力) FastMCP高性能MCP服务器实现
  • 🔗 LangChain 集成与LangGraph实现无缝工具集成

项目结构

remote_mcp/
├── pyproject.toml          # Poetry configuration and dependencies
├── poetry.lock            # Locked dependencies
├── README.md              # This file
├── remote_mcp/
│   ├── __init__.py
│   └── server.py          # MCP server implementation
└── client_mcp/
    └── client.py          # Interactive chatbot client

先决条件

  • Python 3.11及以上版本
  • 诗歌(用于依赖管理)
  • OpenAI API密钥

安装

  1. 克隆仓库:

    git clone https://github.com/matfonseca/remote_mcp
    cd remote_mcp
    
  2. 使用 Poetry 安装依赖项:

    poetry install
    
  3. 设置环境变量: 创建一个 .env 项目根目录中的文件:

    touch .env
    

    将您的OpenAI API密钥添加到 .env 文件:

    OPENAI_API_KEY=your_openai_api_key_here
    

用法

运行MCP服务器(本地开发)

要在本地运行MCP服务器以进行开发:

poetry run python remote_mcp/server.py

服务器将在 http://0.0.0.0:8001 默认情况下。您可以通过设置来自定义端口 PORT 环境变量。

poetry run python client_mcp/client.py

这将开始一个互动聊天会话,您可以在其中询问有关公寓的问题。

示例交互

MCP Chatbot Started!
Type your queries or 'quit' to exit.

Query: What apartments are available in New York?

Response:
Here are the available apartments in New York:
- Apartment 1: 2 bed, 1 bath, $1200/month
- Apartment 2: 3 bed, 2 bath, $1500/month  
- Apartment 3: 1 bed, 1 bath, $900/month

Query: quit

可用工具

MCP服务器提供了以下工具:

get_apartments_info(city: str)

  • 描述获取指定城市中的公寓列表
  • 参数:
    • city (字符串): 要搜索公寓的城市
  • 退货公寓描述列表,包含卧室、浴室和租金等详细信息

配置

服务器配置

服务器可以通过环境变量进行配置:

  • PORT服务器端口(默认:8001)
  • HOST服务器主机(默认:0.0.0.0)

客户端配置

要连接到本地服务器,请修改URL中的 client_mcp/client.py:

"url": "http://0.0.0.0:8001/mcp"

依赖项

核心依赖项

  • mcp ^1.17.0模型上下文协议实现
  • langchain-mcp-adapters ^0.1.11LangChain与MCP的集成
  • langchain ^0.3.27LangChain框架
  • langchain-openai ^0.3.35LangChain的OpenAI集成
  • langgraph ^0.6.10基于图的代理框架

开发依赖项

  • python-dotenv环境变量管理

发展

运行测试

poetry run pytest

代码格式化

poetry run black .
poetry run isort .

代码检查(或代码规范检查)

poetry run flake8

部署

MCP服务器目前部署在Render.com上,地址为 https://remote-mcp-mzug.onrender.com/mcp。

部署您自己的实例:

  1. 克隆这个仓库
  2. 将您的Render.com帐户连接到您的GitHub
  3. 在Render上创建一个新的Web服务
  4. 设置构建命令: poetry install
  5. 设置启动命令: poetry run python remote_mcp/server.py
  6. 根据需要配置环境变量

故障排除

常见问题

  1. “模块未找到”错误确保你是在以管理员权限运行命令 poetry run 前缀
  2. OpenAI API错误请确保您的API密钥已正确设置在 .env 文件
  3. 连接错误检查远程服务器URL是否可访问

调试模式

在您的环境中设置日志级别以启用调试日志记录:

export LOG_LEVEL=DEBUG

贡献

  1. 为仓库创建分支(或:克隆仓库)
  2. 创建一个特性分支
  3. 做出你的更改
  4. 如适用,请添加测试
  5. 提交拉取请求

许可证

[在此添加您的许可证信息]

联系

如需咨询或获取支持,请[添加联系方式]。


这个项目展示了模型上下文协议在构建分布式AI工具生态系统方面的强大能力。