11<div align =" center " >
22
33<h1 >Agentify</h1 >
4- <p >< strong >Agent Interface Compiler</ strong > — One command. Every agent speaks your product .</p >
4+ <p >OpenAPI in. Agent interfaces out .</p >
55
66<img src =" assets/banner.svg " alt =" Agentify — OpenAPI to 9 agent interface formats " width =" 800 " >
77
1616
1717---
1818
19- Agentify compiles any OpenAPI specification into ** 9 agent interface formats** — MCP Server, CLAUDE.md, AGENTS.md, .cursorrules, Skills, llms.txt, GEMINI.md, A2A Card, and CLI. Instead of hand-building each format separately, generate them all from a single source of truth.
19+ Your API has new users it doesn't know about yet — AI agents.
20+
21+ Claude Code reads ` CLAUDE.md ` . Cursor reads ` .cursorrules ` . Codex and Copilot read ` AGENTS.md ` . And if you want your API callable as a tool, you need an MCP server. That's a lot of files to write and keep in sync with your API spec.
22+
23+ Agentify reads your OpenAPI spec and writes them all.
2024
2125``` bash
2226npx agentify-cli transform https://petstore.swagger.io/v2/swagger.json
2327```
2428
2529<p align =" center " >
26- <img src =" docs/demo.gif " alt =" Agentify demo — transform OpenAPI to MCP Server in 30 seconds " width =" 700 " >
30+ <img src =" docs/demo.gif " alt =" Agentify demo " width =" 700 " >
2731</p >
2832
29- ## The Problem
30-
31- AI agents are the new users of your API. But making your product agent-accessible requires building and maintaining multiple interface formats:
32-
33- | Format | Who consumes it | Manual effort |
34- | --------| ----------------| ---------------|
35- | MCP Server | Claude, ChatGPT, Copilot | Days of coding |
36- | CLAUDE.md | Claude Code | Write from scratch |
37- | AGENTS.md | Codex, Copilot, Cursor, Gemini CLI | Write from scratch |
38- | .cursorrules | Cursor IDE | Write from scratch |
39- | Skills | 30+ agent platforms | Per-platform work |
40- | llms.txt | LLM search engines | Manual authoring |
41- | GEMINI.md | Gemini CLI | Write from scratch |
42- | A2A Card | Google Agent-to-Agent protocol | JSON schema work |
43- | CLI | Developers, scripts, CI/CD | Build from scratch |
33+ ## What You Get
4434
45- ** That's 9+ formats to build, test, and keep in sync. ** Every API change means updating all of them.
35+ One command generates up to ** 9 formats ** from a single OpenAPI spec:
4636
47- ## The Solution
48-
49- Agentify is a compiler. OpenAPI in, every agent format out.
50-
51- ```
52- +---> MCP Server (with Dockerfile)
53- |
54- +---> CLAUDE.md
55- |
56- +---> AGENTS.md
57- |
58- OpenAPI Spec -----> +---> .cursorrules
59- |
60- +---> Skills
61- |
62- +---> llms.txt
63- |
64- +---> GEMINI.md
65- |
66- +---> A2A Card
67- |
68- +---> CLI (standalone command-line tool)
69- ```
37+ | Format | Used by |
38+ | --------| ---------|
39+ | ** MCP Server** | Claude, ChatGPT, Copilot (with Dockerfile) |
40+ | ** CLAUDE.md** | Claude Code |
41+ | ** AGENTS.md** | Codex, Copilot, Cursor, Gemini CLI |
42+ | ** .cursorrules** | Cursor IDE |
43+ | ** Skills** | Agent platforms |
44+ | ** llms.txt** | LLM search engines |
45+ | ** GEMINI.md** | Gemini CLI |
46+ | ** A2A Card** | Google Agent-to-Agent protocol |
47+ | ** CLI** | A standalone command-line tool that makes real API calls |
7048
7149## Quick Start
7250
7351``` bash
74- # Transform any OpenAPI spec
52+ # Transform any OpenAPI spec (Swagger 2.0 or OpenAPI 3.x)
7553npx agentify-cli transform https://petstore.swagger.io/v2/swagger.json
7654
77- # Specify output directory
78- npx agentify-cli transform ./my-api.yaml -o ./output
55+ # Pick specific formats
56+ npx agentify-cli transform ./my-api.yaml -f mcp claude.md agents.md
7957
80- # Override project name
81- npx agentify-cli transform https://api.example.com/openapi.json -n my-project
82-
83- # Generate only specific formats
84- npx agentify-cli transform ./my-api.yaml -f mcp claude.md
85-
86- # Generate a standalone CLI tool from your API
58+ # Generate a standalone CLI tool
8759npx agentify-cli transform ./my-api.yaml -f cli -o my-api-cli
8860
89- # Get Agentify's own agent interface files (self-describe)
90- npx agentify-cli self-describe -o .
61+ # Custom output directory and project name
62+ npx agentify-cli transform https://api.example.com/openapi.json -o ./output -n my-project
9163```
9264
93- ** Output: **
65+ Example output:
9466
9567```
96- Agentify v0.4.0
68+ Agentify v0.4.1
9769 Agent Interface Compiler
9870
9971 +-- 20 endpoints detected -> SMALL API strategy
@@ -106,80 +78,42 @@ npx agentify-cli self-describe -o .
10678 > Security scan: PASSED
10779```
10880
109- ## Features
81+ ## Tested on Real APIs
11082
111- ** Smart Strategy Selection ** — Automatically chooses the right generation strategy based on API size:
83+ Agentify handles APIs of any size — from 20-endpoint demos to 1000+ endpoint production APIs.
11284
113- | API Size | Endpoints | Strategy | Why |
114- | ----------| ----------- | ----------| -----|
115- | Small | < 30 | Direct mapping | One tool per endpoint, simple and complete |
116- | Medium | 30-100 | Direct mapping (Tool Search planned ) | Detects scale; optimized generation coming soon |
117- | Large | 100+ | Direct mapping (Code Exec planned) | Detects scale; context-optimized generation coming soon |
85+ | API | Endpoints | Domains | tsc | Server starts |
86+ | -----| ----------- | ---------| ----- | ---------------|
87+ | ** Petstore ** (Swagger 2.0) | 20 | 3 | PASS | PASS |
88+ | ** Petstore ** (OpenAPI 3.0 ) | 19 | 3 | PASS | PASS |
89+ | ** GitHub REST API ** | 1,093 | 43 | PASS | PASS |
11890
119- ** Security First** — Every generated artifact passes through:
120- - Input sanitization (blocks eval, exec, Function constructor, require/import injection)
121- - Handlebars template injection prevention
122- - Prompt injection pattern detection
123- - Generated code security scanning
124-
125- ** Production Ready** — Generated MCP servers include:
126- - TypeScript source with full type safety
127- - Dockerfile for containerized deployment
128- - Environment variable configuration (.env.example)
129- - Stdio transport (standard MCP protocol)
130-
131- ## Output Format Status
132-
133- | Format | Status | Description |
134- | --------| --------| -------------|
135- | MCP Server | Available | Full server with tools, handlers, Dockerfile |
136- | CLAUDE.md | Available | Project context for Claude Code |
137- | AGENTS.md | Available | Universal agent instructions (Linux Foundation standard) |
138- | .cursorrules | Available | Cursor IDE agent rules |
139- | Skills | Available | Structured capability file for agent platforms |
140- | llms.txt | Available | LLM-readable condensed documentation |
141- | GEMINI.md | Available | Gemini CLI project context |
142- | A2A Card | Available | Google Agent-to-Agent discovery card |
143- | CLI | Available | Standalone command-line tool (opt-in: ` -f cli ` ) |
91+ The GitHub REST API is one of the largest OpenAPI specs in the wild — 1,093 endpoints across 43 domains (actions, repos, pulls, issues, git, users, orgs, and more). Agentify generates a working MCP server with 1,093 tools, and it compiles and starts without errors.
14492
14593## How It Works
14694
14795```
148- 1. PARSE OpenAPI 3.x / Swagger 2.0 spec (URL or file)
149- |
150- 2. SANITIZE Strip dangerous patterns from all spec fields
151- |
152- 3. ANALYZE Detect domains, auth, scale -> pick strategy
153- |
154- 4. COMPILE Generate AgentifyIR (intermediate representation)
155- |
156- 5. EMIT Run selected emitters (MCP, Skills, Docs, etc.)
157- |
158- 6. SCAN Security scan all generated code
159- |
160- 7. OUTPUT Write files to disk
96+ OpenAPI Spec (URL or file)
97+ |
98+ v
99+ PARSE ──> SANITIZE ──> ANALYZE ──> COMPILE ──> EMIT ──> SCAN ──> OUTPUT
100+ | | | | |
101+ Strip unsafe Detect Build IR Run Security
102+ patterns domains, (typed) emitters scan all
103+ auth, generated
104+ API scale code
161105```
162106
163- ** AgentifyIR** is the canonical intermediate representation — a flat, typed structure that captures everything an emitter needs: product metadata, capabilities (endpoints), domains, auth config, and generation strategy.
164-
165- ## Architecture
107+ Agentify parses your spec into an intermediate representation (** AgentifyIR** ), then runs pluggable emitters to produce each output format. Every generated artifact goes through a security scan before being written to disk.
166108
167- ```
168- agentify/
169- +-- src/
170- | +-- cli.ts # CLI entry point (Commander.js)
171- | +-- parser/ # OpenAPI parsing + input sanitization
172- | +-- generator/ # Pluggable emitters for each format
173- | | +-- templates/ # Handlebars templates
174- | +-- security/ # Input sanitization + output scanning
175- | +-- types.ts # AgentifyIR type definitions
176- +-- templates/ # Generated project templates
177- +-- test/ # Vitest test suite
178- ```
109+ ** Security built in:**
110+ - Input sanitization (blocks ` eval ` , ` exec ` , ` Function ` constructor injection)
111+ - Prompt injection pattern detection
112+ - Generated code scanning
179113
180114## Contributing
181115
182- Agentify welcomes contributions, especially ** new emitters** (output formats) . Each emitter implements a simple interface:
116+ New emitters are welcome . Each one implements a simple interface:
183117
184118``` typescript
185119import type { Emitter , AgentifyIR , EmitterOptions , EmitterResult } from " ../types" ;
@@ -190,41 +124,32 @@ export class MyFormatEmitter implements Emitter {
190124
191125 async emit(ir : AgentifyIR , options : EmitterOptions ): Promise <EmitterResult > {
192126 // Generate output files from the IR
193- return { filesWritten: [... ], warnings: [] };
127+ return { format: this . format , filesWritten: [... ], warnings: [] };
194128 }
195129}
196130```
197131
198- See [ CONTRIBUTING.md] ( CONTRIBUTING.md ) for the full guide.
199-
200- ## Roadmap
201-
202- - [x] ** M0: Foundation** — OpenAPI parser, MCP emitter, security scanner, CLI
203- - [x] ** M1: Multi-Format** — ~~ CLAUDE.md~~ , ~~ AGENTS.md~~ , ~~ Skills~~ , ~~ .cursorrules~~ , ~~ llms.txt~~ , ~~ GEMINI.md~~ , ~~ A2A Card~~
204- - [ ] ** M2: Intelligence** — Capability graph, semantic grouping, context optimization
205- - [ ] ** M3: Self-Serve** — Web UI, one-click deploy, registry integrations
206- - [ ] ** M4: Scale** — Enterprise features, custom emitters, CI/CD integration
132+ ```
133+ agentify/
134+ +-- src/
135+ | +-- cli.ts # CLI entry point
136+ | +-- parser/ # OpenAPI parsing + sanitization
137+ | +-- generator/ # Pluggable emitters for each format
138+ | +-- security/ # Input sanitization + output scanning
139+ | +-- types.ts # AgentifyIR type definitions
140+ +-- test/ # Vitest test suite (136 tests)
141+ ```
207142
208- ## Compared to Alternatives
143+ ## Status
209144
210- | Feature | Agentify | Speakeasy | Stainless | openapi-to-skills |
211- | ---------| ----------| -----------| -----------| -------------------|
212- | MCP Server | Yes | Yes | No | No |
213- | Skills | Yes | CLI only | No | Yes |
214- | CLAUDE.md | Yes | No | No | No |
215- | AGENTS.md | Yes | No | No | No |
216- | .cursorrules | Yes | No | No | No |
217- | llms.txt | Yes | Yes | No | No |
218- | GEMINI.md | Yes | No | No | No |
219- | A2A Card | Yes | No | No | No |
220- | CLI generation | Yes | No | No | No |
221- | Self-as-Skills | Yes | No | No | No |
222- | Context-aware strategy | Yes | No | Yes | No |
223- | Security scanning | Yes | Unknown | Unknown | No |
224- | Open source | MIT | No | No | MIT |
145+ This is early. It works on Swagger 2.0 and OpenAPI 3.x specs, handles auth detection, domain grouping, and API scale analysis. If you try it and something breaks, [ open an issue] ( https://github.com/koriyoshi2041/agentify/issues ) — that helps a lot.
225146
226- ** No existing tool compiles one OpenAPI spec into all agent interface formats.**
147+ - [x] OpenAPI parser, MCP emitter, security scanner, CLI
148+ - [x] 9 output formats: MCP, CLAUDE.md, AGENTS.md, .cursorrules, Skills, llms.txt, GEMINI.md, A2A, CLI
149+ - [ ] Capability graph and semantic grouping
150+ - [ ] Web UI and one-click deploy
151+ - [ ] Custom emitter plugins
227152
228153## License
229154
230- [ MIT] ( LICENSE ) -- Agentify Contributors
155+ [ MIT] ( LICENSE )
0 commit comments