IWSDK RAG MCP服务器
基于TypeScript的模型上下文协议(MCP)服务器,使用RAG(检索增强生成)和向量嵌入在沉浸式Web SDK中提供语义代码搜索。
概述
此MCP服务器为AI助手提供了8个专门的工具来搜索和理解IWSDK代码:
search_code-跨所有代码的语义搜索find_by_relationship-按关系(扩展、实现、导入、调用)查找代码get_api_reference-按名称查找特定APIget_file_content-检索完整的文件内容list_ecs_components-列出所有ECS组件(27个组件)list_ecs_systems-列出所有ECS系统(17个系统)find_dependents-查找依赖于API的代码find_usage_examples-查找实际使用示例
什么是索引
- 173个IWSDK块 (27个ECS组件,17个系统)
- 3164个依赖块 (三种js、WebXR类型)
- 总共3337个可搜索块 768维嵌入
- 嵌入模型:句子转换器/全mpnet-base-v2
安装
方法1:从npm/pnpm安装(推荐)
# Using pnpm (recommended, matches IWSDK)
pnpm add -g @felixtz/iwsdk-rag-mcp
# Or using npm
npm install -g @felixtz/iwsdk-rag-mcp然后使用CLI添加到Claude Code中(推荐):
# For user-level (available across all projects)
claude mcp add --transport stdio iwsdk-rag --scope user -- iwsdk-rag-mcp
# For project-level only
claude mcp add --transport stdio iwsdk-rag --scope local -- iwsdk-rag-mcp重新启动Claude Code,工具就可用了!
方法2:与npx一起使用(无需安装)
# For user-level (available across all projects)
claude mcp add --transport stdio iwsdk-rag --scope user -- npx -y @felixtz/iwsdk-rag-mcp方法3:从源代码运行
# Clone and build
git clone https://github.com/felixtrz/iwsdk-rag-mcp.git
cd iwsdk-rag-mcp
pnpm install
pnpm run build
# Add to Claude Code
claude mcp add --transport stdio iwsdk-rag --scope user -- node /absolute/path/to/iwsdk-rag-mcp/dist/index.js适用于克劳德桌面
配置文件: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"iwsdk-rag": {
"command": "iwsdk-rag-mcp"
}
}
}或者使用npx:
{
"mcpServers": {
"iwsdk-rag": {
"command": "npx",
"args": ["-y", "@felixtz/iwsdk-rag-mcp"]
}
}
}验证安装
# List configured MCP servers
claude mcp list
# Should show:
# iwsdk-rag: iwsdk-rag-mcp - ✓ Connected使用示例
安装后,尝试询问Claude:
- “列出IWSDK中的所有ECS组件”
- “演示如何使用音频源”
- “在代码库中查找手部跟踪的示例”
- “哪些类扩展了Component?”
- “显示TransformSystem实现”
特性
语义搜索
- 768维嵌入 使用全mpnet-base-v2
- 脱机检索 -不需要外部API调用
- 快速结果 -所有数据加载到内存中
智能模式检测
- ECS组件:通过自动检测
createComponent()图案(找到27个) - ECS系统:通过检测
extends createSystem()图案(找到17个) - WebXR API使用:跟踪XRSession、XRFrame、XRInputSource的使用情况(63个块)
- 关系跟踪:扩展、实现、导入、调用
全覆盖
- IWSDK核心包(核心、xr输入、运动、glxf)
- 三个.js类型定义
- WebXR API类型
- 完整文件内容检索
存储库结构
iwsdk-rag/
├── src/ # TypeScript source code
│ ├── index.ts # MCP server entry point
│ ├── search.ts # Vector search service
│ ├── embeddings.ts # Query embedding & similarity
│ ├── files.ts # File content retrieval
│ └── tools/ # 8 MCP tool implementations
├── dist/ # Compiled JavaScript
├── data/ # Vector database
│ ├── chunks.json # Pre-computed embeddings (83MB)
│ ├── metadata.json # Database metadata
│ └── sources/ # Source files for get_file_content
├── src/
│ └── scripts/
│ └── ingest.ts # TypeScript ingestion pipeline
├── package.json # Package configuration
├── pnpm-lock.yaml # pnpm lockfile
├── tsconfig.json # TypeScript configuration
└── README.md # This file发展
从源头构建
git clone https://github.com/felixtrz/iwsdk-rag-mcp.git
cd iwsdk-rag-mcp
pnpm install
pnpm run build重新生成索引
如果您需要重新摄取IWSDK代码库(例如,在SDK更新后):
npm run ingest这将运行TypeScript摄取管道以重新生成向量数据库。
运作原理
建筑
- 摄入(TypeScript):使用ts-morph解析TypeScript代码,语义块,生成嵌入
- 存储:存储在JSON中的预计算嵌入(~83MB)
- MCP服务器(TypeScript):启动时加载嵌入,使用transformers.js执行语义搜索
- AI助手:使用MCP工具搜索和理解代码库
矢量搜索流
- 用户查询→ 使用全mpnet-base-v2嵌入
- 针对所有代码块嵌入计算余弦相似度
- 按相似性得分排名的结果
- 可选按来源、类型、关系进行筛选
故障排除
工具未显示
- 检查配置文件位置和语法
- 验证软件包是否已安装:
pnpm list -g @felixtz/iwsdk-rag-mcp或npm list -g @felixtz/iwsdk-rag-mcp - 完全重新启动Claude桌面/代码
首次加载缓慢
- 首次运行时下载嵌入模型(~420MB)
- 后续运行速度更快(模型已缓存)
内存使用率高
- 正常-服务器将83MB的嵌入加载到内存中以进行快速搜索
- 最低推荐RAM:2GB可用
许可证
麻省理工学院许可证-版权所有(c)2025 Felix Zhang
链接
- npm包: https://www.npmjs.com/package/@菲利克斯茨/iwsdk-rag-mcp
- GitHub: https://github.com/felixtrz/iwsdk-rag-mcp
- 问题: https://github.com/felixtrz/iwsdk-rag-mcp/issues
- 作者:张(https://github.com/felixtrz)
- 赞助商: https://github.com/sponsors/felixtrz
鸣谢
- 沉浸式Web SDK: https://github.com/facebook/immersive-web-sdk
- 模型上下文协议: https://modelcontextprotocol.io
- 嵌入:句子转换器/全mpnet-base-v2
