jitapi
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 jitapiClaude 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ツール
ツール | 説明 |
| OpenAPI仕様URLからAPIを登録する |
| 登録済みのすべてのAPIとそのエンドポイント数を一覧表示する |
| 自然言語を使用してエンドポイントをセマンティック検索する |
| 依存関係解決と完全なスキーマを備えた関連エンドポイントを見つける |
| 特定のエンドポイントの完全なスキーマを取得する |
| 認証、パスパラメータ、クエリパラメータ、ボディを指定して単一のAPI呼び出しを実行する |
| 認証を設定する(APIキー、ベアラートークン、基本認証) |
| 登録済みのAPIとそのすべてのデータを削除する |
セットアップ
Claude Code
プロジェクトディレクトリに .mcp.json を作成します(グローバルアクセスの場合は ~/.claude.json):
{
"mcpServers": {
"jitapi": {
"command": "uvx",
"args": ["jitapi"]
}
}
}Claude Desktop
Claude Desktopの設定に追加します:
OS | 設定パス |
macOS |
|
Windows |
|
Linux |
|
{
"mcpServers": {
"jitapi": {
"command": "uvx",
"args": ["jitapi"]
}
}
}埋め込みプロバイダー
JitAPIはローカル埋め込み(fastembed)でそのまま動作するため、APIキーは不要です。大規模なAPIで検索品質を向上させるには、クラウド埋め込みプロバイダーを追加できます:
プロバイダー | 品質 | セットアップ |
ローカル(デフォルト) | 良好 | 不要 — すぐに動作 |
Voyage AI(推奨) | 非常に高い |
|
OpenAI | 非常に高い |
|
Cohere | 高い |
|
MCP設定の env ブロックにAPIキーを設定します:
{
"mcpServers": {
"jitapi": {
"command": "uvx",
"args": ["jitapi"],
"env": {
"VOYAGE_API_KEY": "your-key-here"
}
}
}
}プロバイダーは利用可能な環境変数から自動検出されます。優先順位:Voyage AI > OpenAI > Cohere > ローカル。
認証
登録後にAPI認証を設定します。推奨されるアプローチは環境変数を使用することです。これにより、シークレットがディスクに書き込まれることはありません:
{
"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はリクエスト時に環境からシークレットを読み取ります。環境変数名のみが永続化され、認証情報自体は決して永続化されません。
認証情報を直接渡すこともできます(0600権限で ~/.jitapi/auth.json に保存されます):
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_header、api_key_query、basic。
セキュリティ上の注意:
env_varを使用する場合、認証情報は実行時に解決され、ファイルシステムに触れることはありません。認証情報を直接渡す場合、シークレットは~/.jitapi/auth.jsonにプレーンテキストのJSONとして保存されます(ファイル権限0600、ディレクトリ0700)。本番環境ではenv_varアプローチを推奨します。
環境変数
変数 | 必須 | 説明 |
| いいえ | Voyage AI APIキー(推奨クラウドプロバイダー) |
| いいえ | OpenAI APIキー(代替クラウドプロバイダー) |
| いいえ | Cohere APIキー(代替クラウドプロバイダー) |
| いいえ | データディレクトリ(デフォルト: |
| いいえ | DEBUG, INFO, WARNING, ERROR(デフォルト:INFO) |
開発
git clone https://github.com/nk3750/jitapi.git
cd jitapi
pip install -e ".[dev]"
pytest
ruff check src/ライセンス
MIT
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/nk3750/jitapi'
If you have feedback or need assistance with the MCP directory API, please join our Discord server