Databases Python ★ 537

redis/mcp-redis

Redis resmi MCP Server, Redis'teki verileri yönetmek ve sorgulamak için bir arayüz sunmaktadır.

Claude Desktop config.json'a ekle

{
  "mcpServers": {
    "redis-mcp-redis": {
      "command": "python",
      "args": [
        "-m",
        "mcp_redis"
      ]
    }
  }
}

Redis MCP Server

Integration PyPI - Version Python Version MIT licensed Verified on MseeP Docker Image Version codecov

Discord Twitch YouTube Twitter Stack Exchange questions

Genel Bakış

Redis MCP Server, agentic uygulamaların Redis'teki verileri verimli bir şekilde yönetmesi ve araması için tasarlanmış bir doğal dil arayüzüdür. MCP (Model Content Protocol) istemcileriyle sorunsuz bir şekilde entegre olur ve AI tarafından yönlendirilen iş akışlarının Redis'teki yapılandırılmış ve yapılandırılmamış verilerle etkileşimde bulunmasını sağlar. Bu MCP Server'ı kullanarak aşağıdaki gibi sorular sorabilirsiniz:

  • "Bütün sohbeti bir akışta depolayın"
  • "Bu öğeyi önbelleğe alın"
  • "Oturumu bir süre sonu ile depolayın"
  • "Bu vektörü indeksleyin ve arayın"

İçindekiler

Özellikler

  • Doğal Dil Sorguları: AI ajanlarının Redis'i doğal dilkullanarak sorgulamasını ve güncellemesini sağlar.
  • Sorunsuz MCP Entegrasyonu: Sorunsuz iletişim için herhangi bir MCP istemcisiyle çalışır.
  • Tam Redis Desteği: Hash, listeler, kümeler, sıralı kümeler, akışlar ve daha fazlasını işler.
  • Arama ve Filtreleme: Redis'te verimli veri alımı ve aramayı destekler.
  • Ölçeklenebilir ve Hafif: Yüksek performanslı veri işlemleri için tasarlanmıştır.
  • EntraID Kimlik Doğrulaması: Azure Active Directory kimlik doğrulaması ile Azure Yönetilen Redis için yerel destek.
  • Redis MCP Server, stdio transport'unu destekler. streamable-http transport'u desteği gelecekte eklenecektir.

Araçlar

Bu MCP Server, Redis'te depolanan verileri yönetmek için araçlar sağlar.

  • Basit yapılandırma değerleri, oturum verileri veya önbelleğe alınan yanıtları depolamak için kullanışlı olan string'leri ayarlamak ve almak için string araçları.
  • Tek bir anahtar içinde alan-değer çiftlerini depolamak için hash araçları. Hash, vektör gömülmelerini depolayabilir. Birden fazla özelliğe sahip nesneleri, kullanıcı profillerini veya alanların bireysel olarak erişilebildiği ürün bilgilerini temsil etmek için kullanışlıdır.
  • Öğeleri ekleme ve çıkarma için ortak işlemlerle list araçları. Kuyruklar, message broker'lar veya en son eylemlerin bir listesini saklamak için kullanışlıdır.
  • Küme üyelerini ekleme, kaldırma ve listeleme için set araçları. Kullanıcı kimlikleri veya etiketleri gibi benzersiz değerleri izlemek ve kesişim gibi küme işlemleri gerçekleştirmek için kullanışlıdır.
  • Örneğin liderlik tabloları, öncelik kuyrukları veya puan tabanlı sıralamaya sahip zaman tabanlı analitikleri yönetmek için sorted set araçları.
  • Mesajları kanallara yayınlamak ve bunları almak için abone olmak için pub/sub işlevi. Gerçek zamanlı bildirimler, sohbet uygulamaları veya birden fazla istemciye güncelleştirmeleri dağıtmak için kullanışlıdır.
  • Veri akışlarında öğe ekleme, okuma, silme, tüketici grupları oluşturma ve yok etme, işlenen girişleri kabul etme için streams araçları. Olay sourcing, etkinlik feed'leri ve Redis Streams tüketici gruplarıyla işçi tabanlı olay işleme için kullanışlıdır.
  • Redis'te JSON belgelerini depolamak, almak ve işlemek için JSON araçları. Karmaşık iç içe veri yapıları, belge veritabanları veya yol tabanlı erişimli yapılandırma yönetimi için kullanışlıdır.

Ek araçlar.

  • Doğal dil soruları kullanarak Redis belgelerini, öğreticileri ve en iyi uygulamaları aramak için docs aracı (MCP_DOCS_SEARCH_URL HTTP API tarafından desteklenir).
  • Vektör indekslerini yönetmek ve vektör araması gerçekleştirmek için query engine araçları
  • Veritabanı hakkında bilgi almak için server management aracı

Kurulum

Redis MCP Server, bir PyPI paketi ve GitHub deposundan doğrudan kurulum olarak kullanılabilir.

PyPI'den (önerilir)

PyPI'den en son Redis MCP Server sürümünü yapılandırmanız aşağıdaki JSON yapılandırmasını istenen framework veya aracı içe aktararak yapılabilir. uvx komutu sunucuyu anında indirir (zaten önbelleğe alınmamışsa), geçici bir ortam oluşturur ve ardından çalıştırır.

{
  "mcpServers": {
    "RedisMCPServer": {
      "command": "uvx",
      "args": [
        "--from",
        "redis-mcp-server@latest",
        "redis-mcp-server",
        "--url",
        "\"redis://localhost:6379/0\""
      ]
    }
  }
}

URL belirtimi

--url argümanını belirtme biçimi redis ve rediss şemalarını izler:

redis://user:secret@localhost:6379/0?foo=bar&qux=baz

Örnek olarak, yerel bir sunucuya kolayca şu şekilde bağlanabilirsiniz:

redis://localhost:6379/0

Burada 0, bağlanmak istediğiniz logical database'dır.

Veritabanına şifreli bir bağlantı için (örneğin, Redis Cloud veritabanına bağlanma), rediss şemasını kullanırsınız.

rediss://user:secret@localhost:6379/0?foo=bar&qux=baz

Sunucunun kimliğini doğrulamak için ssl_ca_certs belirtin.

rediss://user:secret@hostname:port?ssl_cert_reqs=required&ssl_ca_certs=path_to_the_certificate

Doğrulanmamış bir bağlantı için ssl_cert_reqs'i none olarak ayarlayın

rediss://user:secret@hostname:port?ssl_cert_reqs=none

"Mevcut CLI Seçenekleri" bölümündeki mevcut seçenekleri kullanarak bağlantınızı yapılandırın.

PyPI paketini test etme

Paketi aşağıdaki gibi kurabilirsiniz:

pip install redis-mcp-server

Ve ortamınızda uv kullanarak paketi başlatın.

uv python install 3.14
uv sync
uv run redis-mcp-server --url redis://localhost:6379/0

Ancak MCP Server'ı başlatmak, bu MCP Server'ın yapılandırıldığı framework veya araçta yapıldığında en kullanışlı halidir.

GitHub'dan

uvx ile istediğiniz Redis MCP Server sürümünü yapılandırabilirsiniz; bu, doğrudan GitHub'dan (bir daldan veya etiketlenmiş bir sürümü kullanarak) çalıştırmanızı sağlar.

Etiketli bir sürüm kullanmanız önerilir, main dalı etkin geliştirme altındadır ve kesintiye uğratıcı değişiklikler içerebilir.

Örneğin, 0.2.0 sürümünü çalıştırmak için aşağıdaki komutu yürütebilirsiniz:

uvx --from git+https://github.com/redis/mcp-redis.git@0.2.0 redis-mcp-server --url redis://localhost:6379/0

Releases bölümünde en son sürümün sürüm notlarını kontrol edin. Aşağıda ek örnekler verilmiştir.

# Redis URI ile çalıştır
uvx --from git+https://github.com/redis/mcp-redis.git redis-mcp-server --url redis://localhost:6379/0

# Redis URI ve SSL ile çalıştır
uvx --from git+https://github.com/redis/mcp-redis.git redis-mcp-server --url "rediss://<USERNAME>:<PASSWORD>@<HOST>:<PORT>?ssl_cert_reqs=required&ssl_ca_certs=<PATH_TO_CERT>"

# Bireysel parametrelerle çalıştır
uvx --from git+https://github.com/redis/mcp-redis.git redis-mcp-server --host localhost --port 6379 --password mypassword

# Tüm seçenekleri görüntüle
uvx --from git+https://github.com/redis/mcp-redis.git redis-mcp-server --help

Geliştirme Kurulumu

Geliştirme için veya depoyu klonlamayı tercih ederseniz:

# Depoyu klonla
git clone https://github.com/redis/mcp-redis.git
cd mcp-redis

# uv kullanarak bağımlılıkları yükle
uv venv
source .venv/bin/activate
uv sync

# CLI arayüzü ile çalıştır
uv run redis-mcp-server --help

# Veya ana dosyayı doğrudan çalıştır (ortam değişkenlerini kullanır)
uv run src/main.py

Depoyu klonladıktan, bağımlılıkları yükledikten ve sunucuyu çalıştırabileceğinizi doğruladıktan sonra, Claude Desktop veya başka herhangi bir MCP İstemcisini ana dosyayı doğrudan çalıştıran bu MCP Server'ı kullanmak için yapılandırabilirsiniz (ortam değişkenlerini kullanır). Bu genellikle geliştirme için tercih edilir. Aşağıdaki örnek Claude Desktop içindir, ancak aynısı başka herhangi bir MCP İstemcisi için de geçerlidir.

  1. Redis kimlik bilgilerinizi ve TLS yapılandırmanızı belirtin
  2. uv komutunun tam yolunu alın (örneğin which uv)
  3. claude_desktop_config.json yapılandırma dosyasını düzenleyin
    • macOS'ta, ~/Library/Application\ Support/Claude/ konumunda
{
    "mcpServers": {
        "redis": {
            "command": "<full_path_uv_command>",
            "args": [
                "--directory",
                "<your_mcp_server_directory>",
                "run",
                "src/main.py"
            ],
            "env": {
                "REDIS_HOST": "<your_redis_database_hostname>",
                "REDIS_PORT": "<your_redis_database_port>",
                "REDIS_PWD": "<your_redis_database_password>",
                "REDIS_SSL": True|False,
                "REDIS_SSL_CA_PATH": "<your_redis_ca_path>",
                "REDIS_CLUSTER_MODE": True|False
            }
        }
    }
}

Sorunları günlük dosyasını izleyerek giderebilirsiniz.

tail -f ~/Library/Logs/Claude/mcp-server-redis.log

Docker ile

Bu sunucunun Docker'laştırılmış bir dağıtımını kullanabilirsiniz. Kendi imajınızı oluşturabilir veya resmi Redis MCP Docker imajını kullanabilirsiniz.

Kendi imajınızı oluşturmak istiyorsanız, Redis MCP Server bir Dockerfile sağlar. Bu sunucunun imajını şu komutla oluşturun:

docker build -t mcp-redis .

Son olarak, istemciyi başlangıçta kapsayıcıyı oluşturacak şekilde yapılandırın. Claude Desktop için bir örnek aşağıda verilmiştir. claude_desktop_config.json dosyasını düzenleyin ve şunları ekleyin:

{
  "mcpServers": {
    "redis": {
      "command": "docker",
      "args": ["run",
                "--rm",
                "--name",
                "redis-mcp-server",
                "-i",
                "-e", "REDIS_HOST=<redis_hostname>",
                "-e", "REDIS_PORT=<redis_port>",
                "-e", "REDIS_USERNAME=<redis_username>",
                "-e", "REDIS_PWD=<redis_password>",
                "mcp-redis"]
    }
  }
}

Resmi Redis MCP Docker imajını kullanmak için, imaj adını (yukarıdaki örnekte mcp-redis) mcp/redis ile değiştirin.

Yapılandırma

Redis MCP Server iki şekilde yapılandırılabilir: komut satırı argümanları veya ortam değişkenleri aracılığıyla. Öncelik şöyledir: komut satırı argümanları > ortam değişkenleri > varsayılan değerler.

Redis ACL

Redis ACL'yi Redis veritabanına erişimi kısıtlamak için yapılandırabilirsiniz. Örneğin, salt okunur bir kullanıcı oluşturmak için:

127.0.0.1:6379> ACL SETUSER readonlyuser on >mypassword ~* +@read -@write

Kullanıcıyı komut satırı argümanları veya ortam değişkenleri aracılığıyla yapılandırın.

Komut satırı argümanları aracılığıyla yapılandırma

CLI arayüzünü kullanırken, sunucuyu komut satırı argümanları ile yapılandırabilirsiniz:

# Temel Redis bağlantısı
uvx --from redis-mcp-server@latest redis-mcp-server \
  --host localhost \
  --port 6379 \
  --password mypassword

# Redis URI kullanma (daha basit)
uvx --from redis-mcp-server@latest redis-mcp-server \
  --url redis://user:pass@localhost:6379/0

# SSL bağlantısı
uvx --from redis-mcp-server@latest redis-mcp-server \
  --url rediss://user:pass@redis.example.com:6379/0

# Tüm kullanılabilir seçenekleri görüntüle
uvx --from redis-mcp-server@latest redis-mcp-server --help

Mevcut CLI Seçenekleri:

  • --url - Redis bağlantı URI'si (redis://user:pass@host:port/db)
  • --host - Redis hostname'i (varsayılan: 127.0.0.1)
  • --port - Redis portu (varsayılan: 6379)
  • --db - Redis veritabanı numarası (varsayılan: 0)
  • --username - Redis kullanıcı adı
  • --password - Redis parolası
  • --ssl - SSL bağlantısını etkinleştir
  • --ssl-ca-path - CA sertifikası dosyasının yolu
  • --ssl-keyfile - SSL anahtar dosyasının yolu
  • --ssl-certfile - SSL sertifikası dosyasının yolu
  • --ssl-cert-reqs - SSL sertifikası gereksinimleri (varsayılan: required)
  • --ssl-ca-certs - CA sertifikaları dosyasının yolu
  • --cluster-mode - Redis cluster modunu etkinleştir

Ortam değişkenleri aracılığıyla yapılandırma

İsterseniz ortam değişkenlerini kullanabilirsiniz. Tüm değişkenler için varsayılan değerler sağlanmıştır.

Ad Açıklama Varsayılan Değer
REDIS_HOST Redis IP'si veya hostname'i "127.0.0.1"
REDIS_PORT Redis portu 6379
REDIS_DB Veritabanı 0
REDIS_USERNAME Varsayılan veritabanı kullanıcı adı "default"
REDIS_PWD Varsayılan veritabanı parolası ""
REDIS_SSL SSL/TLS'yi etkinleştirir veya devre dışı bırakır False
REDIS_SSL_CA_PATH Sunucuyu doğrulamak için CA sertifikası None
REDIS_SSL_KEYFILE İstemci kimlik doğrulaması için istemcinin özel anahtar dosyası None
REDIS_SSL_CERTFILE İstemci kimlik doğrulaması için istemcinin sertifikası dosyası None
REDIS_SSL_CERT_REQS İstemcinin sunucunun sertifikasını doğrulaması gerekip gerekmediği "required"
REDIS_SSL_CA_CERTS Güvenilir CA sertifikaları dosyasının yolu None
REDIS_CLUSTER_MODE Redis Cluster modunu etkinleştir False

Azure Yönetilen Redis için EntraID Kimlik Doğrulaması

Redis MCP Server, Azure Yönetilen Redis ile EntraID (Azure Active Directory) kimlik doğrulaması destekler ve otomatik token yönetimiyle OAuth tabanlı kimlik doğrulamayı sağlar.

Kimlik Doğrulama Sağlayıcıları

Hizmet Asılı Kimlik Doğrulaması - İstemci kimlik bilgilerini kullanan uygulama tabanlı kimlik doğrulama:

export REDIS_ENTRAID_AUTH_FLOW=service_principal
export REDIS_ENTRAID_CLIENT_ID=your-client-id
export REDIS_ENTRAID_CLIENT_SECRET=your-client-secret
export REDIS_ENTRAID_TENANT_ID=your-tenant-id

Yönetilen Kimlik Kimlik Doğrulaması - Azure'da barındırılan uygulamalar için:

# Sistem tarafından atanan yönetilen kimlik
export REDIS_ENTRAID_AUTH_FLOW=managed_identity
export REDIS_ENTRAID_IDENTITY_TYPE=system_assigned

# Kullanıcı tarafından atanan yönetilen kimlik
export REDIS_ENTRAID_AUTH_FLOW=managed_identity
export REDIS_ENTRAID_IDENTITY_TYPE=user_assigned
export REDIS_ENTRAID_USER_ASSIGNED_CLIENT_ID=your-identity-client-id

Varsayılan Azure Kimlik Bilgisi - Otomatik kimlik bilgisi keşfi (geliştirme için önerilir):

export REDIS_ENTRAID_AUTH_FLOW=default_credential
export REDIS_ENTRAID_SCOPES=https://redis.azure.com/.default

EntraID Yapılandırma Değişkenleri

Ad Açıklama Varsayılan Değer
REDIS_ENTRAID_AUTH_FLOW Kimlik doğrulama akışı türü None (EntraID devre dışı)
REDIS_ENTRAID_CLIENT_ID Hizmet Asılı client ID'si None
REDIS_ENTRAID_CLIENT_SECRET Hizmet Asılı client secret'i None
REDIS_ENTRAID_TENANT_ID Azure tenant ID'si None
REDIS_ENTRAID_IDENTITY_TYPE Yönetilen kimlik türü "system_assigned"
REDIS_ENTRAID_USER_ASSIGNED_CLIENT_ID Kullanıcı tarafından atanan yönetilen kimlik client ID'si None
REDIS_ENTRAID_SCOPES Varsayılan Azure Kimlik Bilgisi için OAuth kapsamları "https://redis.azure.com/.default"
REDIS_ENTRAID_RESOURCE Azure Redis kaynak tanımlayıcısı "https://redis.azure.com/"

Temel Özellikler

  • Otomatik token yenileme - Manuel müdahale gerektirmeyen arka plan token yenileme
  • Zarif fallback - EntraID yapılandırılmadığında standart Redis kimlik doğrulamasına geri düşer
  • Birden fazla auth akışı - Hizmet Asılı, Yönetilen Kimlik ve Varsayılan Azure Kimlik Bilgisini destekler
  • Kurumsal hazır - Merkezi kimlik yönetimi ile Azure Yönetilen Redis için tasarlanmıştır

Örnek Yapılandırma

Azure CLI ile yerel geliştirme için:

# Azure CLI ile giriş yap
az login

# MCP sunucusunu yapılandır
export REDIS_ENTRAID_AUTH_FLOW=default_credential
export REDIS_URL=redis://your-azure-redis.redis.cache.windows.net:6379

Hizmet Asılı ile üretim için:

export REDIS_ENTRAID_AUTH_FLOW=service_principal
export REDIS_ENTRAID_CLIENT_ID=your-app-client-id
export REDIS_ENTRAID_CLIENT_SECRET=your-app-secret
export REDIS_ENTRAID_TENANT_ID=your-tenant-id
export REDIS_URL=redis://your-azure-redis.redis.cache.windows.net:6379

Yönetilen Kimlik ile Azure'da barındırılan uygulamalar için:

export REDIS_ENTRAID_AUTH_FLOW=managed_identity
export REDIS_ENTRAID_IDENTITY_TYPE=system_assigned
export REDIS_URL=redis://your-azure-redis.redis.cache.windows.net:6379

Ortam değişkenlerini ayarlamanın çeşitli yolları vardır:

  1. .env Dosyası Kullanma: Proje dizininize bir .env dosyası yerleştirin ve her ortam değişkeni için anahtar-değer çiftleri ekleyin. python-dotenv, pipenv ve uv gibi araçlar uygulamanızı çalıştırırken bu değişkenleri otomatik olarak yükleyebilir. Bu, yapılandırmayı yönetmenin uygun ve güvenli bir yoludur, çünkü hassas verileri kabuk geçmişinizin ve sürüm kontrolünün dışında tutar (.env dosyası .gitignore dosyasındaysa). Örneğin, depoda sağlanan .env.example dosyasından aşağıdaki içeriğe sahip bir .env dosyası oluşturun:
cp .env.example .env

Ardından .env dosyasını düzenleyerek Redis yapılandırmanızı ayarlayın:

VEYA

  1. Shell'de Değişkenleri Ayarlama: Uygulamanızı çalıştırmadan önce ortam

Benzer MCP sunucuları

Daha fazla: Databases →