API Anything について
API Anythingは、Webサイトのリクエストから再利用可能なHTTP操作を学習し、エージェントやスクリプトに提供します。共有カタログ、CLI、ライブラリ、MCPインターフェースを備え、呼び出しはローカルで実行されます。
主な機能
- 01サイトのリクエストから操作を学習
- 02HTTP経由で操作を呼び出し
- 03カタログ項目の共有と修復
- 04CLI、ライブラリ、MCPで利用
- 05書き込み制御と認証情報の保護
活用シーン
- 01公開APIのないサイトを検索
- 02複数サイトを1つのスクリプトで検索
- 03学習済みのサイト操作を再利用
- 04操作結果の変化を監視
MCP 対応
stdioとHTTPでMCPを提供し、find_sites、call_operation、learn_siteなどのツールを公開します。エージェントはMCP経由でサイト操作の検索、実行、学習ができます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y api-anythingAPI_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 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
API のないウェブサイトが必要になったエージェントは、API を学習します。ほかのすべてのエージェントは無料で利用できます。
サイト自身のリクエストから学習し、通常の HTTP で呼び出し、利用するエージェントが検証して修復します。
Goodreads は 2020 年に API キーの発行を停止しました。Google Flights には、公開 API がそもそもありません。どちらかを必要とするエージェントは、ブラウザーを操作します。クリックし、待ち、画面を読み取るため、各手順で時間とトークンを消費します。API Anything は、サイト自身のページが送信するリクエストを一度学習し、通常の HTTP で呼び出します。学習した内容は、すべての Cookie とトークンを取り除いて共有されるので、次のエージェントは 1 回のリクエストで JSON を取得できます。
クイックスタート
npx -y api-anything setup
セットアップでは、検出したエージェント(Claude Code、Codex、Cursor、Claude Desktop、Gemini CLI、VS Code)が一覧表示され、MCP サーバーとスキルをどれに接続するか尋ねられます。代わりに --agents でエージェントを指定することもできます。常時稼働する Hermes ゲートウェイは名前で指定した場合にのみ追加されます。次に、共有カタログの構築を支援するかどうか尋ねられます。setup --local-only を実行すると、すべてがこのマシン内にとどまります。Node 22.13 以降が必要です。アカウントも API キーも不要です。または、コーディングエージェントに次のように伝えてください。*API Anything をセットアップしてください:https://github.com/goodnight000/api-anything/blob/main/INSTALL.md*。
セットアップで変更される内容と、すべてのクライアント
エージェントを再起動し、"Goodreads で Piranesi は何点ですか?" のように尋ねるか、自分で操作を呼び出します。
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 は、ブラウザーもアカウントも使わず、通常の HTTP リクエスト 1 回で済むことを意味します。失敗した場合は、何が起きたか(class)、その理由(reason)、次に何をすべきか(next)が示されます。
あなたのプロジェクトについて話している人は?
何かをリリースしたとしましょう。誰かがそれについて話しているでしょうか?それを調べるには、5 つの検索ページを見るか、それぞれ独自のキー、OAuth アプリ、クライアントライブラリを持つ 5 つの異なる API を使う必要があります。
examples/mentions.mjs は、アカウントを持たない空のホームディレクトリから、Hacker News、Reddit、YouTube、GitHub、Mastodon に一度に問い合わせます。
その中核は、通常の HTTP に限定した 6 件の読み取りを並行して行うことです。
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 })));
npm ci の実行後、チェックアウトしたリポジトリから node examples/mentions.mjs <project> で実行できます。--days 30 を指定すると対象期間が広がり、--json を指定するとスクリプトや cron ジョブ向けにすべてのリンクが出力されます。
2026-11-06 に、空のホームディレクトリから 5 回実行したところ、Node の起動時間も含めて毎回 1.8〜2.0 秒でした。どの実行でも、同じ 65 件の言及が見つかりました。YouTube、GitHub、Mastodon、Hacker News の 2 つの検索はいずれも通常の HTTP で応答しました。Reddit は毎回 JavaScript チャレンジを返しましたが、スクリプトはそれを blocked と報告し、ほかの結果はそのまま処理しました。トランスクリプトと詳細
競争
同じエージェント、同じプロンプトを同時に開始します。左:ヘッドレス Chrome を操作します。右:API Anything の Google Flights 操作を呼び出します。
1.5~2倍早く完了 · トークンは約半分 · コストは同等以下 · 20件中20件の回答が正解
Claude Code の Claude Opus 5.5、2026-09-28。カットなしで3倍速で表示しています。タイマーは実際の経過時間を示しています。MP4 · 録画方法
2026-10-31には、さらに2つのサイトで同じ比較を行い、中央値は22.3秒対9.6秒(Netflix のエピソード)と31.4秒対18.1秒(IKEA の店舗住所)で、20件中20件の回答が正解でした。それぞれ1つのサイト、1つのモデル、数回の実行による結果です。方法、実測値、制限事項
仕組み
- 学習。 ヘッドレスブラウザーが2つの入力例でページを読み込みます。変化した部分はパラメーターになり、それ以外はバイト単位でそのまま保持され、Cookie は参照になります。LLM は関与しません。
- 呼び出し。 Node の
fetchでリクエストを送信します。サイトにブロックされた場合は、ブラウザーのページ内から取得します。読み取りの最後の手段として、ページを実行して回答を読み取ります。 - 修復。 回答が合わなくなった場合は、別のインストールで修復されたバージョンを使うか、再学習して、再実行が成功した場合にのみ保存します。修復できない呼び出しは、他人のデータではなくエラーを返します。
49秒でわかる全体像 · 再実行、フォールバック、修復 · 設計
どこでも使えます
- stdio経由のMCP:あらゆるエージェントで使えます。
find_sites、call_operation、learn_site、その他のツールを利用できます。結果を検証するクライアント向けに、出力スキーマを宣言します。フレームワーク:Vercel AI SDK、LangChain.js、OpenAI Agents SDK。 - HTTP:
api-anything serveはRESTに応答し、/openapi.jsonでOpenAPIドキュメントを公開し、/mcpでMCPを提供します。ループバックでのみリッスンし、トークンが必要です。ドキュメント - Python:
pip install "git+https://github.com/goodnight000/api-anything#subdirectory=python"を実行すると、サーバーを起動するClient、エージェントフレームワーク向けのツール、操作のスキーマから生成された型付きコードを利用できます。ドキュメント - TypeScript:
import { call } from "api-anything"を使うか、インストール済みの操作のみを呼び出すエージェントホストにはapi-anything/hostを使います。CLIとライブラリの概要 - 監視:
--changesは前回の呼び出し以降に追加、削除、変更された内容を報告します(--watchで監視名を指定します)。--max-ageはサイトに再度問い合わせず、直近の結果を返します。また、サイトごとのリクエスト予算により、cronジョブを人間の利用頻度に保てます。examples/watch.mjs - インストール不要:カタログでは、各ページからいくつかの公開操作(Wikipedia、Open Library、USGSの地震情報、NASAの画像)を試せます。curlでも試せます:
curl 'https://api-anything-registry.forth-site.workers.dev/v1/try/wikipedia/getSummary?title=SQLite'。
新しいサイトを学習させる
MCP経由で、エージェントはページのURLと3つの値(学習用に2つ、確認用に1つ)を指定してlearn_siteを呼び出します。操作はCookieなしで再生され、その後共有されます。シェルから実行する場合:
api-anything learn 'https://lobste.rs/domains/{domain}' \
--args domain=github.com --args2 domain=arxiv.org --args3 domain=youtube.com
クリックや入力が必要なページでは、スキルを持つエージェントが操作を提案し、承認を待ってから構築します。ある実行では、Goodreadsの検索、書籍の詳細、著者の書籍、レビューを6.3分、$1.19で構築しました。 学習の手順 · Goodreadsでの実行 · 25秒の録画
共有カタログ
reCAPTCHA は、人々がいずれにせよ入力する単語から数百万冊の書籍をデジタル化しました。 カタログは、エージェントがいずれにせよ行う呼び出しを使って、ウェブに対して同じことをします。ほかの 2 つのネットワーク上のインストールが新しい操作を正常に呼び出すと、その操作が公開されます。公開中の操作は、3 つ以上のネットワークで失敗が確認された場合にのみ置き換えられます。サイトが変更された場合、最初に操作を修復したエージェントの修正が全員に反映されます。サイト独自の MCP サーバーや OpenAPI ドキュメントも、エージェントが学習した内容と並んで検索結果に表示されます。
Hacker News、Reddit、YouTube、GitHub から Google Flights、Goodreads、Airbnb、Amazon、Steam まで、114 のサイトと 323 の読み取り操作がパッケージに含まれています。対象はサイト全体ではなく、一部の機能です。同梱されているすべてのサイト · カタログの仕組み
安全性とマシンから送信される情報
- 呼び出しはここで実行されます。お使いのマシン、ネットワーク、セッション上で実行されます。カタログが呼び出しをプロキシすることはありません。一部の公開操作はカタログページから試すことができます。
- シークレットはマシンから出ません。 仕様に含まれるのは
cookie:nameであり、Cookie 自体ではありません。有効な認証情報を含む仕様は保存できません。セッションは OS のキーチェーンを使って保存時に暗号化されます。loginは、すでにお使いのブラウザーからサイトの Cookie をインポートするため、通常はパスワードを入力する必要はありません。 - 書き込みはデフォルトで無効です。許可された場合も一度だけ送信され、繰り返された場合は
duplicateとして拒否されます。読み取りによって結果が確認された場合にのみappliedと報告されます。書き込み操作は同梱されていません。 すべての書き込みガード
マシンから送信される情報
検索時には検索語、ドメイン、または URL がカタログに送信されますが、カタログは検索語を保持しません。共有が有効な場合、公開ページから学習した操作が共有され、修復や報告も共有されます(バージョン、結果、ティア、時刻。引数やデータは共有されません)。ログインした状態で学習した操作は、ユーザーが許可した場合、または 3 つのネットワーク上にある 3 つのインストールが同じ内容を学習した場合にのみ共有されます。新しい操作のバックグラウンド検証は別途確認され、デフォルトでは無効です。共有が無効の場合、または --local-only を指定した場合は、何も共有も報告もされません。
詳細とゲートによる確認内容
制限事項
学習済みの操作しか実行できず、カタログもまだ新しいものです。ほかのユーザーにとって動作する操作でも、お使いの環境では失敗することがあります(地域が異なる場合や、ネットワークでブロックされる場合など。Reddit は多くの環境で通常の HTTP にチャレンジを要求します)。CAPTCHA の解決には対応していません。解除されないチャレンジは blocked として報告されます。各サイトの利用規約を確認してください。利用方法についてはユーザーの責任となります。
すべての制限事項
開発への協力
インストールして共有を有効にしておくと、エージェントの日常的な呼び出しが、全員のために操作を検証し、修復します。エージェントがリクエストしたドメインの一覧から、サイトを学習させてください。カタログのホームページをご覧ください。または、プルリクエストで sites/ に仕様を追加してください。貢献方法にルールと開発コマンドが記載されています。
ドキュメント
| ドキュメント | 内容 |
|---|---|
| エージェントのセットアップ | インストール、各クライアントの接続、学習、タイムアウト、トラブルシューティング |
| リファレンス | CLI とライブラリ、結果、操作の作成、修復、ログイン、安全性、サイト、制限 |
| HTTP サーバー · Python | api-anything serve、Python パッケージ |
| フレームワーク · エージェントホスト | エージェントフレームワークからの MCP、呼び出し専用ホスト API |
| 設計 · カタログ | 正式な仕様とその理由、カタログの昇格、保存、信頼の仕組み |
| ベンチマーク · デモ | ここに記載された各数値の測定方法、トランスクリプトとテープを含む記録済みの実行 |
| コントリビューション · MIT ライセンス | サイト仕様の追加、チェックの実行 |
スターの履歴
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。

