Skip to main content
Glama

JitAPI

PyPI PyPI Downloads License: MIT Python 3.10+

Направьте Claude на любой API. JitAPI автоматически определяет, какие эндпоинты вызывать и в каком порядке.

JitAPI — это MCP-сервер, который позволяет Claude взаимодействовать с любым API на основе его спецификации OpenAPI. Вместо того чтобы загружать сотни эндпоинтов в контекст, JitAPI использует семантический поиск и граф зависимостей, чтобы выводить только то, что нужно, — а затем Claude планирует и выполняет вызовы.

https://github.com/user-attachments/assets/53f72f89-a41a-4a9c-a688-ec876ea05fbd


Проблема

У Stripe более 300 эндпоинтов. У GitHub — более 800. Загрузка полной спецификации в контекст Claude расходует токены и приводит к галлюцинациям. Написание отдельного MCP-сервера для каждого используемого API не масштабируется.

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
  1. Регистрация — Парсинг спецификации OpenAPI, построение графа зависимостей (каким эндпоинтам нужны данные от других эндпоинтов) и создание эмбеддингов для поиска по всем эндпоинтам.

  2. Поиск — Когда вы задаете вопрос, JitAPI создает эмбеддинг вашего запроса и находит наиболее релевантные эндпоинты с помощью косинусного сходства.

  3. Расширение — Граф зависимостей добавляет все необходимые предварительные эндпоинты (например, «сначала нужно вызвать GET /users, чтобы получить user_id для POST /orders»).

  4. Выполнение — Claude получает схемы эндпоинтов и выполняет API-вызовы, передавая данные между шагами.

Инструменты MCP

Инструмент

Описание

register_api

Регистрация API по URL спецификации OpenAPI

list_apis

Список всех зарегистрированных API и количество их эндпоинтов

search_endpoints

Семантический поиск по эндпоинтам на естественном языке

get_workflow

Поиск релевантных эндпоинтов с разрешением зависимостей и полными схемами

get_endpoint_schema

Получение полной схемы для конкретного эндпоинта

call_api

Выполнение одного API-вызова с аутентификацией, параметрами пути, параметрами запроса и телом

set_api_auth

Настройка аутентификации (API-ключ, bearer-токен, базовая аутентификация)

delete_api

Удаление зарегистрированного API и всех его данных

Настройка

Claude Code

Создайте .mcp.json в директории вашего проекта (или ~/.claude.json для глобального доступа):

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

Claude Desktop

Добавьте в конфигурацию Claude Desktop:

ОС

Путь к конфигурации

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

Установите API-ключ в блоке env вашей конфигурации MCP:

{
  "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 считывает секрет из окружения во время запроса — сохраняется только имя переменной окружения, но никогда не сами учетные данные.

Вы также можете передать учетные данные напрямую (они будут сохранены в ~/.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_header, api_key_query, basic.

Примечание по безопасности: При использовании env_var учетные данные разрешаются во время выполнения и никогда не касаются файловой системы. При прямой передаче credential секреты хранятся в виде обычного текста JSON в ~/.jitapi/auth.json (права доступа к файлу 0600, к директории 0700). Для использования в продакшене отдавайте предпочтение подходу с env_var.

Переменные окружения

Переменная

Обязательно

Описание

VOYAGE_API_KEY

Нет

API-ключ Voyage AI (рекомендуемый облачный провайдер)

OPENAI_API_KEY

Нет

API-ключ OpenAI (альтернативный облачный провайдер)

COHERE_API_KEY

Нет

API-ключ Cohere (альтернативный облачный провайдер)

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

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - A tier

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