File size: 763 Bytes
df94728
b511058
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# MCPClient implementation
# File: orchestrator/client.py
import requests
import uuid

class MCPClient:
    """
    Minimal JSON-RPC 2.0 client for MCP servers.
    """
    def __init__(self, base_url: str):
        self.base_url = base_url.rstrip('/')

    def call(self, method: str, params: dict = None):
        payload = {
            "jsonrpc": "2.0",
            "id": str(uuid.uuid4()),
            "method": method,
            "params": params or {}
        }
        resp = requests.post(f"{self.base_url}/rpc", json=payload, timeout=30)
        resp.raise_for_status()
        data = resp.json()
        if "error" in data:
            err = data["error"]
            raise RuntimeError(err.get("message", str(err)))
        return data.get("result")