MCP RSpec
一种模型上下文协议(MCP)服务器,通过HTTP和服务器发送事件(SSE)提供可配置的RSpec测试执行。
特性
- 可配置的RSpec命令:自定义RSpec命令(默认值:
bundle exec rspec) - 文件特定测试:运行特定RSpec文件的测试(
*_spec.rb) - 行号定位:在特定行号执行测试,以实现精确的测试目标
- 安全验证:内置路径遍历预防和文件格式验证
- HTTP/SSE传输:使用服务器发送的事件进行实时通信
- 优雅关闭:带信号处理的清洁停机
安装
来源
git clone
cd mcp-rspec
cargo build --release使用Nix(薄片)
nix build用法
启动服务器
# Using defaults (127.0.0.1:30301, bundle exec rspec)
mcp-rspec
# Custom host and port
mcp-rspec -H 0.0.0.0 -p 8080
# Custom RSpec command
mcp-rspec -c "rspec"
# Using environment variables
MCP_RSPEC_HOSTNAME=0.0.0.0 MCP_RSPEC_PORT=8080 RSPEC_RUNNER_CMD="bundle exec rspec" mcp-rspec可用工具
run_rspec
对具有可选行号目标的特定文件运行RSpec测试。
参数:
file(字符串,必填):相对于项目根的RSpec测试文件路径(必须以结尾_spec.rb)line_numbers(数组,可选):针对特定测试的行号
示例:
// Run all tests in a file
{
"file": "spec/models/user_spec.rb"
}
// Run tests at specific lines
{
"file": "spec/models/user_spec.rb",
"line_numbers": [37, 87]
}服务器端点
启动后,服务器提供:
- SSE端点:
http://host:port/sse-用于实时事件流 - 消息端点:
http://host:port/message-用于发送MCP消息
配置
命令行选项
| 选项 | 简短 | 环境变量 | 默认 | 描述 |
|---|---|---|---|---|
--hostname | -H | MCP_RSPEC_HOSTNAME | 127.0.0.1 | 服务器绑定地址 |
--port | -p | MCP_RSPEC_PORT | 30301 | 服务器端口 |
--rspec-cmd | -c | RSPEC_RUNNER_CMD | bundle exec rspec | 要执行的RSpec命令 |
安全特性
- 路径穿越预防:块
../文件路径中的序列 - 文件格式验证:只允许以结尾的文件
_spec.rb - 输入消毒:针对空字节和危险字符进行验证
- 行号验证:确保行号为正整数
发展
运行测试
cargo test建筑
cargo build以开发模式运行
cargo run依赖项
rmcp-使用SSE传输的MCP服务器实现tokio-异步运行时axum-HTTP web框架serde-序列化/反序列化clap-命令行参数解析tracing-结构化日志记录
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
贡献
欢迎投稿!请随时提交拉取请求。对于重大更改,请先打开一个问题来讨论您想要更改的内容。
