---
title: एक AI क्लाइंट (MCP) कनेक्ट करें
description: Claude Code, Codex CLI, Gemini CLI, Cursor, Claude Desktop, claude.ai, ChatGPT या OpenAI SDK को पूरी टूल सूची के साथ अपने पैनल के एडमिन MCP एंडपॉइंट से कनेक्ट करें।
url: https://nexcmp.com/hi/docs/configure-with-ai/mcp-admin/
applies_to: NexCMP 1.6.1
updated: 2026-11-02
---

# एक AI क्लाइंट (MCP) कनेक्ट करें {#connect-an-ai-client-mcp}

> **एडमिन में कहाँ:** System › Settings › API & AI agents (`/agent/keys`), टैब **Connect an AI** एंडपॉइंट URL और प्रत्येक क्लाइंट के लिए कॉपी करने के लिए तैयार एक स्निपेट दिखाता है, जिसमें आपके द्वारा अभी बनाई गई कुंजी भरी होती है।

## यह क्या करता है {#what-it-does}

**Model Context Protocol (MCP)** एक AI क्लाइंट को टूल कॉल करने देता है। आपका पैनल `https://cloud.example.com/mcp/admin` पर एक एडमिन MCP सर्वर होस्ट करता है। इससे अपना खुद का AI टूल कनेक्ट करें और सादे शब्दों में पूछें: "what is left to set up?", "add my Proxmox cluster", "create plans with a 40% margin"। क्लाइंट नीचे दिए गए एडमिन टूल को कॉल करता है; पैनल स्कोप की जाँच करता है, किसी भी जोखिम भरे काम से पहले आपसे पूछता है और हर कॉल को रिकॉर्ड करता है।

::: info दो MCP एंडपॉइंट
`/mcp` **कस्टमर** एंडपॉइंट है (कस्टमर API कुंजियाँ, `vk_`; [MCP server](https://nexcmp.com/hi/docs/developers/mcp/) देखें)। `/mcp/admin` यहाँ वर्णित **एडमिन** एंडपॉइंट है (एडमिन कुंजियाँ `ak_` या OAuth)। दोनों कभी नहीं मिलते: एडमिन टूल `/mcp` पर दिखाई नहीं देते, और `/mcp/admin` केवल एडमिन कुंजियाँ स्वीकार करता है।
:::

## आवश्यकताएं {#requirements}

| आइटम | आवश्यकता |
|---|---|
| Endpoint | आपके पैनल के अपने डोमेन पर `https://cloud.example.com/mcp/admin`। **Connect an AI** टैब से सटीक URL कॉपी करें। वही पेज सर्वर पर चलने वाले टूल के लिए एक लोकल URL (`http://127.0.0.1:<port>/mcp/admin`) सूचीबद्ध करता है। |
| क्रेडेंशियल्स | अपनी पसंद के स्कोप के साथ एक [admin API key](https://nexcmp.com/hi/docs/configure-with-ai/admin-api-keys/) (`ak_...`), **या** वेब कनेक्टर के लिए OAuth साइन-इन ([OAuth connectors](https://nexcmp.com/hi/docs/configure-with-ai/oauth-connectors/))। |
| क्लाइंट | कोई भी MCP क्लाइंट जो **Streamable HTTP** ट्रांसपोर्ट और कस्टम `Authorization` हेडर का समर्थन करता है। प्रोटोकॉल संस्करण 2025-11-25, 2025-06-18 और 2025-03-26। |
| नेटवर्क | यदि आप पैनल के सामने अपना खुद का रिवर्स प्रॉक्सी रखते हैं, तो उसे `/mcp/admin` को आगे बढ़ाना होगा। वेब कनेक्टर (claude.ai, ChatGPT) वेंडर के सर्वर से कनेक्ट होते हैं, इसलिए URL इंटरनेट से पहुंच योग्य होना चाहिए। |

## बुनियादी ढांचा तैयार करें {#prepare-the-infrastructure}

सर्वर पर कुछ भी इंस्टॉल नहीं करना है। यदि आप IP द्वारा कुंजी को प्रतिबंधित करते हैं, तो सुनिश्चित करें कि जिस पते से आपका क्लाइंट कनेक्ट होता है वह उस रेंज में है। पहले पहुँच की जाँच करें:

```bash
curl -i -X POST https://cloud.example.com/mcp/admin
```

`401` का उत्तर `WWW-Authenticate: Bearer ... resource_metadata=...` हेडर के साथ यह दर्शाता है कि एंडपॉइंट चालू है और क्रेडेंशियल चाहता है।

## NexCMP में कनेक्ट करें {#connect-in-nexcmp}

1. एक कुंजी बनाएँ: **System › Settings › API & AI agents › API keys › New key**। पहली बार प्रयास के लिए केवल `admin:read` का उपयोग करें; जब आपको आवश्यकता हो तो राइट स्कोप जोड़ें। [Admin API keys](https://nexcmp.com/hi/docs/configure-with-ai/admin-api-keys/) देखें।
2. टैब **Connect an AI** खोलें। जब तक "key created" संवाद ताज़ा है, नीचे दिया गया हर स्निपेट पहले से ही आपकी असली कुंजी contiene है। अन्यथा यह प्लेसहोल्डर `ak_YOUR_KEY` दिखाता है।
3. अपने क्लाइंट के लिए स्निपेट कॉपी करें और इसे आगे बताए गए अनुसार चलाएँ या पेस्ट करें।

![MCP URL के साथ Connect an AI टैब और प्रति क्लाइंट कॉपी बटन वाला एक कार्ड](https://nexcmp.com/hi/docs/images/configure-with-ai/mcp-admin-01-connect.webp)

### Claude Code {#claude-code}

```bash
claude mcp add --transport http nexcmp https://cloud.example.com/mcp/admin \
  --header "Authorization: Bearer ak_XXXX"
```

फिर `claude` शुरू करें और पूछें "list the tools from nexcmp" या "what is left to set up?"।

Claude Code 2.1 के साथ 30/10/2026 को जाँचा गया: `claude mcp add --transport http …` सर्वर लिखता है (`-s project` जोड़ें ताकि इसे प्रोजेक्ट के `.mcp.json` में रखा जा सके — Claude Code पहली बार प्रोजेक्ट सर्वर को मंज़ूरी देने के लिए आपसे पूछता है)। स्क्रिप्ट्स के लिए, `claude -p "…" --mcp-config .mcp.json --strict-mcp-config --allowedTools "mcp__nexcmp__*"` बिना मंज़ूरी प्रॉम्प्ट के चलता है और Claude को केवल पैनल के टूल्स का उपयोग करने देता है।

### Claude Desktop {#claude-desktop}

Node.js 18 या नया संस्करण चाहिए। इसे `claude_desktop_config.json` में जोड़ें (यह `mcp-remote` ब्रिज का उपयोग करता है) और Claude Desktop को पुनः आरंभ करें:

```json
{
  "mcpServers": {
    "nexcmp": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://cloud.example.com/mcp/admin", "--header", "Authorization:Bearer ak_XXXX"]
    }
  }
}
```

यदि आपका सिस्टम हेडर आर्ग्यूमेंट में स्पेस को खराब कर देता है, तो इसके बजाय पूरे मान को एक पर्यावरण चर में रखें, बिल्कुल कस्टमर एंडपॉइंट के लिए: `"args": [..., "--header", "Authorization:${NEXCMP_AUTH_HEADER}"]` साथ `"env": { "NEXCMP_AUTH_HEADER": "Bearer ak_XXXX" }`।

### claude.ai (कस्टम कनेक्टर) {#claude-ai-custom-connector}

कोई कुंजी की आवश्यकता नहीं: यह OAuth के साथ साइन इन करता है। claude.ai में कनेक्टर सेटिंग खोलें, एक कस्टम कनेक्टर जोड़ें, `https://cloud.example.com/mcp/admin` पेस्ट करें, फिर अपने NexCMP एडमिन खाते से साइन इन करें और सहमति स्क्रीन पर अनुमतियाँ चुनें। विवरण: [OAuth connectors](https://nexcmp.com/hi/docs/configure-with-ai/oauth-connectors/)।

### ChatGPT (डेवलपर मोड) {#chatgpt-developer-mode}

कुंजी की कोई आवश्यकता नहीं है। ChatGPT में डेवलपर मोड चालू करें, URL `https://cloud.example.com/mcp/admin` के साथ एक MCP कनेक्टर जोड़ें, OAuth चुनें और अपने NexCMP एडमिन खाते से साइन इन करें। विवरण: [OAuth connectors](https://nexcmp.com/hi/docs/configure-with-ai/oauth-connectors/)।

### Codex CLI {#codex-cli}

`~/.codex/config.toml` में जोड़ें:

```toml
[mcp_servers.nexcmp]
url = "https://cloud.example.com/mcp/admin"
bearer_token_env_var = "NEXCMP_KEY"
```

फिर उस शेल में कुंजी को निर्यात करें जो Codex शुरू करता है:

```bash
export NEXCMP_KEY=ak_XXXX
codex
codex mcp list   # shows nexcmp with "Bearer token" auth
```

::: tip गैर-इंटरैक्टिव `codex exec`
`codex exec` (स्क्रिप्ट्स, CI) में Codex टूल्स को कॉल करने से पहले नहीं पूछता है, और यह डेटा बदलने वाले टूल्स को छोड़ देता है। इसे उन्हें कॉल करने की अनुमति देने के लिए `default_tools_approval_mode = "approve"` को `[mcp_servers.nexcmp]` के अंतर्गत जोड़ें; पैनल अभी भी पूर्वावलोकन दिखाता है और पैसे, सुरक्षा तथा हटाने की कार्रवाइयों के लिए पुष्टि मांगता है। Codex CLI 0.166 के साथ 30/10/2026 को जाँचा गया।
:::

### Gemini CLI {#gemini-cli}

`~/.gemini/settings.json` में जोड़ें:

```json
{
  "mcpServers": {
    "nexcmp": {
      "httpUrl": "https://cloud.example.com/mcp/admin",
      "headers": { "Authorization": "Bearer ak_XXXX" }
    }
  }
}
```

Gemini CLI उन फ़ोल्डरों में MCP सर्वर बंद कर देता है जिन पर वह भरोसा नहीं करता। इसे किसी भरोसेमंद फ़ोल्डर में शुरू करें (या पूछने पर फ़ोल्डर पर भरोसा करें), फिर `gemini mcp list` से जांच करें — यह `nexcmp … Connected` दिखाता है। आप `"Authorization": "Bearer $NEXCMP_KEY"` के साथ कुंजी को फ़ाइल से बाहर रख सकते हैं। 30/10/2026 को Gemini CLI 0.66 के साथ सत्यापित।

### Cursor {#cursor}

`~/.cursor/mcp.json` में (या किसी प्रोजेक्ट में `.cursor/mcp.json`) जोड़ें:

```json
{
  "mcpServers": {
    "nexcmp": {
      "url": "https://cloud.example.com/mcp/admin",
      "headers": { "Authorization": "Bearer ak_XXXX" }
    }
  }
}
```

::: tip कुंजी को कॉन्फ़िगरेशन फ़ाइलों से बाहर रखें
जहां क्लाइंट इसका समर्थन करता है, फ़ाइल में लिखने के बजाय पर्यावरण चर से कुंजी पढ़ें: Codex डिफ़ॉल्ट रूप से ऐसा करता है (`bearer_token_env_var`), और Cursor `"Bearer ${env:NEXCMP_KEY}"` स्वीकार करता है। ऐसी फ़ाइल को कभी भी कमिट न करें जिसमें कुंजी हो।
:::

### OpenAI Agents SDK (Python) {#openai-agents-sdk-python}

```python
from agents.mcp import MCPServerStreamableHttp

nexcmp = MCPServerStreamableHttp(
    params={"url": "https://cloud.example.com/mcp/admin",
            "headers": {"Authorization": "Bearer ak_XXXX"}},
    name="nexcmp",
)
```

एक पूर्ण रन (30/10/2026 को `openai-agents` 0.24 के साथ सत्यापित — एक रीड टूल, फिर एक बैलेंस परिवर्तन जिसने पुष्टिकरण पूर्वावलोकन लौटाया और `confirm_token` के साथ दूसरे कॉल पर लागू किया गया):

```python
import asyncio
from agents import Agent, Runner
from agents.mcp import MCPServerStreamableHttp

async def main():
    async with MCPServerStreamableHttp(params={"url": "https://cloud.example.com/mcp/admin",
            "headers": {"Authorization": "Bearer ak_XXXX"}}, name="nexcmp") as nexcmp:
        agent = Agent(name="admin", model="gpt-5", mcp_servers=[nexcmp],
                      instructions="You operate a hosting panel through the nexcmp tools. Ask me before confirming money actions.")
        result = await Runner.run(agent, "Run system_health and summarise it in one line.")
        print(result.final_output)

asyncio.run(main())
```

### OpenAI Responses API {#openai-responses-api}

सर्वर को `mcp` प्रकार के टूल के रूप में पास करें। `require_approval` को `always` पर रखें ताकि आपका प्रोग्राम प्रत्येक कॉल से पहले आपसे पूछे:

```json
{
  "type": "mcp",
  "server_label": "nexcmp",
  "server_url": "https://cloud.example.com/mcp/admin",
  "headers": { "Authorization": "Bearer ak_XXXX" },
  "require_approval": "always"
}
```

### कुछ और (सादा HTTP) {#anything-else-plain-http}

MCP के बिना एक क्लाइंट HTTP पर उन्हीं टूल को कॉल कर सकता है। `GET /v1/admin/agent/tools` उन्हें सूचीबद्ध करता है, `POST /v1/admin/agent/tools/<name>` तर्कों के JSON बॉडी के साथ एक को चलाता है, और `GET /v1/admin/openapi.json` एक OpenAPI 3.1 विवरण लौटाता है (प्रत्येक टूल एक ऑपरेशन है)। सभी को `Authorization: Bearer ak_...` की आवश्यकता होती है।

## सत्यापित करें {#verify}

1. क्लाइंट के बिना, टूल सूचीबद्ध करें:

   ```bash
   curl -s https://cloud.example.com/mcp/admin \
     -H "Authorization: Bearer ak_XXXX" \
     -H "Content-Type: application/json" \
     -H "Accept: application/json, text/event-stream" \
     -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
   ```

   उत्तर उन टूल के साथ एक JSON-RPC परिणाम है जो आपके स्कोप अनुमति देते हैं।
2. अपने क्लाइंट में "run system_health" पूछें। यह अलर्ट, कनेक्टेड बुनियादी ढांचे के स्वास्थ्य, भुगतान, ईमेल, AI और लाइसेंस स्थिति लौटाता है।
3. **API & AI agents › Activity** खोलें: कॉल्स क्लाइंट नाम और `mcp` के साथ सूचीबद्ध हैं।
4. सर्वर पर, `sudo nexcmp status` "MCP admin" लाइन प्रिंट करता है जो एंडपॉइंट उत्तर देने पर `ready` कहता है (कुंजी के बिना HTTP 401 स्वस्थ स्थिति है)।

## टूल्स {#tools}

सर्वर 58 टूल प्रदान करता है। क्लाइंट केवल उन टूल को देखता है जिन्हें उसकी कुंजी के स्कोप अनुमति देते हैं: रीड टूल को `admin:read` की आवश्यकता होती है, राइट टूल को अपने स्वयं के स्कोप की आवश्यकता होती है। राइट टूल को एक वैकल्पिक `confirm_token` तर्क भी मिलता है ([Confirmation](#confirmation-confirm-token) देखें)। तर्कों की जांच प्रत्येक टूल के स्कीमा के विरुद्ध की जाती है: अज्ञात या गलत टाइप किए गए तर्कों को एक संदेश के साथ अस्वीकार कर दिया जाता है जो उनका नाम बताता है।

कीमतें USD में हैं: प्रति घंटे डॉलर में प्लान की कीमतें (`hourly_usd`), सेंट में बैलेंस। गुप्त सेट किए जा सकते हैं लेकिन कभी वापस नहीं किए जाते।

### अवलोकन और लॉग {#overview-and-logs}

| Tool | यह क्या करता है | Scope | डेटा बदलता है | आपसे पूछता है |
|---|---|---|---|---|
| `system_health` | ध्यान देने योग्य अलर्ट, बुनियादी ढांचे का स्वास्थ्य, भुगतान, ईमेल, AI, लाइसेंस और अपडेट स्थिति। | `admin:read` | नहीं | नहीं |
| `setup_checklist` | क्या कॉन्फ़िगर किया गया है और क्या बचा है: लाइसेंस, बुनियादी ढांचा, ज़ोन, OS टेम्पलेट, प्लान, भुगतान, ईमेल, ब्रांडिंग, कानूनी, परीक्षण आदेश। | `admin:read` | नहीं | नहीं |
| `license_status` | लाइसेंस स्थिति और क्या NexCMP का नया संस्करण मौजूद है। | `admin:read` | नहीं | नहीं |
| `audit_search` | व्यवस्थापक ऑडिट लॉग और API-कुंजी लॉग खोजें। | `admin:read` | नहीं | नहीं |

### सेटिंग्स, ब्रांडिंग, कानूनी, मॉड्यूल {#settings-branding-legal-modules}

| Tool | यह क्या करता है | Scope | डेटा बदलता है | आपसे पूछता है |
|---|---|---|---|---|
| `settings_get` | सामान्य सेटिंग्स पढ़ें (`keys` फ़िल्टर; एक ट्रेलिंग `*` एक उपसर्ग से मेल खाता है)। | `admin:read` | नहीं | नहीं |
| `settings_update` | एक फ्लैट `values` ऑब्जेक्ट से सामान्य सेटिंग्स बदलें। केवल `settings_get` द्वारा सूचीबद्ध कुंजियाँ स्वीकार की जाती हैं। | `settings:write` | हाँ | जब कोई कुंजी भुगतानों, साइन-इन सुरक्षा, साइट-व्यापी स्विच या कीमतों को छूती है |
| `branding_get` | ब्रांड नाम, रंग, प्रदर्शन मुद्रा, विक्रेता नाम, लोगो और फ़ेविकॉन URL। | `admin:read` | नहीं | नहीं |
| `branding_update` | ब्रांड नाम (60 वर्णों तक), रंग (`#rrggbb`), प्रदर्शन मुद्रा (`usd` या `vnd`) और विक्रेता नाम सेट करें। | `settings:write` | हाँ | नहीं |
| `branding_logo_set` | https URL या base64 से लाइट या डार्क लोगो या फ़ेविकॉन अपलोड करें (PNG, JPEG, WEBP, ICO या SVG, अधिकतम 512 KB)। | `settings:write` | हाँ | नहीं |
| `legal_get` | सेवा की शर्तें और गोपनीयता नीति (अंग्रेज़ी और वियतनामी) और तटस्थ डिफ़ॉल्ट। | `admin:read` | नहीं | नहीं |
| `legal_update` | शर्तें और गोपनीयता पाठ सेट करें (सरल मार्कडाउन, कोई HTML नहीं, प्रत्येक अधिकतम 50 KB)। एक खाली स्ट्रिंग डिफ़ॉल्ट को पुनर्स्थापित करती है। | `settings:write` | हाँ | नहीं |
| `modules_get` | कौन से वैकल्पिक मॉड्यूल चालू हैं और किसे बदला जा सकता है। | `admin:read` | नहीं | नहीं |
| `module_set` | किसी वैकल्पिक मॉड्यूल को चालू या बंद करें (`key`, `settable` में से एक होना चाहिए)। | `settings:write` | हाँ | नहीं |

### ईमेल और अलर्ट {#email-and-alerts}

| Tool | यह क्या करता है | Scope | डेटा बदलता है | आपसे पूछता है |
|---|---|---|---|---|
| `smtp_get` | आउटगोइंग ईमेल सेटिंग्स (पासवर्ड मास्क किया हुआ) और कतार की स्थिति। | `admin:read` | नहीं | नहीं |
| `smtp_configure` | SMTP सर्वर सेट करें। होस्ट, पोर्ट या सुरक्षा बदलने पर पासवर्ड की दोबारा आवश्यकता होती है। | `settings:write` (पासवर्ड के लिए + `secrets:write`) | हाँ | नहीं |
| `smtp_test` | सहेजी गई सेटिंग्स के साथ एक वास्तविक परीक्षण ईमेल भेजें। | `settings:write` | एक ईमेल भेजता है | नहीं |
| `telegram_get` | एडमिन सूचना चैनल (चैट आईडी; बॉट टोकन कभी नहीं लौटाए जाते)। | `admin:read` | नहीं | नहीं |
| `telegram_configure` | Telegram अलर्ट चैनल (बॉट टोकन और चैट आईडी) जोड़ें या अपडेट करें और एडमिन अलर्ट चालू या बंद करें। | `settings:write` (टोकन के लिए + `secrets:write`) | हाँ | नहीं |
| `telegram_test` | Telegram चैनल पर एक परीक्षण संदेश भेजें। | `settings:write` | एक संदेश भेजता है | नहीं |

### भुगतान और मुद्रा {#payments-and-currency}

| Tool | यह क्या करता है | Scope | डेटा बदलता है | आपसे पूछता है |
|---|---|---|---|---|
| `payments_get` | Stripe, PayPal, क्रिप्टो (USDT) और बैंक ट्रांसफर की स्थिति, साथ ही सक्षम चैनल और शुल्क। | `admin:read` | नहीं | नहीं |
| `payment_configure` | एक गेटवे की क्रेडेंशियल्स सेट करें (`stripe`, `paypal`, `crypto` या `bank`)। | `billing:write` (+ `secrets:write`) | हाँ | हमेशा |
| `payment_test` | प्रदाता के साथ गेटवे की सहेजी गई क्रेडेंशियल्स की जाँच करें। | `billing:write` | नहीं | नहीं |
| `currency_get` | प्रदर्शन मुद्रा और USD से VND दर (स्वचालित या मैन्युअल)। | `admin:read` | नहीं | नहीं |
| `currency_set` | प्रदर्शन मुद्रा और/या मैन्युअल दर सेट करें (0 का अर्थ है स्वचालित, अन्यथा 15000 से 50000)। | `billing:write` | हाँ | जब आप मैन्युअल दर बदलते हैं |

### बुनियादी ढांचा और ज़ोन {#infrastructure-and-zones}

| Tool | यह क्या करता है | Scope | डेटा बदलता है | आपसे पूछता है |
|---|---|---|---|---|
| `cloudstack_get` | सहेजा गया CloudStack एंडपॉइंट और ज़ोन तथा नेटवर्क आईडी (कुंजियाँ मास्क की गई हैं)। | `admin:read` | नहीं | नहीं |
| `cloudstack_test` | सहेजे बिना API कुंजी और गुप्त के साथ किसी एंडपॉइंट का परीक्षण करें; ज़ोन सूचीबद्ध करता है। | `infra:write` (+ `secrets:write`, क्योंकि आप कुंजियाँ पास करते हैं) | नहीं | नहीं |
| `cloudstack_connect` | CloudStack कनेक्शन सहेजें। | `infra:write` (+ `secrets:write`) | हाँ | हमेशा |
| `proxmox_list` | Proxmox VE क्लस्टर जो स्रोतों के रूप में जोड़े गए हैं, स्वास्थ्य स्थिति के साथ। | `admin:read` | नहीं | नहीं |
| `proxmox_add` | API टोकन (`user@realm!tokenid`) और इसके गुप्त के साथ Proxmox VE क्लस्टर जोड़ें। | `infra:write` (+ `secrets:write`) | हाँ | नहीं |
| `proxmox_test` | आईडी द्वारा क्लस्टर से कनेक्ट करें; पहली सफलता इसके TLS प्रमाणपत्र को पिन करती है। | `infra:write` | हाँ | नहीं |
| `proxmox_attach_zone` | मौजूदा ज़ोन में Proxmox क्लस्टर बेचें, वैकल्पिक रूप से एक नोड को क्षेत्र के रूप में चुनकर। | `infra:write` | हाँ | नहीं |
| `zones_list` | ज़ोन (स्थान) जिन्हें ग्राहक चुन सकते हैं। | `admin:read` | नहीं | नहीं |
| `zone_create` | एक ज़ोन बनाएँ। | `infra:write` | हाँ | नहीं |

### कैटलॉग और प्लान {#catalog-and-plans}

| Tool | यह क्या करता है | Scope | डेटा बदलता है | आपसे पूछता है |
|---|---|---|---|---|
| `templates_list` | OS टेम्पलेट जिन्हें ग्राहक इंस्टॉल कर सकते हैं। | `admin:read` | नहीं | नहीं |
| `templates_sync` | CloudStack से OS टेम्पलेट आयात करें। | `catalog:write` | हाँ | नहीं |
| `template_update` | टेम्पलेट को सक्षम या छिपाएँ, उसका नाम बदलें, लॉगिन उपयोगकर्ता या क्रम सेट करें। | `catalog:write` | हाँ | नहीं |
| `offerings_list` | CloudStack सेवा पेशकशें (CPU, मेमोरी, रूट डिस्क) जिनसे प्लान बनाए जाते हैं। | `admin:read` | नहीं | नहीं |
| `plans_list` | प्रति घंटा और प्रति माह मूल्य, आकार, ज़ोन और कितने सर्वर उनका उपयोग करते हैं, इसके साथ प्लान। | `admin:read` | नहीं | नहीं |
| `plan_create` | एक प्लान बनाएँ। मूल्य `hourly_usd` के रूप में। CloudStack प्लान के लिए `cs_offering_id` आवश्यक है; Proxmox प्लान के लिए `backend_id` आवश्यक है। | `catalog:write` | हाँ | नहीं |
| `plan_update` | प्लान का नाम बदलें, दिखाएँ या छिपाएँ, सक्षम या अक्षम करें, या मूल्य बदलें। उपयोग में मौजूद प्लान पर आकार बदलने के लिए एक प्रति की आवश्यकता होती है। | `catalog:write` | हाँ | जब मूल्य बदलता है |
| `plans_from_offerings` | अपनी लागत और मार्जिन प्रतिशत का उपयोग करके ऑफरिंग्स (या Proxmox आकारों) से एक स्टार्टर प्लान टेबल बनाएं। पूर्वावलोकन लौटाता है; प्लान बनाने के लिए `apply=true` के साथ फिर से कॉल करें। | `catalog:write` | `apply=true` के साथ | अप्लाई करने पर हमेशा चालू |
| `quota_defaults_get` | डिफ़ॉल्ट ग्राहक सीमाएं। | `admin:read` | नहीं | नहीं |
| `quota_defaults_set` | `quota_*` सेटिंग्स बदलें। | `catalog:write` | हाँ | नहीं |
| `coupons_list` | डिस्काउंट और गिफ्ट कोड बैच। | `admin:read` | नहीं | नहीं |
| `coupon_create` | कोड का एक बैच बनाएं: टाइप `money` (USD सेंट में अंकित मूल्य) या `percent` (1 से 100, अधिकतम डिस्काउंट के साथ)। | `catalog:write` | हाँ | हमेशा |

### ग्राहक और रीसेलर {#customers-and-resellers}

| Tool | यह क्या करता है | Scope | डेटा बदलता है | आपसे पूछता है |
|---|---|---|---|---|
| `customers_search` | ईमेल, नाम या आईपी द्वारा ग्राहकों को खोजें। | `admin:read` | नहीं | नहीं |
| `customer_get` | एक ग्राहक का खाता, बैलेंस, सर्वर और हालिया बिलिंग। | `admin:read` | नहीं | नहीं |
| `customer_adjust_balance` | USD सेंट में क्रेडिट जोड़ें (सकारात्मक) या हटाएं (नकारात्मक)। एक कारण आवश्यक है। | `billing:write` | हाँ | हमेशा |
| `customer_block` | किसी ग्राहक को ब्लॉक करें, वैकल्पिक रूप से उनके सर्वर रोकें। एक कारण आवश्यक है। | `customers:write` | हाँ | हमेशा |
| `customer_unblock` | ग्राहक को अनब्लॉक करें। | `customers:write` | हाँ | नहीं |
| `resellers_list` | वॉलेट और स्थिति के साथ रीसेलर। | `admin:read` | नहीं | नहीं |
| `reseller_get` | एक रीसेलर की साइट, वॉलेट, उपयोगकर्ता और गेटवे। | `admin:read` | नहीं | नहीं |

### AI provider {#ai-provider}

| Tool | यह क्या करता है | Scope | डेटा बदलता है | आपसे पूछता है |
|---|---|---|---|---|
| `ai_provider_get` | ग्राहक AI Chat और AI Agent द्वारा उपयोग किया जाने वाला OpenAI-संगत प्रदाता (कुंजी मास्क की गई)। | `admin:read` | नहीं | नहीं |
| `ai_provider_set` | प्रvider सेट करें: बेस URL, मॉडल, API कुंजी, फ़ॉलबैक मॉडल, रीज़निंग एफ़र्ट, सक्षम। | `ai:write` (+ कुंजी के लिए `secrets:write`) | हाँ | नहीं |
| `ai_provider_test` | यह काम करता है या नहीं यह जाँचने के लिए सहेजे गए प्रvider से एक प्रश्न पूछें। | `ai:write` | नहीं | नहीं |

### कॉफ़ीग्‍रेशन फ़ाइलें {#configuration-files}

| Tool | यह क्या करता है | Scope | डेटा बदलता है | आपसे पूछता है |
|---|---|---|---|---|
| `config_export` | कॉफ़ीग्‍रेशन को YAML के रूप में एक्सपोर्ट करें (सीक्रेट्स `secret://` रेफ़रंस बन जाते हैं)। | `admin:read` | नहीं | नहीं |
| `config_plan` | YAML कॉफ़ीग्‍रेशन की लाइव पैनल से तुलना करें और सूची बनाएँ कि क्या बदलेगा। | `admin:read` | नहीं | नहीं |
| `config_apply` | YAML कॉफ़ीग्‍रेशन को खंड-दर-खंड लागू करें। प्रत्येक परिवर्तन सामान्य स्कोप और पुष्टि नियमों का पालन करता है। | `admin:read` + प्रत्येक परिवर्तन का स्कोप | हाँ | प्रति परिवर्तन |

फ़ाइल स्वरूप के लिए [Configuration as code](https://nexcmp.com/hi/docs/configure-with-ai/config-as-code/) देखें।

## प्रॉम्प्ट्स {#prompts}

सर्वर तीन तैयार प्रॉम्प्ट भी प्रदान करता है जिन्हें क्लाइंट शॉर्टकट के रूप में दिखा सकते हैं:

| प्रॉम्प्ट | आर्गुमेंट | यह AI से क्या करने को कहता है |
|---|---|---|
| `initial-setup` | कोई नहीं | `setup_checklist` को कॉल करें, प्रत्येक खुले चरण को एक वाक्य में समझाएँ, आपसे आवश्यक जानकारी मांगें, मिलान करने वाले टूल के साथ चरण करें, पैसे या सुरक्षा परिवर्तनों का पूर्वावलोकन करें, और `system_health` के साथ समाप्त करें। |
| `add-proxmox` | `endpoint` (वैकल्पिक, `https://host:8006`) | API टोकन मांगें, फिर `proxmox_add`, `proxmox_test`, ज़ोन टूल और `proxmox_attach_zone`; फिर `plans_from_offerings` के साथ प्लान का प्रस्ताव दें और आपकी स्वीकृति की प्रतीक्षा करें। |
| `launch-pricing` | `margin_pct` (वैकल्पिक, डिफ़ॉल्ट 40) | प्रति vCPU, प्रति GB RAM और प्रति GB डिस्क की अपनी मासिक लागत मांगें, लागत, प्रति माह मूल्य और प्रति घंटे मूल्य के साथ एक पूर्वावलोकन तालिका दिखाएँ, और आपके अनुमोदन के बाद प्लान बनाएँ। |

## पुष्टि (`confirm_token`) {#confirmation-confirm-token}

जो कार्रवाइयाँ पैसे स्थानांतरित करती हैं, डेटा हटाती हैं, भुगतान क्रेडेंशियल बदलती हैं या साइन-इन सुरक्षा बदलती हैं, वे दो-चरण की होती हैं:

1. पहली कॉल कुछ नहीं बदलती। टूल का परिणाम "CONFIRMATION REQUIRED" से शुरू होता है और इसमें एक **पूर्वावलोकन** (क्या कॉल किया जाएगा, यह संवेदनशील क्यों है, नए मान और वर्तमान मान) तथा `confirm_token` शामिल होता है।
2. क्लाइंट को आपको पूर्वावलोकन दिखाना चाहिए। आपके स्वीकृत करने के बाद ही यह उसी टूल को उन्हीं तर्कों और `confirm_token` के साथ दोबारा कॉल करता है।
3. टोकन एक बार काम करता है, केवल उसी सटीक अनुरोध के लिए, और 5 मिनट के बाद समाप्त हो जाता है।

सर्वर निर्देश एआई को टूल परिणामों को डेटा के रूप में मानने के लिए कहते हैं, न कि निर्देशों के रूप में, और उस टोकन के साथ कॉल को कभी भी दोहराने के लिए नहीं जिसे आपने अनुमोदित नहीं किया है। आप रक्षक हैं: पूर्वावलोकन पढ़ें।

::: warning स्वयं-अनुमोदन न करें
कुछ क्लाइंट हर टूल कॉल को अपने आप अनुमोदित कर सकते हैं। राइट टूल्स के लिए, प्रति-कॉल अनुमोदन चालू रखें, या रीड-ऑनरी कुंजी का उपयोग करें, ताकि एआई की कोई गलत योजना आपके पैनल तक बिना देखे न पहुँच सके.
:::

## यह कैसे काम करता है {#how-it-works}

| आइटम | Detail |
|---|---|
| ट्रांसपोर्ट | `POST /mcp/admin` JSON-RPC 2.0 संदेश के साथ; उत्तर `application/json` है। एक बैच में अधिकतम 20 संदेश। `GET /mcp/admin` 405 (कोई सर्वर स्ट्रीम नहीं) उत्तर देता है; `DELETE /mcp/admin` एक सत्र समाप्त करता है। |
| Authentication | `Authorization: Bearer ak_...` (एक मैन्युअल कुंजी या एक OAuth एक्सेस टोकन)। गुम या गलत क्रेडेंशियल्स `WWW-Authenticate: Bearer ... resource_metadata=...` के साथ 401 देते हैं, जो OAuth क्लाइंट्स को अपने आप साइन-इन शुरू करने देता है। |
| सत्र | `Mcp-Session-Id` को `initialize` द्वारा जारी किया जाता है, उस कुंजी से बाध्य किया जाता है और 24 घंटे के लिए वैध होता है। |
| क्षमताएं | टूल्स और प्रॉम्प्ट्स। कोई संसाधन नहीं। |
| आकार | अनुरोध बॉडी 1 MB तक; एक टूल परिणाम लगभग 100 KB के बाद काट दिया जाता है। |
| मूल | किसी अन्य साइट से `Origin` हेडर ले जाने वाले अनुरोध को अस्वीकार कर दिया जाता है (`origin_not_allowed`)। कमांड-लाइन और डेस्कटॉप क्लाइंट कोई भी नहीं भेजते हैं। |
| REST के समान गेट | प्रत्येक टूल कॉल को आपकी कुंजी के साथ पैनल के अपने अनुरोध पाइपलाइन के माध्यम से दोबारा भेजा जाता है, इसलिए स्कोप, आईपी रेंज, दर सीमा, पुष्टि और गतिविधि लॉग सीधे API कॉल की तरह ही लागू होते हैं। |

## Limits & notes {#limits-notes}

- जो टूल आपको दिखाई नहीं देता वह एक ऐसा स्कोप है जिसे आपने प्रदान नहीं किया है। नई कुंजी में स्कोप जोड़ें।
- एआई क्लाइंट के माध्यम से पासवर्ड या API कुंजी सेट करने का अर्थ है कि गुप्त डेटा उस एआई से होकर गुजरता है। यदि आप चाहें, तो `secrets:write` को बंद रखें और एडमिन में खुद गुप्त दर्ज करें, या एआई चैट **Secret** फ़ील्ड ([AI Chat in the admin](https://nexcmp.com/hi/docs/configure-with-ai/ai-chat-in-admin/#secrets)) या `secret://` संदर्भों ([Configuration as code](https://nexcmp.com/hi/docs/configure-with-ai/config-as-code/#secrets)) का उपयोग करें।
- क्लाइंट सत्र साझा नहीं करते हैं: प्रत्येक कनेक्शन `initialize` से शुरू होता है।
- एआई क्लाइंट को तुरंत काटने के लिए **API & AI agents** में कुंजी को निरस्त करें।

## ट्रबलशूटिंग {#troubleshooting}

| लक्षण | कारण | सुधार |
|---|---|---|
| 401 `invalid_key` | गलत, छोटा किया गया या गैर-एडमिन कुंजी (उदाहरण के लिए एक `vk_` कुंजी) | एक `ak_` कुंजी का उपयोग करें। |
| 401 `key_expired` या `key_revoked` | कुंजी समाप्त हो गई या निरस्त कर दी गई | एक नई कुंजी बनाएँ। |
| 403 `ip_not_allowed` | आपका आईपी कुंजी की आईपी रेंज के बाहर है | अनुमत आईपी से कनेक्ट करें। |
| 403 `origin_not_allowed` | किसी अन्य मूल के ब्राउज़र पृष्ठ ने एंडपॉइंट को कॉल किया | डेस्कटॉप या CLI क्लाइंट का उपयोग करें। |
| `Mcp-Session-Id` के साथ अनुरोध पर 404 | सत्र किसी अन्य कुंजी का है या समाप्त हो गया है | `initialize` दोबारा भेजें। |
| 400 असमर्थित `MCP-Protocol-Version` | क्लाइंट ऐसे संस्करण का उपयोग करता है जिसे सर्वर नहीं जानता है | क्लाइंट को अपडेट करें; समर्थित: 2025-11-25, 2025-06-18, 2025-03-26. |
| टूल सूची छोटी है | कुंजी स्कोप | अधिक स्कोप वाली कुंजी बनाएँ। |
| कॉल पर `insufficient_scope` | एक टूल को दूसरे स्कोप की आवश्यकता है, उदाहरण के लिए `secrets:write` | नई कुंजी में स्कोप जोड़ें। |
| 429 `rate_limited` | कुंजी की अनुमति से अधिक प्रति मिनट कॉल | `Retry-After` की प्रतीक्षा करें या नई कुंजी पर सीमा बढ़ाएँ। |
| claude.ai या ChatGPT कनेक्ट नहीं हो सकता है | URL इंटरनेट से पहुंच योग्य नहीं है, या कोई प्रॉक्सी `/mcp/admin` या `/oauth-admin/` को ब्लॉक करती है | DNS, TLS और रिवर्स प्रॉक्सी की जाँच करें। |

सभी त्रुटि कोड के लिए [Admin API keys](https://nexcmp.com/hi/docs/configure-with-ai/admin-api-keys/#errors) देखें।


