Model Context Protocol

MCP प्रत्यक्षात कसे चालते - संपूर्ण चित्र

MCP म्हणजे "AI अ‍ॅप्ससाठीचे USB-C": एकच खुले protocol जे कोणत्याही AI सहाय्यकाला कोणत्याही tool, database किंवा API शी, कस्टम जोडणी कोडशिवाय, जोडू देते. हे काय आहे, कसे चालते, का आणि कोणत्या दिशेने जात आहे, हे इथे आहे - sequence diagrams, संपूर्ण 0 ते 100 runtime प्रवाह आणि खऱ्या केस स्टडीजसह.

JSON-RPC 2.0 stdio · HTTP/SSE Tools · Resources · Prompts खुला मानक
01 - काय

MCP म्हणजे काय?

Model Context Protocol हा एक खुला मानक आहे (Anthropic ने 2024 च्या उत्तरार्धात सादर केला) जो AI अ‍ॅप्लिकेशन्सना बाह्य प्रणालींशी जोडण्याचा एक सर्वव्यापी मार्ग निश्चित करतो. MCP आधी, एका AI अ‍ॅप आणि एका tool मधील प्रत्येक एकत्रीकरण खास बनवावे लागत असे: M अ‍ॅप्स × N tools = M×N कस्टम connectors. MCP ते M+N मध्ये बदलते - एकदा server बनवा, आणि प्रत्येक MCP-सुसंगत client तो वापरू शकतो.

🖥️ Host

वापरकर्त्यासमोर असणारे AI अ‍ॅप - Claude Code, Claude Desktop, एखादे IDE, किंवा SDK वर बनवलेला तुमचा स्वतःचा agent. तो model चालवतो आणि सर्व काही व्यवस्थापित करतो.

🔌 Client

host च्या आत राहणारा एक connector. प्रत्येक server साठी एक client, जो 1:1 stateful session राखतो आणि model च्या वतीने MCP बोलतो.

⚙️ Server

क्षमता उघड करणारा एक स्वतंत्र प्रोग्राम - एक filesystem, एक database, GitHub, Slack, एक खाजगी API. विचारल्यावर तो खरे काम करतो.

एक server तीन गोष्टी उघड करतो

Primitiveते काय आहेकोण नियंत्रित करतेउदाहरण
Toolstyped इनपुट/आउटपुटसह कॉल करता येणारी functionsmodel केव्हा कॉल करायचे ते ठरवतोcreate_issue(), run_query()
ResourcesURI ने संबोधित केलेला, वाचता येणारा data / contextअ‍ॅप / वापरकर्ता जोडतोfile:///report.pdf, db://users/42
Promptsपुन्हा वापरता येणारे, parameterized prompt templatesवापरकर्ता चालवतो (slash commands)/summarize-pr, /plan-sprint
मुख्य मानसिक प्रतिमा: LLM तुमच्या database किंवा API ला थेट कधीच स्पर्श करत नाही. तो एक संरचित विनंती तयार करतो; host मध्यस्थी करतो आणि मंजुरी देतो; server अंमलबजावणी करतो. MCP हा मध्यभागी असलेला प्रमाणित करार आहे.
02 - का

MCP का अस्तित्वात आहे

LLMs शक्तिशाली आहेत पण वेगळे पडलेले असतात - त्यांच्या training cutoff मागे अडकलेले, तुमच्या live data पर्यंत पोहोच नसलेले आणि कृती करण्याची क्षमता नसलेले. प्रत्येक टीमने हे स्वतंत्रपणे सोडवल्याने ठिसूळ, एकावेळचे एकत्रीकरण तयार झाले. MCP जोडणी स्तर प्रमाणित करते.

🧩 M×N समस्या सोडवते

एकदा server लिहा; प्रत्येक MCP host (Claude, Cursor, Windsurf, कस्टम agents) तो वापरू शकतो. प्रत्येक अ‍ॅपसाठी पुन्हा एकत्रीकरण नाही.

🔄 अदलाबदल करता येणारे आणि जोडता येणारे

tools runtime ला शोधले जात असल्याने, तुम्ही host ला हात न लावता servers जोडू, काढू किंवा अपग्रेड करू शकता. Agents अनेक servers एकत्र करतात.

🔐 स्पष्ट विश्वासाच्या सीमा

host प्रत्येक कॉलमध्ये मध्यस्थी करतो आणि वापरकर्त्याची मंजुरी मागू शकतो. Servers scoped परवानग्या आणि स्वतःच्या auth सह वेगळ्या प्रक्रिया म्हणून चालतात.

🌍 खुले आणि विक्रेता-निरपेक्ष

Python, TypeScript, Java, C#, Go आणि इतर भाषांमध्ये SDKs असलेला एक खुला spec. एका model किंवा एका कंपनीशी बांधलेला नाही.

03 - कसे

ते आतून कसे चालते

प्रत्येक संदेश JSON-RPC 2.0 असतो. client आणि server एका transport वरून requests, responses आणि notifications ची देवाणघेवाण करतात. दोन transports प्रामुख्याने वापरले जातात:

📟 stdio (लोकल)

server एक subprocess असतो; संदेश stdin/stdout वरून वाहतात. जलद, network नाही, लोकल tools साठी (filesystem, git) आदर्श. Auth अंतर्भूत आहे - तो तुमच्याच रूपात चालतो.

🌐 Streamable HTTP + SSE (रिमोट)

server एक web service आहे जो HTTP वरून पोहोचता येतो, streaming साठी Server-Sent Events सह. अनेक clients ना सेवा देतो आणि प्रमाणीकरणासाठी OAuth 2.1 वापरतो.

जोडणीचे जीवनचक्र

आर्किटेक्चर - एक host, अनेक servers, प्रत्येक server साठी एक client
flowchart LR
    subgraph Host["🖥️  Host  (Claude Code / Desktop)"]
        LLM["🧠 LLM"]
        C1["🔌 Client A"]
        C2["🔌 Client B"]
        C3["🔌 Client C"]
        LLM <--> C1
        LLM <--> C2
        LLM <--> C3
    end
    C1 <-->|stdio| S1["⚙️ Filesystem Server"]
    C2 <-->|HTTP/SSE| S2["⚙️ GitHub Server"]
    C3 <-->|HTTP/SSE| S3["⚙️ Postgres Server"]
    S1 --> D1[("📁 Local files")]
    S2 --> D2{{"🌐 GitHub API"}}
    S3 --> D3[("🗄️ Database")]
        

एक किमान config (Claude Code / Desktop)

{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres",
               "postgresql://localhost/mydb"]
    },
    "github": {
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": { "Authorization": "Bearer ${GITHUB_TOKEN}" }
    }
  }
}

पहिला एक लोकल stdio server आहे जो subprocess म्हणून चालवला जातो; दुसरा एक रिमोट HTTP server आहे. तेच protocol, वेगळे transport.

04 - Sequence Diagrams

तपशीलवार sequence diagrams

तीन दृश्ये: सुरुवातीचा handshake आणि discovery, runtime ला एक tool call, आणि रिमोट servers साठीचा OAuth प्रवाह.

Diagram 1 - Initialization आणि capability discovery (एकदा, जोडणीच्या वेळी)
sequenceDiagram
    autonumber
    participant U as 👤 User
    participant H as 🖥️ Host
    participant C as 🔌 Client
    participant S as ⚙️ Server

    U->>H: Launch app / add server
    H->>C: Spin up a client for this server
    C->>S: initialize (protocol version, capabilities)
    S-->>C: initialize result (server capabilities, info)
    C->>S: notifications/initialized
    Note over C,S: Session is now live
    C->>S: tools/list
    S-->>C: [tools + JSON Schemas]
    C->>S: resources/list
    S-->>C: [resources]
    C->>S: prompts/list
    S-->>C: [prompt templates]
    C-->>H: Register capabilities
    H->>H: Inject tool defs into model context
        
Diagram 2 - संभाषणादरम्यान एक tool call (मुख्य मार्ग)
sequenceDiagram
    autonumber
    participant U as 👤 User
    participant LLM as 🧠 Model
    participant H as 🖥️ Host
    participant C as 🔌 Client
    participant S as ⚙️ Server
    participant Ext as 🌐 Data / API

    U->>H: "How many signups last week?"
    H->>LLM: prompt + available tools
    LLM-->>H: tool_use: run_query(sql=...)
    H->>U: Approve calling run_query? (optional)
    U-->>H: ✔ Approve
    H->>C: dispatch tool call
    C->>S: tools/call { name, arguments }
    S->>Ext: SELECT count(*) FROM signups ...
    Ext-->>S: rows
    S-->>C: tools/call result (structured content)
    C-->>H: result
    H->>LLM: tool result appended to context
    LLM-->>H: "You had 1,284 signups last week."
    H-->>U: Final answer
        
Diagram 3 - एका रिमोट server साठी OAuth 2.1 प्राधिकृतीकरण
sequenceDiagram
    autonumber
    participant U as 👤 User
    participant C as 🔌 Client
    participant S as ⚙️ MCP Server
    participant A as 🔑 Auth Server

    C->>S: tools/call (no / expired token)
    S-->>C: 401 Unauthorized + WWW-Authenticate
    C->>A: Discover metadata, register client
    C->>U: Open browser → consent screen
    U->>A: Log in & grant scopes
    A-->>C: Authorization code (redirect)
    C->>A: Exchange code + PKCE for tokens
    A-->>C: access_token (+ refresh_token)
    C->>S: Retry tools/call (Bearer token)
    S-->>C: 200 OK + result
        
05 - टप्प्याटप्प्याने

0 ते 100 प्रवाह

cold start पासून पूर्ण झालेल्या, tool-सहाय्यित उत्तरापर्यंत घडणारे सर्व काही - संपूर्ण प्रवास क्रमाने.

00
सेटअप

एक server लिहा किंवा install करा

कोणीतरी एक MCP server लिहितो (किंवा तुम्ही प्रकाशित केलेला install करता) जो एका प्रणालीला - एक DB, एक API, filesystem - गुंडाळतो आणि त्याची tools, resources आणि prompts जाहीर करतो.

10
कॉन्फिगर

host कडे server नोंदवा

ते config मध्ये जोडा: stdio साठी एक command, किंवा HTTP साठी एक url. आता host ला माहित आहे की server अस्तित्वात आहे.

20
Launch

host client आणि transport सुरू करतो

सुरुवातीला host प्रत्येक server साठी एक client तयार करतो आणि transport उघडतो - एक subprocess pipe (stdio) किंवा एक HTTP जोडणी.

30
Handshake

initialize देवाणघेवाण

client आणि server protocol version वर वाटाघाटी करतात आणि क्षमता जाहीर करतात, मग client notifications/initialized पाठवतो. session live झाली.

40
Discovery

tools, resources, prompts ची यादी

client tools/list, resources/list, prompts/list कॉल करतो. server नावे, वर्णने आणि JSON Schemas परत करतो.

50
Inject

host model कडे tools सोपवतो

शोधलेल्या tool व्याख्या स्वरूपित करून model च्या context मध्ये ठेवल्या जातात जेणेकरून त्याला कळेल की तो काय आणि कोणत्या arguments सह कॉल करू शकतो.

60
तर्क

वापरकर्ता विचारतो; model ठरवतो

वापरकर्ता एक विनंती पाठवतो. model तिच्यावर आणि उपलब्ध tools वर तर्क करतो, आणि एखादे tool उपयुक्त ठरणार असल्यास एक संरचित tool_use विनंती तयार करतो.

70
Guard

host मध्ये अडवतो आणि (कदाचित) मंजुरी विचारतो

host tool call पकडतो. संवेदनशील कृतींसाठी तो वापरकर्त्याला मंजुरीसाठी विचारतो. Auth तपासले जाते; रिमोट servers इथे OAuth प्रवाह सुरू करू शकतात.

80
अंमलबजावणी

server खरे काम करतो

client tools/call पाठवतो; server query चालवतो / API ला भेटतो / file वाचतो आणि संरचित निकाल परत करतो (आणि प्रगती stream करू शकतो).

90
एकत्रीकरण

निकाल पुन्हा context मध्ये वाहतो

host tool निकाल संभाषणाला जोडतो आणि model ला पुन्हा कॉल करतो. model आणखी tool calls साखळू शकतो - गरजेनुसार टप्पा 60 कडे परत जा.

100
वितरण

model वापरकर्त्याला उत्तर देतो

context मध्ये ताज्या, वास्तविक जगातील data सह, model एक आधारभूत अंतिम उत्तर तयार करतो. पुढील फेरीसाठी session उघडी राहते.

06 - केस स्टडीज

वास्तविक जगातील केस स्टडीज

production-सारख्या वापरात MCP दाखवणारे तीन प्रातिनिधिक नमुने.

👩‍💻

1 · coding agent (Claude Code + GitHub + Postgres)

नमुना: developer उत्पादकता

एक developer त्याच्या सहाय्यकाला विचारतो की "CI अपयशी करणारी flaky test शोधा आणि एक fix PR उघडा." agent तीन MCP servers एकत्र करतो.

  • Filesystem server (stdio) अपयशी test files आणि source वाचतो.
  • Postgres server कोणती test मधूनमधून अपयशी होते हे ओळखण्यासाठी CI निकालांच्या table ला query करतो.
  • GitHub server (HTTP + OAuth) एक branch तयार करतो, fix commit करतो आणि एक PR उघडतो.
निकाल: एक नैसर्गिक-भाषेतील विनंती कोणत्याही कस्टम एकत्रीकरण कोडशिवाय तीन प्रणालींना व्यापते - प्रत्येक server एकदा install केला आणि प्रत्येक project मध्ये पुन्हा वापरला जातो.
🏢

2 · एंटरप्राइझ ज्ञान सहाय्यक (अंतर्गत wiki + Jira + Slack)

नमुना: खाजगी data वर retrieval + कृती

एक support engineer विचारतो: "या आठवड्यातील खुल्या P1 incidents चा सारांश द्या आणि #ops ला एक digest पोस्ट करा." कंपनी SSO मागे रिमोट MCP servers चालवते.

  • Jira server search_issues ला एक tool म्हणून आणि issues ना resources म्हणून उघड करतो - model live P1 tickets खेचतो.
  • Wiki server resources प्रत्येक incident प्रकारासाठी runbook context पुरवतात.
  • Slack server post_message उघड करतो; पोस्ट करण्यापूर्वी host स्पष्ट मंजुरी मागतो.
निकाल: OAuth scopes प्रत्येक वापरकर्त्याची पोहोच बरोबर ठेवतात; host चा मंजुरी दरवाजा हे सुनिश्चित करतो की "write" कृती (पोस्ट करणे) माणसाकडून पुष्टी केली जाते. तेच protocol, एंटरप्राइझ-दर्जाचा विश्वास.
🎨

3 · Figma MCP सह design-to-code

नमुना: एका मालकीच्या अ‍ॅपला कोणत्याही agent शी जोडणे

एक front-end dev Figma मध्ये एक component निवडतो आणि agent ला विचारतो की "हे एक React component म्हणून बनवा." Figma एक MCP server पुरवते जो live design context उघड करतो.

  • Figma server निवडलेल्या frame ची रचना, tokens आणि layout resources/tools म्हणून उघड करतो.
  • agent अचूक अंतर, रंग आणि variants वाचतो - screenshot वरून अंदाज नाही.
  • filesystem server तयार केलेला component repo मध्ये लिहितो.
निकाल: एक मालकीचे desktop अ‍ॅप कोणत्याही MCP client ला वापरण्यायोग्य बनते. model pixels नव्हे तर संरचित data वाचत असल्याने design हेतू उच्च अचूकतेने हस्तांतरित होतो.
07 - भविष्य

MCP कोणत्या दिशेने जात आहे

MCP एका विक्रेत्याच्या spec पासून व्यापकपणे स्वीकारलेल्या मानकापर्यंत उल्लेखनीयरीत्या जलद पोहोचले. मार्गक्रमण अधिक समृद्ध, अधिक सुरक्षित, अधिक स्वायत्त agents कडे निर्देश करते.

🌐 एक registry आणि परिसंस्था

discovery आणि एक-क्लिक install साठी सार्वजनिक server registries - agent क्षमतांसाठी एक "app store", signing आणि provenance सह.

🤝 agent-ते-agent जोडणी

स्वतःच agents असणारे servers, तसेच उदयोन्मुख agent-ते-agent protocols, जे एकमेकांना काम सोपवणाऱ्या विशेष agents ची नेटवर्क्स शक्य करतात.

🔐 मजबूत सुरक्षा आणि ओळख

MCP एंटरप्राइझमध्ये अधिक खोलवर जात असताना fine-grained scopes, प्रमाणित OAuth 2.1, tool-poisoning बचाव आणि लेखापरीक्षणक्षमता.

🧠 Elicitation आणि sampling

Servers कामाच्या मध्येच वापरकर्त्याकडून इनपुट मागू शकतात (elicitation) आणि host कडून model completions ची विनंती करू शकतात (sampling) - अधिक समृद्ध दुतर्फा संवाद.

📦 native platform समर्थन

OS-स्तरीय आणि IDE-स्तरीय MCP hosts, जेणेकरून कोणतेही अ‍ॅप खास जोडणीशिवाय एक agent पृष्ठभाग बनू शकते.

⚡ Streaming आणि दीर्घकाळ चालणारे काम

प्रगती streaming, रद्दीकरण आणि टिकाऊ दीर्घकाळ चालणाऱ्या कामांसाठी उत्तम समर्थन - खऱ्या स्वायत्त agents साठी अत्यावश्यक.

तळटीप: ज्याप्रमाणे HTTP ने web प्रमाणित केले आणि USB ने peripherals प्रमाणित केले, त्याचप्रमाणे MCP AI models आणि वास्तविक जग यांच्यातील मानक socket बनत आहे. एकदा एक क्षमता बनवा - प्रत्येक agent, वर्तमान आणि भविष्यातील, ती वापरू शकतो.