研究助理工具

一个基于MCP架构的研究助理工具,用于查询、总结和比较尼泊尔法律学术论文,支持交互式CLI和Streamlit UI。

  • by anjanpa
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 anjanpa/Research-Assistant-using-MCP

使用说明

MCP研究助理

一个研究助手,利用模型上下文协议(MCP)、谷歌Gemini大型语言模型(LLM)以及针对尼泊尔法律学术研究定制的工具/资源构建而成。
允许用户通过命令行界面(CLI)交互式地查询、总结和比较研究论文。


项目概述

这个项目展示了一个使用MCP架构的研究助手:

  • 服务器: 提供研究查询所需的工具和资源。
  • 客户: 连接到服务器和Gemini大语言模型以处理用户查询。
  • 资源: 预加载的尼泊尔学术论文。
  • 工具: 从Google学术搜索获取更多论文,进行总结,并对论文进行比较。

该助手结合服务器资源和工具调用,为研究任务提供丰富、结构化的输出。


特点/功能

  • 查询尼泊尔法律研究论文。
  • 总结或比较多篇论文。
  • 动态地从Google学术中获取更多论文。
  • 持久的聊天记录。
  • 基于交互式命令行界面(CLI)和Streamlit的用户界面(UI)。

项目结构

论文-MCP/ ├─ mcp-server/(译文:├─ mcp服务器/) │ ├─ server.py # MCP服务器,用于暴露工具/资源 │ └─ sample_papers.json # 尼泊尔学术论文资源 mcp-client/(可翻译为)MCP客户端/ │ ├─ client.py # 连接到服务器的MCP客户端 ├─ README.md(中文可译为:├─ 说明文件README.md 或 目录下的README.md文件) .env # API密钥(Gemini、Scholar API)


要求

  • Python 3.12及以上版本
  • MCP 版本大于等于 2.12.5
  • 根据上面的信息,执行如下指令:
  • 学者API密钥(可选)
  • 使用Streamlit进行用户界面开发(可选)

使用 uv 或 pip 安装依赖项:

安装 MCP(MCP 可能代表某个特定的软件、模块或系统,具体含义需根据上下文确定) 安装谷歌生成式人工智能库(google-genai) 使用pip安装streamlit(注:原文中的“uv”可能是一个误写或特定上下文中的命令,通常Python包的安装会使用“pip”,因此这里翻译为使用pip安装streamlit) 安装 uv 和 httpx(注:这里的“uv install”可能是一个特定环境或工具下的安装命令,但“uv”本身并不是一个广泛认知的安装工具名称,可能是特定上下文中的命令或工具名,因此直接翻译为“安装 uv 和 httpx”,具体含义需结合上下文理解) 安装 python-dotenv(使用 uv 工具)


设置

  1. 克隆仓库:

使用 SSH 或 HTTP 基础的 URL 克隆仓库

  1. 创建并激活虚拟环境:

python -m venv .venv 翻译为中文是:“使用 Python 的 venv 模块创建一个名为 .venv 的虚拟环境” source .venv/bin/activate # Linux/macOS(译文:在Linux/macOS系统中激活虚拟环境) .venv\Scripts\activate # Windows(激活虚拟环境)

  1. 安装依赖项:

安装UV(注:UV可能指某种软件包或工具,具体名称需根据上下文确定,此处为直译)

  1. 添加包含您的API密钥的.env文件:

GEMINI_API_KEY=your_gemini_api_key SCHOLAR_API_KEY=your_scholar_api_key


运行MCP服务器

进入 mcp-server 目录 运行 python server.py

服务器通过MCP(管理控制协议)提供工具和资源:

  • 工具: 获取、总结、比较论文;清除聊天记录。
  • 资源: 尼泊尔学术论文resource://nepali_academic_papers)。
  • 提示: 预定义的用户提示(文献综述、比较等)。

运行MCP客户端(命令行界面)

进入 mcp-client 目录 运行 python client.py mcp-server/server.py

  • 交互式地输入查询类型。
  • 类型 quit 退出。
  • 客户利用可用的工具和资源来做出回应。


MCP 工具和资源

工具:

  • get_scholar_papers(query: str) – 从Google学术上获取论文。
  • summarize_paper(text: str) – 概括一篇给定的论文。
  • compare_papers(papers: list[str]) – 比较多篇论文。
  • erase_chat_history() – 清除聊天记录。

资源:

  • resource://nepali_academic_papers – 预加载的尼泊尔法律研究论文(标题、摘要)。

示例工作流程

  1. 用户查询:“提供关于尼泊尔法律问答(QA)的文献综述。”
  2. 客户端检查资源以加载预存的论文。
  3. 电话通话 get_scholar_papers 用于撰写额外论文的工具。
  4. 使用(某种方法/工具)总结论文 summarize_paper。
  5. 向用户返回结构化的答案。

许可证

麻省理工学院许可证


联系

阿南·帕拉朱利 – anjanparajuli2001@gmail.com