mcpcodeserver

आधिकारिक

MCP टूल को सीधे कॉल करने के बजाय, mcpcode सर्वर MCP टूल कॉल को TypeScript प्रोग्राम में बदल देता है, जिससे LLMs द्वारा अधिक स्मार्ट और कम-विलंबता वाला ऑर्केस्ट्रेशन संभव होता है।

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

  • कनेक्टेड चाइल्ड सर्वरों की सूची बनाएं — यह देखने के लिए list_servers का उपयोग करें कि कौन से उप-सर्वर उपलब्ध और सक्रिय हैं।
  • टूल्स के लिए TypeScript परिभाषाएँ प्राप्त करें — सभी या विशिष्ट सर्वरों के टूल्स के लिए टाइप किए गए फ़ंक्शन हस्ताक्षर प्राप्त करने के लिए get_tool_definitions को कॉल करें।
  • मल्टी-टूल वर्कफ़्लो को कोड के रूप में निष्पादित करेंgenerate_and_execute_code के माध्यम से कई टूल कॉल, लूप और शर्तों को श्रृंखलाबद्ध करने वाला TypeScript लिखें।
  • सर्वर द्वारा टूल परिभाषाएँ फ़िल्टर करें — संदर्भ उपयोग को कम करने और प्रासंगिक टूल पर ध्यान केंद्रित करने के लिए get_tool_definitions में server_names पास करें।
  • टूल अनुक्रमों में त्रुटियों को संभालें — पूरे वर्कफ़्लो को रोके बिना व्यक्तिगत टूल विफलताओं से उबरने के लिए जनरेटेड कोड के अंदर try/catch का उपयोग करें।

दस्तावेज़

mcpcodeserver

NPM Version MIT licensed Install MCP Server Install in VS Code (npx)

एक मॉडल कॉन्टेक्स्ट प्रोटोकॉल (MCP) प्रॉक्सी सर्वर जो टूल कॉल को TypeScript कोड जनरेशन में अनुवादित करता है। बार-बार टूल कॉल करने के बजाय, LLM स्वाभाविक रूप से कई टूल को कॉल करने वाला TypeScript कोड लिख सकते हैं, जिससे टोकन ओवरहेड कम होता है और LLM की बेहतर कोड जनरेशन क्षमताओं का लाभ उठाया जा सकता है।

❌ mcpcodeserver के बिना

LLM कई अनुक्रमिक टूल कॉल करते हैं, टोकन खर्च करते हैं और जटिल वर्कफ़्लो से जूझते हैं:

  • ❌ LLM और टूल के बीच कई राउंड-ट्रिप
  • ❌ जटिल टूल कॉलिंग अनुक्रम त्रुटि-प्रवण होते हैं
  • ❌ डेटा आसानी से टूल के बीच पास नहीं किया जा सकता
  • ❌ सीमित त्रुटि प्रबंधन और नियंत्रण प्रवाह

✅ mcpcodeserver के साथ

LLM स्वाभाविक रूप से कई टूल को कॉल करने वाला TypeScript कोड लिखते हैं:

  • ✅ अनुक्रम में कई टूल को कॉल करने के लिए कोड लिखें
  • ✅ स्वाभाविक रूप से वेरिएबल, लूप और कंडीशनल का उपयोग करें
  • ✅ try/catch के साथ बेहतर त्रुटि प्रबंधन
  • ✅ संचालन को संयोजित करके टोकन उपयोग कम करें
  • ✅ LLM की मजबूत कोड जनरेशन क्षमताओं का लाभ उठाएं

त्वरित शुरुआत

  1. mcpcodeserver इंस्टॉल करें अपने MCP क्लाइंट में (नीचे इंस्टॉलेशन अनुभाग देखें)
  2. एक mcp.json कॉन्फ़िगरेशन फ़ाइल बनाएं अपने चाइल्ड MCP सर्वर के साथ
  3. इसका उपयोग शुरू करें - आपका LLM अब आपके टूल को कॉल करने वाला TypeScript कोड जनरेट और निष्पादित कर सकता है
// Instead of multiple tool calls, write code like this:
const files = await filesystem.list_directory({ path: "/tmp" });
const results = await Promise.all(
  files.map(file => filesystem.read_file({ path: file.path }))
);
return results.filter(content => content.includes("important"));

अवलोकन

mcpcodeserver एक अनूठा MCP सर्वर है जो:

  • एक या अधिक चाइल्ड MCP सर्वर से कनेक्ट करने के लिए MCP क्लाइंट के रूप में कार्य करता है
  • चाइल्ड सर्वर से सभी टूल खोजता है
  • पैरेंट LLM क्लाइंट को तीन शक्तिशाली टूल प्रदान करता है:
    1. list_servers - इस MCP सर्वर से जुड़े सभी उपलब्ध उप-सर्वरों को सूचीबद्ध करता है
    2. get_tool_definitions - खोजे गए टूल के लिए TypeScript प्रकार परिभाषाएँ लौटाता है (वैकल्पिक रूप से सर्वर द्वारा फ़िल्टर किया गया)
    3. generate_and_execute_code - एक सैंडबॉक्स में उन टूल को कॉल करने वाला TypeScript कोड जनरेट और निष्पादित करता है

यह आर्किटेक्चर LLM को अनुक्रमिक टूल कॉल करने के बजाय कोड लिखकर जटिल मल्टी-टूल वर्कफ़्लो को ऑर्केस्ट्रेट करने की अनुमति देता है, जो अक्सर आधुनिक भाषा मॉडल के लिए अधिक कुशल और स्वाभाविक होता है।

संबंधित कार्य और अनुसंधान

यह दृष्टिकोण हाल के शोध से प्रेरित है जो दिखाता है कि LLM सीधे टूल कॉल करने के बजाय निष्पादन योग्य कोड जनरेट करते समय बेहतर प्रदर्शन करते हैं:

  • CodeAct: Your LLM Agent Acts Better when Generating Code (Apple, ICML 2024) - प्रदर्शित करता है कि LLM एजेंट पूर्व-निर्धारित टूल कॉलिंग प्रारूपों के बजाय निष्पादन योग्य Python कोड को एकीकृत क्रिया स्थान के रूप में उपयोग करने पर 20% तक अधिक सफलता दर प्राप्त करते हैं।

  • Cloudflare Code Mode - एक समान कार्यान्वयन जो MCP टूल को TypeScript API में परिवर्तित करता है, यह दर्शाता है कि "LLM सीधे MCP को कॉल करने की तुलना में MCP को कॉल करने के लिए कोड लिखने में बेहतर हैं।"

इस शोध से मुख्य अंतर्दृष्टि यह है कि LLM के पास वास्तविक दुनिया के कोड पर व्यापक प्रशिक्षण है लेकिन सिंथेटिक टूल-कॉलिंग प्रारूपों के लिए सीमित एक्सपोज़र है, जो जटिल एजेंट वर्कफ़्लो के लिए कोड जनरेशन को अधिक स्वाभाविक और प्रभावी दृष्टिकोण बनाता है।

इसका उपयोग क्यों करें?

पारंपरिक टूल कॉलिंग समस्याएं

  • LLM और टूल के बीच कई राउंड-ट्रिप टोकन खर्च करते हैं
  • LLM अक्सर जटिल टूल कॉलिंग अनुक्रमों से जूझते हैं
  • प्रत्येक टूल कॉल के लिए JSON स्कीमा समझ और स्वरूपण की आवश्यकता होती है
  • LLM से गुज़रे बिना डेटा आसानी से टूल के बीच पास नहीं किया जा सकता

कोड जनरेशन समाधान

  • अनुक्रम में कई टूल को कॉल करने के लिए TypeScript कोड लिखें
  • स्वाभाविक रूप से वेरिएबल, लूप और कंडीशनल का उपयोग करें
  • try/catch के साथ बेहतर त्रुटि प्रबंधन
  • संचालन को संयोजित करके टोकन उपयोग कम करें
  • LLM की मजबूत कोड जनरेशन क्षमताओं का लाभ उठाएं

गतिशील टूल खोज

mcpcodeserver स्वचालित रूप से टूल परिवर्तनों के लिए चाइल्ड MCP सर्वर की निगरानी करता है और जब टूल जोड़े, हटाए या संशोधित किए जाते हैं तो पैरेंट क्लाइंट को सूचित करता है:

  • स्वचालित रिफ्रेश: हर 30 सेकंड में टूल परिवर्तनों की जाँच करता है
  • रीयल-टाइम सूचनाएं: पैरेंट क्लाइंट को notifications/tools/list_changed भेजता है
  • गतिशील अपडेट: टूल परिभाषाएँ और सारांश स्वचालित रूप से अपडेट होते हैं
  • कोई मैन्युअल रिफ्रेश नहीं: पैरेंट LLM अपने टूल ज्ञान को रिफ्रेश करने के लिए सूचनाएं प्राप्त करते हैं

यह सुनिश्चित करता है कि पैरेंट LLM के पास हमेशा मैन्युअल हस्तक्षेप की आवश्यकता के बिना सबसे वर्तमान टूल परिभाषाएँ हों।

सर्वर फ़िल्टरिंग

कॉन्टेक्स्ट विंडो उपयोग को कम करने और फोकस में सुधार करने के लिए, mcpcodeserver विशिष्ट सर्वर द्वारा टूल परिभाषाओं को फ़िल्टर करने का समर्थन करता है:

  • उपलब्ध सर्वर सूचीबद्ध करें: सभी जुड़े उप-सर्वरों को देखने के लिए list_servers का उपयोग करें
  • फ़िल्टर्ड टूल परिभाषाएँ: केवल विशिष्ट सर्वर से टूल प्राप्त करने के लिए server_names पैरामीटर के साथ get_tool_definitions का उपयोग करें
  • कम वर्बोसिटी: LLM की कॉन्टेक्स्ट विंडो को अभिभूत किए बिना केंद्रित TypeScript परिभाषाएँ प्राप्त करें
  • मेथड नेमस्पेसिंग: सभी जनरेटेड फ़ंक्शन सर्वर नामों से उपसर्गित होते हैं (जैसे, pizzashop_create_pizza, filesystem_read_file)

उदाहरण उपयोग:

// List available servers
const servers = await list_servers({});
// Returns: ["pizzashop", "filesystem", "memory"]

// Get all tool definitions
const allTools = await get_tool_definitions({});

// Get only pizzashop tools
const pizzashopTools = await get_tool_definitions({
  server_names: ["pizzashop"]
});

उन्नत MCP सुविधाएँ

mcpcodeserver उन्नत MCP प्रोटोकॉल सुविधाओं के पास-थ्रू का समर्थन करता है जब पैरेंट और चाइल्ड दोनों सर्वर उनका समर्थन करते हैं:

  • एलिसिटेशन: चाइल्ड सर्वर टूल निष्पादन के दौरान उपयोगकर्ता इनपुट का अनुरोध कर सकते हैं, जो पैरेंट क्लाइंट को पास-थ्रू किया जाता है
  • रूट्स: सभी चाइल्ड सर्वर से रूट्स को सूचीबद्ध और एकत्रित करता है, उपलब्ध संसाधनों का एकीकृत दृश्य प्रदान करता है
  • सैंपलिंग: उन्नत AI क्षमताओं के लिए LLM सैंपलिंग अनुरोधों को चाइल्ड सर्वर को पास-थ्रू करने में सक्षम बनाता है

ये सुविधाएँ स्वचालित रूप से पैरेंट क्लाइंट को विज्ञापित की जाती हैं और अंतर्निहित चाइल्ड MCP सर्वर द्वारा समर्थित होने पर निर्बाध रूप से काम करती हैं।

त्वरित शुरुआत

npx के साथ तुरंत आज़माएं (कोई इंस्टॉलेशन आवश्यक नहीं):

# From GitHub
npx github:zbowling/mcpcodeserver --help

# Or when published to npm
npx mcpcodeserver --help

🛠️ इंस्टॉलेशन

आवश्यकताएं

  • Node.js >= v18.0.0
  • Cursor, Claude Code, VSCode, Windsurf या कोई अन्य MCP क्लाइंट

Smithery के माध्यम से इंस्टॉल करना

Smithery के माध्यम से किसी भी क्लाइंट के लिए स्वचालित रूप से mcpcodeserver इंस्टॉल करने के लिए:

npx -y @smithery/cli@latest install mcpcodeserver --client <client-name> --key <smithery-key>

Cursor में इंस्टॉल करें

यहां जाएं: Settings -> Cursor Settings -> MCP -> Add new global MCP server

अपने Cursor ~/.cursor/mcp.json फ़ाइल में निम्नलिखित कॉन्फ़िगरेशन पेस्ट करना अनुशंसित दृष्टिकोण है। आप अपने प्रोजेक्ट फ़ोल्डर में .cursor/mcp.json बनाकर किसी विशिष्ट प्रोजेक्ट में भी इंस्टॉल कर सकते हैं।

Cursor वन-क्लिक इंस्टॉलेशन

Install MCP Server

Cursor लोकल सर्वर कनेक्शन

{
  "mcpServers": {
    "mcpcodeserver": {
      "command": "npx",
      "args": ["-y", "mcpcodeserver", "--config", "/path/to/your/mcp.json"]
    }
  }
}

Cursor रिमोट सर्वर कनेक्शन (यदि आप HTTP ट्रांसपोर्ट सेट अप करते हैं)

{
  "mcpServers": {
    "mcpcodeserver": {
      "url": "http://localhost:3000/mcp"
    }
  }
}

Claude Code में इंस्टॉल करें

यह कमांड चलाएं। अधिक जानकारी के लिए Claude Code MCP docs देखें।

Claude Code लोकल सर्वर कनेक्शन

claude mcp add mcpcodeserver -- npx -y mcpcodeserver --config /path/to/your/mcp.json

Claude Code रिमोट सर्वर कनेक्शन

claude mcp add --transport http mcpcodeserver http://localhost:3000/mcp

VSCode में इंस्टॉल करें

VSCode वन-क्लिक इंस्टॉलेशन

Install in VS Code (npx)

VSCode मैन्युअल कॉन्फ़िगरेशन

अपनी VSCode MCP सेटिंग्स में जोड़ें:

{
  "mcpServers": {
    "mcpcodeserver": {
      "command": "npx",
      "args": ["-y", "mcpcodeserver", "--config", "/path/to/your/mcp.json"]
    }
  }
}

Windsurf में इंस्टॉल करें

Windsurf वन-क्लिक इंस्टॉलेशन

Install in Windsurf

AI कोडिंग असिस्टेंट में इंस्टॉल करें

Continue, Cline, और RooCode के लिए, अपने कॉन्फ़िगरेशन में जोड़ें:

{
  "mcpServers": {
    "mcpcodeserver": {
      "command": "npx",
      "args": ["-y", "mcpcodeserver", "--config", "/path/to/your/mcp.json"]
    }
  }
}

Amp में इंस्टॉल करें

अपने टर्मिनल में यह कमांड चलाएं। अधिक जानकारी के लिए Amp MCP docs देखें।

amp mcp add mcpcodeserver -- npx -y mcpcodeserver --config /path/to/your/mcp.json

टेक्स्ट एडिटर्स में इंस्टॉल करें

Aider, Codium, Zed, Nova, और Sublime Text के लिए, अपने कॉन्फ़िगरेशन में जोड़ें:

{
  "mcpServers": {
    "mcpcodeserver": {
      "command": "npx",
      "args": ["-y", "mcpcodeserver", "--config", "/path/to/your/mcp.json"]
    }
  }
}

Neovim में इंस्टॉल करें

अपने Neovim MCP कॉन्फ़िगरेशन में जोड़ें:

{
  mcpServers = {
    mcpcodeserver = {
      command = "npx",
      args = {"-y", "mcpcodeserver", "--config", "/path/to/your/mcp.json"}
    }
  }
}

Emacs में इंस्टॉल करें

अपने Emacs MCP कॉन्फ़िगरेशन में जोड़ें:

(setq mcp-servers
      '((mcpcodeserver
         :command "npx"
         :args ("-y" "mcpcodeserver" "--config" "/path/to/your/mcp.json"))))

JetBrains IDE में इंस्टॉल करें

IntelliJ IDEA, WebStorm, PyCharm, और Android Studio के लिए, अपनी MCP सेटिंग्स में जोड़ें:

{
  "mcpServers": {
    "mcpcodeserver": {
      "command": "npx",
      "args": ["-y", "mcpcodeserver", "--config", "/path/to/your/mcp.json"]
    }
  }
}

AI टूल्स में इंस्टॉल करें

Codeium, Tabnine, GitHub Copilot, और Amazon CodeWhisperer के लिए, अपनी MCP सेटिंग्स में जोड़ें:

{
  "mcpServers": {
    "mcpcodeserver": {
      "command": "npx",
      "args": ["-y", "mcpcodeserver", "--config", "/path/to/your/mcp.json"]
    }
  }
}

क्लाउड IDE में इंस्टॉल करें

Replit, CodeSandbox, StackBlitz, GitPod, GitHub Codespaces, GitLab Web IDE, और Bitbucket Cloud के लिए, अपनी MCP सेटिंग्स में जोड़ें:

{
  "mcpServers": {
    "mcpcodeserver": {
      "command": "npx",
      "args": ["-y", "mcpcodeserver", "--config", "/path/to/your/mcp.json"]
    }
  }
}

अन्य टूल्स में इंस्टॉल करें

Xcode, Fleet, Sourcegraph, और JetBrains Gateway के लिए, अपने MCP कॉन्फ़िगरेशन में जोड़ें:

{
  "mcpServers": {
    "mcpcodeserver": {
      "command": "npx",
      "args": ["-y", "mcpcodeserver", "--config", "/path/to/your/mcp.json"]
    }
  }
}

रिमोट डेवलपमेंट में इंस्टॉल करें

रिमोट डेवलपमेंट एनवायरनमेंट के लिए, आप HTTP ट्रांसपोर्ट का भी उपयोग कर सकते हैं:

{
  "mcpServers": {
    "mcpcodeserver": {
      "url": "http://your-server:3000/mcp"
    }
  }
}

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

अपने चाइल्ड MCP सर्वर को परिभाषित करने के लिए एक mcp.json कॉन्फ़िगरेशन फ़ाइल बनाएं:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"],
      "env": { "DEBUG": "false" }
    },
    "memory": {
      "command": "npx", 
      "args": ["-y", "@modelcontextprotocol/server-memory"]
    },
    "brave-search": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-brave-search"],
      "env": { "BRAVE_API_KEY": "your-api-key" }
    }
  }
}

डेवलपमेंट के लिए इंस्टॉलेशन

# Install dependencies (using Bun for faster performance)
bun install

# Or with npm
npm install

# Build the project
bun run build

# Test the built server
bun dist/index.js --help

नोट: यह प्रोजेक्ट बेहतर प्रदर्शन के लिए Bun का उपयोग करता है, लेकिन npm/node भी ठीक काम करते हैं।

🚨 समस्या निवारण

मॉड्यूल नहीं मिला त्रुटियाँ

यदि आपको ERR_MODULE_NOT_FOUND का सामना करना पड़ता है, तो npx के बजाय bunx का उपयोग करने का प्रयास करें:

{
  "mcpServers": {
    "mcpcodeserver": {
      "command": "bunx",
      "args": ["-y", "mcpcodeserver", "--config", "/path/to/your/mcp.json"]
    }
  }
}

ESM रिज़ॉल्यूशन मुद्दे

Error: Cannot find module जैसी त्रुटियों के लिए, --experimental-vm-modules फ्लैग आज़माएं:

{
  "mcpServers": {
    "mcpcodeserver": {
      "command": "npx",
      "args": ["-y", "--node-options=--experimental-vm-modules", "mcpcodeserver", "--config", "/path/to/your/mcp.json"]
    }
  }
}

TLS/प्रमाणपत्र मुद्दे

TLS-संबंधित समस्याओं को बायपास करने के लिए --experimental-fetch फ्लैग का उपयोग करें:

{
  "mcpServers": {
    "mcpcodeserver": {
      "command": "npx",
      "args": ["-y", "--node-options=--experimental-fetch", "mcpcodeserver", "--config", "/path/to/your/mcp.json"]
    }
  }
}

सामान्य MCP क्लाइंट त्रुटियाँ

  1. पैकेज नाम में @latest जोड़ने का प्रयास करें
  2. npx के विकल्प के रूप में bunx का उपयोग करें
  3. एक अन्य विकल्प के रूप में deno का उपयोग करने पर विचार करें
  4. सुनिश्चित करें कि आप नेटिव फ़ेच समर्थन के लिए Node.js v18 या उच्चतर का उपयोग कर रहे हैं

कॉन्फ़िगरेशन मुद्दे

  • सुनिश्चित करें कि आपकी mcp.json फ़ाइल मान्य JSON है
  • जाँचें कि सभी चाइल्ड सर्वर कमांड आपके PATH में उपलब्ध हैं
  • सत्यापित करें कि चाइल्ड सर्वर स्वतंत्र रूप से प्रारंभ हो सकते हैं
  • कॉन्फ़िग फ़ाइल पथ के लिए फ़ाइल अनुमतियाँ जाँचें

MCP इंस्पेक्टर के साथ परीक्षण

npx -y @modelcontextprotocol/inspector npx mcpcodeserver --config /path/to/your/mcp.json

💻 डेवलपमेंट

CLI तर्क

mcpcodeserver निम्नलिखित CLI फ्लैग स्वीकार करता है:

  • --config <path> – MCP कॉन्फ़िगरेशन फ़ाइल का पथ (डिफ़ॉल्ट: ./mcp.json)
  • --transport <stdio|http> – उपयोग करने के लिए ट्रांसपोर्ट (डिफ़ॉल्ट रूप से stdio)। ध्यान दें कि HTTP ट्रांसपोर्ट स्वचालित रूप से HTTP और SSE दोनों एंडपॉइंट प्रदान करता है
  • --port <number>http ट्रांसपोर्ट का उपयोग करते समय सुनने के लिए पोर्ट (डिफ़ॉल्ट 3000)
  • --help – सहायता संदेश दिखाएं

HTTP ट्रांसपोर्ट और पोर्ट 8080 के साथ उदाहरण:

npx mcpcodeserver --config /path/to/mcp.json --transport http --port 8080

stdio ट्रांसपोर्ट के साथ उदाहरण:

npx mcpcodeserver --config /path/to/mcp.json --transport stdio

एनवायरनमेंट वेरिएबल

आप कॉन्फ़िगरेशन के लिए एनवायरनमेंट वेरिएबल का उपयोग कर सकते हैं:

  • MCP_CONFIG_PATH – MCP कॉन्फ़िगरेशन फ़ाइल का पथ (--config का विकल्प)
  • MCP_TRANSPORT – ट्रांसपोर्ट प्रकार (--transport का विकल्प)
  • MCP_PORT – HTTP ट्रांसपोर्ट के लिए पोर्ट नंबर (--port का विकल्प)

एनवायरनमेंट वेरिएबल के साथ उदाहरण:

# .env
MCP_CONFIG_PATH=/path/to/your/mcp.json
MCP_TRANSPORT=stdio

एनवायरनमेंट वेरिएबल का उपयोग करके उदाहरण MCP कॉन्फ़िगरेशन:

{
  "mcpServers": {
    "mcpcodeserver": {
      "command": "npx",
      "args": ["-y", "mcpcodeserver"],
      "env": {
        "MCP_CONFIG_PATH": "/path/to/your/mcp.json"
      }
    }
  }
}

नोट: जब दोनों प्रदान किए जाते हैं तो CLI फ्लैग एनवायरनमेंट वेरिएबल पर प्राथमिकता लेते हैं।

लोकल डेवलपमेंट कॉन्फ़िगरेशन

लोकल डेवलपमेंट के लिए, आप TypeScript स्रोत को सीधे चला सकते हैं:

{
  "mcpServers": {
    "mcpcodeserver": {
      "command": "npx",
      "args": ["tsx", "/path/to/mcpcodeserver/src/index.ts", "--config", "/path/to/your/mcp.json"]
    }
  }
}

रनिंग मोड

Stdio मोड (डिफ़ॉल्ट)

सर्वर डिफ़ॉल्ट रूप से stdio मोड में चलता है, जो Claude Desktop जैसे MCP क्लाइंट के साथ एकीकरण के लिए एकदम सही है:

# Run in stdio mode
npx mcpcodeserver --config mcp.json

# Or with custom config path
npx mcpcodeserver --config /path/to/your/mcp.json

HTTP मोड

डिबगिंग, परीक्षण, या वेब-आधारित MCP क्लाइंट के साथ एकीकरण के लिए, आप सर्वर को HTTP मोड में चला सकते हैं:

# Run in HTTP mode on default port 3000
npx mcpcodeserver --http --config mcp.json

# Run on custom port and host
npx mcpcodeserver --http --port 8080 --host 0.0.0.0 --config mcp.json

HTTP मोड में चलने पर, सर्वर यहां उपलब्ध होगा:

  • सर्वर URL: http://localhost:3000/mcp (या आपका कस्टम host:port)
  • MCP इंस्पेक्टर: डिबग और परीक्षण करने के लिए npx @modelcontextprotocol/inspector http://localhost:3000/mcp का उपयोग करें

MCP इंस्पेक्टर एकीकरण

MCP इंस्पेक्टर MCP सर्वर को डिबग करने और परीक्षण करने के लिए एक शक्तिशाली उपकरण है। HTTP मोड में चलने पर, आप इसका उपयोग कर सकते हैं:

  • उपलब्ध टूल और उनकी स्कीमा का निरीक्षण करें
  • इंटरैक्टिव रूप से टूल कॉल का परीक्षण करें
  • संसाधन पहुंच और प्रॉम्प्ट डिबग करें
  • रीयल-टाइम सूचनाओं की निगरानी करें
# Start the server in HTTP mode
npx mcpcodeserver --http --config mcp.json

# In another terminal, start the MCP Inspector
npx @modelcontextprotocol/inspector http://localhost:3000/mcp

# Or use the shorthand script (includes all example servers)
npm run inspector

इंस्पेक्टर आपके ब्राउज़र में खुलेगा और आपके MCP सर्वर की खोज और परीक्षण के लिए एक पूर्ण इंटरफ़ेस प्रदान करेगा।

नोट: npm run inspector कमांड mcp-test.json का उपयोग करता है जिसमें आधिकारिक उदाहरणों से 8 MCP सर्वर (कुल 67 टूल) शामिल हैं, जिनमें TypeScript (npx) और Python (uvx) आधारित दोनों सर्वर शामिल हैं।

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

एक mcp.json फ़ाइल बनाएँ जो यह परिभाषित करे कि किन चाइल्ड MCP सर्वरों से कनेक्ट करना है। यह मानक MCP क्लाइंट कॉन्फ़िगरेशन प्रारूप का अनुसरण करता है:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"],
      "env": {
        "DEBUG": "false"
      }
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "your-token-here"
      }
    },
    "weather": {
      "url": "http://localhost:3000/mcp",
      "transport": "sse"
    }
  }
}

कॉन्फ़िगरेशन विकल्प

प्रत्येक सर्वर प्रविष्टि निम्न का समर्थन करती है:

stdio ट्रांसपोर्ट के लिए:

  • command (आवश्यक) - निष्पादित करने के लिए कमांड (जैसे, "node", "python", "npx")
  • args (वैकल्पिक) - कमांड को पास करने के लिए आर्गुमेंट्स की सरणी
  • env (वैकल्पिक) - चाइल्ड प्रक्रिया के लिए एनवायरनमेंट वेरिएबल

HTTP/SSE ट्रांसपोर्ट के लिए:

  • url (आवश्यक) - HTTP एंडपॉइंट URL
  • transport - सर्वर-सेंट इवेंट्स के लिए "sse" पर सेट करें

उपयोग

सर्वर प्रारंभ करना

# Use default config (./mcp.json)
mcpcodeserver

# Use custom config location
mcpcodeserver --config /path/to/custom-mcp.json

# Show help
mcpcodeserver --help

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

अपने MCP क्लाइंट (जैसे Claude Desktop, Claude Code, Cline, आदि) में mcpcodeserver कॉन्फ़िगर करें:

npx के साथ (अनुशंसित - कोई इंस्टॉलेशन आवश्यक नहीं):

{
  "mcpServers": {
    "codeserver": {
      "command": "npx",
      "args": ["-y", "mcpcodeserver", "--config", "/path/to/mcp.json"]
    }
  }
}

GitHub से (तुरंत काम करता है):

{
  "mcpServers": {
    "codeserver": {
      "command": "npx",
      "args": ["-y", "github:zbowling/mcpcodeserver", "--config", "/path/to/mcp.json"]
    }
  }
}

अन्य पैकेज मैनेजरों के साथ:

// yarn
{ "command": "yarn", "args": ["dlx", "mcpcodeserver", "--config", "/path/to/mcp.json"] }

// pnpm
{ "command": "pnpm", "args": ["dlx", "mcpcodeserver", "--config", "/path/to/mcp.json"] }

// bun
{ "command": "bunx", "args": ["mcpcodeserver", "--config", "/path/to/mcp.json"] }

अधिक कॉन्फ़िगरेशन उदाहरणों और MCP क्लाइंट-विशिष्ट सेटअप के लिए examples/ देखें।

टूल 1: get_tool_definitions

यह टूल चाइल्ड सर्वरों से खोजे गए सभी टूल्स के लिए TypeScript प्रकार परिभाषाएँ लौटाता है।

इनपुट:

  • include_examples (वैकल्पिक बूलियन) - क्या उपयोग उदाहरण शामिल करें

उदाहरण:

// Call the tool (in your MCP client)
get_tool_definitions({ include_examples: true })

आउटपुट: इंटरफ़ेस और फ़ंक्शन घोषणाओं के साथ TypeScript कोड लौटाता है:

/**
 * Auto-generated TypeScript definitions for MCP tools
 */

interface ToolResult {
  content: Array<{
    type: string;
    text?: string;
    // ...
  }>;
  isError?: boolean;
}

/**
 * Read contents of a file
 * Server: filesystem
 * Tool: read_file
 */
interface ReadFileParams {
  path: string;
}

declare function filesystem_read_file(params: ReadFileParams): Promise<ToolResult>;

// ... more tool definitions

टूल 2: generate_and_execute_code

यह टूल सभी खोजे गए टूल फ़ंक्शनों तक पहुँच के साथ एक सैंडबॉक्स में TypeScript कोड निष्पादित करता है।

इनपुट:

  • code (आवश्यक स्ट्रिंग) - निष्पादित करने के लिए TypeScript/JavaScript कोड
  • timeout (वैकल्पिक संख्या) - मिलीसेकंड में अधिकतम निष्पादन समय (डिफ़ॉल्ट: 30000, अधिकतम: 300000)

उदाहरण:

// Call the tool with TypeScript code
generate_and_execute_code({
  code: `
    // Read multiple files and combine them
    const file1 = await filesystem_read_file({ path: "/tmp/file1.txt" });
    const file2 = await filesystem_read_file({ path: "/tmp/file2.txt" });

    const text1 = file1.content[0].text;
    const text2 = file2.content[0].text;

    console.log("File 1 length:", text1.length);
    console.log("File 2 length:", text2.length);

    return {
      combined: text1 + text2,
      totalLength: text1.length + text2.length
    };
  `
})

आउटपुट:

=== Console Output ===
File 1 length: 42
File 2 length: 38

=== Result ===
{
  "combined": "...",
  "totalLength": 80
}

सैंडबॉक्स वातावरण

TypeScript निष्पादन सैंडबॉक्स प्रदान करता है:

उपलब्ध:

  • सभी खोजे गए टूल फ़ंक्शन (एसिंक फ़ंक्शन के रूप में)
  • कंसोल विधियाँ: console.log(), console.error(), console.warn(), console.info()
  • बुनियादी JavaScript ग्लोबल्स: Math, JSON, Date, Array, Object, String, Number, Boolean
  • Promise और async/await समर्थन
  • try/catch के साथ त्रुटि प्रबंधन
  • टाइमर: setTimeout, setInterval, clearTimeout, clearInterval

उपलब्ध नहीं:

  • Node.js मॉड्यूल (fs, http, child_process, आदि)
  • फ़ाइल सिस्टम पहुँच (MCP टूल्स के माध्यम से छोड़कर)
  • नेटवर्क पहुँच (MCP टूल्स के माध्यम से छोड़कर)
  • प्रक्रिया जानकारी

सुरक्षा नोट: यह पूरी तरह से सुरक्षित सैंडबॉक्स नहीं है। VM संदर्भ अलगाव प्रदान करता है लेकिन अभेद्य नहीं है। केवल विश्वसनीय कोड निष्पादित करें।

त्रुटि प्रबंधन

सैंडबॉक्स में त्रुटियाँ पकड़ी जाती हैं और स्टैक ट्रेस के साथ लौटाई जाती हैं:

generate_and_execute_code({
  code: `
    try {
      const result = await filesystem_read_file({ path: "/nonexistent" });
      return result;
    } catch (error) {
      console.error("Failed to read file:", error.message);
      throw error; // Re-throw to surface to parent
    }
  `
})

Claude Code के साथ परीक्षण

Claude Code के साथ mcpcodeserver आज़माना चाहते हैं? एक-कमांड सेटअप का उपयोग करें:

./setup-claude-code-test.sh

यह प्रोजेक्ट बनाएगा, परीक्षण निर्भरताएँ इंस्टॉल करेगा, और आपको दिखाएगा कि अपने Claude Code कॉन्फ़िगरेशन में क्या जोड़ना है। विस्तृत निर्देशों के लिए TESTING_WITH_CLAUDE.md देखें।

विकास

# Install dependencies
bun install

# Build the project
bun run build

# Watch mode for development
bun run dev

# Run the server
bun start

# Run tests
bun test                # All tests
bun run test:unit       # Unit tests only
bun run test:integration # Integration tests (requires Python)

# Code quality
bun run lint            # Check linting
bun run format          # Format code
bun run typecheck       # Type checking

प्रोजेक्ट संरचना

विस्तृत प्रोजेक्ट संरचना और घटक दस्तावेज़ीकरण के लिए AGENTS.md देखें।

उपयोग के मामले

बहु-फ़ाइल संचालन

LLM के माध्यम से कई टूल कॉल करने के बजाय, कोड लिखें:

const files = ["/tmp/a.txt", "/tmp/b.txt", "/tmp/c.txt"];
const contents = await Promise.all(
  files.map(path => filesystem_read_file({ path }))
);
return contents.map(r => r.content[0].text);

डेटा रूपांतरण

LLM हस्तक्षेप के बिना टूल कॉल के बीच डेटा संसाधित करें:

const data = await api_fetch({ url: "https://api.example.com/data" });
const json = JSON.parse(data.content[0].text);
const filtered = json.items.filter(item => item.active);
return filtered.length;

सशर्त तर्क

टूल परिणामों के आधार पर निर्णय लें:

const exists = await filesystem_read_file({ path: "/tmp/config.json" });
if (exists.isError) {
  console.log("Config doesn't exist, using defaults");
  return { source: "defaults" };
} else {
  return { source: "file", config: JSON.parse(exists.content[0].text) };
}

त्रुटि पुनर्प्राप्ति

संपूर्ण वर्कफ़्लो को निरस्त किए बिना त्रुटियों को शालीनता से संभालें:

const results = [];
for (const path of ["/tmp/a.txt", "/tmp/b.txt", "/tmp/c.txt"]) {
  try {
    const content = await filesystem_read_file({ path });
    results.push({ path, success: true, data: content });
  } catch (error) {
    results.push({ path, success: false, error: error.message });
  }
}
return results;

अपस्ट्रीम MCP सर्वर एकीकरण

mcpcodeserver Model Context Protocol servers repository से आधिकारिक अपस्ट्रीम MCP सर्वरों के साथ एकीकृत हो सकता है। यह आपको अपने कस्टम टूल्स के साथ वास्तविक, उत्पादन-तैयार MCP सर्वरों का उपयोग करने की अनुमति देता है।

समर्थित अपस्ट्रीम सर्वर

  • filesystem: फ़ाइल सिस्टम संचालन (पढ़ना, लिखना, निर्देशिकाएँ सूचीबद्ध करना)
  • memory: इन-मेमोरी की-वैल्यू स्टोरेज
  • sqlite: SQLite डेटाबेस संचालन
  • github: GitHub API एकीकरण
  • brave-search: वेब खोज क्षमताएँ
  • fetch: HTTP अनुरोध क्षमताएँ

उदाहरण कॉन्फ़िगरेशन

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
    },
    "memory": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-memory"]
    },
    "sqlite": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-sqlite", "--db-path", "/tmp/test.db"]
    }
  }
}

अपस्ट्रीम एकीकरण का परीक्षण

प्रोजेक्ट में अपस्ट्रीम सर्वर एकीकरण के लिए व्यापक परीक्षण शामिल हैं:

# Run upstream servers integration tests
bun tests/integration/run-upstream-tests.ts

# Or manually test with upstream config
npx mcpcodeserver --config tests/integration/upstream-test-config.json

क्रॉस-सर्वर वर्कफ़्लो

अपस्ट्रीम सर्वरों के साथ, आप शक्तिशाली क्रॉस-सर्वर वर्कफ़्लो बना सकते हैं:

// Store database query results in memory and write to file
const queryResult = await sqlite_execute_sql({
  sql: "SELECT COUNT(*) as count FROM users"
});
const count = queryResult.content[0].text;

await memory_create({
  key: "user-count",
  value: count
});

await filesystem_write_file({
  path: "/tmp/user-count.txt",
  content: `Total users: ${count}`
});

सीमाएँ

  • निष्पादन टाइमआउट: अधिकतम 5 मिनट (कॉन्फ़िगर करने योग्य, डिफ़ॉल्ट 30 सेकंड)
  • मेमोरी: Node.js VM संदर्भ द्वारा सीमित
  • निष्पादनों के बीच कोई स्थायी स्थिति नहीं
  • बाहरी मॉड्यूल को require/import नहीं कर सकते
  • सुरक्षा सैंडबॉक्स नहीं - अविश्वसनीय कोड न चलाएँ

योगदान

योगदान का स्वागत है! यह प्रोजेक्ट निम्न के साथ बनाया गया है:

  • TypeScript 5.7+
  • Node.js 18+
  • MCP TypeScript SDK 1.20+
  • सत्यापन के लिए Zod

विस्तृत योगदान दिशानिर्देशों के लिए CONTRIBUTING.md देखें।

समर्थन

यदि आपको यह प्रोजेक्ट सहायक लगता है, तो मुझे कॉफ़ी खिलाने पर विचार करें!

Buy Me A Coffee

लाइसेंस

MIT

संसाधन