Crevio

resmi

Küçük işletmenizi (ürünler, siparişler, müşteriler, e-posta, siteler) yöneten bir AI aracısına iş devredin veya Crevio API'sine ve 3.000'den fazla bağlı uygulamaya karşı betikler çalıştırın.

Crevio MCP ile neler yapabilirsiniz?

  • İşleri sade dille devredin — Crevio aracısına ask_crevio ile "jane@… adresinden gelen son siparişi iade et" gibi bir görev verin ve çalıştırmanın son yanıtını geri alın.
  • Uzun süren işleri takip edin — İşleri engellemeden başlatın, ardından durumu kontrol edin, konuşmaya devam edin ve çalıştırmalar sonuçlandıkça onay kapılarını yanıtlayın.
  • Betikleri Crevio API'sine karşı çalıştırın — Hesabınızın bilgisayarında JavaScript yürütmek, API çağrılarını ve bağlı entegrasyonları zincirlemek ve dönüştürülmüş verileri döndürmek için run_script kullanın.
  • Çağrılabilir entegrasyonları keşfedin — Bir betik yazmadan önce list_integrations ve list_integration_tools ile kullanılabilir ad alanlarını ve işlevlerini listeleyin.
  • Hesap olaylarına abone olun — Yoklama yapmak yerine order.paid gibi olaylar için bir webhook aboneliği kaydedin ve imzalı teslimatlar alın.

Barındırılan MCP Sunucusu

npx add-mcp 'https://mcp.crevio.co/mcp'

Claude Code, Codex, Cursor ve daha fazlasına kurulur

Dokümantasyon

MCP Sunucusu

Claude, Cursor veya MCP uyumlu herhangi bir ajanı Crevio hesabınıza bağlayın: işleri ask_crevio ile Crevio ajanına devredin, çalışmaları takip edip sürdürün ve tüm Crevio API'sine ve entegrasyonlarınıza karşı betikler çalıştırın.

Crevio MCP sunucusu, MCP uyumlu herhangi bir ajanın işleri Crevio'ya devretmesini sağlar — ve ajan kontrolleri kendisi ele almak istediğinde, tüm Crevio API'sine ve entegrasyonlarınıza karşı betikler çalıştırır. Tek sunucu, iki yüzey:

  • Devretme — ask_crevio Crevio ajanına sade bir dille bir iş verir ("jane@… adresinden gelen son siparişi iade et", "bu haftanın gönderilerini yaz ve planla") ve sonucu döndürür. Daha uzun işler arka planda çalışır; bunları çalışmalar olarak takip eder, konuşmayı sürdürür, onay kapılarını yanıtlar ve dökümü okursunuz.
  • Betikler — list_integrations ve list_integration_tools bir betiğin neleri çağırabileceğini gösterir, run_script ise hesabınızın Crevio bilgisayarında her REST uç noktasına ve bağlı entegrasyona karşı JavaScript çalıştırır; API ile aynı yetkilendirme ve doğrulamayla.
URLhttps://mcp.crevio.co/mcp
TaşımaStreamable HTTP (durumsuz — her istek kendi kendine yeterlidir)
Kimlik doğrulamaAuthorization: Bearer <API token> — REST için kullandığınız aynı API belirteci — veya yalnızca özel bir başlık ayarlayabilen istemciler için X-Api-Key: <API token>. OAuth 2.1 de desteklenir; bkz. Bağlanma.
Keşifhttps://mcp.crevio.co/mcp/server-card

[!NOTE]

Crevio'nun ajan tabanlı modelinde yeni misiniz? MCP, Görevler ve Olaylar'ın nasıl bir araya geldiğini görmek için Yapay Zeka ve Ajanlar genel bakışıyla başlayın. Kaputun altında, devredilen bir iş tek çalışmalı bir Görev'dir; dolayısıyla buradaki her şey panonuzda ve /v1/tasks ile /v1/task_runs aracılığıyla da görünür.

Kurulum

1. Bir API belirteci oluşturun

Crevio'da Ayarlar → Geliştiriciler → API belirteçleri bölümüne gidin ve bir tane oluşturun. Bir MCP bağlantısı, arkasındaki belirtecin izinlerine tam olarak sahiptir — hesabın yapabildiği her şey.

2. İstemcinizi yapılandırın

Claude Code

claude mcp add --transport http crevio https://mcp.crevio.co/mcp \
  --header "Authorization: Bearer $CREVIO_API_TOKEN"

Claude Desktop / Cursor / diğer istemciler — istemcinin MCP yapılandırmasına ekleyin (claude_desktop_config.json, ~/.cursor/mcp.json, …):

{
  "mcpServers": {
    "crevio": {
      "url": "https://mcp.crevio.co/mcp",
      "headers": {
        "Authorization": "Bearer <CREVIO_API_TOKEN>"
      }
    }
  }
}

İstemciye özgü adımlar, OAuth ve ham curl örnekleri Bağlanma sayfasındadır.

3. whoami ile doğrulayın

Bağlı ajandan whoami çağırmasını isteyin. Belirtecin arkasındaki hesabı ve kullanıcıyı, kimlik bilgisini, planı, kredi bakiyesini, hız sınırını, bekleme sınırlarını ve araç listesini döndürür — argüman yok, yan etki yok. whoami çalışıyorsa, diğer her şey de çalışacaktır.

{
  "object": "whoami",
  "account": { "id": "acct_7k2m…", "name": "Jane's Studio", "slug": "janes-studio" },
  "user": { "id": "user_9qx…", "email": "jane@example.com", "name": "Jane Doe" },
  "credential": { "type": "api_key", "id": "token_3fa…", "name": "Claude Desktop", "expires_at": null },
  "plan": "Pro",
  "credits": 1840,
  "rate_limit": { "limit": 600, "window_seconds": 60 },
  "limits": { "ask_timeout_default_seconds": 300, "ask_timeout_max_seconds": 300, "message_max_chars": 10000 },
  "tools": ["whoami", "ask_crevio", "start_chat", "wait_for_run", "get_run", "list_chats", "get_chat", "send_message", "resolve_approvals", "cancel_run", "list_runs", "list_messages", "list_integrations", "list_integration_tools", "run_script", "wait_for_script_run", "get_script_run", "cancel_script_run"]
}

Önerilen iş akışları

Tek seferlik işler: ask_crevio

Muhakeme veya yazma gerektiren işler için. Tek bir çağrı bir çalışma başlatır, bekler ve çalışmayı ajanın son yanıtıyla birlikte result içinde döndürür. Her iş tam bir ajan çalışmasıdır; yarım dakikadan birkaç dakikaya kadar sürer — verileri doğrudan okumak veya değiştirmek için bir betik saniyeler alır.

{
  "name": "ask_crevio",
  "arguments": {
    "message": "Which three products made the most revenue this month, and how does that compare to last month?",
    "idempotency_key": "monthly-top-products-2026-08"
  }
}
{
  "object": "task_run",
  "id": "trun_8d1k…",
  "task_id": "task_2nq…",
  "task_name": "Which three products made the most revenue this month, and how does that…",
  "chat_id": "aichat_5pz…",
  "status": "completed",
  "summary": "Top three by revenue this month: …",
  "result": "Top three by revenue this month:\n1. Lightroom Presets Vol. 2 — $2,140 (+18% vs July)\n2. …",
  "error_message": null,
  "pending_approval_ids": [],
  "credits_consumed": 4,
  "started_at": "2026-08-20T09:14:02Z",
  "completed_at": "2026-08-20T09:14:31Z",
  "created_at": "2026-08-20T09:14:01Z"
}
  • İstemciniz akışlı bir yanıtı kabul ettiğinde (Accept: text/event-stream, MCP istemcilerinin varsayılan olarak gönderdiği) bekleme varsayılan olarak ve en fazla 300 saniye, aksi halde 90 saniyedir. Akışlı bir yanıt beklerken her 10 saniyede bir ilerleme bildirimi gönderir — bunları almak için _meta içinde bir progressToken geçirin. Daha az beklemek için timeout_seconds geçirin.
  • Bekleme sona erdiğinde çalışma hâlâ sürüyorsa, yanıt bir hata değildir: wait_timed_out: true durumundaki çalışmadır. Beklemeye devam etmek için id ile wait_for_run çağırın ve ask_crevio tekrar çağırmayın — bu, işi ikinci kez başlatır. Hiçbir şey kaybolmaz; çalışma Crevio tarafında devam eder.
  • idempotency_key yeniden denemeleri güvenli kılar: aynı anahtar, ilk çağrının başlattığı çalışmayı döndürür, başka bir çalışma başlatmaz (ve ücretlendirmez). Her zaman bir tane geçirin.
  • speed: "faster", basit işlerde hızlı bir yanıtın derinlikten daha önemli olduğu durumlarda ajanın daha az düşünmesini sağlar. Varsayılan smarter'tür.
  • response_format, programınızın düz metin yerine bir nesneye ihtiyaç duyduğunda bir JSON Şeması (veya OpenAI'nin {type: "json_schema", json_schema: {schema}}'sı) alır. Ajana şema bildirilir ve tamamlanan çalışma, ayrıştırılmış değeri json içinde şemaya göre doğrulanmış olarak veya başarısız olma nedenini json_error içinde taşır. start_chat ve send_message de bunu alır.
  • Ajanın çalışma sırasında teslim ettiği dosyalar artifacts içinde geri döner. Bir eserin id değerini get_file_download_url ile indirme bağlantısına dönüştürün.
  • approval_mode varsayılan olarak autonomous'tir. supervised, çalışmanın her kapılı yazma işleminden önce needs_input durumunda duraklamasını ve siz onun pending_approval_ids değerini yanıtlayana kadar beklemesini sağlar (onaylanacak bir şeyi olmayan bir çalışma teklifiyle birlikte tamamlanır; üzerinde işlem yapmak için send_message ile yanıtlayın); read_only yazma işlemlerini yasaklar.

Uzun süreli işler: start_chat → wait_for_run → send_message

Beklemek istemediğiniz her şey için — bir site derlemesi, bir araştırma görevi, toplu bir taşıma:

  1. start_chat işi kuyruğa alır ve çalışmayı hemen döndürür.
  2. status değeri completed, failed veya needs_input olana kadar wait_for_run (sınırlı) veya get_run (anında).
  3. send_message konuşmayı sürdürür — takip talimatları, düzeltmeler, ajanın sorduğu bir soruya yanıtlar. Ajan bağlamını korur. Tamamlanmış bir çalışmada bu, aynı konuşmada yeni bir çalışma başlatır; needs_input durumundaki bir çalışmada ise onu sürdürür. Yanıtı aynı çağrıda beklemek için timeout_seconds ve yeniden denenen bir çağrının mesajı iki kez göndermek yerine ilk çağrının başlattığı çalışmayı (reused: true) döndürmesi için bir idempotency_key geçirin.
  4. Bir çalışma bir entegrasyon eylemi üzerinde duraklatıldığında (pending_approval_ids ile needs_input) resolve_approvals — bekleyen tüm kimlikleri tek seferde onaylayın veya reddedin ve çalışma devam eder.
  5. Bekleyen, çalışan veya bekleyen bir çalışmayı durdurmak için cancel_run.

Bir sohbet konuşmadır ve bir çalışma onun içindeki bir iş turudur. list_runs hesaptaki her çalışmayı gösterir (yalnızca bir konuşmanın çalışmaları için chat_id geçirin) — devredilen işler ve planlanmış Görevler dahil — list_chats ve get_chat konuşmaların kendilerine göz atarken, list_messages bir sohbetin yalnızca son yanıtını değil tam dökümünü okur.

Betikler: run_script

Bağlı ajan Crevio'yu devretmek yerine kendisi işletmek istediğinde — veya tam verilerin geri dönmesi gerektiğinde — bir betik yazar. run_script, hesabınızın Crevio bilgisayarında bun ile JavaScript çalıştırır, ajan turu olmadan. Betik, Crevio API'sini ve hesabınızın bağladığı her entegrasyonu çağırabilir, istediği kadar çağrıyı zincirleyebilir ve verileri geri dönmeden önce dönüştürebilir.

Keşfet

list_integrations bir betiğin çağırabileceği her ad alanını adlandırır: crevioApi (tüm Crevio API'si, her işlem için bir fonksiyon), platform (Crevio'nun kendi araçları) ve bağlı her entegrasyon için bir tane (pdGmail, mcpLinear, …). list_integration_tools bir ad alanının fonksiyonlarını listeler; her biri parametreleriyle bir TypeScript türü olarak, yalnızca okuma yapıp yapmadığı, onay gerektirip gerektirmediği ve doldurduğunuzda run_script'ün kabul ettiği bir kod parçacığıyla birlikte. crevioApi yüzlerce işlem içerir, bu yüzden onu search ile daraltın:

{ "namespace": "crevioApi", "search": "price variant create" }

Çalıştır

tools.<namespace>.<function>(args) bir çağrı yapar. Üst düzey await çalışır, her çağrı sonucunu döndürür ve başarısızlıkta hata fırlatır, betiğin son ifadesi onun sonucudur.

const product = await tools.crevioApi.createProduct({ body: { name: "My Course", slug: "my-course" } });
await tools.crevioApi.createPriceVariant({
  body: { product: product.id, name: "Standard", amount_type: "fixed", amount: 4900, currency: "usd", billing_type: "one_time" },
});
await tools.crevioApi.updateProduct({ id_or_slug: product.id, body: { status: "active" } });
product.id

Okumalar parametrelerini doğrudan alır (listOrders({ status: "succeeded" })); yazmalar istek gövdesini body altında, yol parametreleri yanında geçirir.

Değerleri args ile geçirin (en fazla 16 dize); betik bunları args genel değişkeninden okur. outputDir genel değişkeninin adlandırdığı dizine yazılan dosyalar çalışmada artifacts olarak geri döner:

const { data } = await tools.crevioApi.listOrders({ status: "succeeded", limit: Number(args[0]) });
await Bun.write(`${outputDir}/orders.csv`, data.map((o) => o.id).join("\n"));
data.length

Bir çalışma bir betik çalışması (srun_…) döndürür: status (queued → in_progress → completed, failed, cancelled veya timed_out), result, betiğin output içinde yazdırdıkları, error ve calls — yaptığı her araç çağrısı HTTP durumuyla birlikte, böylece bir hatayı yakalayan bir betik bile hangi çağrının başarısız olduğunu gösterir. run_script, ask_crevio'nin yapabildiği kadar bekler (akışlı bir yanıtta 300 saniye, aksi halde 90; daha az beklemek için wait_seconds geçirin). Daha uzun süren bir çalışma wait_timed_out: true ve kimliğiyle geri döner — bu bir hata değildir: wait_for_script_run ile beklemeye devam edin. run_script'i tekrar çağırmak betiği iki kez çalıştırır, aynı idempotency_key'yi geçmediğiniz sürece.

crevioApi çağrıları api.crevio.co ile aynı denetleyicilerden geçer, bu yüzden API kuralları değişmeden geçerlidir: ilişkiler önek kimlikli çıplak adlardır (product_id değil, product: "prod_abc"), para sent cinsindendir, liste uç noktaları {object: "list", data: [...]} döndürür ve bir ürünün active olabilmesi için önce bir fiyat varyantına ihtiyacı vardır. Kurslar ve diğer içerikler ürün değil, deneyimlerdir (listExperiences).

Sınırlar:

  • Kim: yalnızca hesap yöneticileri. Betik sizin olarak çalışır — kişisel entegrasyonlarınız dahil — tüm ekibinizin paylaştığı bir bilgisayarda.
  • Zaman aşımı: timeout_seconds 1 ile 600 arasında (varsayılan 300). Bilgisayarın önce uyanması gerekebilir, bu da yaklaşık 20 saniyeye kadar ekleyebilir.
  • Eşzamanlılık: kullanıcı başına en fazla 4, hesap başına 8 çalışma.
  • Onaylar: bir betik durup onay isteyemez. Onay gerektiren bir çağrı (listelemede requires_approval) approval_required ile başarısız olur: bu eylemi Ayarlar → Entegrasyonlar bölümünde otomatik çalışacak şekilde ayarlayın veya işi bunun yerine ask_crevio ile devredin.
  • İptal: yalnızca queued durumundaki bir çalışma iptal edilebilir. Çalışan bir betik sonuna veya zaman aşımına kadar çalışır.
  • Çıktı dosyaları: çalışma başına en fazla 20, her biri en fazla 50 MB. Daha büyük dosyalar dışarıda bırakılır.

Tam araç referansı

AraçAmaçArgümanlar
whoamiHesabı, kullanıcıyı, kimlik bilgisini, planı, kredileri, limitleri ve araçları tanımla—
ask_crevioBir işi devret ve sonucu beklemessage (gerekli), timeout_seconds, approval_mode, speed, response_format, idempotency_key
start_chatBir işi beklemeden devretmessage (gerekli), approval_mode, speed, response_format, idempotency_key
wait_for_runBir çalışmanın sonuçlanmasını (sınırlı süreyle) beklerun_id (gerekli), timeout_seconds
get_runBir çalışmanın durumunu, özetini, bekleyen onaylarını ve son yanıtını getirrun_id (gerekli)
list_chatsHesabın sohbetlerini en yeniden eskiye listelesearch, limit, starting_after, ending_before
get_chatBir sohbetin başlığını, türünü ve en son çalışmasını getirchat_id (gerekli)
send_messageBir sohbete devam et; isteğe bağlı olarak yanıtı beklechat_id, message (gerekli), timeout_seconds, response_format, idempotency_key
resolve_approvalsBir çalışmanın duraklatıldığı entegrasyon eylemlerini onayla/reddetrun_id, approvals: [{id, approved, reason}] (gerekli)
cancel_runBekleyen, çalışan veya bekleyen bir çalışmayı durdurrun_id (gerekli)
list_runsHesabın çalışmalarını en yeniden eskiye listelestatus, task_id, chat_id, limit, starting_after, ending_before
list_messagesBir sohbetin mesajlarını en eskiden yeniye okuchat_id (gerekli), limit, ending_before
list_integrationsBir betiğin çağırabileceği her ad alanını adlandır—
list_integration_toolsBir ad alanının işlevlerini parametreler ve kod parçacıklarıyla listelenamespace (gerekli), search, limit, offset
run_scriptHesabın bilgisayarında JavaScript çalıştır ve beklecode (gerekli), args, timeout_seconds, wait_seconds, idempotency_key
wait_for_script_runBir betik çalışmasının bitmesini (sınırlı süreyle) beklerun_id (gerekli), wait_seconds
get_script_runBir betik çalışmasının durumunu ve sonucunu okurun_id (gerekli)
cancel_script_runBaşlamamış bir betik çalışmasını iptal etrun_id (gerekli)
get_file_download_urlBir yapıt kimliğini (art_…) 15 dakika geçerli bir indirme bağlantısıyla değiştirfile_id (gerekli)
list_audit_eventsHesabın denetim olaylarını en yeniden eskiye listele. Yalnızca Enterprise planı. audit:read kapsamını ve kimlik bilgisi bir kişi olarak hareket ettiğinde bir yönetici gerektiriraction, actor_type, entity_type, entity_id, after, limit, starting_after, ending_before

Bir bağlantının hangi araçları gördüğü, kimlik bilgisine bağlıdır:

API anahtarları ve OAuth belirteçleri aynı kapsamları paylaşır ve bir bağlantı, kimlik bilgisinin kapsamlarının izin verdiği araçları görür:

  • Okuma yapan araçlar için read, geri kalanı için write; araç aşağıdaki kapsamlardan birini gerektirmedikçe.
  • ask_crevio, start_chat, send_message ve cancel_run için agent:run, ayrıca write ile birlikte resolve_approvals. write olmadan devredilen işler salt okunur çalışır.
  • run_script, wait_for_script_run, get_script_run ve cancel_script_run için scripts:run. Bir ekip anahtarı bunları asla görmez ve write olmadan bir betik hiçbir şeyi değiştiremez.
  • get_file_download_url için files:read, list_audit_events için audit:read.
  • whoami hiçbirini gerektirmez.

read_only verilen bir OAuth belirteci (bir istemci kapsam istemediğinde varsayılan) read tutar; read_write verilen bir belirteç her kapsamı tutar ve her aracı görür. Kapsamlar var olmadan önce oluşturulmuş bir API anahtarı da öyle.

Belirtecin kullanamadığı bir araç tools/list içinde görünmez ve çağrıldığında "Araç bulunamadı" yanıtı verir. Kapsamların ötesinde, bir ajana verdiğiniz belirteci verilerine dokunmasından memnun olduğunuz bir hesapta vermek ve devredilen işlerde approval_mode seçmek suretiyle bir ajanın yapabileceklerini sınırlayın.

Çalışma nesnesi

Devretme araçları bir çalışma (trun_…) döndürür; bu, GET /v1/task_runs/:id ile aynı nesne artı result ve chat_id'tür:

AlanAnlamı
statuspending → running → completed / failed, veya ajan sizi beklerken needs_input
resultAjanın son yanıtı, en fazla 24.000 karakter (çalışma sonuçlandığında mevcut)
json, json_errorBir response_format ile: yanıt ayrıştırılmış ve doğrulanmış, veya şema için neden geçerli JSON olmadığı
artifactsÇalışmanın teslim ettiği dosyalar, her biri {id, filename, content_type, size}; get_file_download_url ile indirin
summaryYanıtın ilk 500 karakteri — panonun ve web kancalarının gösterdiği
pending_approval_idsneeds_input olduğunda: çalışmayı engelleyen entegrasyon onayları, resolve_approvals için
error_messageBir failed çalışmasının neden başarısız olduğu (cancel_run sonrasında "Cancelled by the caller")
wait_timed_out, next_stepBekleme, çalışma sonuçlanmadan sona erdiğinde mevcut — hâlâ çalışıyor; next_step nasıl takip edileceğini söyler
credits_consumedÇalışmanın maliyeti, AI kredisi cinsinden
task_id, chat_idREST API ve pano için temel Görev ve konuşma

Çalışmalar ayrıca task_run.completed, task_run.failed ve task_run.needs_input web kancalarını tetikler ve GET /v1/task_runs/:id/stream adresinde SSE üzerinden akışla izlenebilir.

MCP Görevleri ve yoklama

Bunlar, Crevio'nun kendi Görevlerinden ayrı olarak MCP istemcinizin protokol özellikleridir. Bunlarla bir istemci, uzun işleri takip eder ve wait_for_run ve resolve_approvals çağırmak yerine onayları kendisi yanıtlar. Her ikisi de istemcinizin seçtiği 2026-07-28 protokolünü gerektirir. Bunlar olmadan her araç yukarıda açıklandığı gibi davranır.

Eşzamansız araç çağrıları

Sunucu, MCP Görevleri uzantısını (io.modelcontextprotocol/tasks) uygular ve bunu hem /mcp hem de /chatgpt üzerinde server/discover içinde duyurur. Bir istek bunu _meta["io.modelcontextprotocol/clientCapabilities"].extensions içinde bildirdiğinde, bu araçlar en fazla 5 saniye bekler ve ardından isteği açık tutmak yerine bir görev tanıtıcısı ("resultType": "task") döndürür: ask_crevio, wait_for_run, bir timeout_seconds ile send_message, run_script ve wait_for_script_run. Bu 5 saniye içinde biten bir çalışma yerinde yanıtlanır.

  • tasks/get görevin status değerini döndürür. working, çalışmanın hâlâ devam ettiği anlamına gelir. completed olduğunda, result aracın görevler olmadan döndüreceği şeyi tam olarak tutar. pollIntervalMs aralığıyla yoklayın: ajan çalışmaları için 3 saniye, betikler için 1 saniye.
  • tasks/update görevin inputRequests değerini yanıtlar (aşağıya bakın).
  • tasks/cancel çalışmayı durdurur, tıpkı cancel_run veya cancel_script_run gibi.

Bir görev çalışmanın kendisidir, dolayısıyla çalışma sürdüğü sürece sürer (ttlMs değeri null'tür). failed ile biten bir çalışma yine de görevi tamamlar: result içindeki status ve error_message değerlerini okuyun. Görevin kendi failed durumu protokol hataları için saklanır. Bir görev kimliği tahmin edilemez ve yalnızca çalışmayı başlatan hesap ve kullanıcı okuyabilir. Bilinmeyen veya yabancı bir kimlik -32602 yanıtı verir ve uzantıyı bildirmeyen bir istek -32021 yanıtı verir.

Onaylar ve sorular

Bir istemci form yoklamasını (_meta["io.modelcontextprotocol/clientCapabilities"].elicitation) bildirdiğinde, needs_input içinde duraklatılmış bir çalışma kullanıcıya doğrudan sorar:

Çalışmanın beklediğiİstemciye sorulanKabul etReddet veya kapat
Entegrasyon eylemlerinin onayıHer eylem için bir form, onay kimliğiyle (apr_…) anahtarlanmış, neyin gönderileceğini açıklayanOnaylarReddeder
Ajanın sorusuna bir yanıtreply alanı olan bir formYanıtı gönderir ve çalışma devam ederÇalışmayı tamamlandı olarak kapatır

Kapatılan bir onay reddetme sayılır, dolayısıyla açık bir evet olmadan hiçbir şey çalışmaz. Formları herhangi bir sırayla ve birkaç tanesini aynı anda yanıtlayabilirsiniz. Her biri yanıtlandığında çalışma devam eder ve ajan tüm kararları birlikte duyar.

  • Görevlerle: görev, formlarla birlikte inputRequests içinde input_required durumuna geçer. Bunları tasks/update ile yanıtlayın.
  • Görevler olmadan: araç, formlarla ve bir requestState ile birlikte "resultType": "input_required" döndürür. Aynı aracı aynı argümanlarla, artı inputResponses ve o tam requestState ile tekrar çağırın. Durum mühürlenir, araca ve argümanlarına bağlanır ve bir saat sonra sona erer.
  • Form yoklaması olmadan: hiçbir şey değişmez. Çalışma, resolve_approvals için pending_approval_ids ile birlikte, tamamlanmış bir görev olarak da dahil, needs_input olarak geri döner.

Olaylar

Sunucu, taslak MCP Olayları uzantısını (io.modelcontextprotocol/events) uygular, böylece bir istemci hesapta gerçekleşen şeylere, örneğin order.paid veya email_message.received olaylarına abone olabilir ve yoklama yapmadan tepki verebilir. Bu, hem /mcp hem de /chatgpt üzerinde server/discover içinde duyurulur.

Olay türleri web kancalarıyla aynıdır ve yük de öyledir: data.object, kaynağın API uç noktasının döndürdüğü haliyle tam olarak kendisidir. events/list, her türü payloadSchema ile listeler.

Abone olma

{
  "jsonrpc": "2.0", "id": 2, "method": "events/subscribe",
  "params": {
    "name": "order.paid",
    "arguments": {},
    "delivery": { "mode": "webhook", "url": "https://hooks.example.com/crevio", "secret": "whsec_<base64 of 24–64 random bytes>" },
    "cursor": null,
    "ttlMs": 86400000
  }
}

Yanıt, abonelik id (mcpsub_…) değerini taşır; aynı kimlik bilgisi, URL, olay ve argümanlar için sabittir, ve refreshBefore değerini taşır. Aboneliği sürdürmek için refreshBefore öncesinde events/subscribe aracını aynı değerlerle tekrar çağırın; name, arguments ve delivery.url ile events/unsubscribe aboneliği hemen sona erdirir.

  • Doğrulama. Bir URL'ye ilk teslimattan önce Crevio ona {"type":"verification","challenge":"<nonce>"} POST eder. 5 saniye içinde bir 2xx ve {"challenge":"<nonce>"} ile yanıtlayın. Her kimlik bilgisi her URL'yi bir kez doğrular.
  • Ömür. ttlMs olmadan bir abonelik bir gün sürer. Önerilen bir ttlMs bir dakika ile bir gün arasında tutulur. "ttlMs": null sona erme istemez ve Crevio bunu verir.
  • Gizli anahtarı döndürme. Bir yenilemede yeni bir delivery.secret gönderin. 10 dakika boyunca teslimatlar her iki gizli anahtarın imzalarını taşır.
  • Limitler. Hesap başına 100 canlı abonelik. Abone olma yalnızca okuma yapar, dolayısıyla bir read_only belirteci bunu yapabilir.

Teslimatlar

Her olay, gizli anahtarınızla (webhook-id, webhook-timestamp, webhook-signature) Standard Webhooks uyarınca imzalanmış ve X-MCP-Subscription-Id taşıyan bir {"eventId", "name", "timestamp", "data"} POST'udur. Gövdeye güvenmeden önce imzayı doğrulayın ve eventId üzerinde yinelenenleri ayıklayın.

Uç noktanızın yaptığıGerçekleşen
2xx yanıtı verirTeslim edildi
410 veya 413 yanıtı verirYeniden denenmeden bırakıldı
Başarısız olur veya zaman aşımına uğrar (5 saniye)Yaklaşık 12 dakika boyunca en fazla 4 kez daha yeniden denenir, sonra bırakılır
Bir saat boyunca başarısız olmaya devam ederBir sonraki yenilemeniz onları tekrar açana kadar teslimatlar durur
Sona ermesiz bir abonelikte 3 gün boyunca başarısız olmaya devam ederCrevio {"type":"terminated",…} POST eder ve aboneliği siler

Kimlik bilgisi hesaba erişimini kaybederse (anahtar silinir veya süresi dolar, OAuth erişimi iptal edilir, kullanıcı hesaptan çıkarılır), bir sonraki olay aboneliği -32024 hatasını taşıyan bir terminated zarfıyla sona erdirir.

Yapamadıkları

  • Yalnızca webhook teslimatı, şimdilik tasarım gereği. events/poll ve events/stream -32026 yanıtını verir. POST alamadığınızda webhooks API'sini veya list_runs ile REST uç noktalarını kullanın.
  • Yeniden oynatma yok. cursor her zaman null: bir abonelik kesintiye uğradığı sırada gerçekleşen olaylar daha sonra teslim edilmez. Bir boşluktan sonra güncel durumu araçlar üzerinden okuyun.
  • Filtre yok. Olay türleri arguments almaz. Bir abonelik, hesaptaki o türdeki her olayı alır.

Hatalar uzantının kodlarını kullanır: -32602 geçersiz parametreler (hatalı URL, secret veya argümanlar), -32023 bilinmeyen olay veya abonelik, -32024 kimliği doğrulanmış principal yok veya erişim kaybedildi, -32025 abonelik sınırı, -32026 teslimat modu sunulmuyor ve -32027 geri çağrı doğrulamada başarısız oldu; data.reason ise şunlardan biri: connection_refused, timeout, tls_error, http_4xx, http_5xx veya challenge_failed.

Hatalar

Kimlik doğrulama hataları, isteğin kendisinde HTTP 401/403 olarak döner (WWW-Authenticate OAuth meta verilerine işaret eder). Araç hataları, isError: true ve bir JSON gövdesi içeren bir araç sonucu olarak döner:

{ "error": "run_busy", "message": "Run trun_8d1k… is still in progress; wait for it to settle before sending more.", "http_status": 409 }
errorAnlamıNe yapmalı
run_busyBu konuşmada bir çalıştırma hâlâ devam ediyorBitmesini bekleyin, ardından send_message
account_at_capacityHesapta zaten 5 çalıştırma sürüyor (http_status: 429)retry_after_seconds sonrasında yeniden deneyin
idempotency_errorFarklı bir mesajla yeniden kullanılan bir idempotency_keyYeni bir mesaj için yeni bir anahtar geçin
run_not_activeZaten tamamlanmış bir çalıştırmada cancel_runHiçbir şey — result değerini okuyun
run_not_resumableÇalıştırmanın devam ettirilecek konuşması yokask_crevio ile yeni bir iş başlatın
approvals_pendingOnaylarla engellenen bir çalıştırmada send_messageÖnce resolve_approvals
stale_resolutionGönderdiğiniz onaylar bekleyen kümeyle eşleşmiyorget_run, ardından her pending_approval_ids girdisini yeniden gönderin
insufficient_creditsHesapta kalan AI kredisi yokCrevio'da kredi ekleyin
resource_missingBu hesapta o kimliğe sahip çalıştırma/görev yokKimliği kontrol edin — çalıştırmalar hesaba özeldir
validation_failedHatalı bir argüman (ör. bilinmeyen bir approval_mode)Argümanı düzeltin
rate_limit_exceededSahip başına dakikada 600 istek, REST API ile paylaşılır — veya çok fazla betik çalıştırması sürüyorX-RateLimit-Reset değerine kadar geri çekilin (hız sınırları) veya bir betik çalıştırmasının bitmesini bekleyin
forbiddenHesap yöneticisi olmayan biri tarafından run_scriptBir yöneticiden isteyin veya ask_crevio ile devredin
run_not_cancellableZaten başlamış bir çalıştırmada cancel_script_runwait_for_script_run ile bekleyin

Hata fırlatan bir betik yine de bir betik çalıştırması olarak döner; status: "failed", error ve oluşturduğu calls ile birlikte — run_script yalnızca çalıştırma başlatılamadığında veya bekleme sona erdiğinde hata verir.

Güvenlik

Her araç, hesabınızın kiracı sınırı içinde çalışır. Devredilen işler, Crevio ajanını hesabınızın hâlihazırda sahip olduğu izinlerle çalıştırır. run_script, hesabınızın Crevio bilgisayarında çağıran yönetici olarak çalışır; tools çağrıları, ajanın uyduğu aynı onay ayarlarından ve api.crevio.co ile aynı API denetleyicilerinden geçer; böylece yetkilendirme, doğrulama ve hata mesajları doğrudan API çağrılarıyla aynıdır. Token'lar hesabınız kadar güçlüdür: yalnızca güvendiğiniz ajanları bağlayın ve bir bağlantıyı anında kesmek için Ayarlar → Geliştiriciler bölümünden bir token'ı iptal edin.

Sonraki adımlar

Bağlanma

İstemci bazında kurulum, OAuth ve curl örnekleri.

Görevler (AI iş gücünüz)

Her devredilen işin üzerine kurulduğu Görev / Görev Çalıştırması modeli — ve yinelenen işleri nasıl planlayacağınız.

AI ve Ajanlara genel bakış

MCP, Görevler ve Olayların Crevio'nun ajan tabanlı modelini nasıl oluşturduğu.

API kuralları

crevioApi değerinin REST ile paylaştığı yapılar, önekler ve tuzaklar.

Bu dokümantasyon, bir geliştirici dokümantasyon platformu olan Mintlify üzerinde oluşturulur ve barındırılır.