这是一个模型上下文协议(MCP)服务器,提供基于RAG的WPILib文档访问,用于FRC机器人编程。
此服务目前处于测试版,并且本地托管。
当前唯一支持的WPILib版本是WPILib 2025.3.2 Release,一旦2026版本发布,我将立即添加。
请耐心等待我们改进可靠性和性能。如果您遇到连接问题,请报告以便我们解决。
WPILib的一个不良实践是每年都会进行破坏性更改,虽然在过去这可以接受,但随着代理编码的流行,很明显需要采取措施来缓解这一问题。这就是该项目存在的原因,并提供了以下内容:
✅ 准确信息:基于官方WPILib文档的响应
✅ 特定版本:获取您特定WPILib版本的答案
✅ 最新更新:文档可以在不重新训练AI的情况下进行更新
✅ 上下文感知:Copilot理解您的项目FRC/WPILib上下文
**RAG(检索增强生成)**是一种通过从知识库中检索相关信息来增强AI响应的技术,在生成答案之前。与仅依赖于AI的训练数据不同,RAG:
这确保了无论您使用哪种GenAI模型,都能提供准确、特定版本的WPILib指导,而不是其训练数据中的过时信息。
**.github/copilot-instructions.md**文件是一个特殊的配置文件,用于自定义GitHub Copilot在您的项目中的行为。它:
为了让这个WPILib RAG MCP服务器有效工作,Copilot指令文件必须明确告诉Copilot查询MCP服务器以回答与WPILib相关的问题。如果没有这条指令,Copilot可能会依赖其训练数据,而不是MCP服务器中准确、最新的文档。
MCP服务器已经在http://97.139.150.106:3000运行。您不需要安装或运行任何东西——只需配置VS Code以连接到它。
您需要将MCP服务器配置添加到VS Code中。有两种方法可以做到这一点:
复制提供的.vscode/mcp.json文件到VS Code用户配置中:
Windows:
copy .vscode\mcp.json %APPDATA%\Code\User\mcp.json
macOS/Linux:
cp .vscode/mcp.json ~/.config/Code/User/mcp.json
打开VS Code的用户配置文件夹:
%APPDATA%\Code\User\~/.config/Code/User/在该文件夹中创建或编辑mcp.json文件
添加以下配置:
{
"servers": {
"WPILibRag": {
"url": "http://97.139.150.106:3000/",
"type": "http"
}
},
"inputs": []
}
重要注意事项:
WPILibR_(区分大小写)在项目根目录下创建一个.github文件夹(如果不存在),然后在其中创建copilot-instructions.md文件:
your-project/
├── .github/
│ └── copilot-instructions.md
├── src/
├── README.md
└── ... 其他文件
向.github/copilot-instructions.md添加以下内容:
# GitHub Copilot指令
⚠️ **关键 - 先阅读此内容** ⚠️
═══════════════════════════════════════════════════════════════════════════════
🛑 **强制要求 - 没有例外** 🛑
在回答关于以下任何问题之前:
- WPILib API、类、方法或语法
- 机器人代码(命令、子系统、自主)
- FRC编程模式或最佳实践
- 基于命令的编程
- 任何WPILib框架功能
您必须:
1. **停止** - 不要从记忆或训练数据中回答
2. **查询** - 首先使用`mcp_wpilibrag_query_wpilib_docs`工具
3. **验证** - 根据检索到的文档回答
4. **引用** - 引用官方WPILib文档
这不是可选的。这是所有与WPILib相关问题的强制步骤。
═══════════════════════════════════════════════════════════════════════════════
## 项目上下文
这是一个用于FRC(FIRST机器人竞赛)的WPILib机器人项目。
### 项目配置
- **WPILib版本**:[在此处指定版本 - 例如,2025.1.1]
- **编程语言**:[在此处指定语言 - Java/C++/Python]
- **目标平台**:FRC机器人(roboRIO)
## 使用WPILib RAG服务器
- **工具名称**:`mcp_wpilibrag_query_wpilib_docs`
- **何时使用**:对于任何与WPILib相关的问题(见上述强制要求)
- **参数**:
- `question`:用户的提问
- `version`:WPILib版本(默认:"2025")
- `language`:"Java"、"Python"、"C++" 或 "API Reference"
## 偏好
- 遵循WPILib的最佳实践和约定
- 使用适当的机器人代码设计模式(基于命令、子系统等)
- 必要时确保线程安全
- 包含适当的错误处理和日志记录
- 对所有框架特定代码引用官方WPILib文档
## 代码风格
- 编写清晰、易于维护的代码
- 对复杂逻辑添加注释,但避免过度注释
- 使用描述性的变量和方法名称
- 遵循FRC/WPILib命名约定
## 其他注意事项
- 记住考虑机器人代码的实时约束
- 始终考虑比赛要求和规则
┌─────────────────┐
│ 您的代码 │
│ 提问 │
└────────┬────────┘
│
v
┌─────────────────────────────────────┐
│ GitHub Copilot │
│ (读取copilot-instructions.md) │
└────────┬────────────────────────────┘
│
v
┌─────────────────────────────────────┐
│ MCP服务器 │
│ (WPILibRag) │
└────────┬────────────────────────────┘
│
v
┌─────────────────────────────────────┐
│ RAG系统 │
│ - 向量数据库 │
│ - WPILib文档片段 │
│ - 相似度搜索 │
└────────┬────────────────────────────┘
│
v
┌─────────────────────────────────────┐
│ 检索到的文档 │
│ (返回给Copilot) │
└─────────────────────────────────────┘
此MCP服务器提供以下工具:
mcp_wpilibrag_query_wpilib_docs - 根据版本和语言查询WPILib文档mcp_wpilibrag_get_latest_version - 获取可用的最新WPILib版本mcp_wpilibrag_list_available_versions - 列出所有可用的WPILib版本mcp_wpilibrag_list_available_languages - 列出某个版本可用的语言mcp_wpilibrag_embed_query - 生成自定义搜索的嵌入向量mcp.json文件是否位于正确的位置(Windows上的%APPDATA%\Code\User\)WPILibRag(区分大小写)http://97.139.150.106:3000/,并且带有尾部斜杠.github/copilot-instructions.md存在于您的项目根目录copilot-instructions.md中的版本以匹配仍在规划将开源什么以及开源多少,因为此项目的运行成本。我肯定会开源一些内容,但我可能会要求供应商支付少量费用以将其库文档添加到此。我希望他们能够合作,而不是各自建立自己的版本。 </中文翻译>