---
title: "toolfactory"
description: "Build an agent tool once; ship it as Agent Skills, MCP servers, Agent Plugins / Claude / Codex / Cursor bundles, OpenClaw and Hermes plugins, CLIs, and packages, with the tests and releases to match."
canonical: https://agentpluginsdirectory.com/plugins/toolfactory
last-updated: 2026-09-18
---

# toolfactory
Build an agent tool once; ship it as Agent Skills, MCP servers, Agent Plugins / Claude / Codex / Cursor bundles, OpenClaw and Hermes plugins, CLIs, and packages, with the tests and releases to match.
- Slug: toolfactory
- Publisher: GoatInAHat
- Repository: https://github.com/GoatInAHat/toolfactory
- Manifest: plugin.json
- Version: 0.3.1
- License: MIT
- Category (editorial): other
- Skills: 1 (toolfactory)
- MCP servers: 1 (toolfactory)
- Stars: 0
- Repository created: 2026-09-01
- Repository last pushed: 2026-09-16
- Publisher type: User
- Listing: https://agentpluginsdirectory.com/plugins/toolfactory
- Schema: https://agent-plugins.org/schemas/1.0.0/plugin.schema.json

## What toolfactory does, in the publisher's words

Build an agent tool once; ship it as an Agent Skill, an Agent Plugins bundle, a Claude Code, Codex or Cursor plugin, an MCP server, a CLI, an npm or PyPI package, an MCP Registry entry, an OpenClaw or Hermes native plugin, and a web page, from one operation module and one config file.

toolfactory is a scaffolder and a keeper-in-sync, not a runtime. It writes each surface in the shape that surface's own tooling would have written, proves it with that surface's own validator, and records every generated file in a lock so drift fails CI. Delete toolfactory from a repo it generated and every surface still installs, builds and publishes.

From the project README, punctuation lightly normalized. Full text: https://raw.githubusercontent.com/GoatInAHat/toolfactory/HEAD/README.md

## Skills

- toolfactory: Build an agent tool once; ship it as Agent Skills, MCP servers,

Descriptions come from the frontmatter of each SKILL.md, punctuation lightly normalized.

## MCP servers

- toolfactory: transport: stdio; command: npx -y toolfactory@0.3.1 mcp

Read from the plugin's own mcp.json. Environment variable names only, never values.
