Token导航 LogoToken导航

MCP Server · 数据服务

API Agent

将任何API转换为MCP服务器,通过自然语言查询获取结果,支持SQL后处理。

stdio官方级别未说明来源级核验工具 2
API代理自然语言查询PythonAPI集成GraphQL

快速开始

作者 / 组织
agoda-com
提供方
agoda-com
运行时
Docker

工具数量

2

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

273

仓库热度

收录来源

1 个

MCP World

选型结论

API Agent 属于数据服务类 MCP Server,公开资料标注 2 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前要先准备 访问 Token。

分类

数据服务

传输方式

stdio

认证方式

访问 Token

部署方式

公开资料未说明

安装与配置

安装命令

docker run -p 3000:3000 -e OPENAI_API_KEY=your_key api-agent

客户端配置示例

{
  "mcpServers": {
    "api-agent": {
      "command": "docker",
      "args": [
        "run",
        "-p",
        "3000:3000",
        "-e",
        "OPENAI_API_KEY=your_key",
        "api-agent"
      ]
    }
  }
}

按公开安装命令拼出来的示例,字段名和参数以仓库 README 为准;带 YOUR_API_KEY 这类占位符的位置记得换成自己的值。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Docker,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 2 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

API代理

将任何API转换为MCP服务器。用英语查询。获取结果—即使API不能。

指向任何GraphQL或REST API。用自然语言提问。代理获取数据,将其存储在DuckDB中,并运行SQL后处理。排名、筛选、JOIN工作 即使API不支持它们.

是什么让它与众不同

🎯 零配置。 API没有自定义MCP代码。指向GraphQL端点或OpenAPI规范——模式会自动反思。

✨ SQL后处理。 API返回10000个未排序的行?代理商排名前十。没有分组依据?试剂聚集。需要跨端点的JOIN吗?代理组合。

🔒 默认情况下是安全的。 只读。除非明确允许,否则突变被阻止。

🧠 食谱学习。 成功的查询将成为缓存管道。无需LLM推理即可立即重用。

快速开始

1.运行(选择一个):

# Direct run (no clone needed)
OPENAI_API_KEY=your_key uvx --from git+https://github.com/agoda-com/api-agent api-agent

# Or clone & run
git clone https://github.com/agoda-com/api-agent.git && cd api-agent
uv sync && OPENAI_API_KEY=your_key uv run api-agent

# Or Docker
git clone https://github.com/agoda-com/api-agent
docker build -t api-agent .
docker run -p 3000:3000 -e OPENAI_API_KEY=your_key api-agent

2.向任何MCP客户端添加:

{
  "mcpServers": {
    "rickandmorty": {
      "url": "http://localhost:3000/mcp",
      "headers": {
        "X-Target-URL": "https://rickandmortyapi.com/graphql",
        "X-API-Type": "graphql"
      }
    }
  }
}

3.提问:

  • *“显示来自地球的角色,只显示活着的角色,按物种分组”*
  • *“按剧集数排名前10的角色”*
  • *“按物种比较活的和死的,只有具有10+个字符的物种”*

就是这样。代理内省模式,生成查询,运行SQL后处理。

更多示例

REST API(Petstore-OpenAPI 3.x):

{
  "mcpServers": {
    "petstore": {
      "url": "http://localhost:3000/mcp",
      "headers": {
        "X-Target-URL": "https://petstore3.swagger.io/api/v3/openapi.json",
        "X-API-Type": "rest"
      }
    }
  }
}

REST API(Petstore-Swagger 2.0):

{
  "mcpServers": {
    "petstore": {
      "url": "http://localhost:3000/mcp",
      "headers": {
        "X-Target-URL": "https://petstore.swagger.io/v2/swagger.json",
        "X-API-Type": "rest"
      }
    }
  }
}

您自己的带有auth的API:

{
  "mcpServers": {
    "myapi": {
      "url": "http://localhost:3000/mcp",
      "headers": {
        "X-Target-URL": "https://api.example.com/graphql",
        "X-API-Type": "graphql",
        "X-Target-Headers": "{\"Authorization\": \"Bearer YOUR_TOKEN\"}"
      }
    }
  }
}

______________________________________________________________________

参考

标头

标题必填描述
X-Target-URL是GraphQL端点或OpenAPI/Swagger规范URL(3.x和2.0)
X-API-Type是的graphql 或 rest
X-Target-Headers否JSON身份验证标头,例如。 {"Authorization": "Bearer xxx"}
X-API-Name否覆盖工具名称前缀(默认:自动生成)
X-Base-URL否覆盖REST API调用的基本URL
X-Allow-Unsafe-Paths否包含JSON数组的标头字符串 fnmatch 地球仪(*, ?)用于POST/PUT/DELETE/PATCH
X-Poll-Paths否包含JSON轮询路径模式数组的标头字符串(启用轮询工具)
X-Include-Result否包括完全无上限 result 输出字段
标题值示例

X-Allow-Unsafe-Paths 和 X-Poll-Paths 使用相同的转义格式:JSON数组编码为头字符串。

MCP配置(JSON):

{
  "headers": {
    "X-Allow-Unsafe-Paths": "[\"/search\", \"/api/*/query\", \"/jobs/*/cancel\"]",
    "X-Poll-Paths": "[\"/search\", \"/trips/*/status\"]"
  }
}

X-Allow-Unsafe-Paths 模式示例:

  • "/search" 精确路径
  • "/api/*/query" 一个通配符段
  • "/jobs/*" 以下任何后缀 /jobs/

X-Poll-Paths 模式示例:

  • "/search" 精确轮询路径
  • "/trips/*/status" 通配符轮询路径

X-Poll-Paths 启用轮询指导/工具; X-Allow-Unsafe-Paths 控制不安全的方法。

逃避快速检查(两个标题相同):

  • 错误: "X-Allow-Unsafe-Paths": "["/search"]"
  • 正确的 "X-Allow-Unsafe-Paths": "[\"/search\"]"

MCP工具

核心工具 (每API 2个):

工具输入输出
{prefix}_query自然语言问题{ok, data, queries/api_calls}
{prefix}_executeGraphQL: query, variables /休息: method, path,参数{ok, data}

从URL自动生成的工具名称(例如。, example_query).覆盖 X-API-Name.

配方工具 (动态,随着食谱的学习而添加):

工具输入输出
r_{recipe_slug}平面配方特定参数, return_directly (bool)CSV或 {ok, data, executed_queries/calls}

缓存管道,无LLM推理。查询成功后出现。通过以下方式通知客户 tools/list_changed.

配置

变量必填默认描述
OPENAI_API_KEY是-OpenAI API密钥(或自定义LLM密钥)
OPENAI_BASE_URL否https://api.openai.com/v1自定义LLM端点
API_AGENT_MODEL_NAME否gpt-5.2型号(例如gpt-5.2)
API_AGENT_PORT无3000服务器端口
API_AGENT_ENABLE_RECIPES否正确启用配方学习和缓存
API_AGENT_RECIPE_CACHE_SIZE否64最大缓存食谱(LRU驱逐)
OTEL_EXPORTER_OTLP_ENDPOINT否-OpenTetry跟踪端点

______________________________________________________________________

运作原理

sequenceDiagram
    participant U as User
    participant M as MCP Server
    participant A as Agent
    participant G as Target API

    U->>M: Question + Headers
    M->>G: Schema introspection
    G-->>M: Schema
    M->>A: Schema + question
    A->>G: API call
    G-->>A: Data → stored in DuckDB
    A->>A: SQL post-processing
    A-->>M: Summary
    M-->>U: {ok, data, queries[]}

建筑

flowchart TB
    subgraph Client["MCP Client"]
        H["Headers: X-Target-URL, X-API-Type"]
    end

    subgraph MCP["MCP Server (FastMCP)"]
        Q["{prefix}_query"]
        E["{prefix}_execute"]
        R["r_{recipe} (dynamic)"]
    end

    subgraph Agent["Agents (OpenAI Agents SDK)"]
        GA["GraphQL Agent"]
        RA["REST Agent"]
    end

    subgraph Exec["Executors"]
        HTTP["HTTP Client"]
        Duck["DuckDB"]
    end

    Client -->|NL + headers| MCP
    Q -->|graphql| GA
    Q -->|rest| RA
    E --> HTTP
    R -->|"no LLM"| HTTP
    R --> Duck
    GA --> HTTP
    RA --> HTTP
    GA --> Duck
    RA --> Duck
    HTTP --> API[Target API]

______________________________________________________________________

食谱学习

Agent从成功的查询中学习可重用的模式:

  1. 执行 -API通过LLM推理调用+SQL
  2. 提取物 --LLM将跟踪转换为参数化模板
  3. 缓存 -存储由(API、架构哈希)键控的配方
  4. 暴露 --配方成为MCP工具(r_{name})无需LLM即可调用
flowchart LR
    subgraph First["First Query via {prefix}_query"]
        Q1["'Top 5 users by age'"]
        A1["Agent reasons"]
        E1["API + SQL"]
        R1["Recipe extracted"]
    end

    subgraph Tools["MCP Tools"]
        T["r_get_top_users
params: {limit}"]
    end

    subgraph Reuse["Direct Call"]
        Q2["r_get_top_users({limit: 10})"]
        X["Execute directly"]
    end

    Q1 --> A1 --> E1 --> R1 --> T
    Q2 --> T --> X

配方会在架构更改时自动过期。禁用 API_AGENT_ENABLE_RECIPES=false.

______________________________________________________________________

发展

git clone https://github.com/agoda-com/api-agent.git
cd api-agent
uv sync --group dev
uv run pytest tests/ -v      # Tests
uv run ruff check api_agent/  # Lint
uv run ty check               # Type check

可观测性

集 OTEL_EXPORTER_OTLP_ENDPOINT 以启用OpenTetry跟踪。与Jaeger、Zipkin、Grafana Tempo、Arize Phoenix合作。

工具与能力

工具数量

2

资源数量

0

提示词数量

0

能力标签

API代理Python本地部署自然语言查询SQL处理GraphQLRESTAPI

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

用自然语言查库

不用手写 SQL,直接问数据,让模型组织查询语句。

数据巡检

定期拉指标、做对比,把异常项整理成一段说明。

打通业务数据

把数据库、数仓和接口接进同一个上下文,减少导出再上传。

选择建议

值得选的地方

  • 只提供 2 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Docker,换机器要重新装一遍。
  • 需要自备访问 Token,没有凭据没法直接试。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。

更适合

  • 需要在数据服务场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到访问 Token的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
API Agent

MCP World · 本页

2stdio有1 个2026-05-17
Memory 9d25f64e

MCP World

9未说明未标注1 个2026-05-17
Prisma MCP Server

MCP World

0stdio有3 个2026-05-17
Astr Bot

MCP World

0stdio有1 个2026-05-17
Getzep MCP

MCP World

9stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

API Agent 怎么安装?

公开资料给出的安装命令是 docker run -p 3000:3000 -e OPENAI_API_KEY=your_key api-agent,运行环境为 Docker。装完后按客户端要求写进 MCP 配置,重启客户端生效。

API Agent 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Docker;保存后完全退出客户端再打开,配置才会生效。

API Agent 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

API Agent 需要 API Key 吗?

公开资料标注的认证方式是访问 Token,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

API Agent 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP