Token导航 LogoToken导航TokenDH.com
Linked Docs MCP logo
搜索检索stdio官方级别未说明来源级核验

Linked Docs MCP

MCP Server

一个生产就绪的RAG系统,提供REST API和MCP协议双接口,支持混合语义和关键词搜索,适用于Web应用和AI助手的文档智能检索。

工具数

2

提示词数

0

GitHub Stars

0

资源数

0
混合搜索PythonClaude文档检索Claude DesktopClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

folence

提供方

folence

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

链接文档系统

一个生产就绪的RAG系统,配备双接口:REST API + MCP协议\ 使Web应用程序和AI助手能够利用混合语义+关键词搜索技术,智能地搜索和引用文档。

🎯 这是什么?

这是一个 完整的RAG(检索增强生成)系统 这提供了两种访问强大文档搜索功能的方式:

  1. REST API服务器 (main.py) - 基于FastAPI的HTTP服务器,用于Web应用程序和集成
  2. MCP 服务器mcp_server.py) - 人工智能助手(Cursor、Claude Desktop)的模型上下文协议服务器

两台服务器共享同一个混合搜索引擎,无论您是在构建网络应用还是增强人工智能助手的功能,都能实现精准的文档检索。

主要特点

  • 智能混合搜索结合语义理解(FAISS嵌入)与关键词匹配(BM25)
  • 智能排名标题/元数据增强,多段文档扩展,相关性评分
  • 多格式支持PDF、Markdown 和网页文档(通过内置抓取器)
  • MCP Native(MCP本地/原生)在Cursor、Claude Desktop以及其他MCP兼容工具中无缝工作
  • 企业级就绪访问控制、审计日志、本地优先架构
  • 200毫秒以下的搜索延迟,优化的分块和索引
  • 零成本完全本地运行,无需API密钥或云依赖

🏗️ 工作原理

┌─────────────────────────────────────────────────────────┐
│              AI Assistant (Cursor/Claude)               │
└────────────────────┬────────────────────────────────────┘
                     │ MCP Protocol (JSON-RPC over stdio)
                     ▼
┌─────────────────────────────────────────────────────────┐
│                   mcp_server.py                         │
│  ┌─────────────────────────────────────────────────┐   │
│  │  Tools: search_documentation(), list_sources()  │   │
│  └─────────────────────────────────────────────────┘   │
└────────────────────┬────────────────────────────────────┘
                     │
    ┌────────────────┼────────────────┐
    ▼                ▼                ▼
┌─────────┐   ┌──────────┐   ┌──────────────┐
│ Hybrid  │   │ Access   │   │ Audit Logger │
│ Search  │   │ Control  │   │              │
└────┬────┘   └──────────┘   └──────────────┘
     │
     ├─ Semantic Search (FAISS + embeddings)
     │   • Title/metadata boosting
     │   • Multi-chunk document expansion
     │
     └─ Keyword Search (BM25)
         • Exact term matching
         • Traditional ranking

项目结构

LinkedDocsMCP/
├── mcp_server.py          # Main MCP server (stdio interface)
├── main.py                # FastAPI server (for testing/debugging)
├── download_docs.py       # Web documentation scraper CLI
├── connectors/            # Document format handlers
│   ├── pdf.py            # PDF extraction
│   └── markdown.py       # Markdown parsing
├── indexing/             # Search engine core
│   ├── chunker.py        # Semantic text chunking
│   ├── embedder.py       # Sentence transformers
│   ├── vector_store.py   # FAISS vector database
│   ├── keyword_search.py # BM25 implementation
│   └── hybrid_search.py  # Combined search with boosting
├── schemas/              # Data models
│   ├── config.py         # Settings & configuration
│   └── document.py       # Document schemas
├── core/                 # Cross-cutting concerns
│   ├── access_control.py # Permission system
│   └── audit.py          # Query logging
└── data/                 # Local storage
    ├── sources/          # Your documents (PDF, MD)
    └── vector_store/     # Indexed vectors & metadata

🚀 快速入门(5分钟)

先决条件

  • Python 3.10及以上版本
  • Cursor 或 Claude Desktop(用于MCP集成)

1. 安装依赖项

pip install -r requirements.txt

首次运行下载约80MB的嵌入模型(一次性)

2. 添加文档

选项A:从网页下载

# Download Factorio wiki (example)
python download_docs.py https://wiki.factorio.com/Tutorials --crawl --max 20

选项B:添加您自己的文件

# Copy PDFs or Markdown files
copy your-docs.pdf data/sources/
copy your-guide.md data/sources/

3. 在Cursor(或其他LLM服务)中设置MCP

添加到你的 Cursor MCP 配置中(~/.cursor/mcp.json 或者 C:\Users\\.cursor\mcp.json):

{
  "mcpServers": {
    "linked-docs": {
      "command": "python",
      "args": ["C:/full/path/to/LinkedDocsMCP/mcp_server.py"]
    }
  }
}

4. 重启光标并使用!

在Cursor的聊天中:

What are the different enemy types in Factorio?

该人工智能将自动搜索您的文档,并提供准确且有引用来源的答案! ✨

关键特性解析

混合搜索

结合了两种互补的方法:

语义搜索(权重70%)

  • 用途 sentence-transformers (全MiniLM-L6-v2模型)
  • 理解含义:“认证设置”与“配置认证”意思相同
  • 将文本转换为384维向量
  • 使用FAISS进行快速相似度搜索

关键词搜索(权重30%)

  • 使用BM25算法(与Elasticsearch相同)
  • 精确术语匹配:非常适合技术术语、代码等。
  • 传统的排名方法,采用文档长度归一化

智能排名增强功能:

  • 标题优化标题与查询匹配的文档获得3倍加权
  • 多块扩展从高度相关的文档中返回最多3个连续的片段
  • 文档分组按来源文档分组的结果,以便更好地理解上下文

语义分块

与简单的字符拆分不同,这种方法使用了智能边界:

  1. Markdown 标题 (#####- 保持各部分在一起
  2. 段落分隔\n\n) - 保持主题连贯性
  3. 句子 - 用于非结构化文本的备用方案

设置:

  • 块大小:2048个字符(完整段落,非片段)
  • 重叠:200个字符(防止边界处上下文丢失)

网页文档抓取器

内置工具,用于下载和转换网页文档:

# Download single page
python download_docs.py https://wiki.example.com/Guide

# Crawl multiple pages (with smart duplicate detection)
python download_docs.py https://wiki.example.com/Main --crawl --max 50

# Force re-download (skip existing detection)
python download_docs.py https://wiki.example.com/Main --crawl --force

# Filter by language
python download_docs.py https://wiki.example.com/Main --crawl --languages en,de

特点:

  • 自动检测并跳过已存在的页面(节省时间与带宽)
  • 尊重同源策略和链接模式
  • 礼貌爬取,支持配置延迟
  • 将HTML转换为带有元数据的简洁Markdown
  • 保留文档结构(标题、列表、表格)

🔒 安全与访问控制

内置功能:

  • 四层访问权限等级:公开 → 内部 → 限制 → 机密
  • 基于用户权限的查询时过滤
  • 全面审计日志记录(追踪每个查询)
  • 仅本地处理(数据不会离开您的机器)

审计日志 (data/audit.log):

{
  "timestamp": "2025-10-21T14:30:00Z",
  "event_type": "search",
  "user_id": "mcp_client",
  "query": "enemy types",
  "results_count": 5,
  "search_time_ms": 143
}

⚙️ 配置

编辑 schemas/config.py 或者设置环境变量:

# Search weights
SEMANTIC_WEIGHT = 0.7  # Meaning-based search
KEYWORD_WEIGHT = 0.3   # Exact term matching

# Chunking
CHUNK_SIZE = 1280      # Larger chunks for complete sections
CHUNK_OVERLAP = 128    # Overlap for context continuity

# Model
EMBEDDING_MODEL = "all-MiniLM-L6-v2"  # Fast, accurate, small

🔧 高级用法

REST API(用于测试/调试)

# Start FastAPI server
python main.py

# Search via REST
curl -X POST http://localhost:8000/api/v1/search_docs \
  -H "Content-Type: application/json" \
  -d '{"query": "getting started", "top_k": 5}'

# Interactive API docs
open http://localhost:8000/docs

程序化使用

from indexing.embedder import Embedder
from indexing.vector_store import VectorStore
from indexing.hybrid_search import HybridSearchEngine

# Initialize
embedder = Embedder(model_name="all-MiniLM-L6-v2")
vector_store = VectorStore(embedding_dim=384)
search_engine = HybridSearchEngine(vector_store, keyword_searcher, embedder)

# Search
results = search_engine.search("how to configure auth", top_k=5)
for chunk, score in results:
    print(f"{score:.3f}: {chunk.text[:100]}...")

技术亮点

  1. 混合搜索 优于仅使用纯语义或单独关键词的方法
  2. 智能分块 保持文档结构
  3. 标题提升 显著提升排名质量
  4. 多块扩展 提供完整上下文
  5. 无云依赖 - 以隐私为先的架构
  6. MCP 原生(或 MCP 原装) - 与任何兼容的AI助手协同工作

🙏 致谢

构建于:

  • FastAPI - 现代Python网络框架
  • 句子变换器(或句子表示模型) - 语义嵌入
  • FAISS(快速应用索引库) - 向量相似度搜索
  • BM25 (rank-bm25) - 关键词排名
  • MCP(Minimum Change Perception) - 由Anthropic提出的模型上下文协议

______________________________________________________________________

状态✅ 已准备好演示 | 版本1.0.0 | 已更新2025年10月

目录标签

目录标签

混合搜索PythonClaude文档检索RAG系统本地部署AI助手集成

支持客户端

Claude DesktopClaudeCursor

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

2

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP