← Lesson
Model Context Protocol (MCP)
Joeven
Run
Reset
Python loads on first run
import json FILES = {"README.md": "Joeven MCP classroom server"} TICKETS = {"9182": {"title": "Runner OOM", "state": "open"}} SERVERS = { "files": { "read_file": lambda path: {"text": FILES.get(path, ""), "missing": path not in FILES}, }, "tickets": { "get_ticket": lambda ticket_id: TICKETS.get(ticket_id, {"error": "not_found"}), }, } def rpc(method, params=None): params = params or {} if method == "tools/list": listing = [] for server, tools in SERVERS.items(): for name in tools: listing.append({"server": server, "name": name}) return {"result": listing} if method == "tools/call": server = params.get("server") name = params.get("name") tools = SERVERS.get(server) or {} if name not in tools: return {"error": {"code": -32601, "message": "Unknown tool"}} args = params.get("arguments") or {} return {"result": tools[name](**args)} return {"error": {"code": -32601, "message": "Unknown method"}} print("list:", json.dumps(rpc("tools/list"))) print("call:", rpc("tools/call", {"server": "tickets", "name": "get_ticket", "arguments": {"ticket_id": "9182"}})) print("nope:", rpc("tools/call", {"server": "tickets", "name": "delete_prod", "arguments": {}})) print("bad method:", rpc("tools/explode", {}))
Run to execute this in your browser. Nothing is sent to a server.