Chroma

resmi

Penyematan, pencarian vektor, penyimpanan dokumen, dan pencarian teks lengkap dengan basis data aplikasi AI sumber terbuka

Apa yang bisa Anda lakukan dengan Chroma MCP?

  • List and browse collections — Use chroma_list_collections to page through available collections and chroma_peek_collection to preview sample documents inside one.
  • Create a collection with a chosen embedding model — Run chroma_create_collection to set up a new collection using default, openai, cohere, jina, voyageai, or roboflow embeddings.
  • Add documents with metadata — Insert text via chroma_add_documents, optionally attaching metadata and custom IDs for later filtering.
  • Search by meaning or keywords — Query with chroma_query_documents for semantic vector search or use full-text search to find relevant documents.
  • Filter and retrieve specific documents — Fetch documents by ID or metadata filter using chroma_get_documents, with pagination support.
  • Update or delete documents — Modify document content, metadata, or embeddings with chroma_update_documents, or remove them via chroma_delete_documents.

Dokumentasi

Chroma logo

Chroma - basis data embedding sumber terbuka.
Cara tercepat untuk membangun aplikasi LLM Python atau JavaScript dengan memori!

Discord | License | Dokumen | Beranda

Server MCP Chroma

smithery badge

Model Context Protocol (MCP) adalah protokol terbuka yang dirancang untuk integrasi mudah antara aplikasi LLM dan sumber data atau alat eksternal, menawarkan kerangka kerja terstandarisasi untuk menyediakan konteks yang dibutuhkan LLM secara mulus.

Server ini menyediakan kemampuan pengambilan data yang didukung oleh Chroma, memungkinkan model AI untuk membuat koleksi dari data yang dihasilkan dan masukan pengguna, serta mengambil data tersebut menggunakan pencarian vektor, pencarian teks lengkap, penyaringan metadata, dan lainnya.

Ini adalah server MCP untuk menghosting sendiri akses Anda ke Chroma. Jika Anda mencari Pencarian Paket, Anda dapat menemukan repositorinya di sini.

Fitur

  • Tipe Klien Fleksibel

    • Ephemeral (dalam memori) untuk pengujian dan pengembangan
    • Persisten untuk penyimpanan berbasis file
    • Klien HTTP untuk instans Chroma yang dihosting sendiri
    • Klien Cloud untuk integrasi Chroma Cloud (otomatis terhubung ke api.trychroma.com)
  • Manajemen Koleksi

    • Membuat, mengubah, dan menghapus koleksi
    • Mendaftar semua koleksi dengan dukungan paginasi
    • Mendapatkan informasi dan statistik koleksi
    • Mengonfigurasi parameter HNSW untuk pencarian vektor yang dioptimalkan
    • Memilih fungsi embedding saat membuat koleksi
  • Operasi Dokumen

    • Menambahkan dokumen dengan metadata opsional dan ID kustom
    • Mencari dokumen menggunakan pencarian semantik
    • Penyaringan lanjutan menggunakan metadata dan konten dokumen
    • Mengambil dokumen berdasarkan ID atau filter
    • Kemampuan pencarian teks lengkap

Alat yang Didukung

  • chroma_list_collections - Mendaftar semua koleksi dengan dukungan paginasi
  • chroma_create_collection - Membuat koleksi baru dengan konfigurasi HNSW opsional
  • chroma_peek_collection - Melihat sampel dokumen dalam sebuah koleksi
  • chroma_get_collection_info - Mendapatkan informasi detail tentang sebuah koleksi
  • chroma_get_collection_count - Mendapatkan jumlah dokumen dalam sebuah koleksi
  • chroma_modify_collection - Memperbarui nama atau metadata koleksi
  • chroma_delete_collection - Menghapus sebuah koleksi
  • chroma_add_documents - Menambahkan dokumen dengan metadata opsional dan ID kustom
  • chroma_query_documents - Mencari dokumen menggunakan pencarian semantik dengan penyaringan lanjutan
  • chroma_get_documents - Mengambil dokumen berdasarkan ID atau filter dengan paginasi
  • chroma_update_documents - Memperbarui konten, metadata, atau embedding dokumen yang ada
  • chroma_delete_documents - Menghapus dokumen tertentu dari sebuah koleksi

Fungsi Embedding

Chroma MCP mendukung beberapa fungsi embedding: default, cohere, openai, jina, voyageai, dan roboflow.

Fungsi embedding memanfaatkan konfigurasi koleksi Chroma, yang menyimpan fungsi embedding yang dipilih dari sebuah koleksi untuk pengambilan. Setelah koleksi dibuat menggunakan konfigurasi koleksi, pada pengambilan untuk kueri dan penyisipan di masa mendatang, fungsi embedding yang sama akan digunakan, tanpa perlu menentukan fungsi embedding lagi. Persistensi fungsi embedding ditambahkan di v1.0.0 Chroma, jadi jika Anda membuat koleksi menggunakan versi <=0.6.3, fitur ini tidak didukung.

Saat mengakses fungsi embedding yang menggunakan API eksternal, pastikan untuk menambahkan variabel lingkungan untuk kunci API dengan format yang benar, yang dapat ditemukan di Variabel Lingkungan Fungsi Embedding

Penggunaan dengan Claude Desktop

  1. Untuk menambahkan klien ephemeral, tambahkan berikut ini ke file claude_desktop_config.json Anda:
"chroma": {
    "command": "uvx",
    "args": [
        "chroma-mcp"
    ]
}
  1. Untuk menambahkan klien persisten, tambahkan berikut ini ke file claude_desktop_config.json Anda:
"chroma": {
    "command": "uvx",
    "args": [
        "chroma-mcp",
        "--client-type",
        "persistent",
        "--data-dir",
        "/full/path/to/your/data/directory"
    ]
}

Ini akan membuat klien persisten yang akan menggunakan direktori data yang ditentukan.

  1. Untuk terhubung ke Chroma Cloud, tambahkan berikut ini ke file claude_desktop_config.json Anda:
"chroma": {
    "command": "uvx",
    "args": [
        "chroma-mcp",
        "--client-type",
        "cloud",
        "--tenant",
        "your-tenant-id",
        "--database",
        "your-database-name",
        "--api-key",
        "your-api-key"
    ]
}

Ini akan membuat klien cloud yang otomatis terhubung ke api.trychroma.com menggunakan SSL.

Catatan: Menambahkan kunci API dalam argumen aman di perangkat lokal, tetapi untuk keamanan, Anda juga dapat menentukan jalur kustom untuk file konfigurasi lingkungan Anda menggunakan argumen --dotenv-path dalam daftar args, contohnya: "args": ["chroma-mcp", "--dotenv-path", "/custom/path/.env"].

  1. Untuk terhubung ke [instans Chroma yang dihosting sendiri di penyedia cloud Anda sendiri](https://docs.trychroma.com/ production/deployment), tambahkan berikut ini ke file claude_desktop_config.json Anda:
"chroma": {
    "command": "uvx",
    "args": [
      "chroma-mcp", 
      "--client-type", 
      "http", 
      "--host", 
      "your-host", 
      "--port", 
      "your-port", 
      "--custom-auth-credentials",
      "your-custom-auth-credentials",
      "--ssl",
      "true"
    ]
}

Ini akan membuat klien HTTP yang terhubung ke instans Chroma yang dihosting sendiri.

Demo

Temukan penggunaan referensi, seperti basis pengetahuan bersama & menambahkan memori ke jendela konteks di Dokumen Chroma MCP

Menggunakan Variabel Lingkungan

Anda juga dapat menggunakan variabel lingkungan untuk mengonfigurasi klien. Server akan otomatis memuat variabel dari file .env yang terletak di jalur yang ditentukan oleh --dotenv-path (defaultnya .chroma_env di direktori kerja) atau dari variabel lingkungan sistem. Argumen baris perintah lebih diutamakan daripada variabel lingkungan.

# Common variables
export CHROMA_CLIENT_TYPE="http"  # or "cloud", "persistent", "ephemeral"

# For persistent client
export CHROMA_DATA_DIR="/full/path/to/your/data/directory"

# For cloud client (Chroma Cloud)
export CHROMA_TENANT="your-tenant-id"
export CHROMA_DATABASE="your-database-name"
export CHROMA_API_KEY="your-api-key"

# For HTTP client (self-hosted)
export CHROMA_HOST="your-host"
export CHROMA_PORT="your-port"
export CHROMA_CUSTOM_AUTH_CREDENTIALS="your-custom-auth-credentials"
export CHROMA_SSL="true"

# Optional: Specify path to .env file (defaults to .chroma_env)
export CHROMA_DOTENV_PATH="/path/to/your/.env" 

Variabel Lingkungan Fungsi Embedding

Saat menggunakan fungsi embedding eksternal yang mengakses kunci API, ikuti konvensi penamaan CHROMA_<>_API_KEY="<key>". Jadi untuk mengatur kunci API Cohere, atur variabel lingkungan CHROMA_COHERE_API_KEY="". Kami merekomendasikan menambahkan ini ke file .env di suatu tempat dan menggunakan variabel lingkungan CHROMA_DOTENV_PATH atau flag --dotenv-path untuk mengatur lokasi tersebut demi keamanan.