StarRocks

आधिकारिक

StarRocks के साथ इंटरैक्ट करें

StarRocks MCP के साथ आप क्या कर सकते हैं?

  • SQL क्वेरी चलाएँread_query के माध्यम से SELECT स्टेटमेंट या write_query के माध्यम से DDL/DML कमांड निष्पादित करने के लिए कहें, बड़े परिणामों के लिए वैकल्पिक फ़ाइल आउटपुट के साथ।
  • डेटाबेस संरचना का अन्वेषण करें — डेटाबेस और टेबल सूचीबद्ध करें, या starrocks:// संसाधनों जैसे starrocks:///{db}/{table}/schema का उपयोग करके टेबल स्कीमा प्राप्त करें।
  • टेबल या डेटाबेस अवलोकन प्राप्त करें — कॉलम परिभाषाएँ, पंक्ति गणना और नमूना डेटा पुनर्प्राप्त करने के लिए table_overview या db_overview का उपयोग करें, बार-बार अनुरोधों के लिए कैशिंग के साथ।
  • क्वेरी परिणाम विज़ुअलाइज़ करेंquery_and_plotly_chart का उपयोग करके SQL क्वेरी से सीधे Plotly चार्ट उत्पन्न करें, UI प्रदर्शन के लिए PNG छवि लौटाएँ।
  • क्लस्टर स्वास्थ्य की निगरानी करें — ऑडिट-लॉग विज़िट (top_hot_tables) या स्वास्थ्य स्कोर (top_bad_tables) द्वारा शीर्ष हॉट टेबल या खराब प्रदर्शन करने वाली टेबल की पहचान करें।
  • आंतरिक सिस्टम जानकारी तक पहुँचेंproc:// संसाधन पथ के माध्यम से FE/BE नोड्स, लेनदेन या जॉब जैसे StarRocks आंतरिक विवरण क्वेरी करें।

दस्तावेज़

MseeP.ai Security Assessment Badge

StarRocks आधिकारिक MCP सर्वर

StarRocks MCP सर्वर AI सहायकों और StarRocks डेटाबेस के बीच एक सेतु के रूप में कार्य करता है। यह जटिल क्लाइंट-साइड सेटअप की आवश्यकता के बिना सीधे SQL निष्पादन, डेटाबेस अन्वेषण, चार्ट के माध्यम से डेटा विज़ुअलाइज़ेशन, और विस्तृत स्कीमा/डेटा अवलोकन प्राप्त करने की अनुमति देता है।

StarRocks Server MCP server

विशेषताएँ

  • प्रत्यक्ष SQL निष्पादन: SELECT क्वेरी (read_query) और DDL/DML कमांड (write_query) चलाएँ।
  • डेटाबेस अन्वेषण: डेटाबेस और तालिकाओं की सूची बनाएं, तालिका स्कीमा प्राप्त करें (starrocks:// संसाधन)।
  • सिस्टम जानकारी: proc:// संसाधन पथ के माध्यम से आंतरिक StarRocks मेट्रिक्स और स्थितियों तक पहुँचें।
  • विस्तृत अवलोकन: तालिकाओं (table_overview) या संपूर्ण डेटाबेस (db_overview) के व्यापक सारांश प्राप्त करें, जिसमें कॉलम परिभाषाएँ, पंक्ति गणना, और नमूना डेटा शामिल हैं।
  • डेटा विज़ुअलाइज़ेशन: एक क्वेरी निष्पादित करें और परिणामों से सीधे Plotly चार्ट उत्पन्न करें (query_and_plotly_chart)।
  • बुद्धिमान कैशिंग: तालिका और डेटाबेस अवलोकन मेमोरी में कैश किए जाते हैं ताकि बार-बार अनुरोधों को तेज़ किया जा सके। आवश्यकता पड़ने पर कैश को बायपास किया जा सकता है।
  • लचीला कॉन्फ़िगरेशन: पर्यावरण चर के माध्यम से कनेक्शन विवरण और व्यवहार सेट करें।

पूर्वापेक्षाएँ

  • Python 3.11 या नया।
  • एक पहुंच योग्य StarRocks क्लस्टर (FE सेवा)। डिफ़ॉल्ट रूप से सर्वर MySQL प्रोटोकॉल पर localhost:9030 से जुड़ता है।
  • uv — Astral से एक तेज़ Python पैकेज और प्रोजेक्ट मैनेजर (pip + virtualenv का आधुनिक प्रतिस्थापन)। यह प्रोजेक्ट निर्भरताओं को हल करने, वर्चुअल वातावरण बनाने, और सर्वर लॉन्च करने के लिए uv का उपयोग करता है। इस README में uv run कमांड स्वचालित रूप से पहले उपयोग पर एक पृथक वातावरण बनाते हैं और आवश्यक निर्भरताएँ स्थापित करते हैं, इसलिए किसी मैनुअल pip install चरण की आवश्यकता नहीं है।

uv स्थापित करना

# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

# Or via Homebrew / pipx / pip
brew install uv
# pipx install uv
# pip install uv

अन्य विकल्पों के लिए आधिकारिक uv स्थापना मार्गदर्शिका देखें। स्थापना के बाद, सत्यापित करें कि यह आपके PATH पर है:

uv --version

स्थापना

आपको आम तौर पर पैकेज को मैन्युअल रूप से स्थापित करने की आवश्यकता नहीं है — MCP होस्ट इसे uv के माध्यम से लॉन्च करता है (नीचे कॉन्फ़िगरेशन देखें)। uv मांग पर पैकेज और उसकी निर्भरताएँ प्राप्त करता है।

परीक्षण या विकास के लिए इसे सीधे चलाने के लिए:

# Run the published package in a throwaway environment
uv run --with mcp-server-starrocks mcp-server-starrocks --help

# Or, from a local checkout of this repository
git clone https://github.com/starrocks/mcp-server-starrocks.git
cd mcp-server-starrocks
uv sync                      # create the virtual environment and install dependencies
uv run mcp-server-starrocks --help

कॉन्फ़िगरेशन

MCP सर्वर आम तौर पर MCP होस्ट के माध्यम से चलाया जाता है। कॉन्फ़िगरेशन होस्ट को पास किया जाता है, जो निर्दिष्ट करता है कि StarRocks MCP सर्वर प्रक्रिया कैसे लॉन्च की जाए।

Streamable HTTP का उपयोग करना (अनुशंसित):

सर्वर को Streamable HTTP मोड में शुरू करने के लिए:

पहले परीक्षण करें कि StarRocks से कनेक्शन ठीक है (9030 StarRocks MySQL प्रोटोकॉल पोर्ट है, HTTP सर्वर पोर्ट नहीं):

$ STARROCKS_URL=root:@localhost:9030 uv run mcp-server-starrocks --test

सर्वर शुरू करें:

uv run mcp-server-starrocks --mode streamable-http --port 8000

फिर MCP को इस तरह कॉन्फ़िगर करें:

{
  "mcpServers": {
    "mcp-server-starrocks": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

Docker का उपयोग करना:

इमेज बनाएं:

docker build -t mcp-server-starrocks:local .

संस्करणित इमेज बनाएं और पुश करें:

docker build -t <registry>/<namespace>/mcp-starrocks:0.4.0 .
docker push <registry>/<namespace>/mcp-starrocks:0.4.0

सर्वर को Streamable HTTP मोड में शुरू करें:

docker run --rm -p 8000:8000 \
  -e STARROCKS_HOST=host.docker.internal \
  -e STARROCKS_PORT=9030 \
  -e STARROCKS_USER=root \
  -e STARROCKS_PASSWORD='' \
  mcp-server-starrocks:local

फिर MCP क्लाइंट को इसके साथ कॉन्फ़िगर करें:

{
  "mcpServers": {
    "mcp-server-starrocks": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

स्थापित पैकेज के साथ uv का उपयोग करना (व्यक्तिगत पर्यावरण चर):

{
  "mcpServers": {
    "mcp-server-starrocks": {
      "command": "uv",
      "args": ["run", "--with", "mcp-server-starrocks", "mcp-server-starrocks"],
      "env": {
        "STARROCKS_HOST": "default localhost",
        "STARROCKS_PORT": "default 9030",
        "STARROCKS_USER": "default root",
        "STARROCKS_PASSWORD": "default empty",
        "STARROCKS_DB": "default empty"
      }
    }
  }
}

स्थापित पैकेज के साथ uv का उपयोग करना (कनेक्शन URL):

{
  "mcpServers": {
    "mcp-server-starrocks": {
      "command": "uv",
      "args": ["run", "--with", "mcp-server-starrocks", "mcp-server-starrocks"],
      "env": {
        "STARROCKS_URL": "root:password@localhost:9030/my_database"
      }
    }
  }
}

स्थानीय निर्देशिका के साथ uv का उपयोग करना (विकास के लिए):

{
  "mcpServers": {
    "mcp-server-starrocks": {
      "command": "uv",
      "args": [
        "--directory",
        "path/to/mcp-server-starrocks", // <-- Update this path
        "run",
        "mcp-server-starrocks"
      ],
      "env": {
        "STARROCKS_HOST": "default localhost",
        "STARROCKS_PORT": "default 9030",
        "STARROCKS_USER": "default root",
        "STARROCKS_PASSWORD": "default empty",
        "STARROCKS_DB": "default empty"
      }
    }
  }
}

स्थानीय निर्देशिका और कनेक्शन URL के साथ uv का उपयोग करना:

{
  "mcpServers": {
    "mcp-server-starrocks": {
      "command": "uv",
      "args": [
        "--directory",
        "path/to/mcp-server-starrocks", // <-- Update this path
        "run",
        "mcp-server-starrocks"
      ],
      "env": {
        "STARROCKS_URL": "root:password@localhost:9030/my_database"
      }
    }
  }
}

कमांड-लाइन तर्क:

सर्वर निम्नलिखित कमांड-लाइन तर्कों का समर्थन करता है:

uv run mcp-server-starrocks --help
  • --mode {stdio,sse,http,streamable-http}: परिवहन मोड (डिफ़ॉल्ट: stdio या MCP_TRANSPORT_MODE env var)
  • --host HOST: HTTP मोड के लिए सर्वर होस्ट (डिफ़ॉल्ट: localhost)
  • --port PORT: HTTP मोड के लिए सर्वर पोर्ट
  • --test: कार्यक्षमता सत्यापित करने के लिए परीक्षण मोड में चलाएं

उदाहरण:

# Start in streamable HTTP mode on custom host/port
uv run mcp-server-starrocks --mode streamable-http --host 0.0.0.0 --port 8080

# Start in stdio mode (default)
uv run mcp-server-starrocks --mode stdio

# Run test mode
uv run mcp-server-starrocks --test
  • url फ़ील्ड आपके MCP सर्वर के Streamable HTTP एंडपॉइंट की ओर इशारा करना चाहिए (आवश्यकतानुसार होस्ट/पोर्ट समायोजित करें)।
  • इस कॉन्फ़िगरेशन के साथ, क्लाइंट HTTP POST अनुरोधों पर मानक JSON का उपयोग करके सर्वर के साथ इंटरैक्ट कर सकते हैं। किसी विशेष SDK की आवश्यकता नहीं है।
  • सभी टूल API ऊपर वर्णित मानक JSON स्वीकार करते हैं और लौटाते हैं।

नोट: sse (सर्वर-सेंट इवेंट्स) मोड पदावनत है और अब बनाए नहीं रखा जाता है। सभी नए एकीकरणों के लिए कृपया Streamable HTTP मोड का उपयोग करें।

पर्यावरण चर:

कनेक्शन कॉन्फ़िगरेशन

आप व्यक्तिगत पर्यावरण चर या एकल कनेक्शन URL का उपयोग करके StarRocks कनेक्शन कॉन्फ़िगर कर सकते हैं:

विकल्प 1: व्यक्तिगत पर्यावरण चर

  • STARROCKS_HOST: (वैकल्पिक) StarRocks FE सेवा का होस्टनाम या IP पता। डिफ़ॉल्ट localhost है।
  • STARROCKS_PORT: (वैकल्पिक) StarRocks FE सेवा का MySQL प्रोटोकॉल पोर्ट। डिफ़ॉल्ट 9030 है।
  • STARROCKS_USER: (वैकल्पिक) StarRocks उपयोगकर्ता नाम। डिफ़ॉल्ट root है।
  • STARROCKS_PASSWORD: (वैकल्पिक) StarRocks पासवर्ड। डिफ़ॉल्ट खाली स्ट्रिंग है।
  • STARROCKS_PASSWORD_FILE: (वैकल्पिक) पासवर्ड वाली UTF-8 टेक्स्ट फ़ाइल का पथ। यह systemd क्रेडेंशियल जैसे फ़ाइल-आधारित गुप्त इंजेक्शन के साथ उपयोगी है। एक अनुगामी न्यूलाइन को अनदेखा किया जाता है। यह केवल तब उपयोग किया जाता है जब STARROCKS_PASSWORD या STARROCKS_URL के माध्यम से कोई स्पष्ट पासवर्ड प्रदान नहीं किया जाता है।
  • STARROCKS_PASSWORD_KEYCHAIN_SERVICE: (वैकल्पिक, केवल macOS) Keychain से पासवर्ड पढ़ते समय उपयोग करने के लिए सामान्य पासवर्ड सेवा नाम। यह केवल तब उपयोग किया जाता है जब कोई स्पष्ट पासवर्ड या STARROCKS_PASSWORD_FILE कॉन्फ़िगर नहीं किया गया हो।
  • STARROCKS_PASSWORD_KEYCHAIN_ACCOUNT: (वैकल्पिक, केवल macOS) Keychain से पासवर्ड पढ़ते समय उपयोग करने के लिए सामान्य पासवर्ड खाता नाम। डिफ़ॉल्ट हल किया गया StarRocks उपयोगकर्ता है।
  • STARROCKS_DB: (वैकल्पिक) डिफ़ॉल्ट डेटाबेस जो टूल तर्कों या संसाधन URIs में निर्दिष्ट नहीं होने पर उपयोग किया जाता है। यदि सेट है, तो कनेक्शन इस डेटाबेस को USE करने का प्रयास करेगा। table_overview और db_overview जैसे टूल इसका उपयोग करेंगे यदि उनके तर्कों में डेटाबेस भाग छोड़ दिया गया है। डिफ़ॉल्ट खाली है (कोई डिफ़ॉल्ट डेटाबेस नहीं)।
  • STARROCKS_QUERY_TIMEOUT: (वैकल्पिक) किसी क्वेरी के परिणामों की प्रतीक्षा करने के लिए सेकंड की संख्या, पूर्णांक के रूप में। डिफ़ॉल्ट रूप से अनसेट, जो अनिश्चित काल तक प्रतीक्षा करता है, पिछले व्यवहार से मेल खाता है। इसे सेट करें यदि एक अटकी या लंबी चलने वाली क्वेरी को टूल कॉल को हमेशा के लिए ब्लॉक करने के बजाय विफल होना चाहिए।

विकल्प 2: कनेक्शन URL (व्यक्तिगत चर पर प्राथमिकता लेता है)

  • STARROCKS_URL: (वैकल्पिक) एक कनेक्शन URL स्ट्रिंग जिसमें सभी कनेक्शन पैरामीटर एक ही चर में होते हैं। प्रारूप: [<schema>://]user:password@host:port/database। स्कीमा भाग वैकल्पिक है। जब यह चर सेट होता है, तो यह व्यक्तिगत STARROCKS_HOST, STARROCKS_PORT, STARROCKS_USER, STARROCKS_PASSWORD, और STARROCKS_DB चर पर प्राथमिकता लेता है।

    उदाहरण:

    • root:mypass@localhost:9030/test_db
    • mysql://admin:secret@db.example.com:9030/production
    • starrocks://user:pass@192.168.1.100:9030/analytics

पासवर्ड प्राथमिकता:

  • STARROCKS_URL में एम्बेडेड पासवर्ड जीतता है, जिसमें user:@host:9030/db जैसा स्पष्ट खाली पासवर्ड शामिल है।
  • यदि STARROCKS_URL पासवर्ड छोड़ देता है, तो सेट होने पर STARROCKS_PASSWORD का उपयोग किया जाता है।
  • यदि कोई स्पष्ट पासवर्ड स्रोत सेट नहीं है और STARROCKS_PASSWORD_FILE कॉन्फ़िगर किया गया है, तो पासवर्ड उस फ़ाइल से पढ़ा जाता है।
  • यदि कोई स्पष्ट पासवर्ड या पासवर्ड फ़ाइल कॉन्फ़िगर नहीं है और STARROCKS_PASSWORD_KEYCHAIN_SERVICE सेट है, तो पासवर्ड macOS Keychain से पढ़ा जाता है।

macOS Keychain उदाहरण

पासवर्ड संग्रहीत करें:

security add-generic-password -U -a root -s mcp-server-starrocks -w 'secret'

संग्रहीत पासवर्ड सत्यापित करें:

security find-generic-password -a root -s mcp-server-starrocks -w

इस सर्वर के साथ इसका उपयोग करें:

export STARROCKS_URL=root@localhost:9030/test_db
export STARROCKS_PASSWORD_KEYCHAIN_SERVICE=mcp-server-starrocks
export STARROCKS_PASSWORD_KEYCHAIN_ACCOUNT=root

systemd एन्क्रिप्टेड क्रेडेंशियल उदाहरण (systemd 250 या बाद का)

सर्वर स्वयं systemd-creds को आमंत्रित नहीं करता है। परिनियोजन समय पर, एक व्यवस्थापक पासवर्ड एन्क्रिप्ट करता है; सेवा प्रारंभ समय पर, systemd इसे सेवा के क्रेडेंशियल निर्देशिका में डिक्रिप्ट करता है और केवल फ़ाइल पथ को इस सर्वर को उजागर करता है।

पासवर्ड को शेल इतिहास में डाले बिना एक होस्ट-बाउंड एन्क्रिप्टेड क्रेडेंशियल बनाएं:

sudo -v
sudo install -d -m 0700 /etc/credstore.encrypted
sudo systemd-ask-password -n "StarRocks password:" \
  | sudo systemd-creds encrypt \
      --name=starrocks-password \
      - /etc/credstore.encrypted/starrocks-password.cred

सेवा इकाई में क्रेडेंशियल जोड़ें। %d स्पेसिफायर सेवा-विशिष्ट क्रेडेंशियल निर्देशिका में विस्तारित होता है:

[Service]
LoadCredentialEncrypted=starrocks-password:/etc/credstore.encrypted/starrocks-password.cred
Environment=STARROCKS_PASSWORD_FILE=%d/starrocks-password
PrivateMounts=yes

STARROCKS_PASSWORD अनसेट रखें और STARROCKS_URL से पासवर्ड हटाएं, फिर इकाई को पुनः लोड करें और सेवा को पुनरारंभ करें। एन्क्रिप्टेड क्रेडेंशियल सामान्य रूप से स्थानीय होस्ट (और उपलब्ध होने पर इसके TPM2 डिवाइस) से बंधा होता है; यह केवल सेवा सक्रिय होने के दौरान डिक्रिप्ट किया जाता है। सेवा प्रक्रिया और रूट विशेषाधिकार वाले व्यवस्थापक अभी भी रनटाइम पर प्लेनटेक्स्ट पासवर्ड तक पहुंच सकते हैं। systemd-creds encrypt --with-key=null का उपयोग न करें, जो गोपनीयता प्रदान नहीं करता है।

अतिरिक्त कॉन्फ़िगरेशन

  • STARROCKS_FE_ARROW_FLIGHT_SQL_PORT: (वैकल्पिक) StarRocks FE सेवा का Arrow Flight SQL पोर्ट। सेट होने पर, सर्वर मानक MySQL प्रोटोकॉल के बजाय उच्च-प्रदर्शन Arrow Flight SQL प्रोटोकॉल (ADBC ड्राइवरों के माध्यम से) का उपयोग करके जुड़ता है। डिफ़ॉल्ट MySQL कनेक्शन का उपयोग करने के लिए अनसेट छोड़ें। होस्ट, उपयोगकर्ता, और पासवर्ड ऊपर वर्णित समान कनेक्शन सेटिंग्स से लिए जाते हैं।

  • STARROCKS_OVERVIEW_LIMIT: (वैकल्पिक) कैश को आबाद करने के लिए डेटा प्राप्त करते समय अवलोकन टूल (table_overview, db_overview) द्वारा उत्पन्न कुल टेक्स्ट के लिए एक अनुमानित वर्ण सीमा। यह बहुत बड़ी स्कीमा या कई तालिकाओं के लिए अत्यधिक मेमोरी उपयोग को रोकने में मदद करता है। डिफ़ॉल्ट 20000 है।

  • STARROCKS_MCP_OUTPUT_DIR: (वैकल्पिक) निर्देशिका जिसका उपयोग read_query तब करता है जब इसका output_file तर्क एक सापेक्ष पथ होता है। डिफ़ॉल्ट ~/.mcp-server-starrocks/output/ है। निर्देशिका मांग पर बनाई जाती है। output_file को पारित निरपेक्ष पथ (~-उपसर्ग वाले पथ सहित) इस सेटिंग को बायपास करते हैं। नोट: फ़ाइलें उस मशीन पर लिखी जाती हैं जहाँ MCP सर्वर चलता है। Claude Code / Claude Desktop के लिए सर्वर स्थानीय रूप से चलता है, इसलिए फ़ाइलें आपके लैपटॉप पर आती हैं। दूरस्थ/http परिनियोजन के लिए फ़ाइल क्लाइंट पर नहीं, सर्वर पर आती है।

  • STARROCKS_CHART_OUTPUT_DIR: (वैकल्पिक) निर्देशिका जहाँ query_and_plotly_chart इंटरैक्टिव HTML चार्ट लिखता है (जब format="html")। डिफ़ॉल्ट सिस्टम अस्थायी निर्देशिका है। निर्देशिका मांग पर बनाई जाती है। नोट: अन्य आउटपुट फ़ाइलों की तरह, चार्ट उस मशीन पर लिखे जाते हैं जहाँ MCP सर्वर चलता है।

  • STARROCKS_CHART_INCLUDE_PLOTLYJS: (वैकल्पिक) नियंत्रित करता है कि plotly.js HTML चार्ट में कैसे बंडल किया जाता है। cdn (डिफ़ॉल्ट) फ़ाइलों को छोटा रखता है लेकिन देखते समय नेटवर्क एक्सेस की आवश्यकता होती है; inline/true ऑफ़लाइन उपयोग के लिए पूर्ण लाइब्रेरी एम्बेड करता है; directory और false भी स्वीकार किए जाते हैं (Plotly के write_html को पास किए जाते हैं)।

  • STARROCKS_CHART_DEFAULT_FORMAT: (वैकल्पिक) query_and_plotly_chart के लिए डिफ़ॉल्ट आउटपुट प्रारूप जब format तर्क छोड़ दिया जाता है। json, png, jpeg (डिफ़ॉल्ट), या html में से एक। हर कॉल पर format पारित किए बिना STARROCKS_CHART_OUTPUT_DIR (इनलाइन PNG पूर्वावलोकन के साथ) में एक इंटरैक्टिव चार्ट फ़ाइल हमेशा लिखने के लिए html पर सेट करें। अमान्य मान चेतावनी के साथ jpeg पर वापस आ जाते हैं।

  • STARROCKS_MYSQL_AUTH_PLUGIN: (वैकल्पिक) StarRocks FE सेवा से कनेक्ट होने पर उपयोग करने के लिए प्रमाणीकरण प्लगइन निर्दिष्ट करता है। उदाहरण के लिए, mysql_clear_password पर सेट करें यदि आपके StarRocks परिनियोजन को स्पष्ट टेक्स्ट पासवर्ड प्रमाणीकरण की आवश्यकता होती है (जैसे कि कुछ LDAP या बाहरी प्रमाणीकरण सेटअप का उपयोग करते समय)। केवल तभी सेट करें यदि आपके वातावरण को विशेष रूप से इसकी आवश्यकता हो; अन्यथा, डिफ़ॉल्ट auth_plugin का उपयोग किया जाता है।

TLS / SSL कॉन्फ़िगरेशन

ये चर कनेक्शन के लिए TLS को नियंत्रित करते हैं। जब उनमें से कोई भी सेट नहीं होता है, तो अंतर्निहित mysql.connector अपना डिफ़ॉल्ट व्यवहार (ssl-mode=PREFERRED) रखता है: यदि सर्वर TLS का समर्थन करता है तो कनेक्शन एन्क्रिप्टेड होता है, लेकिन सर्वर प्रमाणपत्र सत्यापित नहीं होता है। वास्तविक सुरक्षा के लिए, एक CA प्रमाणपत्र प्रदान करें और सत्यापन सक्षम करें।

  • STARROCKS_SSL_DISABLED: (वैकल्पिक) TLS को बलपूर्वक अक्षम करने के लिए true पर सेट करें। यह अन्य सभी SSL सेटिंग्स को ओवरराइड करता है। डिफ़ॉल्ट false है।
  • STARROCKS_SSL_CA: (वैकल्पिक) StarRocks सर्वर प्रमाणपत्र को सत्यापित करने के लिए उपयोग किए जाने वाले CA प्रमाणपत्र (PEM) का पथ।
  • STARROCKS_SSL_CERT: (वैकल्पिक) पारस्परिक TLS (mTLS) के लिए क्लाइंट प्रमाणपत्र (PEM) का पथ।
  • STARROCKS_SSL_KEY: (वैकल्पिक) पारस्परिक TLS (mTLS) के लिए क्लाइंट निजी कुंजी (PEM) का पथ।
  • STARROCKS_SSL_VERIFY_CERT: (वैकल्पिक) CA के विरुद्ध सर्वर प्रमाणपत्र सत्यापित करने के लिए true पर सेट करें। डिफ़ॉल्ट false है।
  • STARROCKS_SSL_VERIFY_IDENTITY: (वैकल्पिक) यह सत्यापित करने के लिए true पर सेट करें कि सर्वर होस्टनाम प्रमाणपत्र से मेल खाता है। डिफ़ॉल्ट false है।
  • STARROCKS_TLS_VERSIONS: (वैकल्पिक) अनुमत TLS संस्करणों की अल्पविराम-पृथक सूची, जैसे TLSv1.2,TLSv1.3

उदाहरण (CA प्रमाणपत्र के विरुद्ध सर्वर सत्यापित करें):

"env": {
  "STARROCKS_HOST": "your-fe-host",
  "STARROCKS_PORT": "9030",
  "STARROCKS_USER": "root",
  "STARROCKS_PASSWORD": "your-password",
  "STARROCKS_SSL_CA": "/path/to/ca.pem",
  "STARROCKS_SSL_VERIFY_CERT": "true",
  "STARROCKS_SSL_VERIFY_IDENTITY": "true"
}

उच्च-प्रदर्शन Arrow Flight SQL कनेक्शन के लिए (STARROCKS_FE_ARROW_FLIGHT_SQL_PORT के माध्यम से सक्षम), TLS अलग से नियंत्रित किया जाता है:

  • STARROCKS_FE_ARROW_FLIGHT_SQL_USE_TLS: (वैकल्पिक) सादे पाठ grpc:// के बजाय grpc+tls:// का उपयोग करने के लिए true पर सेट करें। सक्षम होने पर, STARROCKS_SSL_CA को TLS रूट प्रमाणपत्र के रूप में उपयोग किया जाता है और STARROCKS_SSL_VERIFY_CERT=false (डिफ़ॉल्ट) सर्वर प्रमाणपत्र सत्यापन छोड़ देता है।

सुरक्षा नोट: mcp.json में सीधे सादे पाठ पासवर्ड संग्रहीत करने से बचें। STARROCKS_PASSWORD (और प्रमाणपत्र पथ) को सीक्रेट्स मैनेजर या पर्यावरण से इंजेक्ट करना पसंद करें, और क्रेडेंशियल को संस्करण नियंत्रण में कभी कमिट न करें।

  • MCP_TRANSPORT_MODE: (वैकल्पिक) संचार मोड जो निर्दिष्ट करता है कि MCP सर्वर अपनी सेवाओं को कैसे उजागर करता है। उपलब्ध विकल्प:
    • stdio (डिफ़ॉल्ट): मानक इनपुट/आउटपुट के माध्यम से संचार करता है, MCP होस्ट होस्टिंग के लिए उपयुक्त।
    • streamable-http (स्ट्रीमेबल HTTP): स्ट्रीमेबल HTTP सर्वर के रूप में शुरू होता है, RESTful API कॉल का समर्थन करता है।
    • sse: (अप्रचलित, अनुशंसित नहीं) सर्वर-सेंट इवेंट्स (SSE) स्ट्रीमिंग मोड में शुरू होता है, स्ट्रीमिंग प्रतिक्रियाओं की आवश्यकता वाले परिदृश्यों के लिए उपयुक्त। नोट: SSE मोड अब बनाए नहीं रखा गया है, समान रूप से स्ट्रीमेबल HTTP मोड का उपयोग करने की अनुशंसा की जाती है।

घटक

उपकरण

  • read_query

    • विवरण: एक SELECT क्वेरी या अन्य कमांड निष्पादित करें जो ResultSet लौटाता है (जैसे, SHOW, DESCRIBE)। वैकल्पिक रूप से पूर्ण परिणाम को इनलाइन लौटाने के बजाय स्थानीय फ़ाइल में लिखें — मॉडल संदर्भ में फिट होने के लिए बहुत बड़े परिणामों के लिए उपयोगी।
    • इनपुट:
      {
        "query": "SQL query string",
        "db": "database name (optional, uses default database if not specified)",
        "output_file": "optional path; if set, writes the full result to disk and returns only a summary + small preview. Relative paths resolve against STARROCKS_MCP_OUTPUT_DIR (default: ~/.mcp-server-starrocks/output/); absolute paths and ~ are used as-is",
        "output_format": "optional: csv | tsv | json | jsonl. If omitted, inferred from output_file extension (.csv/.tsv/.json/.jsonl/.ndjson); defaults to csv"
      }
      
    • आउटपुट: output_file के बिना, हेडर पंक्ति और पंक्ति गणना सारांश के साथ CSV-जैसे प्रारूप में क्वेरी परिणामों वाली टेक्स्ट सामग्री। output_file के साथ, हल किया गया निरपेक्ष पथ, बाइट गणना और पंक्ति गणना सहित एक संक्षिप्त सारांश, साथ ही एक छोटा पूर्वावलोकन। विफलता पर त्रुटि संदेश लौटाता है।
  • write_query

    • विवरण: एक DDL (CREATE, ALTER, DROP), DML (INSERT, UPDATE, DELETE), या अन्य StarRocks कमांड निष्पादित करें जो ResultSet नहीं लौटाता है।
    • इनपुट:
      {
        "query": "SQL command string",
        "db": "database name (optional, uses default database if not specified)"
      }
      
    • आउटपुट: सफलता की पुष्टि करने वाली टेक्स्ट सामग्री (जैसे, "क्वेरी ठीक है, X पंक्तियाँ प्रभावित") या त्रुटि की रिपोर्ट। सफलता पर परिवर्तन स्वचालित रूप से प्रतिबद्ध होते हैं।
  • analyze_query

    • विवरण: क्वेरी प्रोफ़ाइल या एक्सप्लेन एनालाइज़ का उपयोग करके क्वेरी का विश्लेषण करें और विश्लेषण परिणाम प्राप्त करें।
    • इनपुट:
      {
        "uuid": "Query ID, a string composed of 32 hexadecimal digits formatted as 8-4-4-4-12",
        "sql": "Query SQL to analyze",
        "db": "database name (optional, uses default database if not specified)"
      }
      
    • आउटपुट: क्वेरी विश्लेषण परिणामों वाली टेक्स्ट सामग्री। यदि uuid प्रदान किया गया है तो ANALYZE PROFILE FROM का उपयोग करता है, अन्यथा यदि sql प्रदान किया गया है तो EXPLAIN ANALYZE का उपयोग करता है।
  • top_hot_tables

    • विवरण: ऑडिट-लॉग विज़िट गणना द्वारा शीर्ष हॉट तालिकाएँ प्राप्त करें। यह information_schema.tables को starrocks_audit_db__.starrocks_audit_tbl__ के साथ जोड़ता है, root और SHOW कथनों को बाहर करता है, ऑडिट SQL पाठ को तालिका नामों के विरुद्ध मिलाता है, और visit_count अवरोही क्रम में क्रमबद्ध करता है।
    • इनपुट:
      {
        "db": "optional database/schema filter",
        "table": "optional table name substring filter",
        "min_start_time_ms": 1704067200000,
        "max_start_time_ms": 1704153600000,
        "top_n": 20
      }
      
    • आउटपुट: db, table, और visit_count के साथ रैंक की गई पंक्तियों वाली संरचित सामग्री के साथ टेक्स्ट सारांश।
  • top_bad_tables

    • विवरण: Star Management Studio के top-bad-tables तर्क का पालन करते हुए, तालिका स्वास्थ्य स्कोर द्वारा शीर्ष खराब तालिकाएँ प्राप्त करें। यह information_schema.be_tablets और information_schema.partitions_meta पर आधारित तालिका-स्वास्थ्य गणना का पुन: उपयोग करता है, सिस्टम स्कीमा को फ़िल्टर करता है, table_health_score आरोही क्रम में क्रमबद्ध करता है, और सबसे कम स्कोर वाली तालिकाएँ लौटाता है।
    • इनपुट:
      {
        "db": "optional database/schema filter",
        "table": "optional table name substring filter",
        "top_n": 20
      }
      
    • आउटपुट: तालिका स्वास्थ्य फ़ील्ड जैसे db, table, tablet_num, replica_score, tablet_score, और table_health_score के साथ रैंक की गई पंक्तियों वाली संरचित सामग्री के साथ टेक्स्ट सारांश।
  • query_and_plotly_chart

    • विवरण: एक SQL क्वेरी निष्पादित करता है, परिणामों को Pandas DataFrame में लोड करता है, और प्रदान किए गए Python अभिव्यक्ति का उपयोग करके Plotly चार्ट उत्पन्न करता है। सहायक UI में विज़ुअलाइज़ेशन के लिए डिज़ाइन किया गया।
    • इनपुट:
      {
        "query": "SQL query to fetch data",
        "plotly_expr": "Python expression string using 'px' (Plotly Express) and 'df' (DataFrame). Example: 'px.scatter(df, x=\"col1\", y=\"col2\")'",
        "db": "database name (optional, uses default database if not specified)"
      }
      
    • आउटपुट: एक सूची जिसमें शामिल है:
      1. TextContent: DataFrame का टेक्स्ट प्रतिनिधित्व और एक नोट कि चार्ट UI प्रदर्शन के लिए है।
      2. ImageContent: उत्पन्न Plotly चार्ट base64 PNG छवि के रूप में एन्कोड किया गया (image/png)। विफलता पर या क्वेरी से कोई डेटा नहीं मिलने पर टेक्स्ट त्रुटि संदेश लौटाता है।
  • table_overview

    • विवरण: किसी विशिष्ट तालिका का अवलोकन प्राप्त करें: कॉलम (DESCRIBE से), कुल पंक्ति गणना, और नमूना पंक्तियाँ (LIMIT 3)। जब तक refresh सत्य न हो, इन-मेमोरी कैश का उपयोग करता है।
    • इनपुट:
      {
        "table": "Table name, optionally prefixed with database name (e.g., 'db_name.table_name' or 'table_name'). If database is omitted, uses STARROCKS_DB environment variable if set.",
        "refresh": false // Optional, boolean. Set to true to bypass the cache. Defaults to false.
      }
      
    • आउटपुट: स्वरूपित अवलोकन (कॉलम, पंक्ति गणना, नमूना डेटा) या त्रुटि संदेश वाली टेक्स्ट सामग्री। कैश किए गए परिणामों में लागू होने पर पिछली त्रुटियाँ शामिल होती हैं।
  • db_overview

    • विवरण: निर्दिष्ट डेटाबेस के भीतर सभी तालिकाओं के लिए अवलोकन (कॉलम, पंक्ति गणना, नमूना पंक्तियाँ) प्राप्त करें। जब तक refresh सत्य न हो, प्रत्येक तालिका के लिए तालिका-स्तरीय कैश का उपयोग करता है।
    • इनपुट:
      {
        "db": "database_name", // Optional if default database is set.
        "refresh": false // Optional, boolean. Set to true to bypass the cache for all tables in the DB. Defaults to false.
      }
      
    • आउटपुट: डेटाबेस में पाई गई सभी तालिकाओं के लिए संयोजित अवलोकनों वाली टेक्स्ट सामग्री, हेडर द्वारा अलग की गई। यदि डेटाबेस तक पहुँचा नहीं जा सकता या कोई तालिका नहीं है तो त्रुटि संदेश लौटाता है।

संसाधन

प्रत्यक्ष संसाधन

  • starrocks:///databases
    • विवरण: कॉन्फ़िगर किए गए उपयोगकर्ता के लिए सुलभ सभी डेटाबेस सूचीबद्ध करता है।
    • समतुल्य क्वेरी: SHOW DATABASES
    • MIME प्रकार: text/plain

संसाधन टेम्पलेट

  • starrocks:///{db}/{table}/schema

    • विवरण: किसी विशिष्ट तालिका की स्कीमा परिभाषा प्राप्त करता है।
    • समतुल्य क्वेरी: SHOW CREATE TABLE {db}.{table}
    • MIME प्रकार: text/plain
  • starrocks:///{db}/tables

    • विवरण: किसी विशिष्ट डेटाबेस के भीतर सभी तालिकाओं को सूचीबद्ध करता है।
    • समतुल्य क्वेरी: SHOW TABLES FROM {db}
    • MIME प्रकार: text/plain
  • proc:///{+path}

    • विवरण: StarRocks आंतरिक सिस्टम जानकारी तक पहुँचता है, Linux /proc के समान। path पैरामीटर वांछित सूचना नोड निर्दिष्ट करता है।
    • समतुल्य क्वेरी: SHOW PROC '/{path}'
    • MIME प्रकार: text/plain
    • सामान्य पथ:
      • /frontends - FE नोड्स के बारे में जानकारी।
      • /backends - BE नोड्स के बारे में जानकारी (गैर-क्लाउड नेटिव तैनाती के लिए)।
      • /compute_nodes - CN नोड्स के बारे में जानकारी (क्लाउड नेटिव तैनाती के लिए)।
      • /dbs - डेटाबेस के बारे में जानकारी।
      • /dbs/<DB_ID> - ID द्वारा किसी विशिष्ट डेटाबेस के बारे में जानकारी।
      • /dbs/<DB_ID>/<TABLE_ID> - ID द्वारा किसी विशिष्ट तालिका के बारे में जानकारी।
      • /dbs/<DB_ID>/<TABLE_ID>/partitions - तालिका के लिए विभाजन जानकारी।
      • /transactions - डेटाबेस द्वारा समूहीकृत लेनदेन जानकारी।
      • /transactions/<DB_ID> - किसी विशिष्ट डेटाबेस ID के लिए लेनदेन जानकारी।
      • /transactions/<DB_ID>/running - डेटाबेस ID के लिए चल रहे लेनदेन।
      • /transactions/<DB_ID>/finished - डेटाबेस ID के लिए समाप्त लेनदेन।
      • /jobs - अतुल्यकालिक कार्यों के बारे में जानकारी (स्कीमा परिवर्तन, रोलअप, आदि)।
      • /statistic - प्रत्येक डेटाबेस के लिए आँकड़े।
      • /tasks - एजेंट कार्यों के बारे में जानकारी।
      • /cluster_balance - लोड संतुलन स्थिति जानकारी।
      • /routine_loads - रूटीन लोड कार्यों के बारे में जानकारी।
      • /colocation_group - कोलोकेशन जॉइन समूहों के बारे में जानकारी।
      • /catalog - कॉन्फ़िगर किए गए कैटलॉग के बारे में जानकारी (जैसे, Hive, Iceberg)।

प्रॉम्प्ट

इस सर्वर द्वारा कोई परिभाषित नहीं।

कैशिंग व्यवहार

  • table_overview और db_overview उपकरण उत्पन्न अवलोकन पाठ को संग्रहीत करने के लिए इन-मेमोरी कैश का उपयोग करते हैं।
  • कैश कुंजी (database_name, table_name) का एक टपल है।
  • जब table_overview कहा जाता है, यह पहले कैश की जाँच करता है। यदि कोई परिणाम मौजूद है और refresh पैरामीटर false (डिफ़ॉल्ट) है, तो कैश किया गया परिणाम तुरंत लौटाया जाता है। अन्यथा, यह StarRocks से डेटा प्राप्त करता है, इसे कैश में संग्रहीत करता है, और फिर लौटाता है।
  • जब db_overview कहा जाता है, यह डेटाबेस में सभी तालिकाओं को सूचीबद्ध करता है और फिर table_overview के समान कैशिंग तर्क का उपयोग करके प्रत्येक तालिका के लिए अवलोकन प्राप्त करने का प्रयास करता है (पहले कैश की जाँच करना, यदि आवश्यक हो तो प्राप्त करना और refresh false है या कैश मिस है)। यदि db_overview के लिए refresh true है, तो यह उस डेटाबेस में सभी तालिकाओं के लिए रीफ़्रेश को बाध्य करता है।
  • STARROCKS_OVERVIEW_LIMIT पर्यावरण चर कैश को आबाद करते समय प्रति तालिका उत्पन्न अवलोकन स्ट्रिंग की अधिकतम लंबाई के लिए एक सॉफ्ट लक्ष्य प्रदान करता है, जो मेमोरी उपयोग को प्रबंधित करने में मदद करता है।
  • कैश किए गए परिणाम, मूल प्राप्ति के दौरान सामने आई किसी भी त्रुटि संदेश सहित, संग्रहीत किए जाते हैं और बाद के कैश हिट पर लौटाए जाते हैं।

डीबग

mcp सर्वर शुरू करने के बाद, आप डीबग करने के लिए इंस्पेक्टर का उपयोग कर सकते हैं:

npx @modelcontextprotocol/inspector

डेमो

MCP Demo Image