返回市场
卡通检索器

卡通检索器

作者:productdevbook16 星标更新:2025-11-04

项目介绍

SuFetch 标志

SuFetch

<p> <a href="https://www.npmjs.com/package/sufetch"><img src="https://img.shields.io/npm/v/sufetch.svg?style=flat&colorA=18181B&colorB=28CF8D" alt="版本"></a> <a href="https://www.npmjs.com/package/sufetch"><img src="https://img.shields.io/npm/dm/sufetch.svg?style=flat&colorA=18181B&colorB=28CF8D" alt="下载量"></a> <a href="https://github.com/productdevbook/sufetch/blob/main/LICENSE"><img src="https://img.shields.io/github/license/productdevbook/sufetch.svg?style=flat&colorA=18181B&colorB=28CF8D" alt="许可证"></a> <a href="https://www.typescriptlang.org/"><img src="https://img.shields.io/badge/TypeScript-5.7-18181B?style=flat&logo=typescript&colorB=3178C6" alt="TypeScript"></a> <a href="https://github.com/productdevbook/sufetch"><img src="https://img.shields.io/badge/MCP%20服务器-18181B?style=flat&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTIgMkw0IDdWMTdMMTIgMjJMMjAgMTdWN0wxMiAyWiIgc3Ryb2tlPSIjRkZGIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48L3N2Zz4=&colorB=28CF8D" alt="MCP 服务器"></a> </p>

使用 MCP 服务器进行 AI 驱动的 API 探索的类型安全的 OpenAPI 客户端

目录


SuFetch 是什么?

SuFetch 结合了两个强大的工具:

  1. 类型安全的 API 客户端 - 从 OpenAPI 规范生成完全类型的 TypeScript 客户端
  2. MCP 服务器 - 让 AI 助手(如 Claude)探索您的 API 并生成代码

使用 apiful 构建,用于类型安全的 OpenAPI 客户端。

特性

  • 完全类型安全 - 所有 API 调用的自动完成和类型检查
  • 🤖 MCP 集成 - AI 助手可以探索并为您的 API 生成代码
  • 🔄 自动发现 - 自动服务检测和类型生成
  • 🛠️ 现代堆栈 - TypeScript 5.7、ESNext、严格模式
  • 🧪 经过充分测试 - 76+ 测试,覆盖率超过 60%

安装

使用 API 客户端

# npm
npm install sufetch

# pnpm
pnpm add sufetch

# yarn
yarn add sufetch

对于 MCP 服务器(全局)

# 全局安装
npm install -g sufetch

# 验证安装
sufetch-mcp --version

开发

git clone https://github.com/productdevbook/sufetch.git
cd sufetch
pnpm install
pnpm build

快速开始

使用类型安全的 API 客户端

import { createClient, cloud } from 'sufetch/hetzner'

// 创建一个类型化的客户端
const client = createClient({
  baseURL: 'https://api.hetzner.cloud/v1',
  headers: {
    'Authorization': 'Bearer your-api-token'
  }
}).with(cloud)

// 完全类型化的请求和响应
const servers = await client('/servers', {
  method: 'GET'  // ✅ 类型检查
})

// TypeScript 知道响应类型
console.log(servers.servers)  // ✅ 自动完成工作

参见 支持的 API 获取所有可用的服务。

高级类型安全的类型助手

从端点中提取特定类型以实现最大类型安全性:

import type { HetznerCloud } from 'sufetch/hetzner'

// 提取请求体类型
type CreateServerBody = HetznerCloud<'/servers', 'post'>['request']

// 提取响应类型
type GetServerResponse = HetznerCloud<'/servers/{id}', 'get'>['response']

// 提取查询参数
type ListServersQuery = HetznerCloud<'/servers', 'get'>['query']

// 提取路径参数
type ServerPathParams = HetznerCloud<'/servers/{id}', 'get'>['path']

// 在函数中使用以确保类型安全
function processServer(server: GetServerResponse) {
  console.log(server.server.id)    // ✅ 完整的自动完成
  console.log(server.server.name)  // ✅ 类型检查
}

function createServer(body: CreateServerBody) {
  // TypeScript 强制正确的结构
  return client('/servers', {
    method: 'POST',
    body  // ✅ 类型安全
  })
}

可用属性:

  • ['request'] - 请求体类型
  • ['response'] - 成功响应(200/201)
  • ['query'] - 查询参数
  • ['path'] - 路径参数
  • ['responses'][状态码] - 特定状态码响应

适用于所有 API:HetznerCloudDigitalOceanOryKratosOryHydra

使用 AI 助手(MCP)

参见下面的 MCP 服务器设置 部分。

支持的 API

SuFetch 当前包括:

API描述端点导入
DigitalOcean完整的云平台 API200+sufetch/digitalocean
Hetzner Cloud云基础设施管理100+sufetch/hetzner
Ory Kratos身份与用户管理50+sufetch/ory
Ory HydraOAuth 2.0 & OpenID Connect40+sufetch/ory

想添加更多? 参见 添加新 API

MCP 服务器设置

快速设置

1. 安装(选择一种):

npm install -g sufetch  # 全局
npx sufetch-mcp         # 不需要安装

2. 配置:

<details> <summary><b>Claude Desktop</b>(点击展开)</summary>

编辑配置文件:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "sufetch": {
      "command": "sufetch-mcp"
    }
  }
}

重启 Claude Desktop。

</details> <details> <summary><b>Claude Code CLI</b>(点击展开)</summary>
claude mcp add --transport stdio --scope project sufetch -- sufetch-mcp

或者创建 .mcp.json

{
  "mcpServers": {
    "sufetch": {
      "command": "sufetch-mcp"
    }
  }
}
</details>

3. 测试: 让 Claude:“使用 sufetch 列出可用的 API”

可用的 MCP 工具

工具描述
list_apis列出所有可用的 API
get_api_info获取 API 元数据
search_endpoints按路径/方法/描述搜索
get_endpoint_details获取完整的端点规格
get_schema_details获取数据模式
generate_code_example生成 TypeScript 代码
get_quickstart获取 API 快速入门指南

添加新 API

<details> <summary>点击了解如何添加您自己的 OpenAPI 规范</summary>
  1. 创建目录:mkdir -p openapi-specs/myapi
  2. 添加您的 myapi.json OpenAPI 规范
  3. 复制 openapi-specs/ory/ 中的 apiful.config.tsindex.ts 作为模板
  4. 运行 pnpm build

完成!您的 API 现在可以通过 sufetch/myapi 和 MCP 服务器访问。

参见 CLAUDE.md 获取详细说明。

</details>

开发

pnpm install  # 安装
pnpm build    # 构建
pnpm test     # 测试
pnpm lint:fix # 修复代码风格

参见 CLAUDE.md 获取架构、构建流水线和贡献指南。

故障排除

<details> <summary>MCP 服务器未显示?</summary>
# 测试服务器是否正常工作
sufetch-mcp  # 应输出:"SuFetch MCP 服务器正在通过 stdio 运行"

# 检查配置
claude mcp list  # 对于 Claude Code
cat .mcp.json    # 检查文件是否存在

# 重启 Claude Desktop(如果使用桌面版)
</details> <details> <summary>构建问题?</summary>
rm -rf node_modules pnpm-lock.yaml dist
pnpm install && pnpm build
</details>

仍然卡住了? 打开一个问题,附上您的 Node 版本和错误信息。

贡献

欢迎贡献!参见 CONTRIBUTING.md

git clone https://github.com/productdevbook/sufetch.git
cd sufetch
pnpm install && pnpm build
# 进行更改,运行 `pnpm test && pnpm lint:fix`

链接

许可证

MIT © 2025


使用 apiful 构建 · MCP