Jitapi について
JitAPIは、OpenAPI仕様で記述されたAPIとClaudeをつなぐMCPサーバーです。セマンティック検索とエンドポイントの依存関係を使い、単一または複数APIの呼び出しを選定・順序付けします。
主な機能
- 01OpenAPI仕様からAPIを登録
- 02自然言語でエンドポイントを検索
- 03エンドポイントの前提条件を解決
- 04複数APIにまたがる呼び出しを調整
- 05API認証を設定
活用シーン
- 01意図に沿ったAPIエンドポイントの検索と呼び出し
- 02前の結果に依存する呼び出しの連鎖
- 03複数APIにまたがるワークフローの実行
MCP 対応
API登録、エンドポイント検索、ワークフロー解決、スキーマ参照、認証設定、API呼び出しのMCPツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
JitAPI
Claude を任意の API に接続できます。JitAPI が呼び出すエンドポイントと順序を自動で判断します。
JitAPI は、Claude が OpenAPI 仕様から 任意の API とやり取りできるようにする MCP サーバーです。数百ものエンドポイントをコンテキストに詰め込む代わりに、JitAPI はセマンティック検索と依存関係グラフを使って必要な情報だけを提示し、その後 Claude が呼び出しを計画して実行します。
https://github.com/user-attachments/assets/53f72f89-a41a-4a9c-a688-ec876ea05fbd
問題点
Stripe には 300 以上のエンドポイントがあり、GitHub には 800 以上あります。仕様全体を Claude のコンテキストに読み込むと、トークンを無駄に消費し、幻覚を引き起こします。利用する API ごとにカスタム MCP サーバーを書く方法では、規模を拡大できません。
JitAPI がこの問題を解決します: OpenAPI 仕様を一度登録すれば、必要なことを自然な英語で尋ねられます。適切なエンドポイントを見つけ、エンドポイント間の依存関係を解決し、Claude が呼び出しを実行できるようにします。
クイックスタート
pip install jitapi
Claude Code の設定(.mcp.json)に追加します:
{
"mcpServers": {
"jitapi": {
"command": "uvx",
"args": ["jitapi"]
}
}
}
これだけです。API キーは不要です。JitAPI は標準でローカルの埋め込みを使用します。
続いて、Claude で次のようにします:
You: Register the GitHub API from https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.json
Claude: ✓ Registered GitHub v3 REST API — 1,107 endpoints indexed
You: List my repos
Claude: [searches for "list repositories for authenticated user" → finds GET /user/repos → executes]
Here are your repositories: ...
複数 API のオーケストレーション
最大の特長は、複数の API を登録し、それらをまたぐ質問ができることです。JitAPI が登録済みのすべての API を検索し、Claude が呼び出しを連携させます。
You: Register the TMDB API and OpenWeatherMap API
Claude: ✓ Registered both APIs
You: Find the top popular movie on TMDB, then get the weather where it was filmed
Claude: [searches TMDB → GET /movie/popular → GET /movie/{id} for production locations
→ searches OpenWeather → GET /data/2.5/weather with the city]
The #1 popular movie is "Inception", filmed in Los Angeles.
Current weather in LA: 72°F, partly cloudy.
仕組み
Register API Ask a question
│ │
▼ ▼
Parse OpenAPI spec Embed query → vector search
│ │
▼ ▼
Build dependency graph Find relevant endpoints
│ │
▼ ▼
Embed all endpoints Expand with dependencies
│ │
▼ ▼
Store in vector DB Return schemas → Claude executes
- 登録 — OpenAPI 仕様を解析し、依存関係グラフ(どのエンドポイントが別のどのエンドポイントからデータを必要とするか)を構築して、すべてのエンドポイントを検索可能な埋め込みにします
- 検索 — 質問を受け取ると、JitAPI がクエリを埋め込み、コサイン類似度によって最も関連性の高いエンドポイントを見つけます
- 展開 — 依存関係グラフによって前提となるエンドポイントが追加されます(例:「POST /orders 用の user_id を取得するには、まず GET /users を呼び出す必要があります」)
- 実行 — Claude がエンドポイントのスキーマを受け取り、手順間でデータを渡しながら API 呼び出しを行います
MCP ツール
| ツール | 説明 |
|---|---|
register_api | OpenAPI 仕様の URL から API を登録します |
list_apis | 登録済みのすべての API と、それぞれのエンドポイント数を一覧表示します |
search_endpoints | 自然言語を使ってエンドポイントをセマンティック検索します |
get_workflow | 依存関係を解決し、完全なスキーマとともに関連するエンドポイントを見つけます |
get_endpoint_schema | 特定のエンドポイントの完全なスキーマを取得します |
call_api | 認証、パスパラメーター、クエリパラメーター、本文を指定して単一の API 呼び出しを実行します |
set_api_auth | 認証を設定します(API キーのヘッダー、API キーのクエリパラメーター、またはベアラートークン) |
delete_api | 登録済みの API と関連データをすべて削除します |
セットアップ
Claude Code
プロジェクトディレクトリに .mcp.json を作成します(グローバルに利用する場合は ~/.claude.json を作成します):
{
"mcpServers": {
"jitapi": {
"command": "uvx",
"args": ["jitapi"]
}
}
}
Claude Desktop
Claude Desktop の設定に追加します:
| OS | 設定ファイルのパス |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| Linux | ~/.config/Claude/claude_desktop_config.json |
{
"mcpServers": {
"jitapi": {
"command": "uvx",
"args": ["jitapi"]
}
}
}
埋め込みプロバイダー
JitAPI は、ローカル埋め込み(fastembed)ですぐに利用できます。API キーは不要です。大規模な API で検索品質を向上させるには、クラウド埋め込みプロバイダーを追加できます。
| プロバイダー | 品質 | セットアップ |
|---|---|---|
| ローカル(デフォルト) | 良好 | 不要。すぐに利用できます |
| Voyage AI(推奨) | 非常に優れている | pip install jitapi[voyage] + VOYAGE_API_KEY の設定 |
| OpenAI | 非常に優れている | pip install jitapi[openai] + OPENAI_API_KEY の設定 |
| Cohere | とても良い | pip install jitapi[cohere] + COHERE_API_KEY の設定 |
MCP 設定の env ブロックに API キーを設定します。
{
"mcpServers": {
"jitapi": {
"command": "uvx",
"args": ["jitapi"],
"env": {
"VOYAGE_API_KEY": "your-key-here"
}
}
}
}
利用可能な環境変数からプロバイダーが自動検出されます。優先順位:Voyage AI > OpenAI > Cohere > ローカル。
認証
登録後に API 認証を設定します。サポートされている認証タイプは、bearer、api_key(カスタムヘッダー)、api_key_query(クエリパラメーター)です。シークレットをディスクに書き込まないよう、環境変数を使用する方法を推奨します。
{
"mcpServers": {
"jitapi": {
"command": "uvx",
"args": ["jitapi"],
"env": {
"GITHUB_TOKEN": "ghp_...",
"OPENWEATHER_API_KEY": "your-key-here"
}
}
}
}
次に、環境変数を使用するよう Claude に指示します。
You: Set bearer auth for GitHub using env var GITHUB_TOKEN
Claude: [calls set_api_auth with auth_type="bearer", env_var="GITHUB_TOKEN"]
✓ Auth configured for github (from env var $GITHUB_TOKEN)
env_var を使用すると、JitAPI はリクエスト時に環境変数からシークレットを読み取ります。永続化されるのは環境変数の名前のみで、認証情報自体は保存されません。
認証情報を直接渡すこともできます(~/.jitapi/auth.json に 0600 のアクセス許可で保存されます)。
You: Set API key auth for OpenWeather with param name "appid"
Claude: [calls set_api_auth with auth_type="api_key_query", credential="...", param_name="appid"]
✓ Auth configured for openweather
サポートされている認証タイプ:bearer、api_key(カスタムヘッダー、デフォルトは X-API-Key)、api_key_query(クエリパラメーター)。
セキュリティに関する注意:
env_varを使用する場合、認証情報は実行時に解決され、ファイルシステムに保存されることはありません。credentialを直接渡す場合、シークレットは~/.jitapi/auth.jsonにプレーンテキストの JSON として保存されます(ファイルのアクセス許可は0600、ディレクトリのアクセス許可は0700)。本番環境では、env_varを使用する方法を推奨します。
環境変数
| 変数 | 必須 | 説明 |
|---|---|---|
VOYAGE_API_KEY | いいえ | Voyage AI API キー(推奨するクラウドプロバイダー) |
OPENAI_API_KEY | いいえ | OpenAI API キー(代替のクラウドプロバイダー) |
COHERE_API_KEY | いいえ | Cohere API キー(代替のクラウドプロバイダー) |
JITAPI_STORAGE_DIR | いいえ | データディレクトリ(デフォルト:~/.jitapi) |
JITAPI_LOG_LEVEL | いいえ | DEBUG、INFO、WARNING、ERROR(デフォルト:INFO) |
開発
git clone https://github.com/nk3750/jitapi.git
cd jitapi
pip install -e ".[dev]"
pytest
ruff check src/
ライセンス
MIT
Neelabh Kumar が開発 — AI エンジニア兼ビルダー。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。