body { font-family: 'Inter', sans-serif; line-height: 1.6; max-width: 1200px; margin: 0 auto; padding: 20px; background: #f5f7fa; } .container { background: white; padding: 40px; border-radius: 10px; box-shadow: 0 4px 6px rgba(0,0,0,0.1); } .diagram { margin: 40px 0; } .interactive-demo { margin: 40px 0; padding: 20px; background: #f8fafc; border-radius: 8px; border: 1px solid #e2e8f0; } .code-block { background: #1a1a1a; color: #fff; padding: 20px; border-radius: 8px; overflow-x: auto; font-family: 'Fira Code', monospace; } .highlight { background: #4299e1; color: white; padding: 2px 6px; border-radius: 4px; } .architecture-diagram { width: 100%; height: 500px; } @keyframes pulse { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } } .interactive { cursor: pointer; transition: all 0.3s ease; } .interactive:hover { animation: pulse 1s infinite; }

Model Context Protocol (MCP) Interactive Explorer

MCP Clients Claude Desktop, Zed, Cody MCP Servers Resource Providers JSON-RPC 2.0 Resources Prompts Tools Sampling

Interactive MCP Demo

const mcpClient = {
  resources: {},
  prompts: {},
  tools: {},
  
  async connect() {
    console.log("Connecting to MCP server...");
    // Simulated connection logic
    await new Promise(resolve => setTimeout(resolve, 1000));
    console.log("Connected!");
  },
  
  async discoverResources() {
    console.log("Discovering available resources...");
    this.resources = {
      "file://project/docs": "Project Documentation",
      "db://users/active": "Active Users",
      "api://weather": "Weather Data"
    };
    return this.resources;
  }
};