API智能调用工具

JitAPI是一个自动识别和调用API端点的服务,通过解析OpenAPI规范并利用语义搜索和依赖图来优化Claude与API的交互。

  • by nk3750
  • Python
  • 本地部署
  • 7 星标
  • 更新于
在 GitHub 查看 nk3750/jitapi

使用说明

JitAPI

在任何API上指向Claude。JitAPI自动计算出要调用哪些端点以及调用顺序。

JitAPI是一个MCP服务器,允许Claude与 任何 API的OpenAPI规范。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代码配置中(.mcp.json):

{
  "mcpServers": {
    "jitapi": {
      "command": "uvx",
      "args": ["jitapi"]
    }
  }
}

就是这样。不需要API密钥-JitAPI使用开箱即用的本地嵌入。

然后在克劳德:

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并提出跨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
  1. 注册 --解析OpenAPI规范,构建依赖关系图(哪些端点需要其他端点的数据),并为所有端点创建可搜索的嵌入
  2. 搜索 --当你提问时,JitAPI会嵌入你的查询,并通过余弦相似度找到最相关的端点
  3. 扩展 --依赖关系图添加了任何先决条件端点(例如,“您需要先调用GET/users以获取POST/orders的user_id”)
  4. 执行 -Claude获取端点模式并进行API调用,在步骤之间传递数据

MCP工具

工具 说明
register_api 从OpenAPI规范URL注册API
list_apis 列出所有已注册的API及其端点计数
search_endpoints 使用自然语言跨端点进行语义搜索
get_workflow 使用依赖解析和完整模式查找相关端点
get_endpoint_schema 获取特定终结点的完整架构
call_api 使用auth、路径参数、查询参数和body执行单个API调用
set_api_auth 配置身份验证(API密钥头、API密钥查询参数或承载令牌)
delete_api 删除已注册的API及其所有数据

设置

克劳德代码

创建 .mcp.json 在您的项目目录中(或 ~/.claude.json 全球访问):

{
  "mcpServers": {
    "jitapi": {
      "command": "uvx",
      "args": ["jitapi"]
    }
  }
}

克劳德桌面版

添加到您的Claude Desktop配置中:

操作系统 配置路径
macOS ~/Library/Application Support/Claude/claude_desktop_config.json
窗户 %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] +set VOYAGE_API_KEY
开放人工智能 太好了 pip install jitapi[openai] +set OPENAI_API_KEY
凝聚 很好 pip install jitapi[cohere] +set COHERE_API_KEY

在MCP配置中设置API键 env 块:

{
  "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使用env变量:

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在请求时从环境中读取密钥——只有env变量 名字 是持久的,而不是凭证本身。

您还可以直接传递凭据(它们将存储在 ~/.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 直接地,秘密以明文JSON存储在 ~/.jitapi/auth.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 否 调试、信息、警告、错误(默认值:信息)

发展

git clone https://github.com/nk3750/jitapi.git
cd jitapi
pip install -e ".[dev]"
pytest
ruff check src/

许可证

麻省理工学院


建造于 尼拉布·库马尔 --人工智能工程师和建设者。