Odoo ERP sistemlerine AI asistanları bağlayarak işletme verilerine erişim, kayıt yönetimi ve workflow otomasyonu sağlayın.
Claude Desktop config.json'a ekle
{
"mcpServers": {
"ivnvxd-mcp-server-odoo": {
"command": "python",
"args": [
"-m",
"mcp_server_odoo"
]
}
}
} Kaynak kodu al ve yerel olarak çalıştır
git clone https://github.com/ivnvxd/mcp-server-odoo.git ~/.mcp/mcp-server-odoo
cd ~/.mcp/mcp-server-odoo Claude gibi AI asistanlarının Odoo ERP sistemleriyle etkileşim kurmasını sağlayan bir MCP server'ı. İş verilerine erişin, kayıtları arayın, yeni girdiler oluşturun, mevcut verileri güncelleyin ve doğal dil aracılığıyla Odoo örneğinizi yönetin.
Herhangi bir Odoo örneğiyle çalışır! Hızlı test ve demolar için herhangi bir standart Odoo yüklemesiyle YOLO modunu kullanın. Kurumsal güvenlik, erişim kontrolleri ve üretim kullanımı için Odoo MCP modülünü kurun.
MCP server'ı yerel bilgisayarınızda (Claude Desktop'ın kurulu olduğu yerde) çalışır, Odoo sunucunuzda değil. Yerel makinenize UV kurmak gereklidir:
curl -LsSf https://astral.sh/uv/install.sh | sh
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
Kurulumdan sonra, UV'nin PATH'inizde olduğundan emin olmak için terminalinizi yeniden başlatın.
MCP ayarlarınıza bu yapılandırmayı ekleyin:
{
"mcpServers": {
"odoo": {
"command": "uvx",
"args": ["mcp-server-odoo"],
"env": {
"ODOO_URL": "https://your-odoo-instance.com",
"ODOO_API_KEY": "your-api-key-here"
}
}
}
}
~/Library/Application Support/Claude/claude_desktop_config.json dosyasına ekleyin:
{
"mcpServers": {
"odoo": {
"command": "uvx",
"args": ["mcp-server-odoo"],
"env": {
"ODOO_URL": "https://your-odoo-instance.com",
"ODOO_API_KEY": "your-api-key-here",
"ODOO_DB": "your-database-name"
}
}
}
}
Proje kök dizininize .mcp.json ekleyin:
{
"mcpServers": {
"odoo": {
"command": "uvx",
"args": ["mcp-server-odoo"],
"env": {
"ODOO_URL": "https://your-odoo-instance.com",
"ODOO_API_KEY": "your-api-key-here",
"ODOO_DB": "your-database-name"
}
}
}
}
Veya CLI'yi kullanın:
claude mcp add odoo \
--env ODOO_URL=https://your-odoo-instance.com \
--env ODOO_API_KEY=your-api-key-here \
--env ODOO_DB=your-database-name \
-- uvx mcp-server-odoo
~/.cursor/mcp.json dosyasına ekleyin:
{
"mcpServers": {
"odoo": {
"command": "uvx",
"args": ["mcp-server-odoo"],
"env": {
"ODOO_URL": "https://your-odoo-instance.com",
"ODOO_API_KEY": "your-api-key-here",
"ODOO_DB": "your-database-name"
}
}
}
}
Çalışma alanınıza .vscode/mcp.json ekleyin:
{
"servers": {
"odoo": {
"type": "stdio",
"command": "uvx",
"args": ["mcp-server-odoo"],
"env": {
"ODOO_URL": "https://your-odoo-instance.com",
"ODOO_API_KEY": "your-api-key-here",
"ODOO_DB": "your-database-name"
}
}
}
}
Not: VS Code kök anahtar olarak
"mcpServers"değil"servers"kullanır.
~/.codeium/windsurf/mcp_config.json dosyasına ekleyin:
{
"mcpServers": {
"odoo": {
"command": "uvx",
"args": ["mcp-server-odoo"],
"env": {
"ODOO_URL": "https://your-odoo-instance.com",
"ODOO_API_KEY": "your-api-key-here",
"ODOO_DB": "your-database-name"
}
}
}
}
~/.config/zed/settings.json dosyasına ekleyin:
{
"context_servers": {
"odoo": {
"command": {
"path": "uvx",
"args": ["mcp-server-odoo"],
"env": {
"ODOO_URL": "https://your-odoo-instance.com",
"ODOO_API_KEY": "your-api-key-here",
"ODOO_DB": "your-database-name"
}
}
}
}
}
Docker ile çalıştırın — Python kurulumuna gerek yok:
{
"mcpServers": {
"odoo": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "ODOO_URL=http://host.docker.internal:8069",
"-e", "ODOO_API_KEY=your-api-key-here",
"ivnvxd/mcp-server-odoo"
]
}
}
}
Not: Odoo'ya host makinesinde bağlanmak için
localhostyerinehost.docker.internalkullanın.
HTTP taşıması için:
docker run --rm -p 8000:8000 \
-e ODOO_URL=http://host.docker.internal:8069 \
-e ODOO_API_KEY=your-api-key-here \
ivnvxd/mcp-server-odoo --transport streamable-http --host 0.0.0.0
Görüntü GHCR'de de mevcuttur: ghcr.io/ivnvxd/mcp-server-odoo
# Global olarak kurun
pip install mcp-server-odoo
# Veya isolated ortam için pipx kullanın
pipx install mcp-server-odoo
Daha sonra MCP yapılandırmanızda mcp-server-odoo komutunu kullanın.
git clone https://github.com/ivnvxd/mcp-server-odoo.git
cd mcp-server-odoo
pip install -e .
Daha sonra MCP yapılandırmanızda paketin tam yolunu kullanın.
Server aşağıdaki çevre değişkenlerini gerektirir:
| Değişken | Gerekli | Açıklama | Örnek |
|---|---|---|---|
ODOO_URL |
Evet | Odoo örneğinizin URL'si | https://mycompany.odoo.com |
ODOO_API_KEY |
Evet* | Doğrulama için API anahtarı | 0ef5b399e9ee9c11b053dfb6eeba8de473c29fcd |
ODOO_USER |
Evet* | Kullanıcı adı (API anahtarı kullanılmıyorsa) | admin |
ODOO_PASSWORD |
Evet* | Şifre (API anahtarı kullanılmıyorsa) | admin |
ODOO_DB |
Hayır | Veritabanı adı (ayarlanmamışsa otomatik olarak tespit edilir) | mycompany |
ODOO_LOCALE |
Hayır | Odoo yanıtları için dil/yerel ayar | es_ES, fr_FR, de_DE |
ODOO_YOLO |
Hayır | YOLO modu - MCP güvenliğini atlayın (⚠️ SADECE GELİŞTİRME) | off, read, true |
ODOO_MCP_ENABLE_METHOD_CALLS |
Hayır | call_model_method aracını etkinleştir — ODOO_YOLO=true gerektirir (⚠️ Tehlikeli, call_model_method bölümüne bakın) |
false, true |
*ODOO_API_KEY veya hem ODOO_USER hem de ODOO_PASSWORD gereklidir.
Notlar:
ODOO_DB belirtmelisiniz.env dosyasından çevre değişkenlerini yükler| Değişken | Varsayılan | Açıklama |
|---|---|---|
ODOO_MCP_DEFAULT_LIMIT |
10 |
Arama başına döndürülen varsayılan kayıt sayısı |
ODOO_MCP_MAX_LIMIT |
100 |
İstek başına izin verilen maksimum kayıt sınırı |
ODOO_MCP_MAX_SMART_FIELDS |
15 |
Akıllı alan seçimi tarafından döndürülen maksimum alan sayısı |
ODOO_MCP_LOG_LEVEL |
INFO |
Log seviyesi (DEBUG, INFO, WARNING, ERROR, CRITICAL) |
ODOO_MCP_LOG_JSON |
false |
Yapılandırılmış JSON log çıktısını etkinleştir |
ODOO_MCP_LOG_FILE |
— | Dönen log dosyası için yol (10 MB, 5 yedek) |
ODOO_MCP_TRANSPORT |
stdio |
Taşıma türü (stdio, streamable-http) |
ODOO_MCP_HOST |
localhost |
HTTP taşıması için bağlanılacak host |
ODOO_MCP_PORT |
8000 |
HTTP taşıması için bağlanılacak port |
Server, farklı kullanım durumları için birden fazla taşıma protokolünü destekler:
Standart giriş/çıkış taşıması - Claude Desktop gibi masaüstü AI uygulamaları tarafından kullanılır.
# Varsayılan taşıma - ek yapılandırma gerekli değil
uvx mcp-server-odoo
REST API tarzı erişim ve uzaktan bağlantı için standart HTTP taşıması.
# HTTP taşıması ile çalıştırın
uvx mcp-server-odoo --transport streamable-http --host 0.0.0.0 --port 8000
# Veya çevre değişkenlerini kullanın
export ODOO_MCP_TRANSPORT=streamable-http
export ODOO_MCP_HOST=0.0.0.0
export ODOO_MCP_PORT=8000
uvx mcp-server-odoo
HTTP uç noktası şurada kullanılabilir: http://localhost:8000/mcp/
Not: SSE (Server-Sent Events) taşıması MCP protokol sürüm 2025-03-26'da kullanım dışı bırakılmıştır. HTTP tabanlı iletişim için streamable-http taşımasını kullanın. Uygun oturum yönetimi için MCP kitaplığı v1.9.4 veya daha yüksek gerekir.
{
"mcpServers": {
"odoo-remote": {
"command": "uvx",
"args": ["mcp-server-odoo", "--transport", "streamable-http", "--port", "8080"],
"env": {
"ODOO_URL": "https://your-odoo-instance.com",
"ODOO_API_KEY": "your-api-key-here",
"ODOO_DB": "your-database-name"
}
}
}
}
MCP modülünü kurun:
MCP erişimi için modelleri etkinleştirin:
API anahtarı oluşturun:
YOLO modu, MCP server'ının MCP modülü gerektirmeden herhangi bir standart Odoo örneğine doğrudan bağlanmasını sağlar. Bu mod tüm MCP güvenlik kontrollerini atlayarak SADECE geliştirme, test ve demolar için tasarlanmıştır.
🚨 UYARI: YOLO modunu asla üretim ortamlarında kullanmayın!
Salt Okunur Mod (ODOO_YOLO=read):
Tam Erişim Modu (ODOO_YOLO=true):
{
"mcpServers": {
"odoo-demo": {
"command": "uvx",
"args": ["mcp-server-odoo"],
"env": {
"ODOO_URL": "http://localhost:8069",
"ODOO_USER": "admin",
"ODOO_PASSWORD": "admin",
"ODOO_DB": "demo",
"ODOO_YOLO": "read"
}
}
}
}
{
"mcpServers": {
"odoo-test": {
"command": "uvx",
"args": ["mcp-server-odoo"],
"env": {
"ODOO_URL": "http://localhost:8069",
"ODOO_USER": "admin",
"ODOO_PASSWORD": "admin",
"ODOO_DB": "test",
"ODOO_YOLO": "true"
}
}
}
}
✅ Uygun Kullanımlar:
❌ Asla Kullanmayın:
Yapılandırıldıktan sonra Claude'a şunları sorabilirsiniz:
Arama ve Alma:
Oluştur ve Yönet:
search_recordsHerhangi bir Odoo modelinde filtrelerle kayıt arayın.
{
"model": "res.partner",
"domain": [["is_company", "=", true], ["country_id.code", "=", "ES"]],
"fields": ["name", "email", "phone"],
"limit": 10
}
Alan Seçim Seçenekleri:
fields atlanır veya null olarak ayarlanır: Yaygın alanların akıllı seçimini döndürür["__all__"] kullan: Tüm alanları döndürür (dikkatli kullanın)get_recordID'ye göre belirli bir kaydı alın.
{
"model": "res.partner",
"record_id": 42,
"fields": ["name", "email", "street", "city"]
}
Alan Seçim Seçenekleri:
fields atlanır veya null olarak ayarlanır: Meta veri ile yaygın alanların akıllı seçimini döndürür["__all__"] kullan: Tüm alanları meta veri olmaksızın döndürürlist_modelsMCP erişimi için etkinleştirilmiş tüm modelleri listeleyin.
{}
list_resource_templatesMevcut kaynak URI şablonlarını ve bunların desenlerini listeleyin.
{}
create_recordOdoo'da yeni bir kayıt oluşturun.
{
"model": "res.partner",
"values": {
"name": "New Customer",
"email": "customer@example.com",
"is_company": true
}
}
update_recordMevcut bir kaydı güncelleyin.
{
"model": "res.partner",
"record_id": 42,
"values": {
"phone": "+1234567890",
"website": "https://example.com"
}
}
delete_recordOdoo'dan bir kaydı silin.
{
"model": "res.partner",
"record_id": 42
}
post_messageBir kaydın chatter'ına mesaj gönder (mail.thread). subtype="note" (varsayılan) dahili logtur; subtype="comment" takipçileri bilgilendirir. HTML işaretlemesi için body_is_html=true ayarlayın. İsteğe bağlı partner_ids ve attachment_ids mevcut ortakları ve ekleri referans alır.
{
"model": "res.partner",
"record_id": 42,
"body": "Called customer, will follow up Tuesday"
}
{
"model": "sale.order",
"record_id": 17,
"body": "<p>Shipping confirmed for Monday</p>",
"subtype": "comment",
"body_is_html": true
}
aggregate_recordsServer tarafı toplama. Soru "listesi" yerine "toplamlar/sayımlar/gruplandırmalar" olduğunda bunu kullanın — çalışmayı raw satırları çekmek yerine PostgreSQL'e iter. Odoo 19+ üzerinde formatted_read_group'a gönderir (yeni adanmış method) ve eski sürümlerde yanıt normalizasyonu ile read_group'a geri döner. Arayanlar, desteklenen her sürümde tutarlı bir yanıt şekli görürler. aggregates atlanırsa, varsayılan olarak ["__count"] olur, böylece her grup her zaman bir sayım taşır.
{
"model": "sale.order",
"groupby": ["date_order:month"],
"aggregates": ["amount_total:sum"],
"domain": [["state", "in", ["sale", "done"]]]
}
{
"model": "res.partner",
"groupby": ["country_id"]
}
call_model_methodGenel XML-RPC execute_kw kaçış tepesi — CRUD tarafından kapsanmayan iş akışı eylemleri için (faturayı gönder, satış siparişini onayla, toplama doğrula, vb.) herhangi bir genel methodunu herhangi bir modelde çağırır. Sadece ODOO_YOLO=true (tam YOLO) ve ODOO_MCP_ENABLE_METHOD_CALLS=true her ikisi de ayarlandığında kullanılabilir; aksi takdirde araç kaydedilmez. Yalnızca genel ASCII Python tanımlayıcıları method adları olarak kabul edilir
Tüm MCP protokol özelliklerini kullanan MCP sunucusu.
Python'da MCP sunucuları oluşturmak için üst düzey bir framework.
Ekran ve ses kaydını zaman damgasıyla indeksleyen, SQL/embedding storage kullanan, semantic search ve LLM tabanlı geçmiş analizi yapan local-first sistem. NextJS plugin ekosistemi aracılığıyla bağlam farkında AI ajanlar oluşturmayı ve event-triggered aksiyonları destekler.
YouTube video bilgilerini çıkartıp dönüştürün.
Obsidian ile REST API aracılığıyla etkileşim kurma
AI ajanlarını 600+ entegrasyon ile tek bir arayüzden bağlayın - OAuth, scaling ve monitoring dahil