关于 pforge
pforge 是一个通过 YAML 配置构建 MCP 服务的框架和命令行工具,可生成 Rust 代码并支持多种处理器类型,也提供 Deno/TypeScript 桥接。
主要功能
- 01基于 YAML 配置服务
- 02生成 Rust 代码
- 03原生、CLI、HTTP 和流水线处理器
- 04项目脚手架与命令行工具
- 05Deno/TypeScript 桥接
适用场景
- 01以较少样板代码定义 MCP 工具
- 02从脚手架创建服务项目
- 03将 Shell 命令或 HTTP 端点用作处理器
MCP 相关
pforge 用于构建向 MCP 客户端提供已配置工具的 MCP 服务。可通过 `pforge serve` 运行服务。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
pforge
使用 YAML 配置构建模型上下文协议(MCP)服务的声明式框架。
MCP 服务
注册表名称: io.github.paiml/pforge
pforge 已在模型上下文协议(MCP)注册表中发布。可通过以下方式安装:
# Via Cargo (recommended)
cargo install pforge-cli
# Then run as MCP server
pforge serve
维护者须知: 发布说明请参阅 MCP 注册表发布指南。
什么是 pforge?
pforge 让你可以使用 YAML 定义 MCP 服务,而不必编写样板代码。它基于 pmcp(rust-mcp-sdk)构建,并根据配置生成经过优化的 Rust 代码。
快速示例:
forge:
name: my-server
version: 0.1.0
transport: stdio
tools:
- type: native
name: greet
description: "Greet someone"
handler:
path: handlers::greet_handler
params:
name: { type: string, required: true }
安装
# From crates.io
cargo install pforge-cli
# From source
git clone https://github.com/paiml/pforge
cd pforge
cargo install --path crates/pforge-cli
快速开始
# Create new project
pforge new my-server
cd my-server
# Run the server
pforge serve
生成的项目包含一个可运行的示例处理程序。编辑 pforge.yaml 以添加更多工具,然后在 src/handlers/ 中实现处理程序。
处理程序类型
pforge 支持四种处理程序类型:
- Native - 具备完整类型安全性的 Rust 函数
- CLI - 执行 Shell 命令
- HTTP - 代理 HTTP 端点
- Pipeline - 将多个工具串联起来
有关每种类型的详细示例,请参阅手册。
语言桥接
pforge 提供语言桥接,方便你使用偏好的语言构建 MCP 服务:
Deno/TypeScript 桥接
使用 TypeScript 和 Deno 构建具备原生性能的类型安全 MCP 服务:
import { PforgeBridge } from "https://raw.githubusercontent.com/paiml/pforge/main/bridges/deno/bridge.ts";
const bridge = new PforgeBridge();
bridge.register({
name: "greet",
description: "Greet a user by name",
handler: (input: { name: string }) => ({
success: true,
data: { message: `Hello, ${input.name}!` },
}),
});
const result = await bridge.execute("greet", { name: "Alice" });
console.log(result.data);
功能:
- 使用 TypeScript 泛型定义类型安全的处理程序
- 无外部依赖的运行时模式验证
- O(1) 处理程序查找性能
- 支持同步和异步处理程序
- 74+ 项测试通过,质量门禁全部达标
即将推出
- Python 桥接(基于 FFI,支持 asyncio)
- Go 桥接(基于 CGo,支持 goroutine)
- Node.js 桥接(基于 N-API 的原生扩展)
文档
示例
- hello-world - 最简原生处理程序示例
- calculator - 数学运算及测试
- rest-api-proxy - HTTP 处理程序示例
项目状态
版本: 0.1.2
已发布的 crate:
pforge-config- 配置解析pforge-macro- 过程宏pforge-runtime- 核心运行时(依赖 pmcp)pforge-codegen- 代码生成pforge-cli- 命令行工具
测试结果: 120+ 项测试通过(90+ 项单元/集成测试、12 项基于属性的测试、8 项质量门禁、5+ 项文档测试)
详细进展请参阅 IMPLEMENTATION_STATUS.md。
开发
# Run tests
cargo test --all
# Run quality gates
make quality-gate
# Watch mode
make watch
# Build release
make build-release
完整的开发工作流请参阅 CLAUDE.md。
架构
pforge 基于 pmcp(rust-mcp-sdk)构建为一个框架:
┌─────────────────────────────────┐
│ pforge (Framework Layer) │
│ - YAML → Rust codegen │
│ - Handler registry │
│ - State management │
└─────────────────────────────────┘
↓
┌─────────────────────────────────┐
│ pmcp (Protocol SDK) │
│ - MCP protocol implementation │
│ - Transport handling │
└─────────────────────────────────┘
适合直接使用 pmcp 的情况:你需要精细控制 MCP 协议细节,或希望避免代码生成。
适合使用 pforge 的情况:你希望通过更少的代码,以声明式配置快速开发 MCP 服务。
贡献
欢迎贡献。请:
- 阅读 CLAUDE.md,了解开发规范
- 查看 ROADMAP.md,了解当前优先事项
- 确保测试通过:
cargo test --all - 确保质量门禁通过:
make quality-gate
所有提交都会经过提交前钩子的验证,检查代码格式、Lint、测试、复杂度、覆盖率和 Markdown 链接有效性(使用 pmat validate-docs),以防止文档链接失效。
许可证
MIT - 详见 LICENSE
致谢
基于 Pragmatic AI Labs 的 pmcp 构建。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。