图书馆目录搜索协议

PrimoMCP是一个封装Ex Libris Primo搜索API的模型上下文协议服务器,使LLM能够搜索图书馆目录。

  • by godmar
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 godmar/mcpprimo

使用说明

PrimoMCP

一个MCP(模型上下文协议)服务器,包装了Ex Libris Primo Search API,使LLM能够搜索库目录。

先决条件

  • Node.js 22+
  • npm
  • Docker(用于容器化部署)
  • Kubernetes集群(用于K8s部署)
  • Ex Libris Primo API 密钥

本地开发

npm install
npm run build
PRIMO_API_KEY=your-key PRIMO_VID=your-vid PRIMO_TAB=your-tab PRIMO_SCOPE=your-scope npm start

服务器在端口3000上启动(可通过以下方式配置 PORT).

健康检查

  • GET /healthz --活性探针
  • GET /readyz --准备就绪探测器

MCP端点

  • POST /mcp --无状态流式HTTP传输(每个MCP会话一个请求)

码头工人

docker build -t primomcp .
docker run -e PRIMO_API_KEY=your-key \
           -e PRIMO_VID=your-vid \
           -e PRIMO_TAB=your-tab \
           -e PRIMO_SCOPE=your-scope \
           -p 3000:3000 primomcp

Kubernetes部署

清单在 k8s/ 用以下方式管理 客户, 和 部署到 vtlib 命名空间(命名空间、映像和入口主机设置在 承诺的清单)。根据机构配置,所有机密均保密 版本控制:他们住在 .env 并被转化为gitignored kustomize 发电机输入(k8s/config.env, k8s/secret.env, k8s/dockerconfigjson).

  1. 复制 .env.sample 到 .env 并填写您的值:
cp .env.sample .env
# PRIMO_API_KEY, PRIMO_VID/TAB/SCOPE, CONTAINER_REGISTRY, REGISTRY_* (deploy token)
  1. 构建并推送Docker镜像:
./scripts/build.sh   # builds and pushes $CONTAINER_REGISTRY/primomcp:latest
  1. 从以下位置渲染gitignored kustomize输入 .env:
./scripts/gen-kustomize-inputs.sh
  1. 使用kustomize进行部署:
kubectl --kubeconfig endeavour.yaml apply -k k8s

步骤3-4也包含在 ./scripts/deploy.sh其呈现输入, 应用 k8s/ 反对 endeavour.yaml,并等待推出。重新运行 gen-kustomize-inputs.sh 每当 .env 变化;否则 kubectl apply -k k8s 是自给自足的。

MCP工具: primo_search

通过Primo Search API搜索库目录。

输入

参数 类型 必填 说明
query string 其中之一 query 或 advancedQuery 必填 简单关键字搜索
advancedQuery string 其中之一 query 或 advancedQuery 必需 原始Primo q 格式(例如。, title,contains,machine learning)
limit integer 否 最大结果,1-50(默认10)
offset integer 否 分页偏移量,0-5000(默认值0)
sort string 否 排序顺序: rank, title, author, date, date_d, date_a
qInclude string 否 包括面过滤器
qExclude string 否 排除方面筛选器
lang string 否 语言代码

示例

简单搜索:

{ "query": "machine learning" }

高级搜索:

{ "advancedQuery": "title,contains,machine learning,AND;sub,contains,neural networks", "limit": 5 }

配置

环境变量

变量 必填 默认 描述
PRIMO_API_KEY 是 - Ex Libris API密钥
PRIMO_BASE_URL 没有 https://api-na.hosted.exlibrisgroup.com API 基础 URL。
PRIMO_VID 是 -- 查看ID
PRIMO_TAB 是 -- 选项卡名称
PRIMO_SCOPE 是 -- 作用域名称
PRIMO_INST 否 -- 机构代码(仅限本地)
PORT 没有 3000 服务器侦听端口