r-packagedev-mcp
独立 模型上下文协议(MCP) 该服务器通过自然语言向AI助手展示高级R包开发功能。
概述
r-packagedev-mcp 将四个最重要的R包开发包打包成一个统一的MCP工具界面:
| 包装 | 用途 | 提供的工具 |
|---|---|---|
| 使用这个 | 自动化包设置和配置 | create_package, use_r, use_test, use_readme_md, use_vignette, use_mit_license, use_gpl3_license, use_package, use_testthat, use_git, use_github, use_data, use_pipe |
| 开发者工具 | 完整的软件包开发周期 | load_all, document, test, check, install, build, build_readme, spell_check |
| 名字 | 可复制环境 | renv_init, renv_snapshot, renv_restore, renv_status, renv_install, renv_update, renv_clean |
| 测试 | 单元测试 | test_file, test_dir |
为什么选择独立服务器而不是附加组件?
现有的R MCP服务器(例如。 rmcp)专注于 统计分析 –运行任意R代码,拟合模型,生成图表。它们不是为 软件包开发 工作流程。
构建独立服务器允许:
- 专用工具接口 具有与包开发约定相匹配的清晰参数名称和默认值。
- 无依赖 在可能具有不同架构、身份验证模型或更新节奏的第三方R MCP服务器上。
- 可移植性 –服务器是一个单一的Node.js二进制文件,它代理对以下对象的调用
Rscript;它可以在安装R的任何地方工作。 - 安全 –工具的范围是特定的、定义良好的包开发操作,而不是不受限制的R代码执行。
需求
- Node.js ≥ 18
- R ≥4.1,安装了以下软件包:
install.packages(c("usethis", "devtools", "renv", "testthat"))安装
来源
git clone https://github.com/B0ydT/r-packagedev-mcp.git
cd r-packagedev-mcp
npm install
npm run build运行服务器
node dist/index.js服务器通过以下方式进行通信 标准 (标准输入/输出),这是Claude Desktop、VS Code Copilot、Cursor和大多数MCP客户端使用的默认传输。
配置
克劳德桌面(claude_desktop_config.json)
{
"mcpServers": {
"r-packagedev": {
"command": "node",
"args": ["/path/to/r-packagedev-mcp/dist/index.js"]
}
}
}VS代码/光标(.mcp.json 或设置)
{
"servers": {
"r-packagedev": {
"type": "stdio",
"command": "node",
"args": ["/path/to/r-packagedev-mcp/dist/index.js"]
}
}
}工具参考
使用这个
| 工具 | 说明 |
|---|---|
create_package | 在给定路径上构建一个新的R包 |
use_r | 创建 R/.R 在现有包中 |
use_test | 在下创建匹配的测试文件 tests/testthat/ |
use_readme_md | 添加 README.md 到包根目录 |
use_vignette | 在下面创建一个小插曲存根 vignettes/ |
use_mit_license | 添加MIT LICENSE 并更新 DESCRIPTION |
use_gpl3_license | 添加GPL-3 LICENSE 并更新 DESCRIPTION |
use_package | 向添加依赖项 DESCRIPTION |
use_testthat | 配置testthat测试基础架构 |
use_git | 初始化Git仓库并进行初始提交 |
use_github | 创建GitHub远程并推送 |
use_data | 将R对象导出为下的包数据 data/ |
use_pipe | 添加 %>% 管道操作员到包装 |
开发者工具
| 工具 | 说明 |
|---|---|
load_all | 模拟 library(pkg) 用于交互式测试 |
document | 运行roxygen2并更新 NAMESPACE |
test | 运行测试套件(可选过滤) |
check | 快跑 R CMD check |
install | 将包安装到本地库中 |
build | 构建一个源tarball |
build_readme | 渲染 README.Rmd → README.md |
spell_check | 拼写检查文档和插图 |
名字
| 工具 | 说明 |
|---|---|
renv_init | 初始化renv项目库 |
renv_snapshot | 将当前依赖关系记录到 renv.lock |
renv_restore | 从以下位置还原包 renv.lock |
renv_status | 检查库与锁文件同步状态 |
renv_install | 将软件包安装到renv库中 |
renv_update | 更新renv库中的包 |
renv_clean | 删除未使用的包/临时文件 |
测试
| 工具 | 说明 |
|---|---|
test_file | 运行单个测试文件 |
test_dir | 运行目录中的所有测试 |
发展
# Type-check without emitting
npm run lint
# Build
npm run build
# Run in dev mode (ts-node, no build step)
npm run dev建筑
src/
├── index.ts # Entry point – starts stdio MCP server
├── server.ts # Registers all tools with the MCP SDK
├── r-executor.ts # Spawns Rscript subprocesses & formats results
└── tools/
├── usethis.ts # usethis tool schemas + handlers
├── devtools.ts # devtools tool schemas + handlers
├── renv.ts # renv tool schemas + handlers
└── testthat.ts # testthat tool schemas + handlers每个工具模块导出:
- A. 模式图 (
z.ZodObject每个工具)定义输入验证。 - A. 处理程序图 将经过验证的输入转换为
Rscript -e调用并返回格式化的输出作为MCP文本内容。
许可证
CC 4.0
