Last9

आधिकारिक

अपने स्थानीय वातावरण में रीयल-टाइम प्रोडक्शन संदर्भ—लॉग, मीट्रिक्स और ट्रेस—को सहजता से लाएं ताकि कोड को तेजी से ऑटो-फिक्स किया जा सके।

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

  • सेवा स्वास्थ्य की जांच करें — get_service_summary के माध्यम से अनुरोध संख्या, थ्रूपुट और त्रुटि दरों का रैंक किया गया फ्लीट सारांश प्राप्त करें।

  • कच्चे सेवा लॉग खींचें — get_service_logs का उपयोग करके किसी विशिष्ट सेवा के लिए गंभीरता या बॉडी सामग्री द्वारा फ़िल्टर की गई लॉग पंक्तियाँ प्राप्त करें।

  • डेटाबेस प्रदर्शन का पता लगाएं — get_databases और संबंधित टूल के साथ डेटाबेस, धीमी क्वेरी और क्वेरी पैटर्न खोजें।

  • PromQL क्वेरी चलाएं — prometheus_range_query या prometheus_instant_query का उपयोग करके किसी भी मीट्रिक पर रेंज या इंस्टेंट क्वेरी निष्पादित करें।

  • परिवर्तनों को घटनाओं से सहसंबंधित करें — get_change_events के माध्यम से उत्पादन व्यवहार को बदलने वाली डिप्लॉयमेंट और कॉन्फ़िगरेशन परिवर्तन घटनाएँ प्राप्त करें।

  • कस्टम डैशबोर्ड प्रबंधित करें — list_dashboards और create_dashboard के साथ प्रोग्रामेटिक रूप से डैशबोर्ड सूचीबद्ध करें, बनाएं, अपडेट करें या मान्य करें।

दस्तावेज़

Last9 MCP सर्वर

last9 mcp demo

आपका AI एजेंट नहीं जानता कि प्रोडक्शन में क्या खराब है। यह इसे ठीक करता है।

Last9 MCP सर्वर Claude, Cursor, Windsurf, और किसी भी अन्य MCP-सक्षम AI सहायक को सीधे आपके प्रोडक्शन ऑब्ज़र्वेबिलिटी डेटा — लॉग्स, मेट्रिक्स, ट्रेसेस, एक्सेप्शन, डेटाबेस क्वेरी, अलर्ट्स, और डिप्लॉयमेंट्स से जोड़ता है। एजेंट अनुमान लगाना बंद कर देता है और वास्तविक सिग्नल पढ़ना शुरू कर देता है।


30 सेकंड में शुरू करें (होस्टेड)

इंस्टॉल करने के लिए कोई बाइनरी नहीं। प्रबंधित करने के लिए कोई टोकन नहीं। एक URL, ब्राउज़र में OAuth, हो गया।

अपना org slug अपने Last9 URL में खोजें: app.last9.io/<org_slug>/...

Claude Code

claude mcp add --transport http last9 https://app.last9.io/api/v4/organizations/<org_slug>/mcp

/mcp टाइप करें, last9 चुनें, प्रमाणित करें। बस इतना ही।

Cursor

Settings > MCP > Add New MCP Server:

{
  "mcpServers": {
    "last9": {
      "type": "http",
      "url": "https://app.last9.io/api/v4/organizations/<org_slug>/mcp"
    }
  }
}

Connect पर क्लिक करें, OAuth पूरा करें।

VS Code

v1.99+ आवश्यक है। Command Palette खोलें → MCP: Add Server, URL पेस्ट करें, प्रमाणित करें।

या सीधे settings.json में:

{
  "mcp": {
    "servers": {
      "last9": {
        "type": "http",
        "url": "https://app.last9.io/api/v4/organizations/<org_slug>/mcp"
      }
    }
  }
}

Windsurf

Settings > Cascade > Open MCP Marketplace > गियर आइकन (mcp_config.json):

{
  "mcpServers": {
    "last9": {
      "serverUrl": "https://app.last9.io/api/v4/organizations/<org_slug>/mcp"
    }
  }
}

Claude Web/Desktop

Settings > Connectors > Add custom connector। इसे last9 नाम दें, URL पेस्ट करें, प्रमाणित करें।

आपके Claude संगठन के लिए एडमिन एक्सेस आवश्यक है।


सेल्फ-होस्टेड (STDIO)

इसका उपयोग तब करें जब आपका MCP क्लाइंट HTTP ट्रांसपोर्ट का समर्थन नहीं करता है, या जब आपको सर्वर को स्थानीय रूप से चलाने की आवश्यकता हो।

इंस्टॉल करें

Homebrew:

brew install last9/tap/last9-mcp

NPM:

npm install -g @last9/mcp-server@latest
# or directly:
npx -y @last9/mcp-server@latest

बाइनरी रिलीज़ (Windows / मैनुअल):

GitHub Releases से डाउनलोड करें:

प्लेटफ़ॉर्मआर्काइव
Windows (x64)last9-mcp-server_Windows_x86_64.zip
Windows (ARM64)last9-mcp-server_Windows_arm64.zip
Linux (x64)last9-mcp-server_Linux_x86_64.tar.gz
Linux (ARM64)last9-mcp-server_Linux_arm64.tar.gz
macOS (x64)last9-mcp-server_Darwin_x86_64.tar.gz
macOS (ARM64)last9-mcp-server_Darwin_arm64.tar.gz

रिफ्रेश टोकन प्राप्त करें

केवल एडमिन टोकन बना सकते हैं।

  1. API Access पर जाएं
  2. Write अनुमतियों के साथ Generate Token पर क्लिक करें
  3. इसे कॉपी करें

क्लाइंट कॉन्फ़िगरेशन

Homebrew:

{
  "mcpServers": {
    "last9": {
      "command": "/opt/homebrew/bin/last9-mcp",
      "env": {
        "LAST9_REFRESH_TOKEN": "<your_refresh_token>"
      }
    }
  }
}

NPM:

{
  "mcpServers": {
    "last9": {
      "command": "npx",
      "args": ["-y", "@last9/mcp-server@latest"],
      "env": {
        "LAST9_REFRESH_TOKEN": "<your_refresh_token>"
      }
    }
  }
}

इसे कहां पेस्ट करें:

क्लाइंटस्थान
Claude Web/DesktopSettings > Developer > Edit Config (claude_desktop_config.json)
CursorSettings > Cursor Settings > MCP > Add New Global MCP Server
WindsurfSettings > Cascade > MCP Marketplace > गियर आइकन (mcp_config.json)
VS Codesettings.json में { "mcp": { "servers": { ... } } } में लपेटें — विवरण
VS Code STDIO कॉन्फ़िग
{
  "mcp": {
    "servers": {
      "last9": {
        "type": "stdio",
        "command": "/opt/homebrew/bin/last9-mcp",
        "env": {
          "LAST9_REFRESH_TOKEN": "<your_refresh_token>"
        }
      }
    }
  }
}

NPM के लिए: "command": "npx" का उपयोग करें और "args": ["-y", "@last9/mcp-server@latest"] जोड़ें।

Windows

GitHub Releases से डाउनलोड करने के बाद, निकालें और पूर्ण पथ पर इंगित करें:

{
  "mcpServers": {
    "last9": {
      "command": "C:\\Users\\<user>\\AppData\\Local\\Programs\\last9-mcp-server.exe",
      "env": {
        "LAST9_REFRESH_TOKEN": "<your_refresh_token>"
      }
    }
  }
}

Windows पर NPM मार्ग आसान है — कोई पथ प्रबंधन नहीं।

पर्यावरण चर

चरडिफ़ॉल्टविवरण
LAST9_REFRESH_TOKEN(आवश्यक)API Access से रिफ्रेश टोकन
LAST9_DATASOURCEorg डिफ़ॉल्टडेटासोर्स/क्लस्टर नाम — उपयोगी जब आपके पास कई Levitate क्लस्टर हों
LAST9_API_HOSTapp.last9.ioAPI होस्ट को ओवरराइड करें
LAST9_TOOLSETSसभी टूलएक्सपोज़ करने के लिए अल्पविराम-पृथक टूलसेट (logs, traces, metrics, alerts, dashboards, profiles, grafana, investigate, all)। उपनाम: LAST9_MCP_TOOLSETS
LAST9_MAX_GET_LOGS_ENTRIES5000चंक्ड get_logs अनुरोधों के लिए अधिकतम प्रविष्टियाँ
LAST9_USE_LOG_SEARCH_APIfalseक्लाइंट-साइड चंकिंग के बजाय एक सर्वर-साइड खोज कॉल के साथ get_logs और get_service_logs का उत्तर देने के लिए true सेट करें
LAST9_DEBUG_CHUNKINGfalseget_logs, get_service_logs, get_traces के लिए चंक-प्लानिंग विवरण लॉग करने के लिए true सेट करें
LAST9_DISABLE_TELEMETRYtrueआंतरिक OTel ट्रेसिंग सक्षम करने के लिए false सेट करें
OTEL_SDK_DISABLED—मानक OTel env var। LAST9_DISABLE_TELEMETRY को ओवरराइड करता है
OTEL_EXPORTER_OTLP_ENDPOINT—OTLP कलेक्टर एंडपॉइंट (केवल जब टेलीमेट्री सक्षम हो)
OTEL_EXPORTER_OTLP_HEADERS—OTLP प्रमाणीकरण हेडर (केवल जब टेलीमेट्री सक्षम हो)

यह क्या कर सकता है

सेवा स्वास्थ्य

  • get_service_summary — रैंक्ड फ्लीट (service, env) पंक्तियाँ: अंतराल request_count, throughput_rpm, HTTP 4xx/5xx गणना, और gRPC त्रुटि गणना
  • get_service_environments — आपकी सेवाओं के लिए उपलब्ध वातावरण। इसे पहले चलाएं — अन्य APM टूल को यहां से env चाहिए
  • get_service_performance_details — पूर्ण विवरण: throughput, त्रुटि दर, p50/p90/p95/avg/max, apdex, उपलब्धता
  • get_service_operations_summary — HTTP एंडपॉइंट्स, DB कॉल्स, मैसेजिंग, HTTP क्लाइंट्स द्वारा समूहीकृत संचालन
  • get_service_dependency_graph — अपस्ट्रीम/डाउनस्ट्रीम/इंफ्रा के लिए throughput, विलंबता, और त्रुटि दरों के साथ निर्भरता मानचित्र
  • get_apm_service_deviations — वर्तमान विंडो की तुलना समान अवधि के बेसलाइन से करें: रिग्रेशन/सुधार, Apdex समाधान, और टर्मिनल परिणाम (फ्लीट या एकल सेवा)
  • get_exceptions — सेवा और स्पैन फ़िल्टर के साथ सर्वर-साइड एक्सेप्शन

डेटाबेस ऑब्ज़र्वेबिलिटी

चार टूल जो सीधे आपके डेटाबेस प्रदर्शन पर जाते हैं, OpenTelemetry ट्रेस स्पैन से प्राप्त होते हैं और, जहां ट्रेसेस अनुपस्थित हैं, CloudWatch जैसे इंफ्रास्ट्रक्चर मेट्रिक्स से। यदि आप पहले से OTel का उपयोग कर रहे हैं तो कोई अतिरिक्त इंस्ट्रुमेंटेशन आवश्यक नहीं है।

  • get_databases — अपने इंफ्रास्ट्रक्चर में सभी डेटाबेस खोजें: DB प्रकार, होस्ट, throughput (क्वेरी/मिनट), p95 विलंबता, त्रुटि दर, आश्रित सेवाओं की संख्या। CloudWatch जैसे इंफ्रास्ट्रक्चर मेट्रिक्स से भी डेटाबेस खोजता है, बिना ट्रेस इंस्ट्रुमेंटेशन के — उन पंक्तियों में ट्रेस मेट्रिक्स के बजाय गतिविधि मान होता है
  • get_database_slow_queries — वास्तविक सबसे धीमी क्वेरी निष्पादन, अवधि के अनुसार क्रमबद्ध, पूर्ण ट्रेसेस में ड्रिल करने के लिए ट्रेस आईडी के साथ
  • get_database_queries — क्वेरी पैटर्न और एग्रीगेट्स: क्वेरी कितनी बार चलती है, औसत/p95 अवधि, त्रुटि दर
  • get_database_server_metrics — DB होस्ट से सर्वर-साइड मेट्रिक्स (CPU, कनेक्शन, बफर हिट दरें — आपके DB सिस्टम पर निर्भर करता है)

PostgreSQL, MySQL, MongoDB, Redis, Aerospike, और db_system विशेषता के साथ OTel ट्रेस करने वाली किसी भी अन्य चीज़ का समर्थन करता है — साथ ही CloudWatch जैसे इंफ्रास्ट्रक्चर मेट्रिक्स से खोजे गए डेटाबेस, जिनकी पंक्तियों में ट्रेस मेट्रिक्स के बजाय गतिविधि मान होता है।

Prometheus / PromQL

  • prometheus_range_query — किसी भी मेट्रिक पर PromQL रेंज क्वेरी
  • prometheus_instant_query — इंस्टेंट क्वेरी; avg_over_time, sum_over_time जैसे रोलअप फ़ंक्शन का उपयोग करें
  • prometheus_label_values — दिए गए सीरीज़ के लिए लेबल मान
  • prometheus_labels — सीरीज़ के लिए उपलब्ध सभी लेबल

LAST9_DATASOURCE सेट करके इन्हें डिफ़ॉल्ट से भिन्न डेटासोर्स/क्लस्टर पर इंगित करें।

लॉग्स

  • get_logs — पूर्ण JSON पाइपलाइन लॉग क्वेरी (एग्रीगेशन, फ़िल्टर, फ़ील्ड निष्कर्षण)
  • get_service_logs — सेवा के लिए कच्ची लॉग पंक्तियाँ, गंभीरता और बॉडी सामग्री द्वारा फ़िल्टर करने योग्य
  • get_log_attributes — समय विंडो के लिए लॉग स्कीमा में विशेषताओं की वैश्विक सूची
  • get_log_attributes_for_pipeline — प्रगति पर पाइपलाइन के लिए वास्तव में मौजूद लॉग फ़ील्ड (स्कोप्ड डिस्कवरी), प्रत्येक अपने सटीक filter_field के साथ
  • get_drop_rules — Last9 कंट्रोल प्लेन से लॉग ड्रॉप नियम
  • add_drop_rule — स्रोत पर लॉग वॉल्यूम कम करने के लिए नया ड्रॉप नियम बनाएं

ट्रेसेस

  • get_traces — व्यापक खोजों और एग्रीगेशन के लिए JSON पाइपलाइन ट्रेस क्वेरी
  • get_service_traces — सटीक ट्रेस आईडी या सेवा नाम से ट्रेसेस। जब आपके पास ट्रेस आईडी हो तो इसका उपयोग करें — यह तेज़ है
  • get_trace_attributes — ट्रेस स्कीमा में विशेषताओं की वैश्विक सूची
  • get_trace_attributes_for_pipeline — प्रगति पर पाइपलाइन के लिए वास्तव में मौजूद विशेषताएँ (स्कोप्ड डिस्कवरी), प्रत्येक अपने सटीक filter_field के साथ
  • get_trace_attribute_values — ट्रेस विशेषता के लिए अलग मान, वैकल्पिक रूप से पाइपलाइन तक स्कोप्ड
  • get_trace_attribute_deviations — दो बाउंडेड स्पैन कोहोर्ट (धीमा बनाम तेज़, त्रुटि बनाम गैर-त्रुटि, या दो समय विंडो) के बीच भिन्न विशेषता मानों को रैंक करता है। सहसंबंध, कारण नहीं
  • get_trace_waterfall — एक सटीक ट्रेस पैरेंट/चाइल्ड वॉटरफॉल के रूप में अंतराल-संघ स्व-समय, सबसे धीमे स्पैन, और ग्राफ़ चेतावनियों के साथ

परिवर्तन घटनाएँ और अलर्ट्स

  • get_change_events — डिप्लॉयमेंट, कॉन्फ़िग परिवर्तन, रोलबैक। घटनाओं को जोड़ें कि क्या बदला
  • get_alert_groups — कॉन्फ़िगर किए गए Compass अलर्ट समूह मेटाडेटा लेबल, टीम, टियर, और नियम गणनाओं के साथ — शून्य नियमों वाले समूहों और फायर नहीं होने वाले समूहों सहित
  • get_alert_config — अलर्ट नियम कॉन्फ़िगरेशन — नाम, गंभीरता, प्रकार, टैग द्वारा खोजने योग्य
  • get_alerts — समय विंडो के भीतर वर्तमान में फायर हो रहे अलर्ट
  • get_alert_rule_state — समय सीमा पर प्रति अलर्ट नियम ऐतिहासिक फायरिंग स्थिति (1/0), rule_id द्वारा समूहीकृत। अलर्ट समूह, नियम नाम, लेबल फ़िल्टर, और स्थिति द्वारा फ़िल्टर करने योग्य।
  • get_notification_channels — कॉन्फ़िगर किए गए अधिसूचना चैनल (Slack, PagerDuty, ईमेल, आदि)

कस्टम डैशबोर्ड

  • list_dashboards — आपके org में सभी कस्टम डैशबोर्ड: आईडी, नाम, और मेटाडेटा
  • get_dashboard — आईडी द्वारा पूर्ण डैशबोर्ड परिभाषा, पैनल और क्वेरी सहित
  • validate_dashboard — सहेजे गए डैशबोर्ड आईडी या इनलाइन dashboard_definition के लिए ≤24h विंडो पर केवल-पढ़ने योग्य lint + execute + classify। कभी भी डैशबोर्ड नहीं बनाता या अपडेट नहीं करता
  • create_dashboard — एक बार नेट-नया कस्टम डैशबोर्ड बनाएं (पैनल, क्वेरी, मेटाडेटा)। आईडी लौटाए जाने के बाद, update_dashboard के साथ परिष्कृत करें।
  • update_dashboard — आईडी द्वारा मौजूदा डैशबोर्ड परिष्कृत करें (पूर्ण प्रतिस्थापन; केवल-पढ़ने योग्य सिस्टम डैशबोर्ड त्रुटि लौटाते हैं)
  • delete_dashboard — आईडी द्वारा कस्टम डैशबोर्ड हटाएं
  • list_dashboard_snapshots — डैशबोर्ड के लिए फ्रोज़न पॉइंट-इन-टाइम स्नैपशॉट (केवल मेटाडेटा)
  • get_dashboard_snapshot — RCA / साझा करने योग्य दृश्यों के लिए पैनल डेटा सहित पूर्ण फ्रोज़न स्नैपशॉट
  • delete_dashboard_snapshot — आईडी द्वारा फ्रोज़न स्नैपशॉट हटाएं

सतत प्रोफाइलिंग

org के लिए सतत प्रोफाइलिंग सक्षम होना आवश्यक है। पहले get_profile_services के साथ सेवाएं खोजें, फिर फ्लेमग्राफ या रैंक किए गए फ़ंक्शन खींचें।

  • get_profile_services — विंडो में प्रोफाइलिंग डेटा रखने वाली सेवाएं (क्वेरी करने से पहले इंडेक्स)
  • get_flamegraph — एक सेवा के लिए नेस्टेड फ्लेमग्राफ ट्री (cpu डिफ़ॉल्ट; alloc, wall भी)
  • get_top_functions — एक सेवा के लिए सबसे हॉट फ़ंक्शन की सेल्फ-सैंपल रैंकिंग
  • get_profile_summary — एक सेवा के लिए प्रोफ़ाइल का संक्षिप्त प्राकृतिक-भाषा ट्राइएज

Grafana डैशबोर्ड

org के Grafana इंस्टेंस के खिलाफ केवल-पढ़ने योग्य टूल (Last9 के Grafana प्रॉक्सी के माध्यम से)। क्रेडेंशियल फ़ील्ड कभी भी मॉडल को नहीं लौटाए जाते। LAST9_TOOLSETS=grafana के साथ सक्षम करें (या सभी टूल के लिए टूलसेट अनसेट छोड़ दें)।

  • grafana_search_dashboards — डैशबोर्ड को शीर्षक सबस्ट्रिंग द्वारा खोजें (पृष्ठांकित; सीमा पूरी होने पर truncated: true)
  • grafana_get_dashboard — डैशबोर्ड सारांश uid द्वारा (पैनल, वेरिएबल, PromQL लक्ष्य); कच्चे Grafana JSON के लिए full_json=true
  • grafana_list_folders — फ़ोल्डर ट्री
  • grafana_list_folder_dashboards — एक फ़ोल्डर में डैशबोर्ड (पृष्ठांकित)
  • grafana_list_datasources — क्रेडेंशियल के बिना डेटासोर्स इन्वेंट्री

फ़ज़ी नाम समाधान

  • did_you_mean — जब एजेंट को किसी इकाई के नाम के बारे में पक्का नहीं होता, तो यह आपकी कैटलॉग से सबसे नज़दीकी मिलान लौटाता है (सेवाएँ, वातावरण, होस्ट, डेटाबेस, K8s डिप्लॉयमेंट/नेमस्पेस, जॉब्स)। समानता स्कोर के साथ अधिकतम 3 सुझाव। जब नाम लुकअप खाली लौटता है, तो सर्वर अधिकांश टूल से पहले स्वचालित रूप से इसे कॉल करता है।

सेवा प्रोफ़ाइल

  • get_service_profile — किसी सेवा का टेलीमेट्री वास्तव में कैसा दिखता है, उसे क्वेरी करने से पहले: कौन से सिग्नल मौजूद हैं, भाषा और रनटाइम, डिप्लॉयमेंट वातावरण, उसके लॉग का आकार, और जहाँ लागू हो वहाँ एक अनुशंसित इन्जेस्ट फिक्स। एजेंट को ट्रेस टूल छोड़ने देता है जब किसी सेवा में ट्रेस नहीं होते, और SeverityText खाली होने पर लॉग बॉडी से गंभीरता पार्स करने देता है, बजाय उस पर फ़िल्टर करके कुछ न पाने के।

यह कैसे काम करता है

हर प्रतिक्रिया पर डीप लिंक। हर टूल एक deep_link फ़ील्ड लौटाता है — उस सटीक क्वेरी और समय सीमा के लिए Last9 डैशबोर्ड में एक सीधा URL। एजेंट आपको लिंक दे सकता है; आप उस पर क्लिक करते हैं; आप वहाँ पहुँच जाते हैं।

टूलसेट। डिफ़ॉल्ट रूप से सर्वर हर टूल को उजागर करता है। केवल जाँच (लॉग/ट्रेस/मेट्रिक्स/प्रोफाइल) की आवश्यकता वाले स्वचालन होस्ट LAST9_TOOLSETS=investigate सेट कर सकते हैं (या --toolsets=investigate पास कर सकते हैं) ताकि tools/list क्लाइंट-साइड मास-डिसेबल के बिना छोटा रहे। नामित पैक: logs, traces, metrics, alerts, dashboards, profiles, grafana, investigate, all। अज्ञात नाम तेज़ी से विफल होते हैं। metrics पैक अकेले list_datasources या did_you_mean शामिल नहीं करता — जब आपको उन डिस्कवरी सहायकों की आवश्यकता हो, तो investigate (या टूलसेट संयोजित करें) का उपयोग करें।

टूल संदर्भ संसाधन। लंबे logjson/tracejson/service-logs/metrics मैनुअल MCP संसाधन हैं (last9://reference/logjson, last9://reference/tracejson, last9://reference/service_logs, last9://reference/metrics, last9://reference/investigation), हमेशा-चालू टूल विवरण पाठ नहीं। महत्वपूर्ण क्वेरी नियम टूल विवरण पर रहते हैं ताकि जो एजेंट कभी resources/read नहीं कॉल करते, उन्हें भी सही निर्माण मार्गदर्शन मिले। get_log_attributes / get_log_attributes_for_pipeline (और ट्रेस समकक्ष) के साथ org-विशिष्ट फ़ील्ड खोजें — वे विवरणों में इंजेक्ट नहीं होते।

चंक्ड बड़े परिणाम। get_logs और get_traces बड़े परिणाम सेट को ट्रंकेट करने के बजाय चंकिंग के माध्यम से संभालते हैं। लॉग के लिए डिफ़ॉल्ट सीमा 5000 प्रविष्टियाँ है; LAST9_MAX_GET_LOGS_ENTRIES के माध्यम से कॉन्फ़िगर करने योग्य।


विकास

HTTP मोड, curl परीक्षण, स्रोत से निर्माण

HTTP मोड में चलाएँ

export LAST9_REFRESH_TOKEN="your_refresh_token"
export LAST9_HTTP=true
export LAST9_PORT=8080
./last9-mcp-server

सर्वर http://localhost:8080/mcp पर शुरू होता है।

curl के साथ परीक्षण करें

Streamable HTTP हैंडलर स्टेटलेस मोड में चलता है, इसलिए कोई भी अनुरोध स्वतंत्र रूप से परोसा जाता है। एक initialize हैंडशेक और एक Mcp-Session-Id हेडर वैकल्पिक हैं — जो क्लाइंट उन्हें भेजते हैं वे अभी भी काम करते हैं (हेडर स्वीकार किया जाता है और अनदेखा किया जाता है), और क्लाइंट सीधे tools/list / tools/call पर भी जा सकते हैं। हर टूल एक स्वतंत्र अनुरोध/प्रतिक्रिया क्वेरी है; सर्वर कोई सर्वर→क्लाइंट सूचनाएँ जारी नहीं करता, इसलिए GET /mcp (SSE स्ट्रीम) 405 लौटाता है।

# List tools — a session handshake is optional in stateless mode
curl -s -X POST http://localhost:8080/mcp \
    -H "Content-Type: application/json" \
    -H "Accept: application/json, text/event-stream" \
    -d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {}}'

# Call a tool
curl -s -X POST http://localhost:8080/mcp \
    -H "Content-Type: application/json" \
    -H "Accept: application/json, text/event-stream" \
    -d '{
      "jsonrpc": "2.0",
      "id": 2,
      "method": "tools/call",
      "params": {
        "name": "get_service_logs",
        "arguments": {
          "service_name": "your-service-name",
          "lookback_minutes": 30,
          "limit": 10
        }
      }
    }'

स्रोत से निर्माण

git clone https://github.com/last9/last9-mcp-server.git
cd last9-mcp-server
go build -o last9-mcp-server
LAST9_HTTP=true ./last9-mcp-server

LAST9_HTTP=true स्थानीय विकास के लिए है। वास्तविक उपयोग के लिए, होस्टेड HTTP एंडपॉइंट आसान है।


टूल संदर्भ

सभी पैरामीटर, समय इनपुट मानक, और विवरण

समय इनपुट

  • निरपेक्ष समय (start_time_iso/end_time_iso, या time_iso) lookback_minutes पर प्राथमिकता लेते हैं।
  • सापेक्ष विंडो के लिए: lookback_minutes का उपयोग करें।
  • निरपेक्ष विंडो के लिए: RFC3339/ISO8601 का उपयोग करें — 2026-02-09T15:04:05Z।
  • विरासत YYYY-MM-DD HH:MM:SS केवल संगतता के लिए स्वीकार किया जाता है।

get_exceptions

  • limit (पूर्णांक, वैकल्पिक): अधिकतम अपवाद। डिफ़ॉल्ट: 20।
  • lookback_minutes (पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 60।
  • start_time_iso / end_time_iso (स्ट्रिंग, वैकल्पिक): निरपेक्ष समय सीमा।
  • service_name (स्ट्रिंग, वैकल्पिक): सेवा द्वारा फ़िल्टर करें।
  • span_name (स्ट्रिंग, वैकल्पिक): स्पैन नाम द्वारा फ़िल्टर करें।
  • env (स्ट्रिंग, वैकल्पिक): वातावरण द्वारा फ़िल्टर करें।

get_service_summary

  • start_time_iso / end_time_iso (स्ट्रिंग, वैकल्पिक)
  • env (स्ट्रिंग, वैकल्पिक): PromQL regex। डिफ़ॉल्ट .* है। सटीक मिलान के लिए एंकर चाहिए (जैसे ^prod$)।
  • sort_by (स्ट्रिंग, वैकल्पिक): request_count (डिफ़ॉल्ट), throughput_rpm, http_4xx_count, http_5xx_count, या grpc_error_count।
  • limit (पूर्णांक, वैकल्पिक): अधिकतम रैंक की गई पंक्तियाँ। छोड़ें या 0 का मतलब 10; 100 से ऊपर के मान 100 पर क्लैम्प होते हैं।

get_service_environments

  • start_time_iso / end_time_iso (स्ट्रिंग, वैकल्पिक)

अन्य सभी APM टूल के लिए एक env मान आवश्यक है। यदि यह खाली लौटता है, तो "" का उपयोग करें।

get_service_performance_details

  • service_name (स्ट्रिंग, आवश्यक)
  • lookback_minutes (पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 60।
  • start_time_iso / end_time_iso (स्ट्रिंग, वैकल्पिक)
  • env (स्ट्रिंग, वैकल्पिक): डिफ़ॉल्ट prod है।

get_service_operations_summary

  • service_name (स्ट्रिंग, आवश्यक)
  • lookback_minutes (पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 60।
  • start_time_iso / end_time_iso (स्ट्रिंग, वैकल्पिक)
  • env (स्ट्रिंग, वैकल्पिक): डिफ़ॉल्ट prod है।

get_service_dependency_graph

  • service_name (स्ट्रिंग, वैकल्पिक)
  • lookback_minutes (पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 60।
  • start_time_iso / end_time_iso (स्ट्रिंग, वैकल्पिक)
  • env (स्ट्रिंग, वैकल्पिक): डिफ़ॉल्ट prod है।

get_apm_service_deviations

  • service_name (स्ट्रिंग, वैकल्पिक): फ्लीट स्कोप के लिए छोड़ें; एक सेवा और उसके ऑपरेशन सहसंबंधों के लिए प्रदान करें।
  • lookback_minutes (पूर्णांक, वैकल्पिक): वर्तमान विंडो। डिफ़ॉल्ट: 60।
  • start_time_iso / end_time_iso (स्ट्रिंग, वैकल्पिक): स्पष्ट वर्तमान विंडो।
  • baseline_start_time_iso / baseline_end_time_iso (स्ट्रिंग, वैकल्पिक): स्पष्ट बेसलाइन। डिफ़ॉल्ट तुरंत पिछली समान-अवधि विंडो है।
  • datasource (स्ट्रिंग, वैकल्पिक): तुलना को एक डेटासोर्स तक सीमित करें।
  • env (स्ट्रिंग, वैकल्पिक): डिफ़ॉल्ट prod है।
  • max_services / max_operations (पूर्णांक, वैकल्पिक): डिफ़ॉल्ट 10, अधिकतम 10 प्रत्येक।

get_databases

  • env (स्ट्रिंग, वैकल्पिक): वातावरण द्वारा फ़िल्टर करें। एक नियमित अभिव्यक्ति स्वीकार करता है। डिफ़ॉल्ट: सभी।
  • lookback_minutes (पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 60। विंडो 7 दिनों से अधिक नहीं हो सकती।
  • start_time_iso / end_time_iso (स्ट्रिंग, वैकल्पिक)

get_database_slow_queries

  • db_system (स्ट्रिंग, वैकल्पिक): जैसे postgresql, mysql, mongodb, redis।
  • host (स्ट्रिंग, वैकल्पिक): डेटाबेस होस्ट (net_peer_name)।
  • service_name (स्ट्रिंग, वैकल्पिक): कॉल करने वाली सेवा का नाम।
  • env (स्ट्रिंग, वैकल्पिक)
  • min_duration_ms (फ्लोट, वैकल्पिक): ms में न्यूनतम क्वेरी अवधि।
  • lookback_minutes (पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 60।
  • start_time_iso / end_time_iso (स्ट्रिंग, वैकल्पिक)
  • limit (पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 20।

get_database_queries

  • db_system (स्ट्रिंग, वैकल्पिक)
  • host (स्ट्रिंग, वैकल्पिक)
  • service_name (स्ट्रिंग, वैकल्पिक)
  • env (स्ट्रिंग, वैकल्पिक)
  • lookback_minutes (पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 60।
  • start_time_iso / end_time_iso (स्ट्रिंग, वैकल्पिक)
  • limit (पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 20।

get_database_server_metrics

  • db_system (स्ट्रिंग, आवश्यक): जैसे postgresql, mysql, mongodb, redis, aerospike।
  • host (स्ट्रिंग, वैकल्पिक)
  • lookback_minutes (पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 60।
  • start_time_iso / end_time_iso (स्ट्रिंग, वैकल्पिक)

prometheus_range_query

  • query (स्ट्रिंग, आवश्यक): PromQL क्वेरी।
  • start_time_iso / end_time_iso (स्ट्रिंग, वैकल्पिक): डिफ़ॉल्ट पिछले 60 मिनट।
  • lookback_minutes (फ्लोट, वैकल्पिक): डिफ़ॉल्ट: 60।

prometheus_instant_query

  • query (स्ट्रिंग, आवश्यक)
  • time_iso (स्ट्रिंग, वैकल्पिक): डिफ़ॉल्ट अभी।
  • lookback_minutes (फ्लोट, वैकल्पिक)

prometheus_label_values

  • match_query (स्ट्रिंग, वैकल्पिक): PromQL फ़िल्टर।
  • label (स्ट्रिंग, आवश्यक): लेबल नाम।
  • start_time_iso / end_time_iso (स्ट्रिंग, वैकल्पिक)

prometheus_labels

  • match_query (स्ट्रिंग, वैकल्पिक): PromQL फ़िल्टर।
  • start_time_iso / end_time_iso (स्ट्रिंग, वैकल्पिक)

get_logs

  • logjson_query (सरणी, आवश्यक): JSON पाइपलाइन क्वेरी।
  • lookback_minutes (पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 5।
  • start_time_iso / end_time_iso (स्ट्रिंग, वैकल्पिक)
  • limit (पूर्णांक, वैकल्पिक): सर्वर डिफ़ॉल्ट: 5000।
  • index (स्ट्रिंग, वैकल्पिक): physical_index:<name> या rehydration_index:<block_name>।

लॉग-आधारित सेवा इन्वेंट्री के लिए, पहले physical_index_service_count क्वेरी करें:

sum by (name, service_name, env) (physical_index_service_count{destination="logs"})

service_name को ServiceName के रूप में उपयोग करें, मौजूद होने पर env को वातावरण के रूप में, और name को भौतिक इंडेक्स नाम के रूप में। यदि name="default", तो index छोड़ें; उपयोगकर्ता द्वारा चयनित गैर-डिफ़ॉल्ट भौतिक इंडेक्स के लिए, index: "physical_index:<name>" पास करें। यदि बैकएंड स्पष्ट भौतिक इंडेक्स फ़िल्टरिंग को अस्वीकार करता है, तो index के बिना पुनः प्रयास करें और रिपोर्ट करें कि स्पष्ट भौतिक इंडेक्स फ़िल्टरिंग उस बैकएंड के लिए अनुपलब्ध है।

get_service_logs

  • service_name (स्ट्रिंग, आवश्यक)
  • lookback_minutes (पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 60।
  • limit (पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 20।
  • env (स्ट्रिंग, वैकल्पिक)
  • severity_filters (सरणी, वैकल्पिक): जैसे ["error", "warn"]। OR तर्क।
  • body_filters (सरणी, वैकल्पिक): जैसे ["timeout", "failed"]। OR तर्क।
  • start_time_iso / end_time_iso (स्ट्रिंग, वैकल्पिक)
  • index (स्ट्रिंग, वैकल्पिक)

कई फ़िल्टर प्रकार AND के साथ संयोजित होते हैं। प्रत्येक सरणी आंतरिक रूप से OR का उपयोग करती है। पहले व्यापक समग्र गणनाओं के लिए get_logs का उपयोग करें; किसी सेवा/वातावरण/इंडेक्स और एक छोटे नमूना सेट पर संकीर्ण करने के बाद ही get_service_logs का उपयोग करें।

get_log_attributes

  • lookback_minutes (पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 15।
  • start_time_iso / end_time_iso (स्ट्रिंग, वैकल्पिक)
  • region (स्ट्रिंग, वैकल्पिक)
  • index (स्ट्रिंग, वैकल्पिक)

get_log_attributes_for_pipeline

  • pipeline (सरणी, आवश्यक): डिस्कवरी को स्कोप करने के लिए पूर्व फ़िल्टर चरण, जैसे [{"type":"filter","query":{"$eq":["ServiceName","<service>"]}}]।
  • lookback_minutes (पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 15।
  • start_time_iso / end_time_iso (स्ट्रिंग, वैकल्पिक)
  • region (स्ट्रिंग, वैकल्पिक)
  • index (स्ट्रिंग, वैकल्पिक)

get_drop_rules

कोई पैरामीटर नहीं। GET /otel_settings/drop?region=... के माध्यम से ड्रॉप नियम सूचीबद्ध करता है।

add_drop_rule

  • name (स्ट्रिंग, आवश्यक)
  • filters (सरणी, आवश्यक): प्रत्येक फ़िल्टर: key, value, operator (equals/not_equals), conjunction (and)।
  • फ़िल्टर कुंजियों को attributes["key_name"] या resource.attributes["key_name"] का उपयोग करना चाहिए (Last9 API द्वारा आवश्यक)।
  • POST /otel_settings/drop?region=...&cluster_id=... के माध्यम से नियम बनाता है।

get_traces

व्यापक खोजों और समुच्चयन के लिए उपयोग करें। सटीक ट्रेस ID लुकअप के लिए, get_service_traces का उपयोग करें।

  • tracejson_query (सरणी, आवश्यक)
  • start_time_iso / end_time_iso (स्ट्रिंग, वैकल्पिक)
  • lookback_minutes (पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 60।
  • limit (पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 5000।

get_service_traces

trace_id या service_name में से ठीक एक आवश्यक है।

  • trace_id (string, वैकल्पिक): डिफ़ॉल्ट लुकबैक: 72 घंटे।
  • service_name (string, वैकल्पिक): डिफ़ॉल्ट लुकबैक: 60 मिनट।
  • lookback_minutes (integer, वैकल्पिक)
  • start_time_iso / end_time_iso (string, वैकल्पिक)
  • limit (integer, वैकल्पिक): डिफ़ॉल्ट: 10।
  • env (string, वैकल्पिक)

get_trace_attributes

  • lookback_minutes (integer, वैकल्पिक): डिफ़ॉल्ट: 15।
  • start_time_iso / end_time_iso (string, वैकल्पिक)
  • region (string, वैकल्पिक)

get_trace_attributes_for_pipeline

  • pipeline (array, आवश्यक): डिस्कवरी को सीमित करने के लिए पिछले फ़िल्टर चरण, जैसे [{"type":"filter","query":{"$eq":["ServiceName","<service>"]}}]।
  • lookback_minutes (integer, वैकल्पिक): डिफ़ॉल्ट: 15।
  • start_time_iso / end_time_iso (string, वैकल्पिक)
  • region (string, वैकल्पिक)

get_trace_attribute_values

  • tag_name (string, आवश्यक): get_trace_attributes से विशेषता नाम (जैसे resource_department या attributes['http.method'])।
  • pipeline (array, वैकल्पिक): मानों को सीमित करने के लिए पिछले फ़िल्टर चरण; वैश्विक मानों के लिए छोड़ दें।
  • lookback_minutes (integer, वैकल्पिक): डिफ़ॉल्ट: 15।
  • start_time_iso / end_time_iso (string, वैकल्पिक): ऐतिहासिक RFC3339 सीमाएँ; lookback_minutes पर प्राथमिकता लेती हैं।
  • region (string, वैकल्पिक)

get_trace_attribute_deviations

  • comparison_mode (string, आवश्यक): latency, errors, या time।
  • service_name (string, आवश्यक)
  • environment (string, आवश्यक): सटीक deployment.environment मान।
  • operation (string, वैकल्पिक)
  • filters (array, वैकल्पिक): ट्रेस JSON फ़िल्टर शर्तें।
  • candidate_attributes (array, वैकल्पिक): अधिकतम 8; सीमित डिस्कवरी के लिए छोड़ दें।
  • latency_threshold_ms (number, वैकल्पिक): latency मोड के लिए आवश्यक; अन्य मोड के लिए अस्वीकृत।
  • start_time_iso / end_time_iso (string, वैकल्पिक)
  • lookback_minutes (integer, वैकल्पिक): डिफ़ॉल्ट: 15। अधिकतम: 15।
  • baseline_start_time_iso / baseline_end_time_iso (string, वैकल्पिक): time मोड के लिए आवश्यक; लक्ष्य विंडो की अवधि के बराबर और गैर-अतिव्यापी।
  • minimum_cohort_size (integer, वैकल्पिक): डिफ़ॉल्ट: 100। न्यूनतम: 20।
  • minimum_value_support (integer, वैकल्पिक): डिफ़ॉल्ट: 20। न्यूनतम: 10।
  • limit (integer, वैकल्पिक): डिफ़ॉल्ट: 10। अधिकतम: 10।

साथी बैकएंड क्षमता सक्षम होना आवश्यक है।

get_trace_waterfall

  • trace_id (string, आवश्यक)
  • environment (string, वैकल्पिक)
  • start_time_iso / end_time_iso (string, वैकल्पिक)
  • lookback_minutes (integer, वैकल्पिक): डिफ़ॉल्ट: 4320 (72 घंटे)।
  • selected_span_id (string, वैकल्पिक): केवल उस स्पैन के लिए विशेषताएँ, घटनाएँ और लिंक लौटाता है।
  • max_spans (integer, वैकल्पिक): डिफ़ॉल्ट: 500। अधिकतम: 1000।

एक investigation-evidence/v1 लिफाफा लौटाता है; वॉटरफॉल data के अंतर्गत है।

get_change_events

  • start_time_iso / end_time_iso (string, वैकल्पिक)
  • lookback_minutes (integer, वैकल्पिक): डिफ़ॉल्ट: 60।
  • service_name (string, वैकल्पिक)
  • env (string, वैकल्पिक)
  • event_name (string, वैकल्पिक): available_event_names प्राप्त करने के लिए पहले इसके बिना कॉल करें।

get_alert_groups

चेंजबोर्ड / लेबल-कवरेज ऑडिट के लिए कॉन्फ़िगर किया गया Compass अलर्ट-समूह इन्वेंट्री। शून्य नियमों वाले समूह और फायर नहीं करने वाले समूह शामिल हैं। PromQL नहीं लौटाता है।

  • alert_group_name / alert_group_type / data_source_name (string, वैकल्पिक): केस-असंवेदनशील सबस्ट्रिंग मिलान।
  • team / tier (string, वैकल्पिक): कॉन्फ़िगर किए गए मेटाडेटा पर सटीक केस-असंवेदनशील मिलान।
  • label_key + label_value (string, वैकल्पिक): एक साथ सेट होना चाहिए। एक metadata.labels जोड़ी पर सटीक केस-असंवेदनशील मिलान — कुंजी और मान दोनों।

{"count":N,"groups":[...]}, id, name, type, entity_class, team, tier, metadata.labels और नियम गणनाओं के साथ कॉम्पैक्ट JSON लौटाता है। खाली team / labels का अर्थ अनसेट है।

get_alert_config

  • search_term (string, वैकल्पिक): नाम, समूह, डेटा स्रोत, टैग में मुफ्त-पाठ खोज।
  • rule_name (string, वैकल्पिक)
  • severity (string, वैकल्पिक)
  • rule_type (string, वैकल्पिक): static या anomaly।
  • alert_group_name / alert_group_type / data_source_name (string, वैकल्पिक)
  • tags (array, वैकल्पिक): सभी मेल खाने चाहिए (AND तर्क)।

get_alerts

  • time_iso (string, वैकल्पिक): RFC3339 में मूल्यांकन समय।
  • window (integer, वैकल्पिक): सेकंड में लुकबैक। डिफ़ॉल्ट: 900। सीमा: 60–86400।
  • lookback_minutes (integer, वैकल्पिक): सीमा: 1–1440।

get_alert_rule_state

  • start_time (integer, आवश्यक): सीमा की शुरुआत का Unix epoch (समावेशी)।
  • end_time (integer, आवश्यक): सीमा का अंत Unix epoch (समावेशी)।
  • step (integer, आवश्यक): नमूनों के बीच सेकंड में रिज़ॉल्यूशन। नमूनों की संख्या ((end_time - start_time) / step + 1) 100 पर सीमित है।
  • alert_group_id (string, वैकल्पिक): अलर्ट समूह ID द्वारा फ़िल्टर करें।
  • rule_name (string, वैकल्पिक): नियम नाम पर रेगेक्स फ़िल्टर।
  • alert_group_name (string, वैकल्पिक): अलर्ट समूह नाम पर रेगेक्स फ़िल्टर।
  • label_filters (string, वैकल्पिक): अल्पविराम-पृथक key=value लेबल फ़िल्टर।
  • state (string, वैकल्पिक): स्थिति द्वारा फ़िल्टर करें (जैसे firing)।

rule_id -> [{timestamp, is_firing}] का JSON मानचित्र लौटाता है। एक टाइमस्टैम्प जिस पर एक नियम अपस्ट्रीम प्रतिक्रिया से अनुपस्थित है, is_firing=0 के रूप में रिपोर्ट किया जाता है — इसका अर्थ है "फायरिंग के रूप में नहीं देखा गया", पुष्टि की गई सामान्य स्थिति नहीं।

get_notification_channels

कोई पैरामीटर नहीं। सभी कॉन्फ़िगर किए गए अधिसूचना चैनल लौटाता है (Slack, PagerDuty, ईमेल, वेबहुक, आदि)।

did_you_mean

  • query (string, आवश्यक): खोजने के लिए नाम — आंशिक, गलत वर्तनी, या संक्षिप्त।
  • type (string, वैकल्पिक): इकाई प्रकार तक सीमित करें: service, environment, host, database, k8s_deployment, k8s_namespace, job।

समानता स्कोर के साथ अधिकतम 3 निकटतम मिलान लौटाता है। किसी भी टूल कॉल से पहले इसका उपयोग करें जहाँ इकाई नाम अनिश्चित है। यदि पिछली कॉल ने खाली परिणाम लौटाए हैं, तो पुनः प्रयास करने से पहले इसे आज़माएँ।

get_service_profile

  • service_name (string, आवश्यक): सेवा जिसके लिए टेलीमेट्री प्रोफ़ाइल प्राप्त करनी है।
  • datasource (string, वैकल्पिक): डेटासोर्स नाम। डिफ़ॉल्ट के लिए छोड़ दें।

एक संक्षिप्त जांच ब्रीफिंग लौटाता है जिसके बाद पूर्ण प्रोफ़ाइल कच्चे JSON के रूप में: सिग्नल उपस्थिति (logs/traces/metrics जैसे present, absent, या unknown), भाषा और रनटाइम, परिनियोजन वातावरण, लॉग signal_shape (log_format, severity_set, level_field), और एक अनुशंसित इन्जेस्ट फिक्स जहाँ लागू हो। अपस्ट्रीम से व्युत्पन्न और ~15 मिनट TTL के साथ कैश किया गया।

किसी भी सेवा-स्कोप्ड जांच से पहले इसे कॉल करें ताकि टूल चयन सेवा की वास्तविक टेलीमेट्री से मेल खाए — ट्रेस टूल छोड़ें जब traces absent है, और जब severity_set none या partial है तो लॉग बॉडी में level_field से गंभीरता पार्स करें, severity_filters का उपयोग करने के बजाय। metrics हमेशा unknown है और dependencies v1 में आबाद नहीं है। जब logs और traces दोनों absent हैं, तो सेवा अनमॉनिटर्ड निष्कर्ष निकालने से पहले did_you_mean के साथ नाम की पुष्टि करें।

list_dashboards

कोई पैरामीटर नहीं। संगठन में सभी कस्टम डैशबोर्ड id, name और मेटाडेटा के साथ JSON सरणी के रूप में लौटाता है।

get_dashboard

  • id (string, आवश्यक): डैशबोर्ड UUID।
  • region (string, वैकल्पिक): पैनल क्वेरी आबादी के लिए क्षेत्र। कॉन्फ़िगर किए गए डेटासोर्स क्षेत्र के लिए डिफ़ॉल्ट।

validate_dashboard

केवल-पढ़ने के लिए। कभी भी डैशबोर्ड नहीं बनाता या अपडेट नहीं करता। dashboard_id या dashboard_definition में से ठीक एक स्वीकार करता है।

  • dashboard_id (string, वैकल्पिक): सहेजा गया डैशबोर्ड UUID सत्यापित करने के लिए।
  • dashboard_definition (object, वैकल्पिक): इनलाइन असहेजा डैशबोर्ड बॉडी (सही ड्राई रन)।
  • start_time_iso / end_time_iso (string, वैकल्पिक): सत्यापन विंडो (RFC3339)। ≤ 24h होना चाहिए।
  • region (string, वैकल्पिक): पैनल क्वेरी निष्पादन के लिए क्षेत्र।

dashboard_validation/v1 लौटाता है: प्रति-पैनल लिंट + निष्पादन वर्गीकरण (data / no_data / invalid / error)। दिन-1 खाली परिणाम डायग्नोज़ प्रोब के बिना valid_no_data के रूप में वर्गीकृत होते हैं।

create_dashboard

केवल नया। इस कॉल के dashboard.id लौटाने के बाद, update_dashboard के साथ परिष्कृत करें — पैनल जोड़ने, ट्रिम करने या ठीक करने के लिए फिर से न बनाएं।

  • dashboard (object, आवश्यक): name और panels[] के साथ डैशबोर्ड परिभाषा। प्रत्येक पैनल को name, version, layout (x, y, w, h), visualization.type और queries[] की आवश्यकता होती है।
  • metadata (object, वैकल्पिक): डैशबोर्ड मेटाडेटा — _category और _type फ़ील्ड (जैसे {"_category":"custom","_type":"metrics"})।

update_dashboard

बनाने के बाद इसे प्राथमिकता दें। id द्वारा पूर्ण प्रतिस्थापन (create के समान बॉडी)।

  • id (string, आवश्यक): अपडेट करने के लिए डैशबोर्ड UUID।
  • dashboard (object, आवश्यक): पूर्ण प्रतिस्थापन डैशबोर्ड बॉडी (create के समान आकार)।
  • metadata (object, वैकल्पिक): प्रतिस्थापन मेटाडेटा। केवल-पढ़ने वाले सिस्टम डैशबोर्ड 403 त्रुटि लौटाते हैं।

delete_dashboard

  • id (string, आवश्यक): हटाने के लिए डैशबोर्ड UUID। केवल-पढ़ने वाले सिस्टम डैशबोर्ड हटाए नहीं जा सकते।

list_dashboard_snapshots

  • dashboard_id (string, आवश्यक): डैशबोर्ड UUID जिसके स्नैपशॉट सूचीबद्ध करने हैं।

केवल मेटाडेटा लौटाता है (id, name, expires_at, आदि)। जमे हुए पैनल डेटा के लिए get_dashboard_snapshot का उपयोग करें।

get_dashboard_snapshot

  • id (string, आवश्यक): स्नैपशॉट UUID।

dashboard_definition, panel_data, time_range और variables सहित पूर्ण जमे हुए स्नैपशॉट लौटाता है।

delete_dashboard_snapshot

  • id (string, आवश्यक): हटाने के लिए स्नैपशॉट UUID।

get_profile_services

  • lookback_minutes / start_time_iso / end_time_iso (वैकल्पिक): विंडो; लुकबैक या स्पष्ट ISO सीमाएँ पसंद करें (डिफ़ॉल्ट 60 मिनट)।
  • region (string, वैकल्पिक): क्षेत्र ओवरराइड।

उन सेवाओं को लौटाता है जिनके पास विंडो में प्रोफाइलिंग डेटा है। get_flamegraph / get_top_functions / get_profile_summary से पहले इसे कॉल करें।

get_flamegraph

  • service (string, आवश्यक): get_profile_services से सेवा नाम।
  • profile_type (string, वैकल्पिक): cpu (डिफ़ॉल्ट), alloc, या wall। विंडो की तुलना करते समय एक प्रकार पिन करें।
  • env / cluster / namespace / runtime (string, वैकल्पिक): स्कोप फ़िल्टर।
  • limit (number, वैकल्पिक): अधिकतम एकत्रित स्टैक पंक्तियाँ (डिफ़ॉल्ट 1000, अधिकतम 10000)।
  • lookback_minutes / start_time_iso / end_time_iso / region (वैकल्पिक)।

एक नेस्टेड फ्लेमग्राफ ट्री लौटाता है (name / value / self / children)। truncated: true का अर्थ है कि API पंक्ति सीमा हिट हुई थी।

get_top_functions

get_flamegraph के समान फ़िल्टर। सबसे गर्म फ़ंक्शन की सेल्फ-सैंपल रैंकिंग लौटाता है। छोटा हो सकता है; truncated जांचें।

get_profile_summary

get_flamegraph के समान फ़िल्टर। सेवा के लिए प्रोफ़ाइल का एक संक्षिप्त प्राकृतिक-भाषा ट्राइएज लौटाता है।

grafana_search_dashboards

  • query (string, वैकल्पिक): शीर्षक सबस्ट्रिंग। खाली व्यापक रूप से सूचीबद्ध करता है (5,000-पंक्ति कैप के अधीन)।

{"dashboards":[…], "truncated":bool} को uid, title, uri, url, type, tags के साथ लौटाता है। uid को grafana_get_dashboard के साथ उपयोग करें।

grafana_get_dashboard

  • uid (string, आवश्यक): Grafana डैशबोर्ड uid।
  • full_json (boolean, वैकल्पिक): सत्य होने पर, फ़िल्टर किए गए सारांश के बजाय कच्चा Grafana JSON लौटाएँ। डिफ़ॉल्ट सारांश: संस्करण, टैग, टेम्प्लेटिंग वेरिएबल्स, और प्रत्येक पैनल का प्रकार/डेटासोर्स/gridPos/promQL लक्ष्य। अज्ञात प्लगइन पैनल प्रकार unsupportedPanelTypes में दिखाई देते हैं।

grafana_list_folders

कोई पैरामीटर नहीं। फ़ोल्डर ट्री लौटाता है।

grafana_list_folder_dashboards

  • folder_uid (स्ट्रिंग, आवश्यक): Grafana फ़ोल्डर uid।

उस फ़ोल्डर में डैशबोर्ड के लिए {"dashboards":[…], "truncated":bool} लौटाता है (5,000 तक पेजिनेटेड)।

grafana_list_datasources

कोई पैरामीटर नहीं। डेटासोर्स का एक सुरक्षित प्रोजेक्शन लौटाता है (कोई क्रेडेंशियल फ़ील्ड नहीं)।


परीक्षण

एकीकरण परीक्षण सेटअप और निर्देशों के लिए TESTING.md देखें।


MseeP.ai Security Assessment Badge