返回市场
远程检索MCP服务器

远程检索MCP服务器

作者:ramalamadingdong8 星标更新:2025-11-17

项目介绍

FRC-RAG-MCP-Server

这是一个模型上下文协议(MCP)服务器,提供基于RAG的WPILib文档访问,用于FRC机器人编程。

⚠️ 重要提示:测试版及可用性

此服务目前处于测试版,并且本地托管。

当前唯一支持的WPILib版本是WPILib 2025.3.2 Release,一旦2026版本发布,我将立即添加。

  • 有限可用性:服务器可能会出现停机或中断
  • 性能:响应时间可能因网络状况而异
  • 扩展性:如果需求增加,已计划并准备好部署扩展基础设施
  • 无SLA:这是在测试期间提供的社区服务,按现状提供

请耐心等待我们改进可靠性和性能。如果您遇到连接问题,请报告以便我们解决。


此设置的好处

WPILib的一个不良实践是每年都会进行破坏性更改,虽然在过去这可以接受,但随着代理编码的流行,很明显需要采取措施来缓解这一问题。这就是该项目存在的原因,并提供了以下内容:

准确信息:基于官方WPILib文档的响应

特定版本:获取您特定WPILib版本的答案

最新更新:文档可以在不重新训练AI的情况下进行更新

上下文感知:Copilot理解您的项目FRC/WPILib上下文

什么是RAG?

**RAG(检索增强生成)**是一种通过从知识库中检索相关信息来增强AI响应的技术,在生成答案之前。与仅依赖于AI的训练数据不同,RAG:

  1. 检索:根据您的问题从向量数据库中检索相关文档片段
  2. 增强:用检索到的信息增强AI的上下文
  3. 生成:基于官方文档生成准确、最新的答案

这确保了无论您使用哪种GenAI模型,都能提供准确、特定版本的WPILib指导,而不是其训练数据中的过时信息。

什么是Copilot指令文件?

**.github/copilot-instructions.md**文件是一个特殊的配置文件,用于自定义GitHub Copilot在您的项目中的行为。它:

  • 引导Copilot的行为以适应您的特定项目上下文
  • 指示何时使用MCP工具(例如,“始终查询WPILib MCP服务器以回答机器人代码问题”)
  • 设定编码标准和团队约定
  • 定义项目特定偏好(框架版本、设计模式等)

为什么这对这个项目至关重要

为了让这个WPILib RAG MCP服务器有效工作,Copilot指令文件必须明确告诉Copilot查询MCP服务器以回答与WPILib相关的问题。如果没有这条指令,Copilot可能会依赖其训练数据,而不是MCP服务器中准确、最新的文档。

设置说明

1. MCP服务器

MCP服务器已经在http://97.139.150.106:3000运行。您不需要安装或运行任何东西——只需配置VS Code以连接到它。

2. 配置VS Code以连接到MCP服务器

您需要将MCP服务器配置添加到VS Code中。有两种方法可以做到这一点:

方案A:自动设置(推荐)

复制提供的.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

方案B:手动配置

  1. 打开VS Code的用户配置文件夹:

    • Windows%APPDATA%\Code\User\
    • macOS/Linux~/.config/Code/User/
  2. 在该文件夹中创建或编辑mcp.json文件

  3. 添加以下配置:

{
	"servers": {
		"WPILibRag": {
			"url": "http://97.139.150.106:3000/",
			"type": "http"
		}
	},
	"inputs": []
}

重要注意事项

  • 服务器名称必须精确为WPILibR_(区分大小写)
  • URL包括尾部斜杠
  • 这是一个基于HTTP的MCP服务器,不是基于stdio的
  • 服务器远程托管——无需本地安装

3. 创建Copilot指令文件

在项目根目录下创建一个.github文件夹(如果不存在),然后在其中创建copilot-instructions.md文件:

your-project/
├── .github/
│   └── copilot-instructions.md
├── src/
├── README.md
└── ... 其他文件

4. 配置Copilot指令文件

.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服务器提供以下工具:

  • 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服务器无法连接

  • 验证mcp.json文件是否位于正确的位置(Windows上的%APPDATA%\Code\User\
  • 检查服务器名称是否精确为WPILibRag(区分大小写)
  • 确保URL为http://97.139.150.106:3000/,并且带有尾部斜杠
  • 配置更改后重启VS Code
  • 检查输出面板(视图 → 输出 → GitHub Copilot聊天)
  • 验证您具有到达远程服务器的互联网连接

Copilot未使用MCP服务器

  • 确保.github/copilot-instructions.md存在于您的项目根目录
  • 检查指令是否明确提到使用MCP服务器
  • 尝试明确询问:“查询WPILib MCP服务器…”

文档过时

  • 检查MCP服务器加载的是哪个WPILib版本
  • 更新copilot-instructions.md中的版本以匹配
  • 验证RAG数据库是否加载了正确的版本

贡献

仍在规划将开源什么以及开源多少,因为此项目的运行成本。我肯定会开源一些内容,但我可能会要求供应商支付少量费用以将其库文档添加到此。我希望他们能够合作,而不是各自建立自己的版本。 </中文翻译>