超级链接MCP服务器
一种模型上下文协议(MCP)服务器,使用以下方式提供语义搜索和RAG功能 超级链接的矢量搜索框架。该服务器使AI助手能够从结构化数据文件中创建和查询矢量索引,并支持多个搜索维度(文本相似性、新近性、类别和数字)。
概述
该项目创建了一个MCP服务器,该服务器封装了Superlinked的InMemoryExecutor,允许任何兼容MCP的客户端(如Claude Desktop)对结构化数据执行复杂的语义搜索操作。服务器提供工具来预览数据文件、创建多维向量索引,并使用自然语言进行查询。
运作原理
服务器使用Superlink的矢量搜索功能来创建结合多个搜索维度的内存索引:
- 文本相似度:使用句子变换器嵌入的语义搜索
- 近期性:时间戳字段的基于时间的排名
- 数字:数值排名(价格、评级等)
- 类别:类别匹配和过滤
创建索引时,服务器:
- 分析数据文件结构
- 根据列映射创建适当的向量空间
- 将自定义权重应用于每个维度
- 将数据摄取到内存索引中
- 使其可用于语义查询
特性
- 多格式支持:CSV和JSON数据文件
- 灵活的架构:基于数据的动态模式创建
- 多维搜索:组合文本、时间、数字和类别
- 自定义称重:控制每个搜索维度的重要性
- 内存执行:无外部依赖的快速查询
- MCP兼容性:适用于任何MCP客户端
安装
先决条件
- Python 3.10+
- pip包管理器
设置
- 克隆此存储库:
git clone
cd rag_repo- 安装依赖项:
pip install -r requirements.txt- 设置所需的环境变量:
# Required for Streamlit demo
export ANTHROPIC_API_KEY=your_api_key_here
# Optional: Change Claude model (default: claude-haiku-4-5-20251001)
export CLAUDE_MODEL=claude-haiku-4-5-20251001MCP服务器工具
服务器提供三个主要工具:
1. preview_file
在索引之前预览数据文件的结构和内容。使用此工具了解您的数据结构,并决定创建哪些空间用于索引。
参数:
file_path(string):数据文件的路径(CSV或JSON)rows(整数,可选):要预览的样本行数(默认值:5)
退货:
- 总行数
- 列名和数据类型
- 样品记录
示例用例: “显示sample_data/business_news.json中的内容”
2. create_index
从结构化数据创建可搜索的向量索引。
参数:
file_path(string):要索引的数据文件的路径column_mapping(dict):将列名映射到空间类型
- text_similarity:用于文本字段(语义搜索) - recency:用于时间戳/日期字段(Unix时间戳) - number:用于数字字段 - category:用于分类字段
weights(dict):将列名映射到权重值(0.0到1.0)
- 权重越高=对排名的影响越大 - 例子: {"description": 0.8, "timestamp": 0.3}
退货:
- 索引名称(从文件名派生)
- 列配置
- 摄入统计
- 应用重量
示例用例: “从business_news.json中创建一个索引,在描述字段上进行文本搜索,在日期字段上进行近距搜索。对描述赋予更多权重。”
3. query_index
使用自然语言查询搜索索引。
参数:
index_name(string):索引的名称(不带扩展名的文件名)query_text(string):自然语言搜索查询limit(整数,可选):返回的最大结果(默认值:5)
退货:
- 结果数组包含:
- id:记录标识符 - score:相似性得分 - fields:所有索引字段及其值
示例用例: “在business_news索引中搜索有关罢工的文章”
与外部MCP客户端集成
克劳德桌面
要将此服务器与Claude Desktop一起使用,请执行以下操作:
- 找到您的Claude Desktop配置文件:
- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json - 窗户: %APPDATA%\Claude\claude_desktop_config.json
- 添加服务器配置:
{
"mcpServers": {
"superlinked-rag": {
"command": "python",
"args": ["/absolute/path/to/rag_repo/mcp_server.py"],
"type": "stdio"
}
}
}- 重新启动克劳德桌面
- 服务器工具现在可供Claude使用。你可以要求克劳德:
- 预览您的数据文件 - 创建向量索引 - 执行语义搜索
Streamlit演示应用程序
此存储库包含一个Streamlit聊天机器人演示,该演示使用Claude Agent SDK作为MCP客户端。这演示了如何与MCP服务器构建对话界面。
运行演示
- 运行Streamlit应用程序:
streamlit run streamlit_chatbot.py- 打开浏览器到提供的URL(通常
http://localhost:8501)
- 重要提示:未修复的小错误-在新环境安装后,MCP服务器可能无法在第一次启动应用程序时加载。只需在Streamlit应用程序加载后刷新浏览器一次,您只需执行一次即可解决问题。
演示功能
- 实时流媒体:查看AI推理步骤
- 对话记忆:带上下文的多回合对话
- 工具可视化:观看AI使用MCP工具
- 交互式用户界面:带有执行步骤显示的干净界面
对话流程示例
- “我有一个文件:sample_data/business_news.json。告诉我里面有什么。”
- “在描述字段上创建语义搜索索引,在日期字段上创建基于时间的排名。”
- “谁想罢工?”
- “这个消息已经过时了,把更多的注意力放在日期上。”
- “有关于天然气的消息吗?上面说什么?”
