mcpField
A
API Anything

API Anything

ローカル
api-anything-registry.forth-site.workers.devその他2.7k今日更新

API Anything について

API Anythingは、Webサイトのリクエストから再利用可能なHTTP操作を学習し、エージェントやスクリプトに提供します。共有カタログ、CLI、ライブラリ、MCPインターフェースを備え、呼び出しはローカルで実行されます。

主な機能

  1. 01サイトのリクエストから操作を学習
  2. 02HTTP経由で操作を呼び出し
  3. 03カタログ項目の共有と修復
  4. 04CLI、ライブラリ、MCPで利用
  5. 05書き込み制御と認証情報の保護

活用シーン

  1. 01公開APIのないサイトを検索
  2. 02複数サイトを1つのスクリプトで検索
  3. 03学習済みのサイト操作を再利用
  4. 04操作結果の変化を監視

MCP 対応

stdioとHTTPでMCPを提供し、find_sites、call_operation、learn_siteなどのツールを公開します。エージェントは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

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

API Anything。エージェントのための API としてのウェブ。1 つのエージェントがサイトの API を学習し、ほかのすべてのエージェントが無料で利用できます。

API のないウェブサイトが必要になったエージェントは、API を学習します。ほかのすべてのエージェントは無料で利用できます。
サイト自身のリクエストから学習し、通常の HTTP で呼び出し、利用するエージェントが検証して修復します。

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

クイックスタート · 例 · 競争 · 仕組み · どこでも利用 · カタログ · 安全性 · ドキュメント

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 に一度に問い合わせます。

デモ:Hacker News、YouTube、GitHub、Mastodon で duckdb に関する 66 件の言及を 1.9 秒で取得。Reddit はブロックされたと報告

その中核は、通常の 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 操作を呼び出します。

同じ Google Flights のタスクで競争する2つのエージェント:一方は Chrome を操作し、もう一方は API Anything を呼び出します

1.5~2倍早く完了 · トークンは約半分 · コストは同等以下 · 20件中20件の回答が正解

Claude Code の Claude Opus 5.5、2026-09-28。カットなしで3倍速で表示しています。タイマーは実際の経過時間を示しています。MP4 · 録画方法

5回の実行の中央値。日付1件:ブラウザーは12.9秒、$0.166、API Anythingは8.4秒、$0.074。日付5件:ブラウザーは41.6秒、$0.154、API Anythingは21.1秒、$0.152。1.5~2倍早く完了し、トークンは約半分、20件中20件の回答が正解。Goodreads、書籍5冊:ブラウザーは182.5秒、API Anythingは30.5秒。

2026-10-31には、さらに2つのサイトで同じ比較を行い、中央値は22.3秒対9.6秒(Netflix のエピソード)と31.4秒対18.1秒(IKEA の店舗住所)で、20件中20件の回答が正解でした。それぞれ1つのサイト、1つのモデル、数回の実行による結果です。方法、実測値、制限事項

仕組み

API Anything の仕組み。1、学習:ブラウザーが2つの入力例でページを読み込みます。変化した部分はスロットになり、Cookie は参照になります。2、呼び出し:ティア1では Node の fetch を使ってプレーンな HTTP リクエストを送信します。サイトにブロックされた場合、ティア2ではブラウザーのページ内から取得します。読み取りの最後の手段として、ティア3ではページを実行して応答を読み取ります。すべての結果には class、write、retry、nextCall が含まれます。3、修復:リクエストの動作が変わった場合は、再学習して再実行し、再実行に成功した場合にのみ保存します。
  • 学習。 ヘッドレスブラウザーが2つの入力例でページを読み込みます。変化した部分はパラメーターになり、それ以外はバイト単位でそのまま保持され、Cookie は参照になります。LLM は関与しません。
  • 呼び出し。 Node の fetch でリクエストを送信します。サイトにブロックされた場合は、ブラウザーのページ内から取得します。読み取りの最後の手段として、ページを実行して回答を読み取ります。
  • 修復。 回答が合わなくなった場合は、別のインストールで修復されたバージョンを使うか、再学習して、再実行が成功した場合にのみ保存します。修復できない呼び出しは、他人のデータではなくエラーを返します。

49秒でわかる全体像 · 再実行、フォールバック、修復 · 設計

どこでも使えます

どこでも使えます。Claude Code、Codex、Cursor、Gemini CLI、VS Code、Hermes向けのstdio経由のMCP、REST、OpenAPIドキュメント、MCPを提供するHTTPサーバー、Pythonパッケージ、TypeScriptライブラリ、CLI。どれも同じマシン上で同じ操作を呼び出します。操作は一度学習するか、共有カタログから取得でき、通常のHTTPでHacker News、YouTube、GitHub、Google Flights、Goodreadsなどのウェブサイトにアクセスします。呼び出しがカタログを経由することはありません。
  • 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秒の録画

共有カタログ

エージェントのインターネットループ。1 質問:エージェントがウェブサイトを必要とします。2 検索:共有カタログを検索します。3 学習:誰も共有していない場合は、そのサイトへのリクエストから学びます。4 共有:Cookie とトークンは削除されます。5 検証:ほかのインストールからの呼び出しが投票します。6 修復:1 つの修正が全員に届きます。人々がいずれにせよ入力する単語から書籍をデジタル化した reCAPTCHA のように、API Anything はエージェントがいずれにせよ行う呼び出しからウェブを API に変えます。

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 サーバー · Pythonapi-anything serve、Python パッケージ
フレームワーク · エージェントホストエージェントフレームワークからの MCP、呼び出し専用ホスト API
設計 · カタログ正式な仕様とその理由、カタログの昇格、保存、信頼の仕組み
ベンチマーク · デモここに記載された各数値の測定方法、トランスクリプトとテープを含む記録済みの実行
コントリビューション · MIT ライセンスサイト仕様の追加、チェックの実行

スターの履歴

スター履歴チャート

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。