r33drichards
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"js": {
"command": "/usr/local/bin/mcp-v8 --directory-path /tmp/mcp-v8-heaps"
}
}
}
服务介绍
mcp-v8: V8 JavaScript MCP 服务器
一个基于 Rust 的模型上下文协议 (MCP) 服务器,它将 V8 JavaScript 运行时作为 Claude 和 Cursor 等 AI 代理的工具。支持通过 S3 或本地文件系统进行持久化堆快照,并准备好与现代 AI 开发环境集成。
特性
- V8 JavaScript 执行:在安全、隔离的 V8 引擎中运行任意 JavaScript 代码。
- 堆快照:在运行之间持久化和恢复 V8 堆状态,支持 S3 和本地文件存储。
- MCP 协议:实现 Model Context Protocol,以便与 Claude、Cursor 和其他 MCP 客户端无缝集成。
- 可配置存储:在运行时选择 S3 或本地目录进行堆存储。
安装
使用提供的安装脚本安装 mcp-v8:
bash
curl -fsSL https://raw.githubusercontent.com/r33drichards/mcp-js/main/install.sh | sudo bash
这将自动下载并为您的平台安装最新版本到 /usr/local/bin/mcp-v8(您可能需要输入密码)。
高级用户:如果您更喜欢从源代码构建,请参阅本文档末尾的 从源代码构建 部分。
命令行参数
mcp-v8 支持以下命令行参数:
--s3-bucket <bucket>:使用 AWS S3 进行堆快照。指定 S3 存储桶名称。(与--directory-path冲突)--directory-path <path>:使用本地目录进行堆快照。指定目录路径。(与--s3-bucket冲突)
注意:您必须指定 --s3-bucket 或 --directory-path 中的一个。如果两者均未提供,服务器默认使用 S3 存储桶 test-mcp-js-bucket。
快速开始
安装完成后,您可以直接运行服务器。请选择以下选项之一:
bash
使用 S3 进行堆存储(推荐用于云/持久化使用)
mcp-v8 --s3-bucket my-bucket-name
使用本地文件系统目录进行堆存储(推荐用于本地开发)
mcp-v8 --directory-path /tmp/mcp-v8-heaps
集成
Claude for Desktop
- 按上述方法安装服务器。
- 打开 Claude Desktop → 设置 → 开发者 → 编辑配置。
- 在
claude_desktop_config.json中添加您的服务器:
json
{
"mcpServers": {
"js": {
"command": "/usr/local/bin/mcp-v8 --s3-bucket my-bucket-name"
}
}
}
- 重启 Claude Desktop。新工具将出现在锤子图标下。
Cursor
- 按上述方法安装服务器。
- 在项目根目录中创建或编辑
.cursor/mcp.json:
json
{
"mcpServers": {
"js": {
"command": "/usr/local/bin/mcp-v8 --directory-path /tmp/mcp-v8-heaps"
}
}
}
- 重启 Cursor。MCP 工具将在 UI 中可用。
示例用法
- 向 Claude 或 Cursor 请求:“运行这段 JavaScript:
1 + 2” - 使用堆快照在运行之间持久化状态。
堆存储选项
您可以使用以下命令行参数配置堆存储:
- S3:
--s3-bucket <bucket>- 示例:
mcp-v8 --s3-bucket my-bucket-name - 需要在环境中设置 AWS 凭证。
- 示例:
- 文件系统:
--directory-path <path>- 示例:
mcp-v8 --directory-path /tmp/mcp-v8-heaps
- 示例:
注意:一次只能使用一个存储后端。如果同时提供了两个,服务器将返回错误。
限制
虽然 mcp-v8 提供了一个强大且持久的 JavaScript 执行环境,但其运行时存在一些限制。
- 不支持
async/await或 Promises:不支持异步 JavaScript。所有代码必须是同步的。 - 不支持
fetch或网络访问:没有内置的方法来发起 HTTP 请求或访问网络。 - 不支持
console.log或标准输出:来自console.log或类似函数的输出不会显示。要返回结果,请确保您希望返回的值是代码的最后一行。 - 不支持文件系统访问:运行时不提供对本地文件系统或环境变量的访问。- 无需
npm install或外部包:您不能安装或导入 npm 包。只能使用标准的 JavaScript(ECMAScript)内置功能。 - 无定时器:诸如
setTimeout和setInterval之类的函数不可用。 - 无 DOM 或浏览器 API:这不是浏览器环境;无法访问
window、document或其他特定于浏览器的对象。
从源代码构建(高级)
如果您希望从源代码构建而不是使用安装脚本:
前提条件
- Rust(建议使用夜间版工具链)
- (可选)用于 S3 存储的 AWS 凭证
构建服务器
bash
cd server
cargo build --release
构建的二进制文件将位于 server/target/release/server。如果需要,您可以在上述集成步骤中使用此路径代替 /usr/local/bin/mcp-v8。