| Crates.io | pforge-cli |
| lib.rs | pforge-cli |
| version | 0.1.4 |
| created_at | 2025-10-02 15:25:01.732444+00 |
| updated_at | 2025-12-06 12:09:43.230405+00 |
| description | Zero-boilerplate MCP server framework with EXTREME TDD methodology |
| homepage | https://github.com/paiml/pforge |
| repository | https://github.com/paiml/pforge |
| max_upload_size | |
| id | 1864528 |
| size | 93,686 |
Command-line interface for the pforge framework - build Model Context Protocol (MCP) servers from declarative YAML configuration.
cargo install pforge-cli
# Create a new MCP server project
pforge new my-server
cd my-server
# Run the server
pforge serve
# Build for production
pforge build --release
pforge new <name> - Scaffold a new MCP server projectpforge serve - Run the MCP server in development modepforge build - Build the server binarypforge dev - Development mode with hot reload (planned)pforge test - Run tests for your handlerspforge quality - Run quality gates (formatting, linting, tests, coverage)Create a pforge.yaml:
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 }
Implement src/handlers/mod.rs:
use pforge_runtime::prelude::*;
use serde_json::{json, Value};
#[async_trait::async_trait]
impl Handler for GreetHandler {
async fn handle(&self, params: Value) -> Result<Value> {
let name = params["name"].as_str().unwrap_or("World");
Ok(json!({ "message": format!("Hello, {}!", name) }))
}
}
Then run: pforge serve
MIT