语义搜索服务器

一个为AWS Cloudscape设计系统文档提供语义搜索的MCP服务器,支持AI代理和编码助手高效查询组件文档。

  • by praveenc
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 praveenc/cloudscape-docs-mcp

使用说明

Cloudscape文档MCP服务器

通过AWS提供语义搜索的模型上下文协议(MCP)服务器 Cloudscape设计 系统文档。专为AI代理和编码助手构建,可高效查询组件文档。

特性

  • 语义搜索 -使用由提供支持的自然语言查询查找相关文档 阿里巴巴GTE多语种基地 模型
  • 代币高效 -首先返回简洁的文件列表,按需返回完整内容
  • 硬件优化 -自动检测苹果硅(MPS)、CUDA或CPU
  • 本地矢量存储 -使用LanceDB进行快速的基于文件的矢量搜索

运输

此服务器使用MCP stdio传输 协议。
可流式HTTP传输 马上就来。

工具

工具 说明
cloudscape_search_docs 搜索文档索引。返回带有标题和路径的前5个相关文件。
cloudscape_read_doc 阅读特定文档文件的完整内容。

需求

  • Python 3.13+
  • 约3GB磁盘空间用于嵌入模型
  • 建议使用8GB+RAM

安装

# Clone the repository
git clone https://github.com/praveenc/cloudscape-docs-mcp.git
cd cloudscape-docs-mcp

# Create virtual environment and install dependencies
uv sync

# Or with pip
pip install -e .

设置

1.添加文档

将Cloudscape文档文件放在 docs/ 目录。支持的格式:

  • .md (Markdown)
  • .txt (纯文本)
  • .tsx / .ts (Types/React)

2.建立指数

运行摄取脚本以创建向量数据库:

uv run ingest.py

这将:

  • 扫描中的所有文件 docs/
  • 将内容分为约2000个字符段
  • 使用生成嵌入 阿里巴巴GTE多语种基地 嵌入模型
  • 将矢量存储在 data/lancedb/

注: 跑步 uv run ingest.py 多次是安全的,但执行 完全重新索引 每次。脚本使用 mode="overwrite" 它删除并重新创建数据库表。没有增量更新或更改检测——每次运行时都会重新扫描并重新嵌入所有文档。这是幂等的(相同的文档产生相同的结果),但对于大型文档集来说计算成本很高。

3.运行服务器

uv run server.py

MCP客户端配置

克劳德桌面版

添加到您的 mcp.json:

{
  "mcpServers": {
    "cloudscape-docs": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/cloudscape-docs-mcp", "python", "server.py"]
    }
  }
}

光标/VS代码/风帆/基洛

添加到MCP设置中:

{
  "cloudscape-docs": {
    "command": "uv",
    "args": ["run", "--directory", "/path/to/cloudscape-docs-mcp", "python", "server.py"]
  }
}

泽德

添加到Zed设置(settings.json):

{
  "context_servers": {
    "cloudscape-docs": {
      "command": {
        "path": "uv",
        "args": ["run", "--directory", "/path/to/cloudscape-docs-mcp", "python", "server.py"]
      }
    }
  }
}

用法示例

一旦连接,AI助手可以:

  1. 搜索组件:

    User: "How do I use the Table component with sorting?"
    Agent: [calls cloudscape_search_docs("table sorting")]
    
  2. 阅读具体文档:

    Agent: [calls cloudscape_read_doc("docs/components/table/sorting.md")]
    

项目结构

cloudscape-docs-mcp/
├── server.py          # MCP server with search/read tools
├── ingest.py          # Documentation indexing script
├── pyproject.toml     # Project dependencies
├── docs/              # Documentation files (partially curated)
│   ├── components/    # Component documentation
│   ├── foundations/   # Design foundations
│   └── genai_patterns/# GenAI UI patterns
└── data/              # Generated vector database (gitignored)
    └── lancedb/

配置

中的关键设置 server.py 和 ingest.py:

变量 默认值 描述
MODEL_NAME Alibaba-NLP/gte-multilingual-base 嵌入模型
VECTOR_DIM 768 矢量维度
MAX_UNIQUE_RESULTS 5 返回的最大搜索结果数
DOCS_DIR ./docs 文档源目录
DB_URI ./data/lancedb 矢量数据库位置

发展

# Install dev dependencies
uv sync --group dev

# Run with MCP inspector
npx @modelcontextprotocol/inspector uv --directory /path/to/cloudscape_docs run server.py
# Alternatively, use mcp cli to launch the server
mcp dev server.py

许可证

MIT许可证-请参阅 许可证 了解详情。

致谢