OpenAPI转AI工具转换器

动态将OpenAPI规范转换为AI代理工具,无需代码生成。

  • by CahidArda
  • TypeScript
  • 本地部署
  • 18 星标
  • 更新于
在 GitHub 查看 CahidArda/spec2tools

使用说明

Spec2工具

在运行时将OpenAPI规范动态转换为AI代理工具,无需生成代码。

包裹

此monorepo包含四个包:

软件包 说明 安装
@spec2工具/核心 OpenAPI解析和身份验证的核心实用程序 npm install @spec2tools/core
@spec2tools/sdk 根据OpenAPI规范创建AI SDK工具 npm install @spec2tools/sdk
@spec2tools/cli 用于与基于OpenAPI的AI工具交互的CLI npx @spec2tools/cli
@spec2tools/sdio-mcp MCP服务器通过stdio将OpenAPI端点作为工具公开 npx @spec2tools/stdio-mcp

快速开始

使用SDK

import { createTools } from '@spec2tools/sdk';
import { generateText, stepCountIs } from 'ai';
import { openai } from '@ai-sdk/openai';

const tools = await createTools({ spec: './openapi.yaml' });

const result = await generateText({
  model: openai('gpt-4o'),
  tools,
  prompt: 'List all users',
  stopWhen: stepCountIs(3)
});

console.log(result.text);

使用CLI

# Set your OpenAI API key
export OPENAI_API_KEY=your-api-key

# Start the agent with an OpenAPI spec
npx @spec2tools/cli start --spec https://api.example.com/openapi.json

用作MCP服务器

# Add to Claude Code (or any MCP client)
claude mcp add --transport stdio my-api \
  -- npx @spec2tools/stdio-mcp ./path/to/openapi.yaml

代码模式

将所有API端点折叠为2个工具(search + execute),将输入令牌使用量减少约99.9%:

# MCP server with code mode
claude mcp add --transport stdio my-api \
  -- npx @spec2tools/stdio-mcp ./openapi.yaml --code-mode
// SDK with code mode
const tools = await createTools({
  spec: './openapi.yaml',
  codeMode: true,
});

您还可以将任何现有的AI SDK工具转换为代码模式:

import { toCodeModeTools } from '@spec2tools/core';

const codeModeTools = toCodeModeTools(existingTools);

论文

你有一台服务器。你有一个OpenAPI规范。现在,随着MCP的大肆宣传,你被告知需要构建 另一个 server-an MCP server-just以便AI代理可以调用您的API。您可以查找:定义工具,维护处理程序,使其与实际的API保持同步。但是等等。..您已经在OpenAPI中描述了您的API。为什么我们需要向代理人描述两次?

Spec2Tools是另一种选择。 它读取您的OpenAPI规范,并将端点作为工具公开——无需代码生成,也无需维护负担。直接与AI SDK一起使用,或从现有规范中立即启动MCP服务器。

发展

# Clone the repo
git clone https://github.com/CahidArda/spec2tools.git
cd spec2tools

# Install dependencies
pnpm install

# Build all packages
pnpm build

许可证

麻省理工学院