Gemini MCP 研究聊天机器人

一个基于Gemini模型的研究聊天机器人,提供文件管理、论文搜索和网页内容提取等功能,适用于学术研究和信息整理。

  • by MarRoth93
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 marroth93/mcp-research-server-with-gemini

使用说明

带Gemini的MCP研究服务器

如何运行Gemini MCP聊天机器人

此项目使用[uv]--一个快速的Python包管理器和虚拟环境工具--用于管理依赖关系和运行您的机器人。以下是如何从头开始设置一切。

先决条件

  • Python 3.11+(建议>=3.11)

逐步设置

  1. 克隆此存储库

    git clone https://github.com/MarRoth93/MCP-research-server-with-Gemini
    cd your-repo-name
    
  2. 使用创建虚拟环境 uv

    uv venv
    
  3. 激活虚拟环境

    • 在…上 视窗:

      .venv\Scripts\activate
      
    • 在…上 macOS/Linux:

      source .venv/bin/activate
      
  4. 安装所有必需的依赖项

    uv pip install -e .
    
  5. 设置环境变量

    复制提供的 .env.example 文件到 .env 并使用您的API密钥进行更新:

    cp .env.example .env
    # then edit .env and replace the placeholder with your key
    

启动聊天机器人

设置好所有内容后,您可以通过以下方式启动聊天机器人:

uv run mcp_chatbot_gemini.py

您将看到指示服务器和工具正在加载的输出。完成后,您可以在终端中与Gemini机器人进行交互。 这个聊天机器人使用 gemini-2.0-flash-exp 默认情况下,模型。 您可以更改 model 参数在 mcp_chatbot_gemini.py 使用任何其他Gemini型号。


工具

聊天机器人与多个MCP服务器通信,以提供各种 功能和提示。

服务器

  • 文件系统 –暴露你的 parsed 和 websites 文件夹,以便机器人可以 读取和写入文件。
  • 获取 –用于下载内容的简单HTTP获取服务器。
  • 研究 –跑步 research_server.py 并提供下列工具。

功能在 research_server.py

  • search_papers(topic, max_results=1, search_pool_size=50) –搜索arXiv和 存储纸张元数据。
  • extract_info(paper_id) –返回有关论文的存储详细信息。
  • file_parsing(paper_id) –将PDF转换为Markdown。此解析函数 在解析后的输出前添加一个提示,以便Gemini知道如何对其进行总结。

鼓励

  • extract_website(url, filename) –获取网页并保存Markdown 快照。
  • generate_search_prompt(topic, num_papers=5) –引导双子座研究 主题使用上述工具。

资源

  • papers://paper –列出已解析的论文。
  • papers://folder –列出可用主题。
  • papers://{topic} –获取特定主题的论文。

路径更新

🔧 需要配置:添加本地路径

该项目的某些部分需要本地文件系统路径来保存和访问论文和网站内容。为了隐私和可移植性,这些路径已从公共仓库中删除。

为了使用该系统, 您必须使用自己的本地路径更新以下占位符:

  1. server_config.json

    "args": [
      "-y",
      "@modelcontextprotocol/server-filesystem",
      "add path here",   // Path to your 'parsed' folder
      "add path here"    // Path to your 'websites' folder
    ]
    

示例路径:

"args": [
  "-y",
  "@modelcontextprotocol/server-filesystem",
  "C:/ResearchData/parsed",
  "C:/ResearchData/websites"
]

这假设你有一个 ResearchData 目录与 parsed 和 websites 子文件夹。

  1. research_server.py

    PAPER_TXT_DIR = Path("add path here")  # Set this to your parsed papers directory
    

    例子:

    PAPER_TXT_DIR = Path("C:/ResearchData/parsed")
    

    确保这与 parsed 您的文件夹路径 server_config.json.

  2. 内部提示 查找包含以下内容的任何文本 'add path here' 并使用您首选的本地目录路径进行更新。

提示:使用绝对路径,如 C:/Users/yourname/Documents/parsed 为了获得最佳效果。