使用说明

项目简介

Tacitbase MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务器,旨在为LLM客户端提供高效的候选人数据搜索服务。它利用 Typesense 的高级搜索功能和 Tacitbase 的原生搜索能力,支持多种搜索模式,以满足不同的信息检索需求。

主要功能点

  • 多类型搜索: 支持基本的关键词搜索、向量搜索和语义搜索,满足不同的搜索场景。
  • 候选人数据检索: 专注于候选人数据的搜索,包括基本信息、附件信息等。
  • Typesense 集成: 利用 Typesense 提供高性能、高精度的搜索服务,同时支持在Typesense不可用时回退到 Tacitbase 原生搜索。
  • 可配置性: 通过环境变量进行配置,方便用户根据实际环境进行调整,例如 API 密钥、服务器地址等。
  • 工具化搜索: 通过 MCP 工具的形式暴露搜索功能,方便 LLM 客户端调用。
  • 支持附件搜索: 除了候选人基本信息,还支持对其附件内容进行搜索。
  • 支持 Stdio 传输协议: 通过标准输入输出流 (stdio) 与 MCP 客户端进行通信。

安装步骤

  1. 安装 Go 环境: 确保你的开发环境已安装 Go 语言。
  2. 下载项目依赖: 在项目根目录下运行命令 'go mod download' 下载所需的依赖包。
  3. 构建服务器: 运行命令 'go build -o tb-mcp-server' 编译项目,生成可执行文件 'tb-mcp-server'。

服务器配置

MCP 客户端需要配置以下 JSON 信息以连接到 Tacitbase MCP Server。请注意,Tacitbase MCP Server 默认通过标准输入输出流 (stdio) 进行通信,因此 'command' 和 'args' 配置如下:

{
  "server_name": "Tacitbase-MCP-Server",
  "command": "./tb-mcp-server",
  "args": []
}

环境变量配置: Tacitbase MCP Server 依赖以下环境变量进行配置,请在运行服务器前设置:

  • 'TACITBASE_AUTH_TOKEN': Tacitbase API 的身份验证令牌,用于访问 Tacitbase API。
  • 'TYPESENSE_API_KEY': Typesense API 密钥,用于访问 Typesense 服务。
  • 'TYPESENSE_HOST': (可选) Typesense 主机地址,默认为 'localhost'。
  • 'TYPESENSE_PORT': (可选) Typesense 端口号,默认为 '8090'。
  • 'TYPESENSE_PROTOCOL': (可选) Typesense 协议,默认为 'http'。

基本使用方法

  1. 启动服务器: 在终端中,导航到 'tb-mcp-server' 可执行文件所在目录,并运行 './tb-mcp-server' 命令启动服务器。服务器将监听标准输入,并向标准输出发送响应。

  2. MCP 客户端调用工具: MCP 客户端可以使用以下工具名称调用服务器提供的搜索功能,并通过 'params' 传递搜索参数。

    工具列表:

    • 'mcp_tacitbase_search_candidates': 使用 Typesense 搜索候选人。

      • 参数示例:
        {
          "tool_call_id": "search-candidates-1",
          "tool_name": "mcp_tacitbase_search_candidates",
          "params": {
            "arguments": {
              "query": "golang developer",
              "search_fields": ["skills", "latest_experience"],
              "filter_fields": ["location:San Francisco"],
              "sort_by": ["latest_experience:desc"],
              "page": 1,
              "per_page": 20
            }
          }
        }
    • 'mcp_tacitbase_search_attachments': 搜索候选人附件。

      • 参数示例:
        {
          "tool_call_id": "search-attachments-1",
          "tool_name": "mcp_tacitbase_search_attachments",
          "params": {
            "arguments": {
              "query": "resume",
              "search_fields": ["name", "content"],
              "record_id": "123"
            }
          }
        }
    • 'mcp_tacitbase_staging_search_candidates': 直接在 Tacitbase staging 环境搜索候选人(绕过 Typesense)。

      • 参数示例:
      {
        "tool_call_id": "staging-search-candidates-1",
        "tool_name": "mcp_tacitbase_staging_search_candidates",
        "params": {
          "arguments": {
            "query": "software engineer",
            "search_fields": ["skills"],
            "filter_fields": ["years_of_experience:>3"]
          }
        }
      }

    注意: 以上 'params.arguments' 中的参数对应于 'tools/tools.go' 中定义的工具参数,具体参数说明请参考工具定义中的描述信息。MCP 客户端需要根据实际需求构造符合工具参数定义的 JSON 请求,并发送给 Tacitbase MCP Server。服务器将处理请求,并返回搜索结果给客户端。

信息

分类

商业系统