代码工具生成器

Forge是一个自动检测需求并生成相应工具的Claude代码代理,适用于需要动态扩展功能的开发场景。

  • by tomasmihalyi
  • Python
  • 本地部署
  • 6 星标
  • 更新于
在 GitHub 查看 tomasmihalyi/claude-forge

使用说明

锻造

一个构建自己工具的Claude Code代理。

Forge检测到它何时缺乏满足请求的能力,然后自主设计、构建、验证和注册一个新的MCP工具服务器,并立即使用它。它创造的每一个工具都会永远存在。代理在每次请求时都会变得永远更聪明。

User: "What time is it in Tokyo?"

Forge: I don't have a tool for this. Forging one now...
       [Designs world-clock server]
       [Generates servers/world-clock/server.py]
       [Validates: 11/11 checks passed]
       [Registers with Claude Code]
       [Uses it]

       The current time in Tokyo is 2:30 AM JST.
       Tool used: world-clock (forged just now)

User: "What time is it in London?"

Forge: I already have a tool for this: world-clock
       The current time in London is 5:30 PM GMT.

快速开始

# Clone and set up
git clone https://github.com/tomasmihalyi/claude-forge.git && cd claude-forge
uv sync

# Start the Forge agent
claude --agent forge

然后问它任何事情:

  • "What time is it in Tokyo?" --伪造时区工具(stdlib)
  • "Analyze demo/sales.csv" --伪造CSV分析工具(stdlib)
  • "What's trending on Hacker News?" -伪造一个HN API工具(httpx)
  • "What time is it in London?" --立即重用时区工具

检查伪造的内容:类型 /forge-status 在代理会话中。

运作原理

Forge协议(9个步骤)

User Request
    │
    ▼
1. CHECK REGISTRY ─── Match found? ──Yes──► 8. USE EXISTING TOOL
    │                                              │
    No                                             ▼
    ▼                                        9. CONFIRM
2. ASSESS GAP ──── Reusable capability?
    │
    Yes
    ▼
3. ANNOUNCE ──── "Forging a new tool..."
    ▼
4. DESIGN ───── Reason about architecture (visible to user)
    ▼
5. GENERATE ─── Write FastMCP server to servers/{name}/server.py
    ▼
6. VALIDATE ─── 11-check validation (syntax, async, types, imports...)
    │            Retry up to 3x on failure
    ▼
7. REGISTER ─── claude mcp add + update registry.json
    ▼
8. USE TOOL ─── Invoke via CLI wrapper
    ▼
9. CONFIRM ──── Return answer + "Tool is now permanent"

建筑

forge/
├── .claude/
│   ├── agents/forge.md              ← The agent brain (Forge Protocol)
│   ├── settings.json                ← Permissions + hooks
│   └── skills/forge-status/         ← /forge-status slash command
├── forge/
│   ├── templates/server_template.py ← Pattern for code generation
│   ├── validate_server.py          ← 11-check server validator
│   └── registry.py                 ← Atomic registry operations
├── servers/                         ← Auto-generated MCP servers
│   ├── world-clock/server.py
│   ├── csv-analyzer/server.py
│   └── hacker-news/server.py
├── registry.json                    ← Persistent tool memory
├── .mcp.json                        ← Claude Code MCP server config
└── demo/sales.csv                   ← Sample data for demos

关键设计决策

CLI包装器模式:每个生成的服务器都包含一个 --call CLI包装器,因此Forge可以在同一会话中立即使用工具,而无需等待MCP注册生效。

11支票验证器:在注册任何服务器之前,它都会经过基于AST的验证:语法、异步函数、文档字符串、类型提示、返回类型、无stdout污染、成功导入、FastMCP实例、工具注册和主块。

原子注册表:注册表助手(forge/registry.py)使用临时文件和重命名进行安全写入,防止重复条目,并提供增量操作。

安全策略:代理拒绝伪造删除文件、执行shell命令、访问凭据或调用非公共API的工具。

Claude代码平台集成

功能 Forge如何使用它
自定义代理 .claude/agents/forge.md --整个Forge协议
MCP服务器 Forge动态创建和注册新的MCP服务器
技能 /forge-status --报告伪造工具和使用统计数据
钩子 PostToolUse 钩子日志验证事件
作品4.6 扩展思维推动服务器架构设计(步骤4)

构建于

  • 克劳德作品4.6 --工具体系结构设计的扩展思维
  • 克劳德代码 --代理、技能、挂钩、MCP集成
  • FastMCP (Python)--MCP服务器SDK
  • Python 3.13 --用于生成服务器的stdlib+httpx