工具
OpenAPI 转 Agent 工具定义
粘贴 OpenAPI / Swagger 规范(JSON 或 YAML),生成 OpenAI、Anthropic、MCP、Gemini 可直接使用的工具定义——$ref 自动展开,参数自动扁平化。
输入
处理地点:规范文本提交到本站转换接口,用完即弃,不发往第三方、不落库。请勿粘贴含密钥或凭证的文件。
转换后这里给出:规范摘要、逐接口告警与各厂商工具定义。规范只发到本站转换接口,用完即弃。
生成的工具定义
| 工具名 | 接口 | 参数 | 说明 |
|---|
转换规则
每个操作(方法 × 路径)生成一个工具,默认用 operationId 命名——规范化成所有厂商都接受的 a-zA-Z0-9_- 字符集,去重并截断到 64 字符。没有 operationId 的操作按方法和路径生成名字,如 get_users_id。描述保留你的 summary,并附上原始的 METHOD path 行,让模型看到真实端点。
内部 $ref 指针会原地展开,因为模型没法顺着引用去查;递归引用和外部 URL 会截断为占位符并给出警告。path、query 参数保留原名,header 参数在描述里标注来源,requestBody 的属性合并进同一个输入对象——思路和 fastapi_mcp 等开源转换器一致,但避开了它的已知坑:非对象请求体包进 body 字段而不是被丢掉,重名参数加 __body 后缀而不是互相覆盖。
OpenAPI 3.0 的 nullable 会转成真正的 JSON Schema null 联合,入参里的 readOnly 字段被移除,allOf 组合会被合并——规则与 openapi-schema-to-json-schema 相同。Gemini 输出投影到它文档化的 Schema 子集(nullable 标志位、anyOf,不支持 oneOf);OpenAI strict 模式则把所有属性变为必填并补 null 联合,同时加上 additionalProperties: false。
常见问题
支持哪些 OpenAPI 版本和文件格式?
JSON 或 YAML 均可,兼容 OpenAPI 3.0/3.1 与 Swagger 2.0。内部 $ref(components/schemas、definitions)会原地展开;指向外部文件或 URL 的引用无法离线抓取,会替换成占位 object 并给出警告。
为什么同一份工具在不同厂商下长得不一样?
各家 API 的包装方式不同:OpenAI 把参数放在 function.parameters 下(Responses API 是扁平的 type:function 对象),Anthropic 用 input_schema,MCP 用 inputSchema,Gemini 只认 JSON Schema 的一个子集——nullable 保留为标志位,不支持的字段会被删掉并给出警告。
路径参数和请求体会转去哪里?
所有输入会扁平化进同一个 object schema:path、query 参数保留原名(header 参数在描述里标注来源),请求体属性直接合并进来。如果请求体字段与参数重名,会改名成 name__body 而不是静默互相覆盖——这正是某些开源转换器真实的 bug。
我的规范文件会被上传或保存吗?
规范文本只发到本站自己的转换接口,在内存中完成转换后即丢弃,不落库不写日志。页面不会调用任何第三方服务。