项目简介

GenAI-Practice 仓库包含多个生成式AI实践项目。其中 'MCP_anthropic/mcp_project/research_server.py' 文件是一个基于 Model Context Protocol (MCP) 标准实现的服务器,旨在为大型语言模型 (LLM) 客户端提供学术研究相关的上下文信息和工具调用能力。它能够搜索 arXiv 上的论文、提取论文详细信息,并根据主题管理论文数据,同时提供可定制的Prompt模板。

主要功能点

  • 论文检索工具: 允许LLM调用外部工具搜索 arXiv 上的学术论文,并保存其基本信息(如标题、作者、摘要、PDF链接)。
  • 论文信息提取工具: 提供工具根据论文ID从已保存的数据中提取详细的论文信息。
  • 资源管理: 通过标准化URI(如 'papers://folders' 和 'papers://<topic>')暴露可用研究主题文件夹和特定主题下的论文列表作为资源,供LLM客户端查询。
  • Prompt模板: 定义了可定制的Prompt模板,用于指导LLM进行论文搜索和总结等任务。
  • JSON-RPC通信: 服务器通过JSON-RPC协议与客户端通信,支持SSE(Server-Sent Events)等多种传输协议。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/nitinsb/GenAI-Practice.git
    cd GenAI-Practice/MCP_anthropic/mcp_project
  2. 安装依赖:

    pip install uv  # 如果还没有安装uv包管理器,请先安装
    uv add arxiv mcp python-dotenv nest_asyncio
  3. 创建 '.env' 文件 (可选): 在 'GenAI-Practice/MCP_anthropic/mcp_project/' 目录下创建 '.env' 文件。虽然当前 'research_server.py' 主要使用 'arxiv' 库,没有直接依赖外部LLM API 密钥,但为未来扩展或某些工具可能需要,建议做好环境配置准备。

    # 示例:根据实际需求添加必要的API密钥
    # ANTHROPIC_API_KEY=your_anthropic_api_key
    # OPENAI_API_KEY=your_openai_api_key

服务器配置 (供MCP客户端连接)

您的MCP客户端需要配置以下信息来连接到此MCP服务器。这是一个典型的JSON格式配置示例,您需要在您的MCP客户端中进行相应的配置。

  • 'mcpServers': 这是一个JSON对象,包含所有MCP服务器的配置。
  • 'research_server': 这是客户端为该MCP服务器指定的唯一标识符,您可以自定义。
    • 'name': 'research',该MCP服务器自身宣告的内部名称。
    • 'command': 'python',用于启动服务器进程的命令行程序。
    • 'args': '["MCP_anthropic/mcp_project/research_server.py"]',作为参数传递给 'command' 的列表,这里是服务器主脚本的路径。
    • 'port': '8001',MCP服务器监听的本地端口。
    • 'transport': 'sse',服务器用于与客户端通信的传输协议类型。

基本使用方法

  1. 启动MCP服务器: 在 'GenAI-Practice/MCP_anthropic/mcp_project' 目录下执行以下命令来启动服务器:

    python research_server.py

    服务器将会在 'http://localhost:8001' 启动,并等待MCP客户端连接。

  2. 使用MCP客户端连接: 您可以使用 'mcp_chatbot.py'(在同一目录下)或其他兼容MCP协议的客户端连接到此服务器。确保客户端的 'server_config.json' 或相应配置中包含上述服务器配置信息。 例如,要使用 'mcp_chatbot.py',请确保它旁边的 'server_config.json' 文件内容正确(如上述示例),然后运行:

    python mcp_chatbot.py

    在客户端命令行界面中,您可以尝试以下操作来与服务器互动:

    • 输入 '/prompts' 查看 MCP 服务器提供的 Prompt 模板列表。
    • 输入 '/prompt generate_search_prompt topic="Large Language Models" num_papers=3' 来执行名为 'generate_search_prompt' 的 Prompt 模板,并让 LLM 进行论文搜索。
    • 输入 '@folders' 查看 MCP 服务器上可用的研究主题文件夹资源。
    • 输入 '@machine_learning'(如果 'machine_learning' 是通过搜索或手动创建的已有主题文件夹)来获取该主题下的论文信息资源。

信息

分类

开发者工具