mcpField
S
Similarity Search Api Sdk

Similarity Search Api Sdk

远程服务
github.com/nexus-mcp-infra搜索与检索08 周前更新
代码仓库

关于 Similarity Search Api Sdk

这是一个对预计算向量进行排序和评分的 API 与 MCP 服务,融合余弦相似度和归一化互信息。面向自行提供向量而非原始文本的 AI Agent 和 API 调用方。

主要功能

  1. 01融合余弦与 NMI 评分
  2. 02按熵校准融合权重
  3. 03向量搜索与排序
  4. 04批量计算向量对分数
  5. 05检测离群向量

适用场景

  1. 01按查询向量为语料排序
  2. 02检查基于熵的 alpha 校准
  3. 03使用固定 alpha 批量评分向量对
  4. 04查找离群向量

MCP 相关

通过 Streamable HTTP MCP 端点提供五种工具,用于向量排序、评分、熵分析、离群向量检测和 alpha 校准。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://similarity-search-api-production.up.railway.app/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

3
参数类型必填说明
top_knumber否要返回的排名靠前结果数,按融合分数降序排列。无论语料库大小如何,核心服务最多返回 1000 个结果。
n_binsnumber否估算 NMI 时,用于离散化连续维度的直方图分箱数。必须介于 3 和 50 之间。
query_vectorarray是表示查询条目的稠密数值向量。维度必须与所有 corpus_vectors 条目相同。
alpha_overridenumber否余弦分量的固定 alpha 权重,范围为 [0.0, 1.0]。省略时,alpha 会根据语料库熵自动校准。设为 1.0 使用纯余弦;设为 0.0 使用纯 NMI。
corpus_vectorsarray是用于排序的稠密数值向量列表。每个内部数组的维度必须与 query_vector 相同。最多 500000 个条目。

详细介绍

相似度搜索 API

基于预计算向量的无状态相似度搜索——融合 NMI(归一化互信息)和余弦相似度,并针对每个请求计算经过熵校准的混合权重。无需向量数据库,无需维护索引,也无需运行基础设施。

既可作为普通 HTTP API 使用,也可作为 MCP 服务(5 个工具)供 AI Agent 使用。


重要:此 API 处理的是向量,而非原始文本

此 API 不会为你生成文本嵌入。query 和 corpus 条目必须是预计算的数值向量(例如,由你自己的嵌入模型生成)。如果需要先将文本转换为向量,请在上游完成该步骤,然后将生成的向量传入此处。


基础 URL

https://similarity-search-api-production.up.railway.app

身份验证

这 3 个业务端点(/similarity/search、/similarity/calibrate-alpha/v1、 /similarity/batch-score)无需 API 密钥——只需有效的 x402 付款 (参见下方“定价”)。这些路由已于 2026-08-25 移除 X-API-Key 验证;Stripe 按量计费也明确排除了它们,因此目前在这 3 个路由上提供密钥没有任何作用。已弃用且不计价的 /similarity/calibrate-alpha(没有 /v1 后缀)仍需要 X-API-Key,并且始终返回 501。

/health 无需身份验证。

定价

有两种付款方式,适用于相同的端点:

  • x402(按调用付费,使用 Base 上的 USDC)——目前运行于 Base Sepolia 测试网,每次调用 $0.01。除了 x402 付款流程本身外,无需账户或 API 密钥。未付款的请求会收到 402 Payment Required,付款详情位于 payment-required 响应标头中。
  • Stripe(按量计费)——适用于已配置 API 密钥且账户关联了 Stripe 客户的调用方。

端点

POST /similarity/search

使用组合分数,根据查询向量对语料库进行排序。

{
  "query": { "id": "q1", "vector": [0.12, -0.4, 0.91, "..."] },
  "corpus": [
    { "id": "doc1", "vector": [0.10, -0.35, 0.88, "..."] },
    { "id": "doc2", "vector": [0.55, 0.02, -0.14, "..."] }
  ],
  "top_k": 10,
  "nmi_bins": 10,
  "alpha_override": null
}

query 和 corpus 中的所有向量必须具有相同的维度(2-4096 维)。top_k 最大为 1000。alpha_override(可选)可固定余弦相似度/NMI 的混合权重,而不根据语料库熵进行校准。

响应:

{
  "results": [
    { "id": "doc1", "composite_score": 0.91, "cosine_similarity": 0.89, "nmi_score": 0.94, "rank": 1 }
  ],
  "calibrated_alpha": 0.73,
  "corpus_entropy": 3.85,
  "query_id": "q1",
  "corpus_size": 2,
  "latency_ms": 43,
  "request_fingerprint": "..."
}
POST /similarity/calibrate-alpha/v1

计算语料库经过熵校准的 alpha,无需执行完整搜索——可用于在提交搜索调用前检查或调试校准行为。

POST /similarity/batch-score

使用固定的 alpha 为最多 10,000 对 (vector_a, vector_b) 评分——无需语料库或熵计算开销。

{
  "pairs": [[[0.1, 0.2], [0.15, 0.19]]],
  "alpha": 0.5,
  "nmi_bins": 10
}
GET /health

存活探测。无需身份验证。不计费(Stripe 和 x402 均不计费)。

注意:POST /similarity/calibrate-alpha(不带 /v1)是为向后兼容而保留的已弃用别名——请使用 /similarity/calibrate-alpha/v1。


MCP 工具

将兼容 MCP 的客户端(Claude、Cursor 等)连接到以下可流式传输的 HTTP 端点: https://similarity-search-api-production.up.railway.app/mcp

提供 5 个工具:rank_items_by_nmi_cosine_fusion、estimate_corpus_entropy_profile、score_pair_nmi_cosine、find_outlier_vectors_by_nmi_deficit、calibrate_alpha_from_query_entropy。


评分方法

composite_score = alpha * cosine(query, doc) + (1 - alpha) * NMI_normalized(query, doc)

每个请求都会根据所提交语料库的香农熵校准 alpha(除非传入 alpha_override)——高熵(分散)的语料库更倾向于使用余弦相似度;低熵(密集、范围狭窄)的语料库更倾向于使用 NMI。NMI 能捕捉余弦相似度的几何夹角所无法体现的统计依赖关系。


限制

  • 语料库大小:每个请求最多 500,000 个条目
  • 向量维度:2-4,096
  • batch-score 配对数:每个请求最多 10,000 对

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。