通过MCP用JavaScript/Node.js扩展GitHub Copilot
这个项目演示了如何扩展 GitHub Copilot 能力使用 JavaScript/Node.js 和那个 Model Context Protocol (MCP),允许与LLM进行更具确定性和更强大的交互。
项目概述
作为一个 GitHub Copilot 教练,我观察到它令人印象深刻的进化。然而,我一直想访问GitHub Copilot的内部,以构建更复杂的转换链。本项目展示了如何通过利用MCP(模型上下文协议)和自定义MCP工具来实现这一目标。
问题
指令文件并不总是确定性的——当新的LLM版本发布时,需要对其进行微调以减少幻觉。LLM经常难以进行精确的文本操作,有时会创造性地重新解释任务并添加不需要的工件。我们需要的是一种将确定性逻辑注入指令的方法。
解决方案
该项目通过以下方式演示了一种解决方案:
JavaScript/Node.js安装在本地计算机上的脚本。- 自定义
MCP服务器配置通过.vscode/mcp.json - 中定义的自定义工具
tools/目录
通过这种设置, GitHub Copilot 可以访问新的、记录良好的工具,并将其视为项目的一部分。当你要求Copilot“创建一个执行X的工具”时,它可以生成一个非常接近你需要的解决方案。您只需接受其更改并重新启动MCP,即可为您的特定逻辑获得新的确定性工具。
数据安全
⚠️ 重要:请查看 安全免责声明 在生产环境中使用此工具之前。
本文档概述了潜在的数据泄漏情况,并提供了使用此工具时降低风险的指导。
入门指南
🚧 状态:婴儿第一步-基本MCP服务器✅
当前安装(手动)
# 1. Clone or download the project
# 2. Navigate to .mcp-javascript folder
cd .mcp-javascript
# 3. Install dependencies
npm install
# 4. Copy environment template (optional for now)
copy build\config\.env .env
# 5. Test the server
npm start
# Press Ctrl+C to stop
# 6. Check logs
Get-Content logs\mcp_server.log -Tail 20MCP配置
对于VS代码:
- 将配置复制到工作区根目录:
copy build\config\.vscode\mcp.json ..\..\.vscode\mcp.json- 重新启动VS代码
- MCP服务器应出现在MCP服务器列表中
对于光标:
- 复制
build/config/.cursor/mcp.json内容到光标设置 - 转到光标设置→ 特性→ 启用MCP
- 粘贴配置
- 重新启动游标
注: 这些配置已经包括GitHub Copilot MCP服务器集成。
现在什么有效
✅ 基本MCP服务器 -响应MCP协议\ ✅ 记录系统 -记录到的所有事件 logs/mcp_server.log\ ✅ 配置模板 -已准备好VS代码和游标\ ⏳ 工具 -接下来的步骤\ ⏳ 管道引擎 -即将推出\ ⏳ CLI运行程序 -即将推出
测试
测试1:直接运行服务器
npm start您应该在控制台中看不到任何内容(stdio用于MCP协议)。 按Ctrl+C停止服务器。
然后检查日志文件:
Get-Content logs\mcp_server.log -Tail 20您应该看到:
2025-11-14 XX:XX:XX - INFO - Logging initialized for mcp_server
2025-11-14 XX:XX:XX - INFO - Starting MCP JavaScript Server
2025-11-14 XX:XX:XX - INFO - Node.js executable: C:\Java\nodejs\node.exe
2025-11-14 XX:XX:XX - INFO - Node.js version: v20.15.0
2025-11-14 XX:XX:XX - INFO - Current directory: C:\Java\CopipotTraining\mcpyrex\.mcp-javascript
2025-11-14 XX:XX:XX - INFO - All modules imported successfully
2025-11-14 XX:XX:XX - INFO - Starting MCP server with stdio transport
2025-11-14 XX:XX:XX - INFO - Registering MCP handlers...
2025-11-14 XX:XX:XX - INFO - MCP server configured successfully
2025-11-14 XX:XX:XX - INFO - Phase 1: Basic Infrastructure - COMPLETE ✅
2025-11-14 XX:XX:XX - INFO - Phase 2: MCP Server Core - COMPLETE ✅
2025-11-14 XX:XX:XX - INFO - Starting MCP server...
2025-11-14 XX:XX:XX - INFO - MCP server started successfully and listening on stdio
2025-11-14 XX:XX:XX - INFO - Server is ready to accept requests✅ 如果你看到这些日志- 测试1通过!
测试2:CLI运行程序(run.js)
这 run.js 该脚本提供了一个独立的工具运行器,用于测试没有MCP开销的工具(如Python的 run.py 以及。NET Run.cs).
# Show usage help
node run.js
# List available tools
node run.js list
# Run a specific tool
node run.js run lng_count_words '{"input_text":"Hello world"}'
# Get tool schema
node run.js schema lng_count_words
# Run tools in batch
node run.js batch lng_count_words '{"input_text":"test"}' lng_math_calculator '{"expression":"2+2"}'
# Start in daemon mode (keeps process alive)
node run.js run --daemon lng_webhook_server '{"operation":"start", "name":"test"}'
# Batch daemon mode
node run.js batch --daemon lng_webhook_server '{"operation":"start"}' lng_webhook_server '{"operation":"list"}'
# Install dependencies for specific tools
node run.js install_dependencies lng_email_client
# Analyze npm packages
node run.js analyze_libs express react axios状态:
- ✅ CLI运行器已完全实现
- ✅ 结构与Python/C#版本完全匹配
- ⏳ 工具注册表和工具实施正在进行中
✅ 如果你看到正确的用法输出- 测试2通过!
测试2:在VS代码/光标中配置MCP
请参阅上文“MCP配置”部分。
测试3:验证MCP协议
在VS Code/Coursor中配置后,服务器应:
- 打开IDE时自动启动
- 显示在MCP服务器列表中
- 回应
list_toolsrequest(暂时返回空列表) - 呼叫时不会崩溃
IDE启动后检查日志:
Get-Content logs\mcp_server.log -Tail 30寻找:
INFO - Received list_tools request✅ 如果你看到这个- 测试3通过! 服务器正在使用MCP协议!
MCP配置详细信息
在VS代码中启用/禁用MCP
要控制MCP(模型上下文协议)是启用还是禁用,请修改 ${workspaceFolder}/.vscode/settings.json:
要启用MCP:
{
"chat.mcp.enabled": true,
"github.copilot.chat.codeGeneration.useInstructionFiles": false
}要禁用MCP:
{
"chat.mcp.enabled": false,
"github.copilot.chat.codeGeneration.useInstructionFiles": true
}mcp.json
{
"servers": {
"mcpyrex-javascript":{
"type": "stdio",
"command": "node",
"args": ["${workspaceFolder}\\.mcp-javascript\\server.js"]
},
"github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp/"
}
}
}API密钥
API密钥和其他凭据应存储在 .env 文件(模板在 build/config/.env).
自定义工具(即将推出)
🚧 工具将在接下来的婴儿阶段实施:
lng_batch_run-高级流水线执行lng_count_words-字数统计演示lng_get_tools_info-工具信息检索- 更多内容
tools/目录
在终端中运行工具(即将推出)
🚧 CLI运行程序(run.js)将在下一个婴儿阶段实施:
node run.js list
node run.js schema lng_count_words
node run.js run lng_count_words '{"input_text":"Hello world"}'接下来是什么
婴儿第一步成功后:
- \[\]实施
run.js用于CLI测试 - \[\]添加第一个简单工具(
lng_count_words) - \[\]添加工具注册表
- \[\]实施状态管理器
- \[\]添加管道引擎
- \[\]移植Python/C#版本的所有工具
故障排除
服务器无法启动?
- 检查Node.js版本:
node --version(需要18+) - 检查日志:
Get-Content logs\mcp_server.log - 尝试:
npm install再次
没有日志目录?
- 它将在第一次运行时自动创建
VS代码/光标看不到服务器?
- 检查路径
mcp.json用途${workspaceFolder} - 更改配置后重新启动VS代码/光标
- 检查VS代码开发人员工具控制台是否存在MCP错误
原始来源
此项目是基于以下内容的JavaScript/Node.js端口:
- Python版本:
- .NET版本:
博客文章:
