Yapay zeka asistanının Odoo'ya bağlanması
MCP sunucusu görsel eğitimi, adım adım
Claude, ChatGPT, Cursor veya n8n'i doğrudan canlı ERP verilerinize bağlayın — kontrollü erişim, her değişiklik için insan onayı ve eksiksiz denetimle. Herhangi bir aracı program kurmadan: Doğrudan Odoo MCP sunucusudur.
Odoo üzerinde MCP sunucusu nedir?
MCP sunucusu, yapay zekâ asistanının tahmin etmek yerine sisteminizin gerçek verisini okumasına ve — sizin açık onayınızla — üzerinde değişiklik yapmasına izin veren Odoo üzerinde standart bir bağlantı noktasıdır. MCP, Model Context Protocol'ün kısaltmasıdır; yapay zekâ istemcilerinin bir sistemin araçlarını keşfedip çalıştırdığı açık bir protokoldür. Abrak sürümünde her çağrı, anahtarın bağlı olduğu Odoo kullanıcısının yetkileriyle çalıştırılır, ilk çağrıda hiçbir yazma işlemi uygulanmaz ve her istek — başarılı ya da reddedilmiş — günlüğe kaydedilir.
- 51 araçOkuma, raporlama, onaylı yazma
- İnsan onayıHer değişiklik önce diff, sonra uygulama
- Kullanıcı erişimiOdoo ACL ve kayıt kuralları geçerlidir
- Tam denetimHer çağrı günlüğe kaydedilir, token saklanmaz
Neden raporu sohbet penceresine kopyalamak yerine doğrudan bağlantı?
Günümüzün yaygın yöntemi şudur: ERP'den rapor alırsınız, dosyaya dökersiniz ve yapay zeka sohbet penceresine yapıştırırsınız. Üç sorunu vardır — veri, kopyalama anına kadar eskimiştir; hacmi yalnızca manuel olarak aldığınızla sınırlıdır; ve modelin çıktısının sisteme geri dönmenin hiçbir yolu yoktur. MCP bağlantısı üçünü de çözer: model soruyu doğrudan bir araç çağrısına çevirir, anlık yanıt alır ve bir şey kaydedilecekse önerilen değişikliği onayınız için size döndürür.
Önemli güvenlik notu: MCP bağlantısı «şirketin tüm anahtarını bir modele vermek» değildir. Erişim düzeyi tam olarak sizin anahtar üzerinde tanımladığınız şeydir — ilerleyen adımlarda onu nasıl dar tutacağınızı adım adım göreceksiniz.
6 adımda kurulum
- MCP Sunucusu Uygulamasını Etkinleştirme: Uygulama «MCP sunucusu» Abrak uygulama mağazasından etkinleştirin; uygulama çubuğunda «MCP Sunucusu» menüsü görünür.
- Anahtar Oluşturma ve Odoo Kullanıcısı Seçimi: «MCP Sunucusu ▸ Anahtarlar» bölümünde «Yeni» düğmesine tıklayın ve anahtarı en az gerekli yetkiye sahip bir kullanıcıyla ilişkilendirin — tüm çağrılar o kullanıcının yetkileriyle çalışır. Anahtarın tam metni yalnızca bir kez gösterilir; sonrasında yalnızca öneki sistemde saklanır.
- Kapsam, hız limiti ve izin verilen modelleri belirleme: Kapsamı «salt okunur» olarak ayarlayın (yazma araçları istemciye hiç listelenmez), dakika başına hız limitini yapılandırın ve gerekirse izin verilen modelleri ve kaynakları kısıtlayın.
- İstemci bağlamadan önce laboratuvarda test: «MCP Sunucusu ▸ Laboratuvar» bölümünde aynı araçla aynı anahtarı çalıştırın. Bu adım isteğe bağlı değildir; «araç bozuk» ile «istemcim yanlış yapılandırılmış» arasındaki farkı ortaya koyan tam olarak budur.
- Yapay zeka istemcisi bağlantısı:
https://<فضای-کاری>.abrak.org/mcpadresini anahtarla birlikte istemciye Bearer token olarak girin — tam ayar örneği aşağıda verilmiştir. - Değişiklikleri onaylama ve denetim incelemesi: Her yazma aracı ilk çağrıda yalnızca bir diff döndürür; onaylandıktan sonra çağrının kendisi «Talep Günlüğü»nde «Yazma Uygulandı» sütunuyla izlenebilir.
Görsel eğitim — adım adım
📸 Yakınlaştırmak için herhangi bir görsele tıklayın — tam ekran albüm açılır ve sol/sağ oklarla (veya yön tuşlarıyla) tüm adımlar arasında gezinebilirsiniz.
Adım 2 ve 3: Anahtar oluşturma, kullanıcı seçimi ve erişim kapsamını sınırlandırma
sale.order:action_confirm) hepsi burada yapılandırılır.Adım 4: Laboratuvar — istemciyi bağlamadan önce aracın gerçek çalışması
structuredContent. «curl» sekmesi eşdeğer komutu oluşturur; böylece aynı çağrıyı Odoo dışında da yeniden üretebilirsiniz.Adım 6: İnsan onayıyla yazma ve denetim
create_records aracı çağrıldı ancak hiçbir kayıt oluşturulmadı: yanıt resultType: "input_required"'dır ve metni hangi kaydın hangi değerlerle oluşturulacağını tam olarak belirtir — Farsça ve İngilizce. Siz onaylayana kadar hiçbir şey yazılmaz.
Unauthorized, MethodNotFound, InvalidParams ve benzerleri). Tokenın kendisi hiçbir zaman saklanmaz.Birleşik giriş: aynı Odoo hesabı, hem sohbet hem yapay zeka asistanı
https://mcp.abrak.org/mcp adresine bağlandığında görüntülenen sayfa da budur — otomatik keşif (RFC 9728) istemciyi buraya yönlendirir. Uygulama adı, oturum açılan hesap, istenen kapsamlar ve token'ın tam olarak hangi adres için verildiği (RFC 8707) onaydan önce sayfada görünür.Panelde hazır komut — prompt yazmadan
explain_denial allowed: false olduğunu, reddeden katmanın mcp_scope olduğunu ve tam olarak neyin değişmesi gerektiğini söyler — kuru bir 404 değil.Adım 5 istemciye göre — ayrıntılı ayarlar
Aşağıdaki tüm örneklerde mycompany.abrak.org adresini kendi çalışma alanı adresinizle, KEY değerini ise 2. adımda oluşturduğunuz anahtarla değiştirin. Aynı adres anahtar formunda da yazılıdır.
Claude Code (komut satırı)
claude mcp add --transport http abrak https://mycompany.abrak.org/mcp \
--header "Authorization: Bearer KEY"
.mcp.json dosyası — ekip arkadaşlarıyla paylaşılabilir
{
"mcpServers": {
"abrak": {
"type": "http",
"url": "https://mycompany.abrak.org/mcp",
"headers": {
"Authorization": "Bearer KEY"
}
}
}
}
Bu yapıyı masaüstü istemcilerin ve kod editörlerinin çoğu (Cursor ve Windsurf dahil) kabul eder; yalnızca ayar dosyasının konumu farklıdır.
curl ile doğrudan test — ağ sorununu teşhis etmek için
curl -X POST https://mycompany.abrak.org/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Authorization: Bearer KEY" \
-H "MCP-Protocol-Version: 2026-07-28" \
-H "Mcp-Method: tools/list" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
Bu komut araç listesini döndürüyorsa, sunucu ve anahtar sağlıklıdır ve gördüğünüz her sorun istemci ayarlarından kaynaklanıyordur. Mcp-Method ve MCP-Protocol-Version başlıkları protokolün 2026-07-28 sürümünde zorunludur ve uyumlu istemciler bunları kendiliğinden gönderir.
n8n ve otomasyonlar
n8n'de MCP istemci düğümünü kullanın: adres çalışma alanınızın /mcp adresi ve kimlik doğrulama Header tipinde Authorization: Bearer KEY. Bu kullanım için salt okunur kapsamlı ayrı bir anahtar oluşturun, böylece günlüklerde otomasyon trafiğini insan trafiğinden ayırt edebilirsiniz.
Bulut istemcileri (claude.ai ve tarayıcıda ChatGPT)
Bunlar kendi sunucularından bağlanır, sizin bilgisayarınızdan değil — ve İran içindeki bir IP'ye bağlantı açmazlar. Kalıcı adres https://mcp.abrak.org/mcp tam olarak bunun için oluşturulmuştur (Cloudflare arkasında, sunucu IP'sine bağımlı olmadan). claude.ai'de konnektör ekleme menüsünden bu adresi girin; istemci kendisi keşif el sıkışmasını (RFC 9728) yapar ve sizi aynı Odoo onay sayfasına yönlendirir — bu sayfanın 7. adımı, gerçek görselle. Masaüstü istemci ve CLI için bu ayrı adrese gerek yoktur, çalışma alanının /mcp adresi yeterlidir.
Sorun giderme — hata mesajı sade bir dille
Sunucu kasıtlı olarak belirsiz hata döndürmez; her mesaj hangi katmanın engellediğini ve ne değiştirilmesi gerektiğini belirtir. En yaygın olanlar:
| Ne görürsünüz | Gerçek anlamı | Doğru iş |
|---|---|---|
| İstemci hiç bağlanamıyor | İstemci bulut tabanlıdır ve kendi sunucusundan bağlanır, bilgisayarınızdan değil | Önce yukarıdaki curl komutunu aynı ağdan test edin; curl yanıt verirse sorun istemci ağ yolundadır, sunucuda değil |
| “Anahtar ne geçerli bir MCP anahtarı ne de geçerli bir API anahtarı” mesajı | Yanlış, süresi dolmuş, devre dışı — ya da başka bir çalışma alanına ait anahtar | Anahtarı «Anahtarlar» bölümünde kontrol edin ve adresin, ana bilgisayar adının aynı çalışma alanına ait olduğundan emin olun |
| Araç listesi beklenenden kısa | Anahtar yalnızca okunabilir; yazma araçları kasıtlı olarak listelenmez | Gerçekten yazmaya ihtiyacınız varsa, anahtarın kapsamını 'okuma ve yazma' yapın |
| Araç çalışıyor ama sonuç boş | Ya veri yoktur ya da bir kayıt kuralı bunu bu kullanıcıdan gizlemiştir | Yanıt bu ikisini birbirinden ayırt eder; ayrıntılar için explain_denial aracını çağırın |
| Desteklenmeyen protokol sürümü hatası | İstemci geçersiz bir protokol sürümü bildiriyor | İstemciyi güncelleyin; sunucu eski sürümlerle müzakere eder ancak geçersiz sürümü reddeder |
| Hız sınırı aşımı hatası | Dakikadaki çağrı sayısı anahtarın üst sınırını aştı | Anahtar formunda hız limitini artırın ya da otomasyon için ayrı bir anahtar oluşturun |
Bu MCP sunucusunu diğerlerinden ne ayırır?
- Şifreli İmzalı İki Aşamalı Yazma: İlk çağrı yalnızca bir diff döndürür. Onaydan sonra çalıştırılan şey, ikinci denemede gönderilenle değil imzalananla aynıdır — bu nedenle model, görüntüleme ile yürütme arasında argümanları değiştiremez.
- Gerçekten açıklayan ret hatası: «Access denied» yerine yanıt, hangi katmanın (anahtar kapsamı, model politikası, Odoo ACL veya kayıt kuralı), tam kural adının ve hangi grubun eksik olduğunu belirtir — iki dilde; ayrıca
explain_denialaracı bunu denemeden önce yanıtlar. - Token bütçesine duyarlı alan seçimi: Yanıtlar token limitine göre kırpılır ve sunucu neyin çıkarıldığını açıkça bildirir — verilerin yarısını sessizce atmak yerine.
- Gerçek Anlamda Çok Kiracılı: Çalışma alanı ana bilgisayar adından tanımlanır. Bir istek yanlış düğüme ulaşırsa yanıt doğru adresi bildirir; anahtar hiçbir zaman başka bir veritabanını hedef alamaz.
- İran Paketi: Çift yönlü Jalali tarihi, Farsça aralıklar («geçen mevsim», «Mordad»), Riyal ve Tümen birim belirtimiyle, çek döngüsü, Bordro ve sigorta özeti, durum ve SMS gönderimi.
Odoo'nun kendisinin de bir yapay zeka modeline sahip olmasını istiyorsanız (yalnızca araç yanıtlayıcısı olmak yerine), Abrak Yapay Zeka uygulaması Riyal cüzdanı ve model bağlantısını ayrı ayrı sağlar.
MCP referans ve eğitim makaleleri
کاربرد هوش مصنوعی در کسب و کارهای ایرانی ۱۴۰۵: چت بات فروش، AI Agent روی CRM، گزارش لحظه ای با MCP و نقشه راه ورود کم ریسک به اتوماسیون هوشمند.
SAML و OIDC هر دو «ورود یکپارچه» را حل میکنند، ولی برای یک ERP که قرار است به دستیار هوش مصنوعی هم توکن بدهد، تفاوتشان فقط تشریفاتی نیست. مقایسهی مبتنی بر مستندات رسمی هر دو پروتکل.
Bir MCP aracının döndürmediği her alan, harcanmamış bir token'dır. Varsayılan alan seçiminin neden bir ERP üzerindeki MCP sunucusunun en önemli tasarım kararı olduğunu açıklıyoruz.
"Hiçbir veritabanı seçilmedi" hatasının çözülmesi, doğru kiracının bulunduğu anlamına gelir, o kiracının verisinin izole olduğu anlamına gelmez. Bulut ERP üzerindeki bir MCP sunucusunun kapatması gereken diğer üç katman.
MCP sunucusu hakkında sık sorulan sorular
برای وصلکردن دستیار هوش مصنوعی به اودو دقیقاً چه چیزی لازم است؟
سه چیز: اپ «سرور MCP» روی فضای کاریتان فعال باشد، یک کلید MCP بسازید و نشانی /mcp فضای کاریتان را با همان کلید در کلاینت هوش مصنوعی وارد کنید. هیچ برنامهی واسطی روی کامپیوتر شما نصب نمیشود — خودِ اودو سرور MCP است.
نشانی سرور MCP من چیست؟
نشانی همان دامنهی فضای کاری خودتان بهعلاوهی /mcp است؛ مثلاً اگر با mycompany.abrak.org وارد میشوید، نشانی سرور https://mycompany.abrak.org/mcp میشود. همین نشانی روی فرم هر کلید MCP هم نوشته شده تا اشتباه تایپ نشود.
کلید را بهصورت Bearer بدهم یا از OAuth استفاده کنم؟
هر دو کار میکند. کلاینتهای دسکتاپ و CLI (مثل Claude Code، Cursor، n8n) معمولاً یک هدر Authorization: Bearer <کلید> میگیرند — سادهترین راه. کلاینتهایی که خودشان جریان ورود دارند از OAuth استفاده میکنند: کاربر یک بار صفحهی تأیید فارسی را میبیند و اجازه میدهد؛ پشت صحنه همان سیاست کلید، نرخ و ممیزی اعمال میشود.
تفاوت کلید «فقط خواندن» و «خواندن و نوشتن» چیست؟
کلید فقطخواندنی ابزارهای نوشتن را اصلاً نمیبیند — در فهرست ابزارهای کلاینت ظاهر نمیشوند، پس مدل حتی نمیتواند تلاش کند. کلید خواندن و نوشتن آنها را میبیند، ولی هر نوشتنی در فراخوانی اول فقط یک پیشنمایش برمیگرداند و تا تأیید صریح شما اعمال نمیشود. برای شروع همیشه فقطخواندنی بسازید.
چطور میفهمم دستیار چه کاری کرده است؟
منوی «لاگ درخواستها» هر فراخوانی را ثبت میکند: کدام کلید، کدام ابزار، کدام مدل، چه مدت طول کشید، چه کد وضعیتی برگشت، دلیل رد شدن و — مهمتر از همه — ستون «نوشتن اعمال شد» که پیشنمایش را از تغییر واقعی جدا میکند. خودِ توکن هرگز ذخیره نمیشود.
دستیار ابزارها را نمیبیند یا فهرست خالی است — چه کنم؟
معمولاً یکی از این سه: کلید غیرفعال یا منقضی است؛ کلید فقطخواندنی است و شما دنبال ابزار نوشتن میگردید؛ یا مدل موردنظر در فهرست «مدلهای مجاز» کلید نیست. ابزار explain_denial دقیقاً میگوید کدام لایه جلوی کار را گرفته و چه باید عوض شود.
کلاینت میگوید به سرور نمیرسد — مشکل از کجاست؟
اول تشخیص بدهید کلاینت از کجا وصل میشود. کلاینت دسکتاپ از کامپیوتر خود شما وصل میشود و مستقیم به نشانی فضای کاری میرسد. اما کانکتورهای ابری (claude.ai یا ChatGPT در مرورگر) از سرورهای خودشان وصل میشوند و به آیپی ایران اتصال باز نمیکنند؛ برای آنها یک نشانی بیرونی جداگانه لازم است که با پشتیبانی ابرک هماهنگ میشود.
چند درخواست در دقیقه مجاز است؟
روی هر کلید یک «سقف نرخ» تنظیم میکنید (پیشفرض ۶۰ درخواست در دقیقه). شمارش روی خود پایگاهداده انجام میشود، پس با چند worker هم درست کار میکند. عبور از سقف یک خطای استاندارد برمیگرداند، نه قطع بیتوضیح اتصال.
آیا روی اودوی نصبشده روی سرور خودم هم کار میکند؟
بله. افزونه یک ماژول استاندارد اودو ۱۹ است و روی نصب اختصاصی هم نصب میشود. روی نصب چنددیتابیسی، فضای کاری از روی نام میزبان تشخیص داده میشود و اگر درخواست به نود اشتباه برسد، بهجای پاسخ اشتباه، نشانی درست اعلام میشود.
دادهی من برای آموزش مدل هوش مصنوعی استفاده میشود؟
خیر. سرور MCP داده را به مدل نمیفرستد؛ کلاینت شماست که تصمیم میگیرد چه چیزی را به مدل بدهد. سیاست نگهداری و آموزش داده، سیاست همان سرویس هوش مصنوعی است که خودتان انتخاب کردهاید — ابرک در این مسیر فقط پاسخدهندهی ابزار است و هر فراخوانی را برای شما لاگ میکند.