mcpField
A
API Anything

API Anything

本地服务
api-anything-registry.forth-site.workers.dev其他2.7k今天更新

关于 API Anything

API Anything 从网站请求中学习可复用的 HTTP 操作,并提供给 Agent 和脚本调用。它包含共享目录、命令行工具、库及 MCP 接口;请求在本机执行。

主要功能

  1. 01从网站请求学习操作
  2. 02通过 HTTP 调用操作
  3. 03共享并修复目录条目
  4. 04通过命令行、库或 MCP 使用
  5. 05限制写入并保护凭据

适用场景

  1. 01查询没有公开 API 的网站
  2. 02用一个脚本搜索多个网站
  3. 03复用已学习的网站操作
  4. 04监控操作结果的变化

MCP 相关

提供 stdio 和 HTTP 两种 MCP 接入方式,包含 find_sites、call_operation 和 learn_site 等工具。Agent 可通过 MCP 发现、调用和教授网站操作。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"goodnight000-api-anything": {
"command": "npx",
"args": [
"-y",
"api-anything"
],
"env": {
"API_ANYTHING_HOME": "<API_ANYTHING_HOME>",
"API_ANYTHING_BROWSER": "<API_ANYTHING_BROWSER>"
}
}
}
}
启动命令npx -y api-anything
需要配置的环境变量
API_ANYTHING_HOMEDirectory for learned sites, sessions and settings. Defaults to ~/.api-anything.
API_ANYTHING_BROWSERChromium browser used to learn sites and for the browser tier, by name (brave) or path. Defaults to Google Chrome.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmapi-anything0.4.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

README 原文English

来自项目 README

README 暂无中文译文,以下为英文原文;中文介绍见上方。

API Anything. The web, as an API for agents. One agent learns a site's API; every other agent gets it for free.

When an agent needs a website that has no API, it learns one. Every other agent gets it for free.
Learned from the site's own requests, called over plain HTTP, verified and repaired by the agents that use it.

npm Shared catalog: live CI License: MIT Node ≥ 22.13

Quick start · Example · The race · How it works · Use it anywhere · Catalog · Safety · Docs

Goodreads stopped giving out API keys in 2020. Google Flights never had a public API. An agent that needs either one drives a browser: it clicks, waits, reads the screen, and pays for every step in time and tokens. API Anything learns the request the site's own page sends, once, and then calls it over plain HTTP. It shares what it learned, with every cookie and token stripped out, so the next agent gets JSON from one request.

Quick start

npx -y api-anything setup

Setup lists the agents it finds (Claude Code, Codex, Cursor, Claude Desktop, Gemini CLI, VS Code) and asks which to connect the MCP server and the skill to; --agents names them instead, and the always-on Hermes gateway is added only by name. Then it asks whether to help build the shared catalog. setup --local-only keeps everything on this machine. Node 22.13 or newer; no account, no API key. Or tell your coding agent: Set up API Anything for me: https://github.com/goodnight000/api-anything/blob/main/INSTALL.md. What setup changes, and every client

Restart the agent and ask it something like "What does Goodreads rate Piranesi?", or call an operation yourself:

npx -y api-anything call hacker-news search query=sqlite
{"ok":true,"class":"ok","tier":1,"data":[
  {"title":"Hosting SQLite databases on GitHub Pages or any static file hoster", ...}, ...],
 "ms":185}

tier: 1 means one plain HTTP request, with no browser and no account. A failure says what happened (class), why (reason) and what to do next (next).

Who's talking about your project

You shipped something. Is anyone talking about it? Finding out means five search pages, or five different APIs with their own keys, OAuth apps and client libraries. examples/mentions.mjs asks Hacker News, Reddit, YouTube, GitHub and Mastodon at once, from an empty home, with no account:

Demo: 66 mentions of duckdb from Hacker News, YouTube, GitHub and Mastodon in 1.9 s, with Reddit reported as blocked

The core of it is six reads in parallel, each capped at plain HTTP:

import { call } from "api-anything";

const sources = [
  ["hacker-news", "searchByDate", { query: project }],
  ["hacker-news", "searchByDate", { query: project, type: "comment" }],
  ["reddit", "search", { query: project }],
  ["youtube", "search", { q: project, filter: uploaded }],
  ["github", "searchRepos", { q: `${project} created:>${sinceDay}` }],
  ["mastodon", "tagTimeline", { tag: project }],
];
const results = await Promise.all(sources.map(([site, op, args]) => call(site, op, args, { maxTier: 1 })));

Run it from a checkout after npm ci: node examples/mentions.mjs <project>, with --days 30 for a wider window or --json for every link, for a script or a cron job.

On 2026-11-06, five runs from empty homes took 1.8 to 2.0 s each, Node's start included. Every run found the same 65 mentions. YouTube, GitHub, Mastodon and both Hacker News searches answered over plain HTTP. Reddit served a JavaScript challenge every time, and the script reported it as blocked and kept the rest. Transcript and details

The race

Same agent, same prompt, started together. Left: it drives headless Chrome. Right: it calls API Anything's Google Flights operation.

Two agents race on the same Google Flights task: one drives Chrome, one calls API Anything

1.5 to 2× sooner · about half the tokens · the same cost or less · 20 of 20 answers correct

Claude Opus 5.5 in Claude Code, 2026-09-28. Shown at 3× speed with no cuts; the timers show real elapsed time. MP4 · how it was recorded

Median of 5 runs. 1 date: browser 12.9 s and $0.166, API Anything 8.4 s and $0.074. 5 dates: browser 41.6 s and $0.154, API Anything 21.1 s and $0.152. 1.5 to 2 times sooner, about half the tokens, 20 of 20 answers correct. Goodreads, 5 books: browser 182.5 s, API Anything 30.5 s.

On 2026-10-31 the same comparison on two more sites gave medians of 22.3 s against 9.6 s (Netflix episodes) and 31.4 s against 18.1 s (IKEA store addresses), 20 of 20 answers correct. Each is one site, one model and a few runs. Method, raw numbers and limits

How it works

How API Anything works. 1, Learn: the browser loads the page for two example inputs; what changed becomes a slot, and cookies become references. 2, Call: tier 1 sends plain HTTP with Node fetch; if the site blocks that, tier 2 fetches from inside a browser page; as a last resort for reads, tier 3 runs the page and reads its response. Every result carries class, write, retry and nextCall. 3, Repair: when a request drifts, re-learn it, replay it, and save it only if the replay succeeds.
  • Learn. A headless browser loads the page for two example inputs. What changed becomes a parameter, the rest is kept byte for byte, and cookies become references. No LLM is involved.
  • Call. Send the request with Node's fetch. If the site blocks that, fetch from inside a browser page; as a last resort for a read, run the page and read its answer.
  • Repair. When the answer stops fitting, take the version another install repaired, or re-learn and save only after a replay works. A call that can't be repaired returns an error, never someone else's data.

The whole idea in 49 seconds · replay, fallback and repair · design

Use it anywhere

Use it anywhere. MCP over stdio for Claude Code, Codex, Cursor, Gemini CLI, VS Code and Hermes; an HTTP server with REST, an OpenAPI document and MCP; a Python package; the TypeScript library; the CLI. All of them call the same operations on your machine, learned once or pulled from the shared catalog, which reach websites such as Hacker News, YouTube, GitHub, Google Flights and Goodreads over plain HTTP. Calls never go through the catalog.
  • MCP over stdio, for any agent: find_sites, call_operation, learn_site and the other tools, which declare output schemas for clients that check results. Frameworks: Vercel AI SDK, LangChain.js, OpenAI Agents SDK.
  • HTTP: api-anything serve answers REST, publishes an OpenAPI document at /openapi.json, and serves MCP at /mcp. It listens on loopback only and needs a token. docs/SERVE.md
  • Python: pip install "git+https://github.com/goodnight000/api-anything#subdirectory=python" gives a Client that starts the server for you, tools for agent frameworks, and typed code generated from an operation's schema. docs/PYTHON.md
  • TypeScript: import { call } from "api-anything", or api-anything/host for an agent host that only calls installed operations. CLI and library at a glance
  • Watching: --changes reports what was added, removed or changed since the last call (name a watcher with --watch), --max-age answers from a recent result instead of asking the site again, and a site's request budget keeps a cron job at human volume. examples/watch.mjs
  • No install: the catalog lets you try a few public operations (Wikipedia, Open Library, USGS earthquakes, NASA images) from their pages, or with curl: curl 'https://api-anything-registry.forth-site.workers.dev/v1/try/wikipedia/getSummary?title=SQLite'.

Teach it a new site

Over MCP, an agent calls learn_site with a page URL and three values: two to learn from, one to check with. The operation is replayed with no cookies, then shared. From a shell:

api-anything learn 'https://lobste.rs/domains/{domain}' \
  --args domain=github.com --args2 domain=arxiv.org --args3 domain=youtube.com

For pages that need clicks or typing, an agent with the skill proposes operations, waits for your approval, and builds them. One run built Goodreads search, book details, an author's books and reviews in 6.3 minutes for $1.19. Learning, step by step · the Goodreads run · 25 s recording

The shared catalog

The agent internet loop. 1 Ask: an agent needs a website. 2 Find: search the shared catalog. 3 Learn: from the site's own requests, if nobody shared it. 4 Share: cookies and tokens stripped. 5 Verify: other installs' calls vote. 6 Repair: one fix reaches everyone. Like reCAPTCHA, which digitized books from words people typed anyway, API Anything turns the web into APIs from calls agents make anyway.

reCAPTCHA digitized millions of books from words people typed anyway. The catalog does the same for the web with calls agents make anyway. A new operation goes live after installs on 2 other networks call it successfully, and a live one is replaced only when 3 or more networks see it fail. When a site changes, the first agent to repair the operation repairs it for everyone. A site's own MCP server or OpenAPI document shows up in search beside what agents learned.

114 sites and 323 read operations ship with the package, from Hacker News, Reddit, YouTube and GitHub to Google Flights, Goodreads, Airbnb, Amazon and Steam. They cover selected features, not whole sites. Every bundled site · how the catalog works

Safety and what leaves your machine

  • Calls run here, on your machine, network and sessions. The catalog never proxies your calls; a few public operations can be tried from the catalog page.
  • Secrets stay home. A spec holds cookie:name, never the cookie, and a spec carrying a live credential can't be saved. Sessions are encrypted at rest with the OS keychain. login imports a site's cookies from the browser you already use, so there is usually no password to type.
  • Writes are off unless allowed, sent once, refused as duplicate if repeated, and reported applied only when a read finds the result. No write operation is bundled. Every write guard
What leaves your machine

A search sends its words, domain or URL to the catalog, which keeps no search words. With sharing on, operations learned from public pages are shared, and so are repairs and reports (the version, the outcome, the tier and the time; never your arguments or data). An operation learned signed in goes only after you say yes, or once 3 installs on 3 networks learned the identical thing. Background verification of new operations is a separate question, and its default is no. With sharing off, or with --local-only, nothing is shared or reported. In full, with what the gate checks

Limits

It knows only the operations someone taught it, and the catalog is young. An operation that works for others can still fail for you (another region, a block on your network: Reddit challenges plain HTTP from many). There's no CAPTCHA solving; a challenge that doesn't clear is reported as blocked. Read each site's terms: you're responsible for how you use it. All limits

Help build it

Install it and leave sharing on: your agent's ordinary calls verify and repair operations for everyone. Learn a site from the list of domains agents asked for on the catalog's home page. Or add a spec to sites/ by pull request: Contributing has the rules and the dev commands.

Docs

docwhat's in it
Setup for agentsinstall, connect each client, learning, timeouts, troubleshooting
Referencethe CLI and library, results, creating operations, repair, logging in, safety, sites, limits
HTTP server · Pythonapi-anything serve; the Python package
Frameworks · Agent hostsMCP from agent frameworks; the call-only host API
Design · Catalogthe authoritative spec and its reasons; how the catalog promotes, stores and trusts
Benchmark · Demoshow every number here was measured; recorded runs with transcripts and tapes
Contributing · MIT licenseadd a site spec, run the checks

Star History

Star History Chart

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。