OpenAPI 代理接口生成工具

Agentify 是一款将 OpenAPI 规范转换为多种代理接口格式的工具,支持生成 MCP 服务器、CLAUDE.md、AGENTS.md 等 9 种格式,适用于 AI 代理和 API 工具开发。

  • by MonadWorks
  • TypeScript
  • 本地部署
  • 42 星标
  • 更新于
在 GitHub 查看 koriyoshi2041/agentify

使用说明

Agentify

OpenAPI in. Agent interfaces out.



你的API有新用户,它还不知道-人工智能代理。

克劳德代码读取 CLAUDE.md.光标读取 .cursorrules.Codex和Copilot阅读 AGENTS.md.如果你想把API作为一个工具调用,你需要一个MCP服务器。这是许多需要编写的文件,并与您的API规范保持同步。

Agentify读取您的OpenAPI规范并将其全部写入。

npx agentify-cli transform https://petstore.swagger.io/v2/swagger.json

所得

一个命令最多可生成 9种格式 从单一的OpenAPI规范:

格式 由使用
MCP 服务器 Claude、ChatGPT、Copilot(带Dockerfile)
CLAUDE.md 克劳德代码
代理商.md Codex、Copilot、Cursor、Gemini CLI
.游标 光标IDE
技能 代理平台
llms.txt LLM搜索引擎
双子座.md Gemini CLI
A2A卡 Google代理到代理协议
命令行界面 一个独立的命令行工具,可以进行真正的API调用

快速开始

# Transform any OpenAPI spec (Swagger 2.0 or OpenAPI 3.x)
npx agentify-cli transform https://petstore.swagger.io/v2/swagger.json

# Pick specific formats
npx agentify-cli transform ./my-api.yaml -f mcp claude.md agents.md

# Generate a standalone CLI tool
npx agentify-cli transform ./my-api.yaml -f cli -o my-api-cli

# Custom output directory and project name
npx agentify-cli transform https://api.example.com/openapi.json -o ./output -n my-project

输出示例:

  Agentify v0.4.1
  Agent Interface Compiler

  +-- 20 endpoints detected -> SMALL API strategy
  +-- 3 domains identified (pet, store, user)
  +-- Auth: apiKey (SWAGGER_PETSTORE_API_KEY)
  +-- Strategy: Direct tool mapping — one tool per endpoint

  > Generated mcp + claude.md + agents.md + cursorrules + llms.txt + gemini.md + skills + a2a (15 files)
  > Output: ./swagger-petstore-mcp-server
  > Security scan: PASSED

在真实API上测试

Agentify处理任何大小的API,从13个端点应用程序到1000多个端点平台。

API 端点 域 类型脚本 服务器启动
概念 13 5 通过 通过
宠物店 (Swagger 2.0) 20 3 通过 通过
httpbin (不符合规范) 73 11 PASS PASS
Slack Web API 174 55 通过 通过
条纹 452 1 通过 通过
GitHub REST API 1093 43 通过 通过

每个生成的MCP服务器编译时都没有TypeScript错误,并立即启动。不符合规范的规范(如httpbin)会自动标准化并发出警告,而不是被拒绝。GitHub REST API-跨越43个域的1093个端点-产生了一个具有1093个工具的工作服务器。

运作原理

OpenAPI Spec (URL or file)
    |
    v
  PARSE ──> SANITIZE ──> ANALYZE ──> COMPILE ──> EMIT ──> SCAN ──> OUTPUT
              |              |           |          |        |
          Strip unsafe    Detect     Build IR    Run      Security
          patterns        domains,   (typed)     emitters  scan all
                          auth,                            generated
                          API scale                        code

Agentify将您的规范解析为中间表示(代理机构IR),然后运行可插拔发射器以产生每种输出格式。每个生成的工件在写入磁盘之前都会经过安全扫描。

内置安全:

  • 输入净化(块 eval, exec, Function 构造函数注入)
  • 快速注射模式检测
  • 生成代码扫描

贡献

欢迎新的排放者。每个都实现了一个简单的接口:

import type { Emitter, AgentifyIR, EmitterOptions, EmitterResult } from "../types";

export class MyFormatEmitter implements Emitter {
  readonly name = "my-format";
  readonly format = "my-format";

  async emit(ir: AgentifyIR, options: EmitterOptions): Promise<EmitterResult> {
    // Generate output files from the IR
    return { format: this.format, filesWritten: [...], warnings: [] };
  }
}
agentify/
+-- src/
|   +-- cli.ts              # CLI entry point
|   +-- parser/             # OpenAPI parsing + sanitization
|   +-- generator/          # Pluggable emitters for each format
|   +-- security/           # Input sanitization + output scanning
|   +-- types.ts            # AgentifyIR type definitions
+-- test/                   # Vitest test suite (136 tests)

状态

现在还早。它适用于Swagger 2.0和OpenAPI 3.x规范,处理身份验证检测、域分组和API规模分析。如果你尝试一下,有什么东西坏了, 打开一个问题 --这有很大帮助。

  • [x] OpenAPI解析器、MCP发射器、安全扫描器、CLI
  • [x] 9种输出格式:MCP、CLAUDE.md、AGENTS.md、.cursorules、Skills、llms.txt、GEMINI.md、A2A、CLI
  • []能力图和语义分组
  • []Web UI和一键部署
  • []自定义发射器插件

许可证

麻省理工学院