Pforge

io.github.paimlPublished by GitHub account paimlv0.1.2Updated Oct 24, 2026

Zero-boilerplate MCP server framework with declarative YAML configuration

VerifiedSTDIODesktop onlyDeveloper ToolsAI & ML

Overview

AI-generated overview

A Rust CLI framework that lets developers define MCP servers in YAML instead of writing boilerplate code, then run them locally over stdio.

What you can do
  • Scaffold a new MCP server project and run it as a local stdio server
  • Declare tools in a YAML file and generate optimized Rust code from that configuration
  • Implement tool handlers as native Rust functions, shell commands, HTTP proxies, or chained pipelines
  • Build handlers in TypeScript/Deno through a provided language bridge, with Python, Go and Node.js bridges listed as coming soon
  • Run tests and quality gates for the generated project
When to use it
Useful when you want to build your own MCP server quickly with declarative configuration rather than hand-writing protocol code, or when you prefer a Rust-based toolchain and YAML-defined tools.
Requirements
Runs as a local process on the user's machine (desktop only). Installed via Cargo (cargo install pforge-cli) or built from source, so a Rust toolchain is needed; the Deno bridge additionally needs Deno. No accounts, API keys or environment variables are declared.
Before you install
It is a development framework, not a ready-made tool server: the tools an assistant sees are the ones you define and implement yourself. CLI handlers execute shell commands and HTTP handlers proxy external endpoints, so review handler code before exposing it. Version is early (0.1.2) and several language bridges are still listed as coming soon.

Installation

In SourceWeft

  1. Open Pforge in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

pforge

A declarative framework for building Model Context Protocol (MCP) servers using YAML configuration.

[CI] [crates.io] [crates.io] [License: MIT]

MCP Server

Registry Name: io.github.paiml/pforge

pforge is available in the Model Context Protocol (MCP) Registry. Install it via:

bash
# Via Cargo (recommended)cargo install pforge-cli
# Then run as MCP serverpforge serve

For Maintainers: See MCP Registry Publishing Guide for publishing instructions.

What is pforge?

pforge lets you define MCP servers in YAML instead of writing boilerplate code. It's built on top of pmcp (rust-mcp-sdk) and generates optimized Rust code from your configuration.

Quick example:

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 }

Installation

bash
# From crates.iocargo install pforge-cli
# From sourcegit clone https://github.com/paiml/pforgecd pforgecargo install --path crates/pforge-cli

Quick Start

bash
# Create new projectpforge new my-servercd my-server
# Run the serverpforge serve

The scaffolded project includes a working example handler. Edit pforge.yaml to add more tools, then implement handlers in src/handlers/.

Handler Types

pforge supports four handler types:

  1. Native - Rust functions with full type safety
  2. CLI - Execute shell commands
  3. HTTP - Proxy HTTP endpoints
  4. Pipeline - Chain multiple tools together

See the book for detailed examples of each type.

Language Bridges

pforge provides language bridges for building MCP servers in your preferred language:

Deno/TypeScript Bridge

Build type-safe MCP servers using TypeScript and Deno with native performance:

typescript
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);

Features:

  • Type-safe handler definitions with TypeScript generics
  • Runtime schema validation with no external dependencies
  • O(1) handler lookup performance
  • Both sync and async handler support
  • 74+ tests passing with full quality gates

Documentation: bridges/deno/README.md

Coming Soon

  • Python bridge (FFI-based with asyncio support)
  • Go bridge (CGo-based with goroutine support)
  • Node.js bridge (Native addon with N-API)

Documentation

Examples

Project Status

Version: 0.1.2

Published crates:

  • pforge-config - Configuration parsing
  • pforge-macro - Procedural macros
  • pforge-runtime - Core runtime (depends on pmcp)
  • pforge-codegen - Code generation
  • pforge-cli - CLI tool

Test results: 120+ tests passing (90+ unit/integration, 12 property-based, 8 quality gates, 5+ doctests)

See IMPLEMENTATION_STATUS.md for detailed progress.

Development

bash
# Run testscargo test --all
# Run quality gatesmake quality-gate
# Watch modemake watch
# Build releasemake build-release

See CLAUDE.md for full development workflow.

Architecture

pforge is built as a framework on top of pmcp (rust-mcp-sdk):

┌─────────────────────────────────┐│   pforge (Framework Layer)      ││   - YAML → Rust codegen         ││   - Handler registry            ││   - State management            │└─────────────────────────────────┘              ↓┌─────────────────────────────────┐│   pmcp (Protocol SDK)           ││   - MCP protocol implementation ││   - Transport handling          │└─────────────────────────────────┘

When to use pmcp directly: You need fine-grained control over MCP protocol details or want to avoid code generation.

When to use pforge: You want declarative configuration and rapid MCP server development with less code.

Contributing

Contributions are welcome. Please:

  1. Read CLAUDE.md for development standards
  2. Check ROADMAP.md for current priorities
  3. Ensure tests pass: cargo test --all
  4. Ensure quality gates pass: make quality-gate

All commits are validated by pre-commit hooks that check code formatting, linting, tests, complexity, coverage, and markdown link validity (using pmat validate-docs) to prevent broken documentation links.

License

MIT - see LICENSE

Acknowledgments

Built on pmcp by Pragmatic AI Labs.

Source: README.md at commit 78e6860

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.2LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts