# MCP सर्वर

Repomix [Model Context Protocol (MCP)](https://modelcontextprotocol.io) का समर्थन करता है, जो AI असिस्टेंट्स को आपके कोडबेस के साथ सीधे इंटरैक्ट करने की अनुमति देता है। जब MCP सर्वर के रूप में चलाया जाता है, तो Repomix ऐसे टूल्स प्रदान करता है जो AI असिस्टेंट्स को मैन्युअल फ़ाइल तैयारी की आवश्यकता के बिना विश्लेषण के लिए स्थानीय या रिमोट रिपॉजिटरी को पैकेज करने की अनुमति देते हैं।

> [!NOTE]  
> यह एक प्रयोगात्मक सुविधा है जिसे हम उपयोगकर्ता फीडबैक और वास्तविक-जगत के उपयोग के आधार पर सक्रिय रूप से सुधारेंगे

## Repomix को MCP सर्वर के रूप में चलाना

Repomix को MCP सर्वर के रूप में चलाने के लिए, `--mcp` फ्लैग का उपयोग करें:

```bash
repomix --mcp
```

यह Repomix को MCP सर्वर मोड में शुरू करता है, इसे Model Context Protocol का समर्थन करने वाले AI असिस्टेंट्स के लिए उपलब्ध बनाता है।

## MCP सर्वर कॉन्फ़िगरेशन

Claude जैसे AI असिस्टेंट्स के साथ Repomix को MCP सर्वर के रूप में उपयोग करने के लिए, आपको MCP सेटिंग्स कॉन्फ़िगर करनी होंगी:

### VS Code के लिए

आप निम्नलिखित तरीकों में से एक का उपयोग करके VS Code में Repomix MCP सर्वर इंस्टॉल कर सकते हैं:

1. **इंस्टॉलेशन बैज का उपयोग करके:**

  [![Install in VS Code](https://img.shields.io/badge/VS_Code-VS_Code?style=flat-square&label=Install%20Server&color=0098FF)](vscode:mcp/install?%7B%22name%22%3A%22repomix%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22repomix%22%2C%22--mcp%22%5D%7D)<br>
  [![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-VS_Code_Insiders?style=flat-square&label=Install%20Server&color=24bfa5)](vscode-insiders:mcp/install?%7B%22name%22%3A%22repomix%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22repomix%22%2C%22--mcp%22%5D%7D)

2. **कमांड लाइन का उपयोग करके:**

  ```bash
  code --add-mcp '{"name":"repomix","command":"npx","args":["-y","repomix","--mcp"]}'
  ```

  VS Code Insiders के लिए:
  ```bash
  code-insiders --add-mcp '{"name":"repomix","command":"npx","args":["-y","repomix","--mcp"]}'
  ```

### Cline (VS Code एक्सटेंशन) के लिए

`cline_mcp_settings.json` फ़ाइल को संपादित करें:

```json
{
  "mcpServers": {
    "repomix": {
      "command": "npx",
      "args": [
        "-y",
        "repomix",
        "--mcp"
      ]
    }
  }
}
```

### Cursor के लिए

Cursor में, `Cursor Settings` > `MCP` > `+ Add new global MCP server` से एक नया MCP सर्वर जोड़ें, जो Cline के समान कॉन्फ़िगरेशन के साथ हो।

### Claude Desktop के लिए

`claude_desktop_config.json` फ़ाइल को Cline के समान कॉन्फ़िगरेशन के साथ संपादित करें।

### Claude Code के लिए

[Claude Code](https://docs.anthropic.com/en/docs/claude-code/overview) में Repomix को MCP सर्वर के रूप में कॉन्फ़िगर करने के लिए, निम्नलिखित कमांड का उपयोग करें:

```bash
claude mcp add repomix -- npx -y repomix --mcp
```

### npx के बजाय Docker का उपयोग करना

npx का उपयोग करने के बजाय, आप Repomix को MCP सर्वर के रूप में चलाने के लिए Docker का उपयोग कर सकते हैं:

```json
{
  "mcpServers": {
    "repomix-docker": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/yamadashy/repomix",
        "--mcp"
      ]
    }
  }
}
```

## उपलब्ध MCP टूल्स

जब MCP सर्वर के रूप में चलाया जाता है, तो Repomix निम्नलिखित टूल्स प्रदान करता है:

### pack_codebase

यह टूल स्थानीय कोड डायरेक्टरी को AI विश्लेषण के लिए XML फ़ाइल में पैकेज करता है। यह कोडबेस संरचना का विश्लेषण करता है, प्रासंगिक कोड सामग्री निकालता है, और मेट्रिक्स, फ़ाइल ट्री, और फॉर्मेटेड कोड सामग्री सहित एक व्यापक रिपोर्ट जेनरेट करता है।

**पैरामीटर:**
- `directory`: (आवश्यक) पैकेज करने के लिए डायरेक्टरी का पूर्ण पथ
- `compress`: (वैकल्पिक, डिफ़ॉल्ट: false) इम्प्लीमेंटेशन विवरण हटाते समय आवश्यक कोड हस्ताक्षर और संरचना निकालने के लिए Tree-sitter संपीड़न सक्षम करता है। सिमेंटिक अर्थ संरक्षित रखते हुए टोकन उपयोग को ~70% कम करता है। आमतौर पर आवश्यक नहीं क्योंकि grep_repomix_output वृद्धिशील सामग्री पुनर्प्राप्ति की अनुमति देता है। केवल तब उपयोग करें जब आपको विशेष रूप से बड़े रिपॉजिटरी के लिए पूरी कोडबेस सामग्री की आवश्यकता हो।
- `includePatterns`: (वैकल्पिक) fast-glob पैटर्न का उपयोग करके शामिल करने के लिए फ़ाइलें निर्दिष्ट करता है। कई पैटर्न को कॉमा से अलग किया जा सकता है (जैसे: "**/*.{js,ts}", "src/**,docs/**")। केवल मैचिंग फ़ाइलें प्रोसेस की जाएंगी।
- `ignorePatterns`: (वैकल्पिक) fast-glob पैटर्न का उपयोग करके बाहर करने के लिए अतिरिक्त फ़ाइलें निर्दिष्ट करता है। कई पैटर्न को कॉमा से अलग किया जा सकता है (जैसे: "test/**,*.spec.js", "node_modules/**,dist/**")। ये पैटर्न .gitignore और बिल्ट-इन एक्सक्लूज़न को पूरक करते हैं।
- `topFilesLength`: (वैकल्पिक, डिफ़ॉल्ट: 10) कोडबेस विश्लेषण के लिए मेट्रिक्स सारांश में दिखाने के लिए आकार के अनुसार सबसे बड़ी फ़ाइलों की संख्या।

**उदाहरण:**
```json
{
  "directory": "/path/to/your/project",
  "compress": false,
  "includePatterns": "src/**/*.ts,**/*.md",
  "ignorePatterns": "**/*.log,tmp/",
  "topFilesLength": 10
}
```

### pack_remote_repository

यह टूल GitHub रिपॉजिटरी को fetch, clone और AI विश्लेषण के लिए XML फ़ाइल में पैकेज करता है। यह स्वचालित रूप से रिमोट रिपॉजिटरी को clone करता है, इसकी संरचना का विश्लेषण करता है, और एक व्यापक रिपोर्ट जेनरेट करता है।

**पैरामीटर:**
- `remote`: (आवश्यक) GitHub रिपॉजिटरी URL या user/repo फॉर्मेट (जैसे: "yamadashy/repomix", "https://github.com/user/repo", या "https://github.com/user/repo/tree/branch")
- `compress`: (वैकल्पिक, डिफ़ॉल्ट: false) इम्प्लीमेंटेशन विवरण हटाते समय आवश्यक कोड हस्ताक्षर और संरचना निकालने के लिए Tree-sitter संपीड़न सक्षम करता है। सिमेंटिक अर्थ संरक्षित रखते हुए टोकन उपयोग को ~70% कम करता है। आमतौर पर आवश्यक नहीं क्योंकि grep_repomix_output वृद्धिशील सामग्री पुनर्प्राप्ति की अनुमति देता है। केवल तब उपयोग करें जब आपको विशेष रूप से बड़े रिपॉजिटरी के लिए पूरी कोडबेस सामग्री की आवश्यकता हो।
- `includePatterns`: (वैकल्पिक) fast-glob पैटर्न का उपयोग करके शामिल करने के लिए फ़ाइलें निर्दिष्ट करता है। कई पैटर्न को कॉमा से अलग किया जा सकता है (जैसे: "**/*.{js,ts}", "src/**,docs/**")। केवल मैचिंग फ़ाइलें प्रोसेस की जाएंगी।
- `ignorePatterns`: (वैकल्पिक) fast-glob पैटर्न का उपयोग करके बाहर करने के लिए अतिरिक्त फ़ाइलें निर्दिष्ट करता है। कई पैटर्न को कॉमा से अलग किया जा सकता है (जैसे: "test/**,*.spec.js", "node_modules/**,dist/**")। ये पैटर्न .gitignore और बिल्ट-इन एक्सक्लूज़न को पूरक करते हैं।
- `topFilesLength`: (वैकल्पिक, डिफ़ॉल्ट: 10) कोडबेस विश्लेषण के लिए मेट्रिक्स सारांश में दिखाने के लिए आकार के अनुसार सबसे बड़ी फ़ाइलों की संख्या।

**उदाहरण:**
```json
{
  "remote": "yamadashy/repomix",
  "compress": false,
  "includePatterns": "src/**/*.ts,**/*.md",
  "ignorePatterns": "**/*.log,tmp/",
  "topFilesLength": 10
}
```

### read_repomix_output

यह टूल Repomix द्वारा जेनरेट की गई आउटपुट फ़ाइल की सामग्री पढ़ता है। बड़ी फ़ाइलों के लिए लाइन रेंज स्पेसिफिकेशन के साथ आंशिक पढ़ने का समर्थन करता है। यह टूल उन वातावरणों के लिए डिज़ाइन किया गया है जहाँ प्रत्यक्ष फ़ाइल सिस्टम पहुंच सीमित है।

**पैरामीटर:**
- `outputId`: (आवश्यक) पढ़ने के लिए Repomix आउटपुट फ़ाइल की ID
- `startLine`: (वैकल्पिक) शुरुआती लाइन नंबर (1-आधारित, समावेशी)। यदि निर्दिष्ट नहीं है, तो शुरुआत से पढ़ता है।
- `endLine`: (वैकल्पिक) अंतिम लाइन नंबर (1-आधारित, समावेशी)। यदि निर्दिष्ट नहीं है, तो अंत तक पढ़ता है।

**विशेषताएं:**
- विशेष रूप से वेब-आधारित वातावरण या सैंडबॉक्स एप्लिकेशन के लिए डिज़ाइन किया गया
- उनकी ID का उपयोग करके पहले से जेनरेट किए गए आउटपुट की सामग्री पुनर्प्राप्त करता है
- फ़ाइल सिस्टम पहुंच की आवश्यकता के बिना पैकेज्ड कोडबेस तक सुरक्षित पहुंच प्रदान करता है
- बड़ी फ़ाइलों के लिए आंशिक पढ़ने का समर्थन करता है

**उदाहरण:**
```json
{
  "outputId": "8f7d3b1e2a9c6054",
  "startLine": 100,
  "endLine": 200
}
```

### grep_repomix_output

यह टूल JavaScript RegExp सिंटैक्स के साथ grep-जैसी कार्यक्षमता का उपयोग करके Repomix आउटपुट फ़ाइल में पैटर्न खोजता है। मैचों के आसपास वैकल्पिक संदर्भ लाइनों के साथ मैचिंग लाइनें वापस करता है।

**पैरामीटर:**
- `outputId`: (आवश्यक) खोजने के लिए Repomix आउटपुट फ़ाइल की ID
- `pattern`: (आवश्यक) खोज पैटर्न (JavaScript RegExp नियमित अभिव्यक्ति सिंटैक्स)
- `contextLines`: (वैकल्पिक, डिफ़ॉल्ट: 0) प्रत्येक मैच से पहले और बाद में दिखाने के लिए संदर्भ लाइनों की संख्या। beforeLines/afterLines निर्दिष्ट होने पर इसे ओवरराइड किया जाता है।
- `beforeLines`: (वैकल्पिक) प्रत्येक मैच से पहले दिखाने के लिए संदर्भ लाइनों की संख्या (grep -B की तरह)। contextLines पर प्राथमिकता लेता है।
- `afterLines`: (वैकल्पिक) प्रत्येक मैच के बाद दिखाने के लिए संदर्भ लाइनों की संख्या (grep -A की तरह)। contextLines पर प्राथमिकता लेता है।
- `ignoreCase`: (वैकल्पिक, डिफ़ॉल्ट: false) केस-इनसेंसिटिव मैचिंग करता है

**विशेषताएं:**
- शक्तिशाली पैटर्न मैचिंग के लिए JavaScript RegExp सिंटैक्स का उपयोग करता है
- मैचों की बेहतर समझ के लिए संदर्भ लाइनों का समर्थन करता है
- पहले/बाद की संदर्भ लाइनों का अलग नियंत्रण की अनुमति देता है
- केस-सेंसिटिव और केस-इनसेंसिटिव खोज विकल्प

**उदाहरण:**
```json
{
  "outputId": "8f7d3b1e2a9c6054",
  "pattern": "function\\s+\\w+\\(",
  "contextLines": 3,
  "ignoreCase": false
}
```

### file_system_read_file और file_system_read_directory

Repomix का MCP सर्वर दो फ़ाइल सिस्टम टूल्स प्रदान करता है जो AI असिस्टेंट्स को स्थानीय फ़ाइल सिस्टम के साथ सुरक्षित रूप से इंटरैक्ट करने की अनुमति देते हैं:

1. `file_system_read_file`
  - पूर्ण पथों का उपयोग करके स्थानीय फ़ाइल सिस्टम से फ़ाइल सामग्री पढ़ता है
  - संवेदनशील जानकारी वाली फ़ाइलों तक पहुंच का पता लगाने और रोकने के लिए बिल्ट-इन सुरक्षा सत्यापन शामिल करता है
  - [Secretlint](https://github.com/secretlint/secretlint) का उपयोग करके सुरक्षा सत्यापन लागू करता है
  - संवेदनशील जानकारी (API कीज़, पासवर्ड, सीक्रेट्स) वाली फ़ाइलों तक पहुंच को रोकता है
  - डायरेक्टरी ट्रैवर्सल हमलों को रोकने के लिए पूर्ण पथों को सत्यापित करता है
  - अमान्य पथों और सुरक्षा समस्याओं के लिए स्पष्ट त्रुटि संदेश वापस करता है

2. `file_system_read_directory`
  - पूर्ण पथ का उपयोग करके डायरेक्टरी की सामग्री सूचीबद्ध करता है
  - स्पष्ट संकेतकों के साथ फ़ाइलें और उप-डायरेक्टरी दिखाने वाली एक फॉर्मेटेड सूची वापस करता है
  - स्पष्ट संकेतकों (`[FILE]` या `[DIR]`) के साथ फ़ाइलें और डायरेक्टरी दिखाता है
  - उचित त्रुटि हैंडलिंग के साथ सुरक्षित डायरेक्टरी नेवीगेशन प्रदान करता है
  - पथों को सत्यापित करता है और सुनिश्चित करता है कि वे पूर्ण हैं
  - प्रोजेक्ट संरचना का अन्वेषण और कोडबेस संगठन की समझ के लिए उपयोगी

दोनों टूल्स मजबूत सुरक्षा उपाय शामिल करते हैं:
- डायरेक्टरी ट्रैवर्सल हमलों को रोकने के लिए पूर्ण पथ सत्यापन
- उचित पहुंच अधिकार सुनिश्चित करने के लिए अनुमति जांच
- संवेदनशील जानकारी का पता लगाने के लिए Secretlint के साथ एकीकरण
- बेहतर डीबगिंग और सुरक्षा जागरूकता के लिए स्पष्ट त्रुटि संदेश

**उदाहरण:**
```typescript
// फ़ाइल पढ़ना
const fileContent = await tools.file_system_read_file({
  path: '/absolute/path/to/file.txt'
});

// डायरेक्टरी सामग्री सूचीबद्ध करना
const dirContent = await tools.file_system_read_directory({
  path: '/absolute/path/to/directory'
});
```

ये टूल्स विशेष रूप से उपयोगी हैं जब AI असिस्टेंट्स को निम्नलिखित की आवश्यकता होती है:
- कोडबेस में विशिष्ट फ़ाइलों का विश्लेषण करना
- डायरेक्टरी संरचनाओं को नेविगेट करना
- फ़ाइलों की उपस्थिति और पहुंच की पुष्टि करना
- सुरक्षित फ़ाइल सिस्टम ऑपरेशन सुनिश्चित करना

## Repomix को MCP सर्वर के रूप में उपयोग करने के लाभ

Repomix को MCP सर्वर के रूप में उपयोग करने से कई फायदे मिलते हैं:

1. **प्रत्यक्ष एकीकरण**: AI असिस्टेंट्स मैन्युअल फ़ाइल तैयारी के बिना आपके कोडबेस का सीधे विश्लेषण कर सकते हैं।
2. **कुशल वर्कफ़्लो**: मैन्युअल रूप से फ़ाइलें जेनरेट और अपलोड करने की आवश्यकता को समाप्त करके कोड विश्लेषण प्रक्रिया को सुव्यवस्थित करता है।
3. **सुसंगत आउटपुट**: सुनिश्चित करता है कि AI असिस्टेंट को एक सुसंगत, अनुकूलित प्रारूप में कोडबेस प्राप्त होता है।
4. **उन्नत सुविधाएं**: कोड संपीड़न, टोकन गिनती, और सुरक्षा जांच जैसी Repomix की सभी सुविधाओं का लाभ उठाता है।

एक बार कॉन्फ़िगर होने के बाद, आपका AI असिस्टेंट कोडबेस का विश्लेषण करने के लिए Repomix की क्षमताओं का सीधे उपयोग कर सकता है, जिससे कोड विश्लेषण वर्कफ़्लो अधिक कुशल हो जाते हैं।
