JitAPI MCP server
시맨틱 검색과 의존성 그래프를 사용하여 OpenAPI 사양을 실행 가능한 에이전트 인터페이스로 변환하고 API 호출을 자동화합니다.
다른 이름 nk3750/jitapi
- 스타
- 7
- Tools
- 8
- 다운로드, 30일
- 75
- 최신 버전
- 0.1.1
- 마지막 커밋
- 2026년 6월 14일
- 라이선스
- MIT
JitAPI MCP란?
JitAPI은(는) MCP server입니다. 시맨틱 검색과 의존성 그래프를 사용하여 OpenAPI 사양을 실행 가능한 에이전트 인터페이스로 변환하고 API 호출을 자동화합니다. 8개 도구를 제공합니다. 예: register_api, list_apis, search_endpoints.
프로젝트 README에서 생성된 요약
JitAPI MCP server 정보
JitAPI는 OpenAPI 사양을 제공하여 Claude를 복잡한 API에 연결할 수 있게 합니다. 수백 개의 엔드포인트를 AI 클라이언트에 전달하여 토큰을 낭비하는 대신, 이 MCP server는 시맨틱 검색과 의존성 그래프를 사용하여 특정 작업에 필요한 도구만 식별합니다. API URL을 등록하고 에이전트가 호출을 계획하고 실행하도록 함으로써 CLI 또는 Claude Desktop을 통해 로컬에서 작동합니다.
개발자는 여러 API를 동시에 관리하여 서로 다른 서비스를 아우르는 오케스트레이션 작업을 수행할 수 있습니다. 시스템은 기본적으로 로컬 임베딩을 사용하므로 기본 작동에는 외부 API 키가 필요하지 않지만, 더 높은 검색 품질을 위해 Voyage AI, OpenAI 또는 Cohere를 선택하여 사용할 수 있습니다. 인증은 bearer token, 커스텀 헤더 또는 쿼리 파라미터를 통해 처리되며, 환경 변수를 사용하여 자격 증명이 디스크에 저장되지 않도록 보안에 중점을 둡니다.
주요 도구로는 새로운 사양을 추가하는 register_api, 자연어 검색을 위한 search_endpoints, 실제 요청을 실행하는 call_api가 있습니다. 이 서버는 의존성 그래프를 구축하여 한 엔드포인트가 다른 엔드포인트의 데이터를 필요로 하는 경우 에이전트가 필요한 순서를 이해할 수 있도록 합니다.
활용 사례
- 1멀티 API 워크플로우 자동화AI에게 한 서비스에서 정보를 찾아 이를 사용하여 두 번째 서비스를 쿼리하도록 요청합니다.
- 2컨텍스트 윈도우 사용량 감소관련된 엔드포인트만 노출하여 방대한 API 문서를 AI에 전송하는 것을 방지합니다.
- 3복잡한 API 의존성 처리에이전트가 후속 엔드포인트를 호출하기 전에 ID를 가져오기 위해 특정 엔드포인트를 먼저 호출해야 함을 인지하도록 합니다.
- 4안전한 API 자격 증명 관리환경 변수를 사용하여 다양한 서비스의 인증을 구성함으로써 비밀 정보가 파일 시스템에 저장되는 것을 방지합니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
JitAPI MCP 설치 방법
형식 확인: 2026년 11월 10일Claude Code에 JitAPI MCP 설치
$ claude mcp add --env OPENAI_API_KEY=<YOUR_OPENAI_API_KEY> jitapi -- uvx jitapiCursor에 JitAPI MCP 설치
~/.cursor/mcp.json
{
"mcpServers": {
"jitapi": {
"command": "uvx",
"args": [
"jitapi"
],
"env": {
"OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>"
}
}
}
}VS Code에 JitAPI MCP 설치
.vscode/mcp.json
{
"servers": {
"jitapi": {
"type": "stdio",
"command": "uvx",
"args": [
"jitapi"
],
"env": {
"OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>"
}
}
}
}Claude Desktop에 JitAPI MCP 설치
claude_desktop_config.json
{
"mcpServers": {
"jitapi": {
"command": "uvx",
"args": [
"jitapi"
],
"env": {
"OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>"
}
}
}
}Codex에 JitAPI MCP 설치
~/.codex/config.toml
[mcp_servers.jitapi] command = "uvx" args = ["jitapi"] [mcp_servers.jitapi.env] OPENAI_API_KEY = "<YOUR_OPENAI_API_KEY>"
Gemini CLI에 JitAPI MCP 설치
~/.gemini/settings.json
{
"mcpServers": {
"jitapi": {
"command": "uvx",
"args": [
"jitapi"
],
"env": {
"OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>"
}
}
}
}JitAPI MCP 도구 8
README에서 감지됨register_apilist_apissearch_endpointsget_workflowget_endpoint_schemacall_apiset_api_authdelete_api
| register_api | — | |
| list_apis | — | |
| search_endpoints | — | |
| get_workflow | — | |
| get_endpoint_schema | — | |
| call_api | — | |
| set_api_auth | — | |
| delete_api | — |
구성
OPENAI_API_KEY필수비밀OpenAI API key for embeddings and workflow planning
GITHUB_TOKENOPENWEATHER_API_KEYVOYAGE_API_KEY
| 이름 | 설명 | 유형 |
|---|---|---|
| OPENAI_API_KEY | OpenAI API key for embeddings and workflow planning | 필수비밀 |
| GITHUB_TOKEN | — | |
| OPENWEATHER_API_KEY | — | |
| VOYAGE_API_KEY | — |
자동 검사
2026년 11월 14일에 실행됨전체 보고서 →아직 인증되지 않았습니다. 서버는 80점 이상의 점수, 심각한 결함 없음, 그리고 검사에 충분한 데이터를 갖추어야 합니다. 검사 방식
- 소스 저장소 연결 및 접근 가능nk3750/jitapi is public and reachablegithub.com/nk3750/jitapi ↗통과
- 패키지가 이 저장소를 소스로 지정jitapi names nk3750/jitapi as sourcepypi.org/project/jitapi/ ↗통과
- 빌드 출처(Sigstore 증명)No build attestation published for this release검사되지 않음
- 오픈 소스 라이선스 (OSI)MITspdx.org/licenses/MIT.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit or release 2026-06-14github.com/nk3750/jitapi ↗통과
- OpenSSF Scorecard검사되지 않음
- 패키지 이름이 인기 패키지와 유사하지 않음No popular package one edit away from jitapi통과
- 패키지와 의존성에 심각한 보안 권고 없음Critical advisory: GHSA-36p7-vc44-83pf, GHSA-f4j7-r4q5-qw2cosv.dev/vulnerability/GHSA-36p7-vc44-83pf ↗결함 발견
- 모델에 대한 숨겨진 지침 없음8 tool descriptions and the README read; no override phrases, credential paths or hidden characters통과
- 파괴적인 도구에 라벨 표시됨검사되지 않음
- 원격 endpoint가 MCP 핸드셰이크에 응답검사되지 않음
README
GitHub에서 보기JitAPI
Point Claude at any API. JitAPI figures out which endpoints to call and in what order — automatically.
JitAPI is an MCP server that lets Claude interact with any API from its OpenAPI spec. Instead of dumping hundreds of endpoints into context, JitAPI uses semantic search and a dependency graph to surface only what's needed — then Claude plans and executes the calls.
https://github.com/user-attachments/assets/53f72f89-a41a-4a9c-a688-ec876ea05fbd
The Problem
Stripe has 300+ endpoints. GitHub has 800+. Loading the full spec into Claude's context wastes tokens and causes hallucinations. Writing a custom MCP server for every API you use doesn't scale.
JitAPI solves this: register any OpenAPI spec once, then ask for what you need in plain English. It finds the right endpoints, resolves dependencies between them, and lets Claude execute the calls.
Quick Start
pip install jitapi
Add to your Claude Code config (.mcp.json):
{
"mcpServers": {
"jitapi": {
"command": "uvx",
"args": ["jitapi"]
}
}
}
That's it. No API keys required — JitAPI uses local embeddings out of the box.
Then in 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: ...
Multi-API Orchestration
The killer feature: register multiple APIs and ask questions that span them. JitAPI searches across all registered APIs and Claude chains the calls.
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.
How It Works
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
- Register — Parse an OpenAPI spec, build a dependency graph (which endpoints need data from which other endpoints), and create searchable embeddings for all endpoints
- Search — When you ask a question, JitAPI embeds your query and finds the most relevant endpoints via cosine similarity
- Expand — The dependency graph adds any prerequisite endpoints (e.g., "you need to call GET /users first to get the user_id for POST /orders")
- Execute — Claude gets the endpoint schemas and makes the API calls, passing data between steps
MCP Tools
| Tool | Description |
|---|---|
register_api |
Register an API from an OpenAPI spec URL |
list_apis |
List all registered APIs and their endpoint counts |
search_endpoints |
Semantic search across endpoints using natural language |
get_workflow |
Find relevant endpoints with dependency resolution and full schemas |
get_endpoint_schema |
Get the complete schema for a specific endpoint |
call_api |
Execute a single API call with auth, path params, query params, and body |
set_api_auth |
Configure authentication (API key header, API key query param, or bearer token) |
delete_api |
Remove a registered API and all its data |
Setup
Claude Code
Create .mcp.json in your project directory (or ~/.claude.json for global access):
{
"mcpServers": {
"jitapi": {
"command": "uvx",
"args": ["jitapi"]
}
}
}
Claude Desktop
Add to your Claude Desktop config:
| OS | Config path |
|---|---|
| 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"]
}
}
}
Embedding Providers
JitAPI works out of the box with local embeddings (fastembed) — no API keys needed. For better search quality on large APIs, you can add a cloud embedding provider:
| Provider | Quality | Setup |
|---|---|---|
| Local (default) | Good | Nothing — works immediately |
| Voyage AI (recommended) | Excellent | pip install jitapi[voyage] + set VOYAGE_API_KEY |
| OpenAI | Excellent | pip install jitapi[openai] + set OPENAI_API_KEY |
| Cohere | Very good | pip install jitapi[cohere] + set COHERE_API_KEY |
Set the API key in your MCP config's env block:
{
"mcpServers": {
"jitapi": {
"command": "uvx",
"args": ["jitapi"],
"env": {
"VOYAGE_API_KEY": "your-key-here"
}
}
}
}
Provider is auto-detected from available environment variables. Priority: Voyage AI > OpenAI > Cohere > local.
Authentication
Configure API authentication after registering. Supported auth types: bearer, api_key (custom header), and api_key_query (query parameter). The recommended approach uses environment variables so secrets are never written to disk:
{
"mcpServers": {
"jitapi": {
"command": "uvx",
"args": ["jitapi"],
"env": {
"GITHUB_TOKEN": "ghp_...",
"OPENWEATHER_API_KEY": "your-key-here"
}
}
}
}
Then tell Claude to use the env var:
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)
With env_var, JitAPI reads the secret from the environment at request time — only the env var name is persisted, never the credential itself.
You can also pass credentials directly (they'll be stored in ~/.jitapi/auth.json with 0600 permissions):
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
Supported auth types: bearer, api_key (custom header, default X-API-Key), api_key_query (query parameter).
Security note: When using
env_var, credentials are resolved at runtime and never touch the filesystem. When passingcredentialdirectly, secrets are stored as plaintext JSON at~/.jitapi/auth.json(file permissions0600, directory0700). For production use, prefer theenv_varapproach.
Environment Variables
| Variable | Required | Description |
|---|---|---|
VOYAGE_API_KEY |
No | Voyage AI API key (recommended cloud provider) |
OPENAI_API_KEY |
No | OpenAI API key (alternative cloud provider) |
COHERE_API_KEY |
No | Cohere API key (alternative cloud provider) |
JITAPI_STORAGE_DIR |
No | Data directory (default: ~/.jitapi) |
JITAPI_LOG_LEVEL |
No | DEBUG, INFO, WARNING, ERROR (default: INFO) |
Development
git clone https://github.com/nk3750/jitapi.git
cd jitapi
pip install -e ".[dev]"
pytest
ruff check src/
License
MIT
Built by Neelabh Kumar — AI engineer and builder.
JitAPI MCP 질문
JitAPI MCP를 Claude Code에 추가하려면 어떻게 하나요?
터미널에서 claude mcp add --env OPENAI_API_KEY=<YOUR_OPENAI_API_KEY> jitapi -- uvx jitapi를 실행합니다. 모든 프로젝트에서 사용할 수 있게 하려면 --scope user를 추가합니다.
JitAPI MCP를 Cursor에 추가하려면 어떻게 하나요?
~/.cursor/mcp.json를 열고 mcpServers 아래에 서버를 추가합니다. 위 설치 섹션에 표시된 Cursor 구성을 사용합니다.
JitAPI MCP는 어떤 도구를 제공하나요?
8개 도구를 제공합니다. 예: register_api, list_apis, search_endpoints, get_workflow, get_endpoint_schema.
임베딩을 위한 API 키가 필요한가요?
아니요, JitAPI는 기본적으로 로컬 임베딩을 사용하므로 기본 기능을 사용하는 데 API 키가 필요하지 않습니다.
JitAPI는 대규모 API 사양을 어떻게 처리하나요?
사양 전체를 컨텍스트에 로드하는 대신, 시맨틱 검색과 의존성 그래프를 사용하여 필요한 엔드포인트만 노출합니다.
여러 API를 동시에 사용할 수 있나요?
네, 여러 API를 등록하고 이를 가로지르는 질문을 할 수 있어 Claude가 서로 다른 서비스 간의 호출을 체이닝할 수 있습니다.
지원되는 인증 방식은 무엇인가요?
bearer token, 커스텀 API key 헤더, API key 쿼리 파라미터를 지원합니다.