使用说明

项目简介

OpenAPI Search 是一个基于 Cloudflare Worker 构建的服务,旨在解决 OpenAPI 规范难以发现和访问的问题。它通过预定义的路径列表扫描目标域名,自动发现并缓存 OpenAPI 规范,为 LLM 智能体提供便捷的 API 访问入口。虽然项目名称包含 "openapi-mcp-server" 的关联信息,但 'openapisearch' 仓库本身并非 MCP 服务器的完整实现。它更侧重于 OpenAPI 规范的检索和代理,可以作为 MCP 生态系统中获取 API 资源的一个组件。

主要功能点

  • OpenAPI 规范发现:自动探测并验证目标域名下常见的 OpenAPI 规范路径。
  • 高效检索:通过预定义的路径列表和缓存机制,快速定位 OpenAPI 规范。
  • 内容协商:支持根据客户端请求的 'Accept' 头返回 JSON 或 Markdown 格式的元数据信息。
  • CORS 支持:允许跨域访问,方便前端应用和 LLM 客户端集成。
  • Cloudflare Worker 部署:基于 Cloudflare Worker 构建,易于部署和扩展。
  • Logo 服务:根据 OpenAPI 规范的服务端点动态获取 Favicon 图标。
  • 元数据视图:提供 API 提供商的元数据视图,方便浏览和选择 API。

安装步骤

本项目是一个 Cloudflare Worker,无需传统安装步骤,只需将其部署到 Cloudflare Workers 平台即可。

  1. 安装 Wrangler CLI:确保已安装 Cloudflare Workers 的 CLI 工具 Wrangler
  2. 配置 Cloudflare 账号:使用 'wrangler login' 命令登录您的 Cloudflare 账号。
  3. 创建 Workers 服务:在 Cloudflare 控制台中创建一个新的 Workers 服务。
  4. 部署代码:将仓库代码上传到 Cloudflare Workers,或使用 'wrangler deploy' 命令部署。

服务器配置

由于 'openapisearch' 不是标准的 MCP 服务器,因此 MCP 客户端不能直接将其作为 MCP 服务器连接。但可以将其作为一个 OpenAPI 资源发现服务,辅助 MCP 客户端获取 OpenAPI 规范。

如果需要将 'openapisearch' 服务集成到 MCP 客户端环境中,您可能需要自行开发适配层,将 'openapisearch' 的 API 转换为 MCP 客户端可以理解的资源访问方式。

以下是一个 假设的、用于描述 'openapisearch' 服务部署信息的 JSON 配置,并非 MCP 客户端的标准服务器配置,仅供参考:

{
  "serverName": "OpenAPI Search Service",
  "description": "Cloudflare Worker for discovering OpenAPI specifications.",
  "baseUrl": "https://your-cloudflare-worker-domain.workers.dev",
  "endpoints": {
    "metadata": "/metaview",
    "openapi": "/openapi/{providerId}",
    "redirect": "/redirect/{providerId}",
    "logo": "/logo/{encodedOpenapiUrl}"
  },
  "notes": "This is NOT a standard MCP server. It provides OpenAPI discovery capabilities. MCP Clients need to interact with it via HTTP requests to the specified endpoints.  Adaptation layer may be needed for MCP integration."
}

配置参数说明 (非 MCP 标准配置,仅供参考):

  • 'serverName': 服务的名称,例如 "OpenAPI Search Service"。
  • 'description': 服务的简短描述。
  • 'baseUrl': Cloudflare Worker 部署后的域名。
  • 'endpoints': 服务提供的不同端点及其路径模板。
    • 'metadata': 获取元数据视图的端点,返回 API 提供商列表。
    • 'openapi': 获取指定 'providerId' 的 OpenAPI 规范的端点。
    • 'redirect': 重定向到指定 'providerId' 的 OpenAPI 规范的端点。
    • 'logo': 获取指定 'encodedOpenapiUrl' 的 Favicon 图标的端点。
  • 'notes': 关于此服务的重要说明,强调它不是标准 MCP 服务器,需要适配才能在 MCP 环境中使用。

请注意: MCP 客户端通常需要配置 'command' 和 'args' 来启动并连接 MCP 服务器进程。由于 'openapisearch' 是 Cloudflare Worker,它以无服务器方式运行,没有需要客户端启动的服务器进程。 因此,上述 JSON 配置中省略了 'command' 和 'args' 字段,并使用 'baseUrl' 和 'endpoints' 来描述如何访问服务提供的 API。

基本使用方法

  1. 访问元数据视图

    • 访问 'https://your-worker-domain.workers.dev/' 或 'https://your-worker-domain.workers.dev/index.json' 获取 JSON 格式的 API 提供商元数据。
    • 访问 'https://your-worker-domain.workers.dev/index.md' 获取 Markdown 格式的 API 提供商元数据。
  2. 获取 OpenAPI 规范

    • 使用 'https://your-worker-domain.workers.dev/openapi/{providerId}' 或 'https://your-worker-domain.workers.dev/redirect/{providerId}' 访问特定 'providerId' 的 OpenAPI 规范。
    • 其中 '{providerId}' 可以是:
      • 预定义的提供商 ID (例如 'npm')
      • 域名 (例如 'api.github.com')
      • URL (例如 'https__raw.githubusercontent.com__APIs-guru__openapi-directory__main__APIs__amazonaws.com__apigateway.amazonaws.com.json'),URL 中的 '/' 和 ':' 等特殊字符需要进行 URL 编码,或使用 '__' 替换 '/'。
  3. 获取 Logo

    • 使用 'https://your-worker-domain.workers.dev/logo/{encodedOpenapiUrl}' 获取指定 OpenAPI URL 的 Favicon 图标,其中 '{encodedOpenapiUrl}' 是 OpenAPI 规范 URL 的 URL 编码版本。

示例:

  • 获取 'npm' 提供商的 OpenAPI 规范: 'https://your-worker-domain.workers.dev/openapi/npm'
  • 获取 'api.github.com' 的 OpenAPI 规范: 'https://your-worker-domain.workers.dev/openapi/api.github.com'
  • 获取 GitHub 上某个 OpenAPI 规范的 Logo: 'https://your-worker-domain.workers.dev/logo/https%3A%2F%2Fraw.githubusercontent.com%2FAPIs-guru%2Fopenapi-directory%2Fmain%2FAPIs%2Famazonaws.com%2Fapigateway.amazonaws.com.json'

总结: 'openapisearch' 提供了一个便捷的方式来发现和访问 OpenAPI 规范,可以作为 LLM 应用和 MCP 生态系统中获取 API 资源的实用工具。但它并非一个可以直接对接 MCP 客户端的标准 MCP 服务器,需要根据实际需求进行适配和集成。

信息

分类

网页与API