使用说明

项目简介

Sefaria Jewish Library MCP Server 是一个基于 Model Context Protocol (MCP) 的服务器,旨在为大型语言模型 (LLM) 提供访问 Sefaria 犹太教文库的标准化接口。通过此服务器,LLM 可以检索犹太教文本、获取相关注释,并在文库中进行搜索,从而增强 LLM 在犹太文化和宗教文本方面的知识和应用能力。

主要功能点

  • 检索文本 (get_text):根据参考文献(如 "创世纪 1:1" 或 "שמות פרק ב פסוק ג")获取特定的犹太教文本内容。支持英文和希伯来文参考文献。
  • 检索注释 (get_commentaries):获取给定文本参考文献的注释列表,帮助用户深入理解文本内容。
  • 搜索文本 (search_texts):在 Sefaria 文库中执行关键词搜索,查找相关的犹太教文本。支持模糊搜索、过滤器和结果数量控制等高级搜索选项。

安装步骤

  1. 克隆仓库 打开终端,执行以下命令克隆 GitHub 仓库到本地:
    git clone https://github.com/sivan22/mcp-sefaria-server.git
    cd mcp-sefaria-server
  2. 运行服务器 服务器可以直接通过 'uv' 命令运行。请确保已安装 Python 3.10 或更高版本,并且安装了项目依赖。 打开终端,导航到项目根目录,然后执行以下命令启动服务器:
    uv --directory <仓库绝对路径> run sefaria_jewish_library
    请将 '<仓库绝对路径>' 替换为克隆仓库的实际绝对路径。例如,如果您的仓库路径是 '/Users/yourname/mcp-sefaria-server',则命令应为:
    uv --directory /Users/yourname/mcp-sefaria-server run sefaria_jewish_library

服务器配置

MCP 服务器是为 MCP 客户端设计的。要将此服务器与 MCP 客户端(如 Claude)连接,您需要在客户端中配置服务器连接信息。以下是一个典型的 JSON 格式配置示例,您需要根据实际的仓库路径进行调整。

{
  "mcpServers": {
      "sefaria_jewish_library": {
          "command": "uv",
          "args": [
              "--directory",
              "<仓库绝对路径>",
              "run",
              "sefaria_jewish_library"
          ],
          "env": {
            "PYTHONIOENCODING": "utf-8"
          }
      }
  }
}

配置参数说明:

  • 'server name': 'sefaria_jewish_library' - 服务器的名称,客户端使用此名称来识别和调用该服务器。
  • 'command': 'uv' - 用于启动服务器的可执行命令。'uv' 是一个 Python 包管理器和运行器,用于执行 Python 代码。
  • 'args': 一个字符串数组,包含传递给 'uv' 命令的参数:
    • '--directory': '<仓库绝对路径>' - 指定服务器代码所在的目录的绝对路径。请务必将 '<仓库绝对路径>' 替换为您本地仓库的实际绝对路径
    • 'run': 'uv' 命令的子命令,用于运行指定的 Python 模块或包。
    • 'sefaria_jewish_library': 要运行的 Python 模块名称,对应 'src/sefaria_jewish_library/init.py' 文件。
  • 'env': 一个环境变量字典,用于设置服务器运行时的环境变量。
    • 'PYTHONIOENCODING': 'utf-8' - 设置 Python 的标准输入/输出编码为 UTF-8,确保正确处理 Unicode 字符。

请注意,您需要将 '<仓库绝对路径>' 替换为克隆到您本地的 'mcp-sefaria-server' 仓库的实际绝对路径。

基本使用方法

配置完成后,在 MCP 客户端中,您可以调用以下工具与 Sefaria Jewish Library MCP Server 交互:

  • get_text: 使用 'reference' 参数指定要检索的文本参考文献。例如:

    {
      "tool_call": {
        "name": "get_text",
        "arguments": {
          "reference": "Genesis 1:1"
        }
      }
    }
  • get_commentaries: 使用 'reference' 参数指定要检索注释的文本参考文献。例如:

    {
      "tool_call": {
        "name": "get_commentaries",
        "arguments": {
          "reference": "Exodus 2:3"
        }
      }
    }
  • search_texts: 使用 'query' 参数指定搜索关键词。还可以使用 'slop', 'filters', 'size' 等参数进行高级搜索。例如:

    {
      "tool_call": {
        "name": "search_texts",
        "arguments": {
          "query": "moshiach",
          "slop": 1,
          "filters": ["Talmud", "Bavli"],
          "size": 5
        }
      }
    }

客户端将发送 JSON-RPC 请求到服务器,服务器会根据请求调用相应的工具,并返回包含文本内容的 JSON-RPC 响应。

信息

分类

网页与API