OpenAPI-MCP: API dokümentasyonunuz olan herhangi bir API'ye AI agentzlerinizin erişmesini sağlayan Docker'lanmış MCP Server'ı.
Claude Desktop config.json'a ekle
{
"mcpServers": {
"ckanthony-openapi-mcp": {
"command": "node",
"args": [
"~/.mcp/openapi-mcp/index.js"
]
}
}
} Kaynak kodu al ve yerel olarak çalıştır
git clone https://github.com/ckanthony/openapi-mcp.git ~/.mcp/openapi-mcp
cd ~/.mcp/openapi-mcp 
MCP araç tanımlarını doğrudan bir Swagger/OpenAPI belirtim dosyasından oluşturun.
OpenAPI-MCP, bir swagger.json veya openapi.yaml dosyasını okuyan ve karşılık gelen Model Context Protocol (MCP) araç setini oluşturan bir dockerize MCP sunucusudur. Bu, Cursor gibi MCP ile uyumlu istemcilerin standart OpenAPI belirtimleriyle tanımlanan API'lerle etkileşime girmesini sağlar. Artık AI aracınızı, sadece OpenAPI/Swagger belirtimini sağlayarak herhangi bir API'ye erişebilir hale getirebilirsiniz - ek kodlama gerekmez.
Demoyu kendiniz çalıştırın: Weatherbit Örneğini Çalıştırma (Adım Adım)
header, query, path, cookie).
--api-key), ortam değişkenlerinden (--api-key-env) veya yerel belgelerle birlikte bulunan .env dosyalarından yükler.--include-tag, --exclude-tag, --include-op, --exclude-op).REQUEST_HEADERS ortam değişkeni aracılığıyla özel başlıklar geçirin (ek kimlik doğrulama, izleme vb. için).Bu aracı çalıştırmanın önerilen yolu Docker aracılığıyladır.
Alternatif olarak, Docker Hub üzerinde mevcut olan önceden derlenmiş imajı kullanabilirsiniz.
docker pull ckanthony/openapi-mcp:latest
docker run örneklerini izleyin, ancak openapi-mcp:latest yerine ckanthony/openapi-mcp:latest kullanın.Docker İmajını Yerel Olarak Derleyin:
# Depo kökü klasörüne gidin
cd openapi-mcp
# Docker imajını derleyin (istediğiniz şekilde etiketleyin, ör. openapi-mcp:latest)
docker build -t openapi-mcp:latest .
Konteyneri Çalıştırın: Konteyneri çalıştırırken OpenAPI belirtimini ve gerekli API anahtarı yapılandırmasını sağlamanız gerekir.
Örnek 1: Yerel belirtim dosyası ve .env dosyası kullanma:
./my-api, openapi.json veya swagger.yaml içerir)..env dosyası oluşturun (ör. ./my-api/.env) ve API_KEY=your_actual_key yazın (--api-key-env bayrağı farklıysa API_KEY değiştirin).docker run -p 8080:8080 --rm \\
-v $(pwd)/my-api:/app/spec \\
--env-file $(pwd)/my-api/.env \\
openapi-mcp:latest \\
--spec /app/spec/openapi.json \\
--api-key-env API_KEY \\
--api-key-name X-API-Key \\
--api-key-loc header
(İhtiyaç doğrultusunda --spec, --api-key-env, --api-key-name, --api-key-loc ve -p ayarlayın.)
Örnek 2: Uzak belirtim URL'si ve doğrudan ortam değişkeni kullanma:
docker run -p 8080:8080 --rm \\
-e SOME_API_KEY="your_actual_key" \\
openapi-mcp:latest \\
--spec https://petstore.swagger.io/v2/swagger.json \\
--api-key-env SOME_API_KEY \\
--api-key-name api_key \\
--api-key-loc header
Anahtar Docker Run Seçenekleri:
-p <host_port>:8080: Host üzerindeki bir portu konteynerın varsayılan 8080 portuna eşleyin.--rm: Çıkışında konteyneri otomatik olarak kaldırın.-v <host_path>:<container_path>: Belirtim içeren yerel bir dizini konteynere monte edin. Mutlak yollar veya $(pwd)/... kullanın. Yaygın konteyner yolu: /app/spec.--env-file <path_to_host_env_file>: Yerel dosyadan ortam değişkenlerini yükleyin (API anahtarları vb.). Yol host üzerindedir.-e <VAR_NAME>="<value>": Tek bir ortam değişkenini doğrudan geçirin.openapi-mcp:latest: Yerel olarak derlediğiniz imajın adı.--spec ...: Gerekli. Belirtim dosyasının yolu konteyner içinde (ör. /app/spec/openapi.json) veya genel bir URL.--port 8080: (İsteğe Bağlı) Sunucunun dinlediği dahili portu değiştirin (-p içindeki konteyner portuyla eşleşmelidir).--api-key-env, --api-key-name, --api-key-loc: Hedef API'nin API anahtarı gerektirmesi durumunda gereklidir.--help bayrağını kullanarak bkz: docker run --rm openapi-mcp:latest --help)Bu depo, Weatherbit API kullanılan bir örnek içermektedir. İşte genel Docker imajını kullanarak nasıl çalıştırılacağı:
OpenAPI Belgelerini Bulma (İsteğe Bağlı Bilgi):
Birçok genel API'nin OpenAPI/Swagger belirtimi çevrimiçi olarak mevcuttur. Bunları keşfetmek için harika bir kaynak APIs.guru'dur. Bu örnekte kullanılan Weatherbit belirtimi (weatherbitio-swagger.json) oradan alınmıştır.
Weatherbit API Anahtarı Alın:
Bu Depoyu Klonlayın: Bu depodan örnek dosyalara ihtiyacınız vardır.
git clone https://github.com/ckanthony/openapi-mcp.git
cd openapi-mcp
Ortam Dosyasını Hazırlayın:
cd example/weathercp .env.example .env.env dosyasını düzenleyin ve YOUR_WEATHERBIT_API_KEY_HERE yerine Weatherbit'ten aldığınız gerçek API anahtarını koyun.Docker Konteynerini Çalıştırın:
openapi-mcp kök dizininden (örnek klasörünü içeren), aşağıdaki komutu çalıştırın:
docker run -p 8080:8080 --rm \\
-v $(pwd)/example/weather:/app/spec \\
--env-file $(pwd)/example/weather/.env \\
ckanthony/openapi-mcp:latest \\
--spec /app/spec/weatherbitio-swagger.json \\
--api-key-env API_KEY \\
--api-key-name key \\
--api-key-loc query
-v $(pwd)/example/weather:/app/spec: Yerel example/weather dizinini (belirtim ve .env dosyasını içeren) konteynerdeki /app/spec'e monte eder.--env-file $(pwd)/example/weather/.env: Docker'ı .env dosyanızdan ortam değişkenlerini (API_KEY özellikle) yüklemesi için belirtir.ckanthony/openapi-mcp:latest: Genel Docker imajını kullanır.--spec /app/spec/weatherbitio-swagger.json: Konteynerdeki belirtim dosyasını gösterir.--api-key-* bayrakları, aracın API anahtarını nasıl enjekte etmesi gerektiğini yapılandırır (API_KEY env değişkeninden okunur, adı key, sorgu dizinine yerleştirilir).MCP Sunucusuna Erişin:
MCP sunucusu artık uyumlu istemciler için http://localhost:8080 adresinde çalışıyor ve erişilebilir olmalıdır.
Docker Compose Kullanma (Örnek):
example/ dizininde sağlanan bir docker-compose.yml dosyası, yerel olarak derlenmiş imaj kullanarak Weatherbit API örneğini çalıştırmayı göstermektedir.
Ortam Dosyasını Hazırlayın: example/weather/.env.example öğesini example/weather/.env öğesine kopyalayın ve gerçek Weatherbit API anahtarınızı ekleyin:
# example/weather/.env
API_KEY=YOUR_ACTUAL_WEATHERBIT_KEY
Docker Compose ile Çalıştırın: example dizinine gidin ve şu komutu çalıştırın:
cd example
# Bu, proje kökündeki Dockerfile'dan imajı yerel olarak derler
# Docker Hub'ın genel imajını KULLANMAZ
docker-compose up --build
--build: Docker Compose'u, hizmeti başlatmadan önce proje kökündeki Dockerfile'ı kullanarak imajı derlemesi için zorlar.example/docker-compose.yml dosyasını okuyacak, imajı derleyecek, ./weather'ı monte edecek, ./weather/.env'i okuyacak ve belirtilen komut satırı argümanları ile openapi-mcp konteynerini başlatacaktır.http://localhost:8080 adresinde mevcut olacaktır.Hizmeti Durdur: Compose'un çalıştığı terminalde Ctrl+C basın veya başka bir terminalden example dizininden docker-compose down komutunu çalıştırın.
openapi-mcp komutu aşağıdaki bayrakları kabul eder:
| Bayrak | Açıklama | Tür | Varsayılan |
|---|---|---|---|
--spec |
Gerekli. OpenAPI belirtim dosyasının yolu veya URL'si. | string |
(yok) |
--port |
MCP sunucusunu çalıştıracak port. | int |
8080 |
--api-key |
Doğrudan API anahtarı değeri (güvenlik için --api-key-env veya .env dosyasını kullanın). |
string |
(yok) |
--api-key-env |
API anahtarını içeren ortam değişken adı. Belirtim yerel ise, belirtimin dizinindeki .env dosyasını da kontrol eder. |
string |
(yok) |
--api-key-name |
Anahtar kullanılıyorsa gerekli. API anahtarı parametresinin adı (header, query, path veya cookie adı). | string |
(yok) |
--api-key-loc |
Anahtar kullanılıyorsa gerekli. API anahtarının konumu: header, query, path veya cookie. |
string |
(yok) |
--include-tag |
Dahil edilecek etiket (tekrarlanabilir). Dahil etme bayrakları kullanılıyorsa yalnızca dahil edilen öğeler açığa çıkar. | string slice |
(yok) |
--exclude-tag |
Dışlanacak etiket (tekrarlanabilir). Dışlamalar dahil etmelerden sonra uygulanır. | string slice |
(yok) |
--include-op |
Dahil edilecek Operation ID (tekrarlanabilir). | string slice |
(yok) |
--exclude-op |
Dışlanacak Operation ID (tekrarlanabilir). | string slice |
(yok) |
--base-url |
Belirtimden algılanan hedef API sunucusu taban URL'sini el ile geçersiz kılın. | string |
(yok) |
--name |
Oluşturulan MCP araç setinin varsayılan adı (belirtimde başlık yoksa kullanılır). | string |
"OpenAPI-MCP Tools" |
--desc |
Oluşturulan MCP araç setinin varsayılan açıklaması (belirtimde açıklama yoksa kullanılır). | string |
"Tools generated from OpenAPI spec" |
Not: Bu listeyi --help bayrağı ile çalıştırarak alabilirsiniz (ör. docker run --rm ckanthony/openapi-mcp:latest --help).
REQUEST_HEADERS: Hedef API'ye yapılan tüm giden isteklere özel başlıklar eklemek için bu ortam değişkenini bir JSON dizesine ayarlayın (ör. '{"X-Custom": "Value"}').Python kodunu MCP tool çağrıları aracılığıyla güvenli bir sandbox ortamında çalıştırın.
Kodlama ajanları için konteynerleştirilmiş ortamlar. Birden fazla ajan, fresh containerlar ve git branch'lerinde bağımsız olarak çalışabilir, hiçbir çatışma olmadan çok sayıda deney yapabilir. Tam execution history, ajan ortamlarına terminal erişimi ve git workflow desteği. Herhangi bir ajan/model/infra stack ile uyumlu.
Güvenilir olmayan Python/JavaScript kodunu WebAssembly sandbox'larında çalıştırın.
Node.js tabanlı bir MCP sunucusu olup, JavaScript kod parçacıklarını çalıştırmak için izole Docker sandbox ortamları oluşturur; dinamik npm bağımlılığı yüklenmesi ve temiz kapatma işlemleri destekler.