mcpField
A
apifacts

apifacts

ローカル
apifacts.dev開発ツール01 日前に更新

apifacts について

apifactsは、第三者のインターフェースエラーを調べるエージェントや開発者向けに、HTTP API、SDK、CLIの現在の挙動を検証済みの事実として登録します。MCPツールは決定論的なプローブに基づき、既知の事実と型付きの修正を返します。

主な機能

  1. 01検証済みのAPI動作情報
  2. 02既知のエラーに対する型付き修正
  3. 03環境やアカウント状態別の事実
  4. 04定期実行される決定論的プローブ
  5. 05CLI、pytestプラグイン、エージェントスキル

活用シーン

  1. 01第三者APIの予期しない応答の調査
  2. 02レート制限や破壊的変更の確認
  3. 03HTTPテスト失敗時の既知情報の表示

MCP 対応

stdio経由で`check(target, method, status, body)`ツールを1つ提供し、一致する事実、型付き修正、プローブの観測結果を返します。オフラインモードではwheelに同梱されたスナップショットを使用します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"illouminus-apifacts": {
"command": "uvx",
"args": [
"apifacts"
]
}
}
}
起動コマンドuvx apifacts

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiapifacts0.2.1

ツール

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

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

詳細

apifacts

AI エージェントのための、検証済みの現実の変更履歴です。 サードパーティの機械向けインターフェース(HTTP API、SDK パッケージ、CLI)が、ドキュメントに書かれている内容ではなく、今日実際にどう動作するかを示す、型付きで日付のある事実を集めたオープンなレジストリです。

理由

インターフェースは変わり、ドキュメントは遅れ、エージェントには誰も知らせてくれません。セッションのたびに、同じ落とし穴を再発見するためにトークンを消費します。たとえば、429 の代わりに空の配列を返す 200、本文で status: 0 として報告されるレート制限、フィールドをひそかに削除した SDK のリリースなどです。ドキュメントツールが答えるのは「正しいドキュメントを教えて」ですが、apifacts が答えるのは「このエンドポイントについて、今のドキュメントは間違っています。検証済みの差異はこちらです」です。

インストール

pip install apifacts-pytest   # pytest plugin: a test failing on an HTTP error prints the known facts
uvx apifacts check https://api.stripe.com/v1/charges -X GET --status 401   # CLI (and library)
npx skills add Illouminus/apifacts   # agent skill: on an API error, ask the registry first

どちらのパッケージも PyPI で公開されており、同じバージョンを持ち、1 つのタグから一緒にリリースされます(リリース)。プラグインはテストが失敗するまで何も送信しません。スキル(skills/apifacts/SKILL.md)では、apifacts check を呼び出すタイミングと、回答の読み方を Claude Code やその他のエージェントに説明しています。

MCP

stdio 経由で check(target, method, status, body) を呼び出す 1 つのツールを提供します。リソースやプロンプトはありません。Claude Code の場合:

claude mcp add apifacts -- uvx --from 'apifacts[mcp]' apifacts mcp

Claude Desktop、Cursor、その他のクライアントの場合(JSON 設定の mcpServers):

{"mcpServers": {"apifacts": {"command": "uvx", "args": ["--from", "apifacts[mcp]", "apifacts", "mcp"]}}}

apifacts mcp --offline は、wheel に同梱されたスナップショットを使って応答し、何も送信しません。

事実の検証方法

  • facts/<service>/ の各 YAML ファイルに 1 つの事実を記録します。種類(error_meaning、rate_limit、breaking_change など)、正確なエラーシグナル、1 文で述べた主張、次元(env、plan、region、account_state)、証拠を含みます。
  • 真実の根拠となるのは 決定論的なプローブだけです。宣言的な HTTP ステップとアサーションを定義し、ランナーがスケジュールに従って実行します。検証プロセスで言語モデルが呼び出されることはありません。
  • 修正は アドバイスではなくデータです。閉じた語彙から選んだ、型付きパラメーターを持つ項目で構成します(自由記述、シェル、外部 URL は使用できません)。私たちが英語の 1 文にして表示します。
  • 別の環境でのプローブによって事実が否定されることはありません。次元が追加されます。

check() の呼び出し

1 つのエンドポイントが応答と学習を同時に行います。リクエスト自体が貢献となります。ターゲットと、必要に応じて受け取ったエラーを送信すると、一致する事実、型付きの修正、プローブで確認された内容が返されます。ターゲットが登録済みのテンプレートに一致する場合、正規化された観測結果が保存されます(本文、ヘッダー、クエリ文字列、生の IP アドレスは保存されません)。

curl -s https://apifacts.dev/v0/check \
  -H 'Content-Type: application/json' \
  -d '{"target": {"method": "POST", "url": "https://api.stripe.com/v1/payment_intents"},
       "error": {"status": 400, "body_excerpt": "Keys for idempotent requests can only be used with the same parameters they were first used with."}}'

応答が空になることはありません。一致がない場合も、facts、observed、および unknown.reason が返されます。

ステータス

API は https://apifacts.dev で稼働中です(/v0/check、/v0/services、/openapi.json、/healthz。旧アドレスの facts.baillot.dev はこちらにリダイレクトされます)。レジストリには、apifacts.dev/registry に掲載されているサービスと事実が登録されており、各事実のページにはその確認方法が記載されています。エージェント向けの API 説明は /llms.txt をご覧ください。設計契約は docs/specs/ にあります。

独自のコピーを実行する場合:API は起動時に facts/ と services/ を一度だけ読み込みます。そのため、git pull の後に再起動してください。ops/deploy.sh を使えば、チェックアウト、同期、再起動を 1 ステップで実行できます。

貢献

check() を呼び出すことが貢献になります。プルリクエストは人間と API プロデューサー向けです。CONTRIBUTING.md をご覧ください。プロデューサーのシグネチャは常に無料です。

ライセンス

コード:MIT。データ(facts/ と生成された事実のページ):CC BY 4.0。

コメント

MCP は初めてですか?

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

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