对话式MCP客户端

一个基于Python、LangChain和Groq LLMs构建的对话式MCP客户端,可在Cursor中运行,支持与多个MCP服务器交互,实现浏览器自动化、网页搜索和Airbnb查询等功能。

  • by Subitha-Murugesan
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 subitha-murugesan/mcp-chatbot-cursor-integration

使用说明

MCP聊天机器人(光标集成)

对话 MCP客户端 用Python构建, LangChain,以及 希腊 LLM 设计用于内部运行 光标.

该聊天机器人连接到多个MCP服务器(Playwright、DuckDuckGo搜索、Airbnb等),并允许您在终端或通过Cursor的MCP集成进行对话式控制。


特性

  • 光标本机:将此项目作为MCP客户端添加到Cursor中。
  • 对话 所有MCP服务器 定义于 browser_mcp.json.
  • 通过以下方式自动化浏览器交互 剧作家MCP.
  • 使用以下内容搜索网络 DuckDuckGo MCP.
  • 通过以下方式查询Airbnb房源 OpenBNB MCP.
  • 支持内存的对话(可按需清除)。
  • 由...驱动 希腊 LLM (qwen3-32b, llama3等等)。

设置为 uv

  1. 初始化项目

    uv init mcpdemo
    cd mcpdemo
    
  2. 创建并激活虚拟环境

    uv venv
    source .venv/bin/activate
    
  3. 安装依赖项

    uv add langchain-groq
    uv add mcp-use
    
  4. 添加聊天机器人脚本 (app.py)到项目根目录:

    import asyncio
    import os
    from dotenv import load_dotenv
    from langchain_groq import ChatGroq
    from mcp_use import MCPAgent, MCPClient
    
    async def run_memory_chat():
        load_dotenv()
        os.environ["GROQ_API_KEY"] = os.getenv("GROQ_API_KEY")
    
        print("Initializing chat")
    
        client = MCPClient.from_config_file(
            os.path.join(os.path.dirname(__file__), "browser_mcp.json")
        )
    
        llm = ChatGroq(model="qwen/qwen3-32b")
    
        agent = MCPAgent(llm=llm, client=client, max_steps=15, memory_enabled=True)
    
        try:
            while True:
                user_input = input("Enter your message: ")
                if user_input.lower() in ["exit", "quit", "bye"]:
                    print("Exiting chat")
                    break
                if user_input.lower() in ["clear"]:
                    agent.clear_conversation_history()
                    print("Conversation history cleared")
                    continue
    
                print("chatbot:", end="", flush=True)
    
                try:
                    result = await agent.run(user_input)
                    print(f"\nResult: {result}")
                except Exception as e:
                    print(f"Error: {e}")
    
        finally:
            if client and client.sessions:
                await client.close_all_sessions()
    
    if __name__ == "__main__":
        asyncio.run(run_memory_chat())
    
  5. 添加环境变量 创建一个 .env 使用Groq API密钥提交:

    GROQ_API_KEY=your_groq_api_key_here
    
  6. 配置MCP服务器 在……里面 browser_mcp.json:

    {
      "mcpServers": {
        "playwright": {
          "command": "npx",
          "args": ["@playwright/mcp@latest"]
        },
        "duckduckgo-search": {
          "command": "npx",
          "args": ["-y", "duckduckgo-mcp-server"]
        },
        "airbnb": {
          "command": "npx",
          "args": ["-y", "@openbnb/mcp-server-airbnb"]
        }
      }
    }
    

运行聊天机器人

uv run python main.py

例子:

Enter your message: search for cafes near Paris
chatbot:
Result: Found 10 cafes near Paris...
Enter your message: 
please open google.com and then open makemytrip.com
chatbot:
Enter your message:Give top AI news
chatbot:

命令

  • clear → 清除对话历史记录
  • exit | quit | bye → 退出聊天机器人

为MCP配置光标

  1. 打开 光标设置

    • 首选 光标设置→ MCP和集成
  2. 点击 添加自定义MCP

  3. 游标将打开(或创建)您的 mcp.json 文件。在那里添加您的服务器配置,例如:

    {
      "mcpServers": {
        "playwright": {
          "command": "npx",
          "args": ["@playwright/mcp@latest"]
        },
        "duckduckgo-search": {
          "command": "npx",
          "args": ["-y", "duckduckgo-mcp-server"]
        },
        "airbnb": {
          "command": "npx",
          "args": ["-y", "@openbnb/mcp-server-airbnb"]
        }
      }
    }
    
  4. 保存文件 → Cursor现在将识别并连接到这些MCP服务器。