Claude के लिए लोकल MCP सर्वर कैसे बनाएं: फाइल्स, कमांड्स, स्क्रीनशॉट्स और ऐप कंट्रोल

@hrswatigupta
अंग्रेज़ी1 माह पहले · 04 जून 2026
1.0M
72
16
2
224

TL;DR

यह गाइड दिखाती है कि Claude के लिए पायथन-आधारित लोकल MCP सर्वर कैसे बनाया जाए, जो एक सुरक्षित अलाउलिस्ट आर्किटेक्चर के माध्यम से लोकल फाइल्स, कमांड्स और डेस्कटॉप टूल्स तक सुरक्षित और नियंत्रित पहुंच को सक्षम बनाता है।

Claude तब और अधिक उपयोगी हो जाता है जब वह सिर्फ़ एक चैट इंटरफ़ेस नहीं रह जाता।

एक स्थानीय MCP सर्वर Claude को आपकी वास्तविक मशीन से इंटरैक्ट करने देता है: स्थानीय फ़ाइलें, स्वीकृत कमांड, स्क्रीनशॉट और ऐप लॉन्च। महत्वपूर्ण हिस्सा कच्ची पहुँच नहीं है। यह नियंत्रित पहुँच है।

इस गाइड में, हम Claude के लिए एक स्थानीय MCP सर्वर बनाएंगे जो व्यावहारिक, सीमित और वास्तविक वर्कफ़्लो में उपयोग करने के लिए पर्याप्त सुरक्षित है।

कुछ भी बनाने से पहले एक त्वरित नोट

यह लेख जानबूझकर "कंप्यूटर कंट्रोल" के गैर-जिम्मेदाराना संस्करण से बचता है।

हम Claude को असीमित शेल एक्सेस, पूर्ण फ़ाइलसिस्टम अधिकार, या आपकी मशीन को बिना सुरक्षा उपायों के बदलने की अनुमति नहीं देने जा रहे हैं। एक खराब स्थानीय MCP सर्वर बनाने का सबसे तेज़ तरीका है एक विशाल run_anything() टूल को उजागर करना और इसे इनोवेशन कहना।

बेहतर पैटर्न यह है:

  • अनुमत निर्देशिकाएँ
  • अनुमत कमांड
  • सुरक्षित डिफ़ॉल्ट
  • मानव-पठनीय लॉग
  • स्पष्ट प्रतिक्रियाएँ
  • केवल-पढ़ने और कार्रवाई करने वाले टूल के बीच स्पष्ट अंतर

अगर Claude सब कुछ कर सकता है, तो आपने एक डेमो बनाया है।

अगर Claude सही चीज़ें सुरक्षित रूप से कर सकता है, तो आपने कुछ उपयोगी बनाया है।

यह आर्किटेक्चर क्यों सीखने लायक है

स्थानीय MCP सर्वर का मूल्य नवीनता नहीं है। यह घर्षण में कमी है।

स्थानीय टूल लेयर के बिना, आपका वर्कफ़्लो इस तरह दिखता है:

  1. Claude से पूछें कि क्या करना है
  2. जवाब कॉपी करें
  3. खुद फ़ोल्डर खोलें
  4. खुद कमांड चलाएँ
  5. खुद स्क्रीनशॉट लें
  6. परिणाम वापस चैट में पेस्ट करें

स्थानीय MCP सर्वर के साथ, यह लूप काफी छोटा हो जाता है। Claude अपनी ज़रूरत के संदर्भ का निरीक्षण कर सकता है, संकीर्ण रूप से सीमित टूल का उपयोग कर सकता है, और आपकी वास्तविक मशीन की स्थिति पर आधारित उत्तर वापस कर सकता है।

यह इसके लिए उपयोगी है:

  • डेवलपमेंट वर्कफ़्लो
  • लॉग निरीक्षण
  • कंटेंट ऑपरेशन
  • रिसर्च पाइपलाइन
  • डेस्कटॉप ऑटोमेशन
  • दोहराए जाने वाले एडमिन कार्य

और क्योंकि टूल लेयर आपकी है, आप ठीक वहीं चुनते हैं जहाँ मॉडल रुकता है।

AI सीखना चाहते हैं और अपने करियर में आगे रहना चाहते हैं?

मैं साझा करता हूँ:

1,000+ AI प्रॉम्प्ट

AI टूल और ऑटोमेशन

करियर और LinkedIn ग्रोथ टिप्स

क्यूरेटेड टेक और प्रोडक्टिविटी संसाधन

यहाँ सब्सक्राइब करें:

https://bytebuilders.beehiiv.com/subscribe

अधिक AI टिप्स के लिए मुझे फॉलो करें

👇

हम जो डिज़ाइन बना रहे हैं

Swati Gupta - inline image

हम पाँच टूल के साथ एक स्थानीय सर्वर बनाने जा रहे हैं:

  1. list_files — देखें कि स्वीकृत फ़ोल्डरों के अंदर क्या मौजूद है
  2. read_file — सुरक्षित टेक्स्ट-आधारित फ़ाइलें खोलें
  3. run_command — स्वीकृत स्थानीय कमांड का एक छोटा सेट निष्पादित करें
  4. take_screenshot — एक ज्ञात स्थान पर स्क्रीनशॉट सेव करें
  5. open_target — कोई ऐप, फ़ाइल, फ़ोल्डर या URL खोलें
Swati Gupta - inline image

वह दायरा जानबूझकर रखा गया है।

यह Claude को स्थानीय मशीन पर सार्थक रूप से उपयोगी बनाने के लिए पर्याप्त है, बिना असुरक्षित सामान्य-उद्देश्यीय ऑटोमेशन में गिरे।

मानसिक मॉडल इस तरह दिखना चाहिए:

Claude → MCP क्लाइंट → स्थानीय MCP सर्वर → संकीर्ण टूल → ऑपरेटिंग सिस्टम

Claude को कभी भी सीधे आपके ऑपरेटिंग सिस्टम से बात नहीं करनी चाहिए। आपका MCP सर्वर बीच में कंट्रोल प्लेन है।

तकनीकी स्टैक

स्थानीय बिल्ड के लिए, Python एक साफ विकल्प है क्योंकि आधिकारिक MCP SDK परिपक्व है, FastMCP एब्स्ट्रैक्शन संक्षिप्त है, और Python फ़ाइलसिस्टम, सबप्रोसेस और डेस्कटॉप स्क्रिप्टिंग कार्यों के लिए सबसे आसान भाषा बनी हुई है 4 2

हम उपयोग करेंगे:

  • Python 3.11+
  • mcp[cli] MCP सर्वर रनटाइम के लिए
  • mss क्रॉस-प्लेटफ़ॉर्म स्क्रीनशॉट के लिए
  • फ़ाइल एक्सेस, सबप्रोसेस कॉल और OS हैंडलिंग के लिए मानक लाइब्रेरी मॉड्यूल

एक नया प्रोजेक्ट सेट करें:

bash
1mkdir local-mcp-server
2cd local-mcp-server
3uv init --python 3.11
4uv add "mcp[cli]>=1.0,<2.0" "mss>=9.0,<10.0"

डेकोरेटर-आधारित FastMCP शैली प्रोटोकॉल लेयर को आपके रास्ते से दूर रखती है ताकि आप वायरिंग के बजाय टूल की गुणवत्ता पर ध्यान केंद्रित कर सकें 4 5

एक सरल प्रोजेक्ट लेआउट अच्छी तरह से काम करता है:

text
1mkdir local-mcp-server
2cd local-mcp-server
3uv init --python 3.11
4uv add "mcp[cli]>=1.0,<2.0" "mss>=9.0,<10.0"

आपको v1 के लिए एक जटिल आर्किटेक्चर की आवश्यकता नहीं है। आपको जो चाहिए वह है स्पष्टता।

वास्तविक सर्वर

server.py बनाएं और एक नीति-संचालित कार्यान्वयन से शुरू करें।

python
1from __future__ import annotations
2
3import json
4import os
5import platform
6import shlex
7import subprocess
8from pathlib import Path
9from typing import Any
10
11import mss
12from mcp.server.fastmcp import FastMCP
13
14app = FastMCP("local-computer-control", json_response=True)
15
16HOME = Path.home()
17PROJECT_ROOT = Path(__file__).parent.resolve()
18CAPTURE_DIR = PROJECT_ROOT / "captures"
19CAPTURE_DIR.mkdir(exist_ok=True)
20
21ALLOWED_ROOTS = [
22 HOME / "Documents",
23 HOME / "Desktop",
24 PROJECT_ROOT,
25]
26
27ALLOWED_COMMANDS = {
28 "pwd",
29 "ls",
30 "git status",
31 "git diff --stat",
32 "python --version",
33 "node --version",
34 "npm --version",
35}
36
37READABLE_EXTENSIONS = {
38 ".txt",
39 ".md",
40 ".json",
41 ".py",
42 ".js",
43 ".ts",
44 ".tsx",
45 ".jsx",
46 ".yaml",
47 ".yml",
48 ".toml",
49 ".csv",
50 ".log",
51}
52
53def _resolve_path(raw_path: str) -> Path:
54 path = Path(raw_path).expanduser().resolve()
55 for root in ALLOWED_ROOTS:
56 root = root.resolve()
57 if path == root or root in path.parents:
58 return path
59 raise ValueError(f"Path not allowed: {path}")
60
61def _ensure_safe_command(command: str) -> str:
62 normalized = " ".join(shlex.split(command))
63 if normalized not in ALLOWED_COMMANDS:
64 raise ValueError(
65 "Command not allowed. Add it explicitly to ALLOWED_COMMANDS if you really need it."
66 )
67 return normalized
68
69@app.tool()
70def list_files(path: str = "~") -> dict[str, Any]:
71 """List files and folders inside an approved directory."""
72 target = _resolve_path(path)
73 if not target.is_dir():
74 raise ValueError(f"Not a directory: {target}")
75
76 items = []
77 for child in sorted(target.iterdir(), key=lambda p: (not p.is_dir(), p.name.lower())):
78 items.append(
79 {
80 "name": child.name,
81 "path": str(child),
82 "type": "directory" if child.is_dir() else "file",
83 }
84 )
85
86 return {
87 "path": str(target),
88 "count": len(items),
89 "items": items,
90 }
91
92@app.tool()
93def read_file(path: str, max_chars: int = 12000) -> dict[str, Any]:
94 """Read a safe text file from an approved location."""
95 target = _resolve_path(path)
96 if not target.is_file():
97 raise ValueError(f"Not a file: {target}")
98 if target.suffix.lower() not in READABLE_EXTENSIONS:
99 raise ValueError(f"Unsupported file type: {target.suffix}")
100
101 content = target.read_text(encoding="utf-8", errors="replace")
102 truncated = len(content) > max_chars
103 content = content[:max_chars]
104
105 return {
106 "path": str(target),
107 "truncated": truncated,
108 "content": content,
109 }
110
111@app.tool()
112def run_command(command: str, cwd: str | None = None, timeout: int = 15) -> dict[str, Any]:
113 """Run one allowlisted local command."""
114 safe_command = _ensure_safe_command(command)
115 working_dir = _resolve_path(cwd) if cwd else PROJECT_ROOT
116
117 completed = subprocess.run(
118 safe_command,
119 shell=True,
120 cwd=str(working_dir),
121 capture_output=True,
122 text=True,
123 timeout=timeout,
124 )
125
126 return {
127 "command": safe_command,
128 "cwd": str(working_dir),
129 "returncode": completed.returncode,
130 "stdout": completed.stdout.strip(),
131 "stderr": completed.stderr.strip(),
132 }
133
134@app.tool()
135def take_screenshot(name: str = "latest") -> dict[str, Any]:
136 """Capture a screenshot and save it locally."""
137 output_path = CAPTURE_DIR / f"{name}.png"
138
139 with mss.mss() as sct:
140 sct.shot(output=str(output_path))
141
142 return {
143 "saved": True,
144 "path": str(output_path),
145 }
146
147@app.tool()
148def open_target(target: str) -> dict[str, Any]:
149 """Open an approved file, folder, app, or URL using the local OS."""
150 system = platform.system().lower()
151
152 if target.startswith("http://") or target.startswith("https://"):
153 resolved = target
154 else:
155 resolved = str(_resolve_path(target))
156
157 if system == "darwin":
158 subprocess.run(["open", resolved], check=True)
159 elif system == "windows":
160 os.startfile(resolved) # type: ignore[attr-defined]
161 else:
162 subprocess.run(["xdg-open", resolved], check=True)
163
164 return {
165 "opened": True,
166 "target": resolved,
167 }
168
169if __name__ == "__main__":
170 app.run(transport="stdio")

यह एक कॉम्पैक्ट सर्वर है, लेकिन महत्वपूर्ण हिस्सा इसकी लंबाई नहीं है। महत्वपूर्ण हिस्सा इंटरफ़ेस का आकार है:

  • हर टूल का एक बहुत स्पष्ट काम है
  • हर टूल संरचित डेटा लौटाता है
  • कमांड निष्पादन प्रतिबंधित है
  • फ़ाइल एक्सेस जड़ित है
  • स्क्रीनशॉट एक ज्ञात फ़ोल्डर में जाते हैं

यह ठीक वही है जो आप एक स्थानीय MCP सर्वर में चाहते हैं।

ये टूल इस तरह क्यों डिज़ाइन किए गए हैं

एजेंट टूलिंग के बारे में वरिष्ठ सामग्री को कभी भी "यहाँ कोड है" पर नहीं रुकना चाहिए। टूल का आकार ही असली सबक है।

list_files

यह टूल Claude को एक सुरक्षित खोज सतह देता है। इसे इस तरह के सवालों के जवाब देने में सक्षम होना चाहिए:

  • इस प्रोजेक्ट फ़ोल्डर में क्या है?
  • Documents में कौन से नोट मौजूद हैं?
  • क्या पहले से कोई लॉग फ़ाइल है जिसका मैं निरीक्षण कर सकता हूँ?

लेकिन इसे एक रिकर्सिव पूर्ण-डिस्क क्रॉलर नहीं बनना चाहिए।

read_file

यह अक्सर सभी स्थानीय टूल में सबसे उपयोगी होता है। वास्तविक कार्य का एक बड़ा प्रतिशत अभी भी स्थानीय Markdown नोट्स, लॉग, CSV, डॉक्स और प्रोजेक्ट फ़ाइलों में छिपा हुआ है।

max_chars सीमा मायने रखती है। बड़ी फ़ाइलें संदर्भ और विलंबता की समस्या हैं। एक विशाल लॉग फ़ाइल की संपूर्ण सामग्री लौटाना शायद ही कभी उपयोगी होता है।

run_command

यह वह जगह है जहाँ अधिकांश लोग लापरवाह हो जाते हैं।

सुरक्षित पैटर्न "शेल एक्सेस की अनुमति दें, फिर सर्वश्रेष्ठ की आशा करें" नहीं है। सुरक्षित पैटर्न है "सटीक, समीक्षा योग्य कमांड के एक छोटे सेट की अनुमति दें।" यही कारण है कि उदाहरण एक सख्त अनुमति सूची का उपयोग करता है।

take_screenshot

एक स्क्रीनशॉट टूल मूल्यवान है क्योंकि यह Claude को डेस्कटॉप वर्कफ़्लो में भाग लेने देता है। भले ही आपका पहला संस्करण केवल छवि को डिस्क पर सेव करता है, यह रिपोर्टिंग, UI डिबगिंग, दस्तावेज़ीकरण कैप्चर और संरचित हैंडऑफ़ के लिए पहले से ही उपयोगी है।

open_target

ऐप नियंत्रण को GUI ऑटोमेशन से शुरू करने की आवश्यकता नहीं है। कई वर्कफ़्लो के लिए, "सही फ़ोल्डर, फ़ाइल या URL खोलें" पर्याप्त है।

यह यह दिखावा करने से अधिक टिकाऊ v1 है कि आपको पहले दिन पूर्ण कर्सर ऑटोमेशन की आवश्यकता है।

सर्वर को Claude से कनेक्ट करना

स्थानीय MCP सर्वर आमतौर पर stdio पर चलाए जाते हैं, जिसका अर्थ है कि Claude प्रक्रिया को स्थानीय रूप से लॉन्च करता है और सीधे stdin/stdout पर इसके साथ संचार करता है। एक स्थानीय कंप्यूटर-नियंत्रण सर्वर के लिए, यह सही डिफ़ॉल्ट है क्योंकि यह अनावश्यक नेटवर्क एक्सपोज़र से बचाता है 4 5

Claude Desktop कॉन्फ़िगरेशन के माध्यम से स्थानीय MCP सर्वर का समर्थन करता है, जहाँ यह आपके लिए सर्वर प्रक्रिया लॉन्च करता है। व्यवहार में, इंटरप्रेटर और स्क्रिप्ट के लिए निरपेक्ष पथ का उपयोग करना सबसे कम नाजुक सेटअप है क्योंकि स्थानीय GUI ऐप वातावरण अक्सर आपके टर्मिनल की तुलना में अधिक सख्त होते हैं 2

एक न्यूनतम कॉन्फ़िगरेशन इस तरह दिखता है:

json
1{
2 "mcpServers": {
3 "local-computer-control": {
4 "command": "/absolute/path/to/python",
5 "args": [
6 "/absolute/path/to/local-mcp-server/server.py"
7 ]
8 }
9 }
10}

यदि आप uv पसंद करते हैं, तो यह भी ठीक है:

json
1{
2 "mcpServers": {
3 "local-computer-control": {
4 "command": "/absolute/path/to/uv",
5 "args": [
6 "--directory",
7 "/absolute/path/to/local-mcp-server",
8 "run",
9 "python",
10 "server.py"
11 ]
12 }
13 }
14}

कॉन्फ़िगरेशन सेव करने और Claude को पुनरारंभ करने के बाद, सर्वर टूल स्थानीय MCP टूल सूची में दिखाई देने चाहिए। Claude Desktop का स्थानीय-MCP सेटअप बिल्कुल इसी मॉडल के आसपास बनाया गया है: एक स्थानीय प्रक्रिया लॉन्च करें, stdio पर कनेक्ट करें, और टूल को मॉडल में उजागर करें 2 3

Swati Gupta - inline image

प्रॉम्प्ट जो परीक्षण के लिए वास्तव में उपयोगी हैं

एक बार सर्वर कनेक्ट हो जाने के बाद, जटिल ऑर्केस्ट्रेशन से शुरू न करें। सीधी, उबाऊ जाँचों से शुरू करें।

इस तरह के प्रॉम्प्ट आज़माएँ:

  • "मेरे Desktop फ़ोल्डर में फ़ाइलों की सूची बनाएं।"
  • "~/Documents/todo.md पढ़ें और शीर्ष तीन प्राथमिकताओं का सारांश दें।"
  • "मेरे स्थानीय प्रोजेक्ट फ़ोल्डर में git status चलाएँ और बताएं कि क्या बदला।"
  • "workspace-check नामक एक स्क्रीनशॉट लें।"
  • "मेरा प्रोजेक्ट README खोलें।"

यदि ये सरल प्रवाह लगातार काम करते हैं, तो आपके पास विस्तार के लायक सर्वर है।

यदि वे काम नहीं करते हैं, तो अधिक टूल जोड़ने से केवल वास्तविक समस्याएँ छिपेंगी।

जहाँ स्थानीय MCP सर्वर वास्तव में मूल्यवान हो जाते हैं

स्पष्ट उपयोग का मामला डेवलपमेंट है, लेकिन यह केवल एक पहलू है।

डेवलपर वर्कफ़्लो

Claude यह कर सकता है:

  • एक रेपो फ़ोल्डर का निरीक्षण करें
  • एक कॉन्फ़िगरेशन फ़ाइल पढ़ें
  • git status चलाएँ
  • एक बग स्थिति का स्क्रीनशॉट कैप्चर करें
  • प्रोजेक्ट निर्देशिका खोलें

यह पहले से ही बहुत सारे संदर्भ-स्विचिंग को समाप्त करता है।

रिसर्च वर्कफ़्लो

Claude यह कर सकता है:

  • रिसर्च फ़ोल्डरों की सूची बनाएं
  • Markdown नोट्स खोलें और सारांशित करें
  • संरचित CSV पढ़ें
  • टूल या डैशबोर्ड से स्क्रीनशॉट सेव करें
  • स्रोत फ़ाइलें या ब्राउज़र लिंक खोलें

कंटेंट वर्कफ़्लो

Claude यह कर सकता है:

  • ड्राफ्ट फ़ोल्डर को स्कैन करें
  • मौजूदा पोस्ट विचारों को पढ़ें
  • एक डिज़ाइन संदर्भ का स्क्रीनशॉट कैप्चर करें
  • सही लेखन फ़ाइल या URL खोलें
  • एक सीमित कमांड चलाएँ जो एक बिल्ड आर्टिफैक्ट या ड्राफ्ट एक्सपोर्ट उत्पन्न करता है

Ops वर्कफ़्लो

Claude यह कर सकता है:

  • स्वीकृत निर्देशिकाओं से लॉग का निरीक्षण करें
  • एक केवल-पढ़ने के लिए डायग्नोस्टिक कमांड चलाएँ
  • प्रासंगिक फ़ोल्डर या डैशबोर्ड लिंक खोलें
  • एक सबूत स्क्रीनशॉट सेव करें

यह आर्किटेक्चर का वास्तविक बिंदु है: एक स्टंट के रूप में "कंप्यूटर कंट्रोल" नहीं, बल्कि वर्कफ़्लो संपीड़न

सुरक्षा परत ही उत्पाद है

यह वह खंड है जिसे बहुत से तकनीकी लेख तुच्छ समझते हैं।

स्थानीय MCP का खतरनाक हिस्सा प्रोटोकॉल नहीं है। यह खराब अनुमति डिज़ाइन है।

यदि आप चाहते हैं कि यह सर्वर डेमो से परे उपयोगी हो, तो सुरक्षा मॉडल जल्दी बनाएं।

Swati Gupta - inline image

निर्देशिका अनुमति सूचियों का उपयोग करें

Claude को केवल उन पथों को देखने में सक्षम होना चाहिए जिन्हें आप स्पष्ट रूप से अनुमोदित करते हैं। यही कारण है कि _resolve_path() फ़ाइल टूल का मूल है।

कमांड अनुमति सूचियों का उपयोग करें

पहले संस्करण में कभी भी मनमाना शेल निष्पादन उजागर न करें। सटीक कमांड से शुरू करें जिन्हें आप लाइन दर लाइन ऑडिट कर सकते हैं।

रीड टूल को एक्शन टूल से अलग करें

केवल-पढ़ने वाले टूल डिफ़ॉल्ट होने चाहिए। एक्शन टूल को जानबूझकर पेश किया जाना चाहिए।

सब कुछ लॉग करें

यहां तक कि एक साधारण append-only JSON लॉग डिबगिंग और विश्वास को नाटकीय रूप से बेहतर बनाता है।

राइट्स के लिए एक पुष्टिकरण परत जोड़ें

यदि आप बाद में write_file, move_file, या delete_file जोड़ते हैं, तो उन टूल को या तो दूसरे पुष्टिकरण टोकन की आवश्यकता होनी चाहिए या डिफ़ॉल्ट रूप से अक्षम रहना चाहिए।

ड्राई-रन मोड पर विचार करें

एक्शन लेने वाले टूल के लिए, ड्राई-रन मोड को कम करके आंका जाता है। यह Claude को कुछ करने से पहले यह समझाने देता है कि वह क्या करेगा

जब संभव हो तो प्रतिबंधित उपयोगकर्ता के तहत चलाएँ

यदि आप स्थानीय ऑटोमेशन के बारे में गंभीर हैं, तो अपने MCP सर्वर को उससे अधिक OS विशेषाधिकार न दें जितनी उसे आवश्यकता है।

अंगूठे का एक उपयोगी नियम:

  • स्तर 1: केवल-पढ़ने वाले टूल
  • स्तर 2: कम जोखिम वाली क्रियाएँ जैसे फ़ाइल खोलें / ऐप खोलें
  • स्तर 3: पुष्टि की गई लेखन क्रियाएँ
  • स्तर 4: विनाशकारी क्रियाएँ जिन्हें आपको शायद आकस्मिक रूप से उजागर नहीं करना चाहिए

अधिकांश लोगों को कभी भी स्तर 4 की आवश्यकता नहीं होती है।

Swati Gupta - inline image

v1 के बाद क्या सुधारें

एक ठोस पहला संस्करण अधिक सक्षम बनने का अधिकार अर्जित करता है।

एक बार बुनियादी सर्वर स्थिर हो जाने पर, अगले समझदार उन्नयन हैं:

  1. केंद्रीकृत नीति फ़ाइल

अपने नियमों को config/policy.json में ले जाएँ ताकि परिवर्तन घोषणात्मक हों।

उदाहरण:

json
1{
2 "allowed_roots": [
3 "~/Documents",
4 "~/Desktop",
5 "./"
6 ],
7 "allowed_commands": [
8 "pwd",
9 "ls",
10 "git status",
11 "git diff --stat",
12 "python --version"
13 ]
14}
  1. संरचित लॉगिंग

टूल कॉल, टाइमस्टैम्प, तर्क और परिणामों को logs/server.log या JSONL फ़ाइल में लॉग करें।

  1. सुरक्षित कमांड निष्पादन

एकल सामान्य कमांड टूल के बजाय, कमांड को संकीर्ण टूल में विभाजित करें जैसे:

  • git_status
  • show_current_directory
  • list_project_files

यह Claude के लिए टूल चयन को आसान और आपके लिए सुरक्षा को आसान बनाता है।

  1. बेहतर स्क्रीनशॉट हैंडलिंग

आप "स्क्रीनशॉट को डिस्क पर सेव करें" से विकसित हो सकते हैं:

  • टाइमस्टैम्प्ड कैप्चर
  • सक्रिय-विंडो कैप्चर
  • क्षेत्र कैप्चर
  • फ़ाइल प्रतिधारण नियम
  1. OS-विशिष्ट ऑटोमेशन एडेप्टर

macOS पर, आप बाद में AppleScript या Shortcuts जोड़ सकते हैं। Windows पर, PowerShell या UI Automation। Linux पर, डेस्कटॉप-विशिष्ट लॉन्चर और विंडो टूल।

लेकिन यह उबाऊ स्थानीय कोर के विश्वसनीय होने के बाद आना चाहिए।

स्थानीय MCP सर्वर के साथ लोग सामान्य गलतियाँ करते हैं

गलतियाँ पूर्वानुमेय हैं।

गलती 1: बहुत अधिक शक्ति, बहुत जल्दी

लोगों को पूर्ण कंप्यूटर नियंत्रण का विचार पसंद है। वे इसे डीबग करने से नफरत करते हैं। छोटा शुरू करें।

गलती 2: अस्पष्ट टूल नाम

यदि आपके टूल के नाम अस्पष्ट हैं, तो Claude उनका बुरी तरह से उपयोग करेगा। स्पष्ट रहें।

बुरा:

  • system_action
  • computer_control

बेहतर:

  • list_files
  • read_file
  • run_command
  • take_screenshot
  • open_target

गलती 3: असंरचित आउटपुट

एक साफ JSON ऑब्जेक्ट की तुलना में मिश्रित टेक्स्ट का एक ब्लॉब Claude के लिए तर्क करना कठिन है।

गलती 4: कोई लॉगिंग नहीं

यदि कोई टूल विफल हो जाता है और आप यह नहीं देख सकते कि क्यों, तो सिस्टम अनुमान लगाने वाला खेल बन जाता है।

गलती 5: मॉडल को नियंत्रण परत के रूप में मानना

Claude तर्क परत है। आपका सर्वर अभी भी प्रवर्तन परत होना चाहिए।

यह अंतर गैर-परक्राम्य है।

यह आर्किटेक्चर सादे ऑटोमेशन से बेहतर क्या करता है

पारंपरिक डेस्कटॉप ऑटोमेशन आमतौर पर दो चीजों में से एक है:

  • भंगुर GUI स्क्रिप्टिंग
  • पृथक स्क्रिप्ट जिन्हें चलाने के लिए एक मानव को ठीक से जानना आवश्यक है कि उन्हें कब चलाना है

एक स्थानीय MCP सर्वर इसे बदल देता है क्योंकि Claude उपयोगकर्ता के अनुरोध और उपलब्ध संदर्भ के आधार पर तय कर सकता है कि किस टूल का उपयोग करना है।

इसका मतलब है कि आप सिर्फ़ एक कमांड को स्वचालित नहीं कर रहे हैं। आप एक स्थानीय क्षमता परत का निर्माण कर रहे हैं जिस पर मॉडल तर्क कर सकता है।

यही कारण है कि MCP महत्वपूर्ण लगता है। यह केवल एक और एकीकरण पैटर्न नहीं है। यह एप्लिकेशन लेयर में हर संभव वर्कफ़्लो को हार्डकोड किए बिना मॉडल को टूल उपयोग को उजागर करने का एक स्वच्छ तरीका है।

जिन सीमाओं का आपको सम्मान करना चाहिए

एक अच्छे स्थानीय MCP सर्वर की भी वास्तविक सीमाएँ होती हैं।

  • डेस्कटॉप ऑटोमेशन ऑपरेटिंग सिस्टम में अविश्वसनीय हो सकता है।
  • स्क्रीनशॉट उपयोगी हैं, लेकिन जादुई नहीं हैं।
  • ऐप लॉन्च करना आसान है; विश्वसनीय UI हेरफेर कठिन है।
  • सामान्य शेल एक्सेस खतरनाक है।
  • यदि टूल आउटपुट बहुत बड़े हैं तो संदर्भ ब्लोट वास्तविक है।
  • किसी भी महत्वपूर्ण चीज़ के लिए मानव अनुमोदन अभी भी मूल्यवान है।

दूसरे शब्दों में: "मॉडल कार्रवाई कर सकता है" को "मॉडल को बिना पर्यवेक्षण के कार्य करना चाहिए" के साथ भ्रमित न करें।

अधिक मूल्यवान पैटर्न सहयोगी नियंत्रण है, अंध स्वायत्तता नहीं।

एक क्लिक में सहेजें

YouMind में वायरल लेखों की AI गहन पढ़ाई

स्रोत सहेजें, केंद्रित सवाल पूछें, तर्क का सारांश बनाएँ और एक वायरल लेख को एक ही AI वर्कस्पेस में दोबारा इस्तेमाल करने लायक नोट्स में बदलें।

YouMind देखें
क्रिएटर्स के लिए

अपने Markdown को एक साफ़-सुथरे 𝕏 आर्टिकल में बदलें

जब आप अपना लंबा कंटेंट पब्लिश करते हैं, तो इमेज, टेबल और कोड ब्लॉक को 𝕏 के लिए फ़ॉर्मेट करना मुश्किल होता है। YouMind पूरे Markdown ड्राफ़्ट को एक साफ़-सुथरे, पोस्ट के लिए तैयार 𝕏 आर्टिकल में बदल देता है।

Markdown से 𝕏 आज़माएँ

समझने के लिए और पैटर्न

हाल के वायरल लेख

और वायरल लेख देखें