返回 MCP 目录
public公开dns本地运行

forge-mcp-server

Forge MCP服务器是一个通过32个并行AI代理将PyTorch模型自动优化为高性能CUDA/Triton内核的工具,可将推理速度提升高达14倍,支持多种MCP兼容的AI编程助手。

article

README

🚀 Forge MCP Server

Forge MCP Server 是一个强大的工具,它借助自动化多智能体优化技术,将 PyTorch 模型转化为生产级的 CUDA/Triton 内核。通过 32 个并行的 AI 智能体,在推理时进行扩展,能实现比 torch.compile(mode='max-autotune-no-cudagraphs') 快达 14 倍的推理速度,同时保证 100% 的数值正确性。

🚀 快速开始

Forge MCP Server 可将任何 MCP 兼容的 AI 编码智能体连接到 Forge。智能体提交 PyTorch 代码,Forge 利用数据中心的真实 GPU 上的群体智能体对其进行优化,并返回最快的内核作为直接替代品。

✨ 主要特性

  • 优化现有内核:提交 PyTorch 代码,可得到针对 torch.compile(max-autotune) 进行基准测试的优化 Triton/CUDA 内核。
  • 生成新内核:描述一个操作(例如“融合的 LayerNorm + GELU + Dropout”),可获得一个生产就绪的优化内核。
  • 32 个并行群体智能体:编码者 + 评判者智能体对竞争以发现最优内核,同时探索张量核心利用率、内存合并、共享内存分块和内核融合。
  • 真实数据中心 GPU 基准测试:每个内核都在实际的数据中心硬件上进行编译、正确性测试和性能分析。
  • 250k 令牌/秒推理:几分钟内即可得到结果,而非数小时。
  • 智能检测:智能体可自动识别代码何时能从 GPU 优化中受益。
  • 一键认证:基于浏览器的 OAuth 登录,无需管理 API 密钥。

📦 安装指南

Claude Code

macOS / Linux:

claude mcp add forge-mcp -- npx -y @rightnow/forge-mcp-server

Windows:

claude mcp add forge-mcp -- cmd /c npx -y @rightnow/forge-mcp-server

Claude Desktop

将以下内容添加到 claude_desktop_config.json 中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "forge": {
      "command": "npx",
      "args": ["-y", "@rightnow/forge-mcp-server"]
    }
  }
}
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "forge": {
      "command": "cmd",
      "args": ["/c", "npx", "-y", "@rightnow/forge-mcp-server"]
    }
  }
}

VS Code / Copilot

将以下内容添加到 .vscode/mcp.json(工作区)或用户设置中:

{
  "servers": {
    "forge": {
      "command": "npx",
      "args": ["-y", "@rightnow/forge-mcp-server"]
    }
  }
}

Windows: 使用 "command": "cmd""args": ["/c", "npx", "-y", "@rightnow/forge-mcp-server"]

Cursor

将以下内容添加到 Cursor MCP 设置 (~/.cursor/mcp.json) 中:

{
  "mcpServers": {
    "forge": {
      "command": "npx",
      "args": ["-y", "@rightnow/forge-mcp-server"]
    }
  }
}

Windows: 使用 "command": "cmd""args": ["/c", "npx", "-y", "@rightnow/forge-mcp-server"]

Windsurf

将以下内容添加到 Windsurf MCP 配置中:

{
  "mcpServers": {
    "forge": {
      "command": "npx",
      "args": ["-y", "@rightnow/forge-mcp-server"]
    }
  }
}

Windows: 使用 "command": "cmd""args": ["/c", "npx", "-y", "@rightnow/forge-mcp-server"]

OpenCode

将以下内容添加到 opencode.json 中:

{
  "mcp": {
    "forge": {
      "command": "npx",
      "args": ["-y", "@rightnow/forge-mcp-server"]
    }
  }
}

💻 使用示例

基础用法

以下是使用 forge_optimize 工具优化 PyTorch 代码的示例:

# 假设我们有一个 PyTorch 代码文件 example.py
# 调用 forge_optimize 工具进行优化
# 这里只是示例,实际使用时需要根据具体情况调整参数
npx @rightnow/forge-mcp-server forge_optimize --pytorch_code "$(cat example.py)" --kernel_name "example_kernel"

高级用法

如果你想生成一个新的优化内核,可以使用 forge_generate 工具:

# 生成一个融合注意力的内核
npx @rightnow/forge-mcp-server forge_generate --operation "fused_attention" --description "实现融合注意力操作" --input_shapes "[[8, 512, 768]]"

📚 详细文档

支持的 GPU

所有优化和基准测试都在数据中心级硬件上运行: | GPU | 架构 | |-----|-------------| | B200 | Blackwell | | H200 | Hopper | | H100 | Hopper | | L40S | Ada Lovelace | | A100 | Ampere | | L4 | Ada Lovelace | | A10 | Ampere | | T4 | Turing |

支持的客户端

| 客户端 | 状态 | |--------|--------| | Claude Code | 完全支持 | | Claude Desktop | 完全支持 | | OpenCode | 完全支持 | | Cursor | 完全支持 | | Windsurf | 完全支持 | | VS Code + Copilot | 完全支持 | | 任何 MCP 客户端 | 通过标准输入输出完全支持 |

工具说明

forge_auth

用于与 Forge 服务进行身份验证。会打开浏览器,通过 RightNow 仪表板进行登录。在使用其他工具之前需要先进行此操作。

  • 输入
    • force(布尔值,可选):即使存在有效令牌,也强制重新认证。
  • 返回:认证状态、电子邮件、计划类型和信用余额。

forge_optimize

提交 PyTorch 代码以进行 GPU 内核优化。32 个群体智能体生成优化的 Triton 或 CUDA 内核,在真实数据中心 GPU 上进行评估,并返回最佳结果和加速指标。

  • 输入
    • pytorch_code(字符串,必需):要优化的完整 PyTorch 代码,最大 500 KB。
    • kernel_name(字符串,必需):内核的简短名称(例如,"flash_attention")。
    • output_format(枚举,可选):"triton"(默认)或 "native_cuda"
    • target_speedup(数字,可选):目标加速倍数,默认 2.0
    • max_iterations(数字,可选):最大优化迭代次数(1 - 100),默认 10
    • gpu(枚举,可选):目标 GPU,默认 "H100"。选项:B200, H200, H100, L40S, A100, L4, A10, T4
    • user_prompt(字符串,可选):给优化器的指导(例如,"focus on memory bandwidth")。
  • 返回:优化后的内核代码、加速指标、延迟比较、迭代历史。

forge_generate

根据自然语言规范从头生成一个优化的 GPU 内核。Forge 会创建一个 PyTorch 基线,然后将其优化为 Triton 或 CUDA 内核。

  • 输入
    • operation(字符串,必需):操作名称(例如,"fused_attention", "softmax")。
    • description(字符串,必需):内核应实现的详细描述。
    • input_shapes(数字数组的数组,必需):输入张量的形状(例如,[[8, 512, 768]])。
    • output_shape(数字数组,可选):预期的输出形状。
    • dtype(字符串,可选):数据类型,默认 "float16"
    • output_format(枚举,可选):"triton"(默认)或 "native_cuda"
    • target_speedup(数字,可选):目标加速倍数,默认 2.0
    • max_iterations(数字,可选):最大迭代次数(1 - 100),默认 10
    • gpu(枚举,可选):目标 GPU,默认 "H100"
    • user_prompt(字符串,可选):额外的指导。
  • 返回:生成的内核代码、加速指标、迭代历史。

forge_credits

检查当前的 Forge 信用余额。

  • 输入:无
  • 返回:信用余额、总购买量、总使用量、计划类型。

forge_status

检查正在运行或已完成的优化作业的状态。

  • 输入
    • session_id(字符串,必需):forge_optimizeforge_generate 的会话 ID。
  • 返回:作业状态、当前迭代、最佳加速倍数。

forge_cancel

取消正在运行的优化作业。

  • 输入
    • session_id(字符串,必需):要取消的作业的会话 ID。
  • 返回:取消确认。

forge_sessions

列出过去的优化会话及其结果。

  • 输入
    • limit(数字,可选):返回的会话数量(1 - 100),默认 10
    • status(枚举,可选):按状态过滤:"all", "completed", "failed", "running",默认 "all"
  • 返回:包含任务名称、GPU、加速倍数、状态和日期的会话表格。

工具注解

| 工具 | 只读 | 幂等 | 破坏性 | |------|-----------|------------|-------------| | forge_auth | 否 | 是 | 否 | | forge_optimize | 否 | 否 | 否 | | forge_generate | 否 | 否 | 否 | | forge_credits | 是 | 是 | 否 | | forge_status | 是 | 是 | 否 | | forge_cancel | 否 | 否 | 是 | | forge_sessions | 是 | 是 | 否 |

资源

| URI | 描述 | |-----|-------------| | forge://auth/status | 当前认证状态(已认证、令牌过期、是否有刷新令牌) | | forge://credits | 信用余额、使用情况和计划信息 |

提示

forge-optimize

用于优化 GPU 内核的引导式工作流程。指导智能体:

  1. 检查信用余额。
  2. 分析代码以确定优化目标。
  3. 使用适当的参数调用 forge_optimize
  4. 解释结果并建议集成。

forge-analyze

教导智能体扫描代码库以寻找 GPU 优化机会,并按预期影响进行排序: | 优先级 | 模式 | |----------|---------| | | 自定义自动求导函数、注意力机制、融合操作 | | | 标准 nn.Module 组合、归一化 + 激活融合 | | | 逐元素操作、简单归约 |

工作原理

┌──────────────┐     stdio      ┌──────────────────┐     HTTPS      ┌──────────────────┐
│  AI 智能体    │ ──────────────>│  Forge MCP       │ ──────────────>│  Forge API       │
│  (Claude,    │                │  服务器          │                │  (RightNow AI)   │
│   Cursor,    │<──────────────│                  │<──────────────│                  │
│   等)        │   MCP 结果   │  - OAuth + PKCE  │   SSE 流       │  - 32 个群体     │
└──────────────┘                │  - SSE 流式传输 │                │    智能体        │
                                │  - 令牌管理    │                │  - 真实 GPU      │
                                └──────────────────┘                │    基准测试      │
                                                                    └──────────────────┘
  1. 认证:智能体调用 forge_auth,会打开浏览器。只需登录一次,令牌会存储在本地 ~/.forge/tokens.json 并自动刷新。
  2. 优化:智能体通过 forge_optimize 发送 PyTorch 代码。MCP 服务器向 Forge API 发送 POST 请求,并实时流式传输 SSE 事件。
  3. 基准测试:32 个并行的编码者 + 评判者智能体生成内核,编译它们,根据 PyTorch 参考测试正确性,并在真实数据中心 GPU 上进行性能分析。
  4. 返回:MCP 服务器收集所有结果,并返回优化后的代码、加速指标和迭代历史。输出可直接替代原始代码。

每次优化需要 1 个信用点。仅对成功运行(加速倍数 >= 1.1x)收取信用点。失败的运行和取消的作业不收费。

配置

认证

无需 API 密钥。服务器使用 OAuth 2.0 与 PKCE 进行基于浏览器的安全认证:

  1. 智能体调用 forge_auth
  2. 默认浏览器打开到 dashboard.rightnowai.co
  3. 登录或创建账户。
  4. 授权自动完成。
  5. 令牌存储在本地 ~/.forge/tokens.json(模式 0600)。
  6. 访问令牌自动刷新,只需登录一次。

信用点

Forge 使用 按需付费 的信用系统。每次优化或生成运行需要 1 个信用点。 | 信用点数量 | 价格 | 每个信用点价格 | |---------|-------|------------| | 1 - 9 | 每个 $15.00 | $15.00 | | 10+ | 25% 折扣 | $11.25 | | 50 | $562.50 | $11.25 | | 企业版 | 自定义批量定价 | 联系我们 |

免费试用:可优化 1 个内核,无需信用卡。

100% 退款保证:如果 Forge 无法超越 torch.compile,将退还信用点。

可在 dashboard.rightnowai.co 购买信用点。

基准测试

在 NVIDIA B200 上的端到端延迟。Forge 与 torch.compile(mode='max-autotune-no-cudagraphs') 对比: | 模型 | torch.compile | Forge | 加速倍数 | |-------|--------------|-------|---------| | Llama-3.1-8B | 42.3ms | 8.2ms | 5.16x | | Qwen2.5-7B | 38.5ms | 9.1ms | 4.23x | | Mistral-7B | 35.2ms | 10.4ms | 3.38x | | Phi-3-mini | 18.7ms | 6.8ms | 2.75x | | SDXL UNet | 89.4ms | 31.2ms | 2.87x | | Whisper-large | 52.1ms | 19.8ms | 2.63x | | BERT-large | 12.4ms | 5.1ms | 2.43x |

完整的基准测试可在 rightnowai.co/forge 查看。

🔧 技术细节

安全

令牌保护

  • 错误信息中无令牌:所有错误信息都通过正则表达式过滤器进行清理,在到达智能体之前去除 JWT、Bearer 令牌、十六进制令牌和凭证参数。
  • 仅本地存储:令牌存储在 ~/.forge/tokens.json,文件模式为 0600(仅所有者可读可写)。
  • 自动刷新:访问令牌在 1 小时后过期,并使用存储的刷新令牌自动刷新。
  • PKCE 流程:OAuth 使用代码交换证明密钥(SHA - 256),防止授权码拦截。
  • 配置中无秘密信息:MCP 服务器不需要任何环境变量或 API 密钥。

输入验证

  • PyTorch 代码输入上限为 500 KB,以防止内存耗尽。
  • 用户提示上限为 10 KB
  • 所有字符串输入通过 Zod 模式进行最大长度验证。
  • 数字输入有最小/最大边界(例如,max_iterations: 1 - 100)。

网络安全

  • 所有 API 通信使用 HTTPS
  • 非 SSE 请求有 30 秒超时,以防止挂起。
  • SSE 流有 10 分钟超时,并自动清理。
  • 令牌刷新使用 互斥锁,以防止并发请求的竞争条件。

服务器可访问内容

  • 网络:仅可访问 dashboard.rightnowai.coforge-api.rightnowai.co
  • 文件系统:仅读写 ~/.forge/tokens.json
  • 无代码库访问:MCP 服务器从不读取文件。智能体通过工具参数明确传递代码。

开发

从源代码构建

git clone https://github.com/RightNow-AI/forge-mcp-server.git
cd forge-mcp-server
npm install
npm run build

本地运行

npm run dev

类型检查

npm run typecheck

使用 MCP 检查器调试

npx @modelcontextprotocol/inspector node dist/index.js

这将打开一个 Web UI,你可以在其中调用每个工具、检查输入/输出并交互式调试服务器。

项目结构

forge-mcp-server/
├── src/
│   ├── index.ts              # 入口点 (McpServer + StdioServerTransport)
│   ├── server.ts             # 注册所有工具、资源、提示
│   ├── constants.ts          # URL、客户端 ID、超时、限制
│   ├── types.ts              # TypeScript 接口 + 类型守卫 + 清理
│   ├── auth/
│   │   ├── oauth-client.ts   # PKCE 流程、令牌刷新、访问令牌管理
│   │   └── token-store.ts    # ~/.forge/tokens.json 读写/清除
│   ├── api/
│   │   ├── forge-client.ts   # 所有 Forge API 端点的 HTTP 客户端
│   │   └── sse-consumer.ts   # 通过原生 fetch + ReadableStream 解析 SSE 流
│   ├── tools/                # 7 个 MCP 工具
│   ├── resources/            # 2 个 MCP 资源
│   └── prompts/              # 2 个 MCP 提示
├── .github/workflows/
│   ├── ci.yml                # 推送/拉取请求时进行类型检查 + 构建
│   └── release.yml           # 版本标签时进行 npm 发布
├── package.json
├── tsconfig.json
└── tsup.config.ts

🤝 贡献

欢迎贡献代码。请先打开一个问题,讨论你想要进行的更改。

  1. 分叉仓库。
  2. 创建一个分支 (git checkout -b feature/my-feature)。
  3. 进行更改。
  4. 运行 npm run typechecknpm run build
  5. 提交并推送。
  6. 打开一个拉取请求。

📄 许可证

MIT

本项目是 RightNow AI 生态系统的一部分,也是 NVIDIA Inception Program 的成员。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端