Skip to main content
Glama

Code Mode MCP Server

by cexll
quick-demo.js8.67 kB
#!/usr/bin/env node /** * 快速演示 Code Mode 核心概念(无需完整依赖) */ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'); console.log('📚 MCP Code Mode - 核心概念演示'); console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n'); // 传统模式示例 console.log('❌ 传统 MCP 模式:\n'); console.log('用户: "读取 config.json,获取 API endpoint,调用它并保存结果"'); console.log(''); console.log('执行过程:'); console.log(' 1. LLM → 工具调用: readFile(config.json)'); console.log(' ↓ 返回 5000 tokens'); console.log(' 2. LLM 处理 → 工具调用: httpGet(endpoint)'); console.log(' ↓ 返回 10000 tokens'); console.log(' 3. LLM 处理 → 工具调用: writeFile(result.json)'); console.log(' ↓ 完成'); console.log(''); console.log(' Token 消耗: ~20,000 tokens'); console.log(' 耗时: ~6-8 秒 (3轮往返)'); console.log(' 问题: 大数据会超限,中间结果全部过模型'); console.log(''); console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n'); // Code Mode 示例 console.log('✅ Code Mode 模式:\n'); console.log('用户: "读取 config.json,获取 API endpoint,调用它并保存结果"'); console.log(''); console.log('执行过程:'); console.log(' 1. LLM → 生成代码:'); console.log(''); console.log(' ```typescript'); console.log(' import * as fs from "./servers/filesystem/index.js";'); console.log(' import * as fetch from "./servers/fetch/index.js";'); console.log(' '); console.log(' // 读取配置'); console.log(' const config = await fs.readFile({ path: "config.json" });'); console.log(' const data = JSON.parse(config);'); console.log(' '); console.log(' // 调用 API'); console.log(' const result = await fetch.fetch({ url: data.endpoint });'); console.log(' '); console.log(' // 保存结果'); console.log(' await fs.writeFile({'); console.log(' path: "result.json",'); console.log(' content: result'); console.log(' });'); console.log(' '); console.log(' console.log("已保存到 result.json");'); console.log(' ```'); console.log(''); console.log(' 2. 沙箱执行代码 → 完成'); console.log(' ↓ 返回: "已保存到 result.json"'); console.log(''); console.log(' Token 消耗: ~3,000 tokens'); console.log(' 耗时: ~2 秒 (1轮执行)'); console.log(' 优势: 数据在沙箱内流动,不受限制'); console.log(''); console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n'); // 性能对比 console.log('📊 性能对比:\n'); const comparison = [ ['指标', '传统模式', 'Code Mode', '提升'], ['──────────', '─────────', '─────────', '──────'], ['Token 消耗', '~20,000', '~3,000', '85% ↓'], ['往返次数', '3 次', '1 次', '67% ↓'], ['响应时间', '6-8 秒', '2 秒', '75% ↓'], ['大文件支持', '容易超限', '无限制', '✅'], ['复杂逻辑', '需要多轮', '直接写代码', '✅'], ]; comparison.forEach(row => { console.log(` ${row[0].padEnd(14)} ${row[1].padEnd(12)} ${row[2].padEnd(12)} ${row[3]}`); }); console.log(''); console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n'); // 架构对比 console.log('🏗️ 架构对比:\n'); console.log('传统模式架构:'); console.log(' ┌─────────┐'); console.log(' │ LLM │ ← 每次工具调用都要过模型'); console.log(' └────┬────┘'); console.log(' │'); console.log(' ┌────▼─────┐'); console.log(' │ MCP Tool │ → 返回结果给 LLM'); console.log(' └──────────┘'); console.log(' │'); console.log(' ┌────▼─────┐'); console.log(' │ MCP Tool │ → 又返回给 LLM'); console.log(' └──────────┘'); console.log(''); console.log('Code Mode 架构:'); console.log(' ┌─────────┐'); console.log(' │ LLM │ → 生成代码(一次)'); console.log(' └────┬────┘'); console.log(' │ TypeScript code'); console.log(' ┌────▼────────────┐'); console.log(' │ Sandbox │'); console.log(' │ ┌───────────┐ │'); console.log(' │ │ MCP Tool │ │ ← 数据在沙箱内流动'); console.log(' │ │ ↓ │ │'); console.log(' │ │ MCP Tool │ │'); console.log(' │ │ ↓ │ │'); console.log(' │ │ MCP Tool │ │'); console.log(' │ └───────────┘ │'); console.log(' └────┬────────────┘'); console.log(' │ 最终结果'); console.log(' ┌────▼────┐'); console.log(' │ LLM │ ← 只接收最终输出'); console.log(' └─────────┘'); console.log(''); console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n'); // 实际应用场景 console.log('💡 实际应用场景:\n'); console.log('场景 1: 数据分析'); console.log(' 任务: "读取 sales.csv (50MB),分析前 10 名客户,生成报告"'); console.log(' 传统模式: ❌ CSV 太大,超过 context 限制'); console.log(' Code Mode: ✅ 在沙箱内读取、过滤、分析,只返回 top 10'); console.log(''); console.log('场景 2: 批量操作'); console.log(' 任务: "读取 users.json,为每个用户调用 API 更新状态"'); console.log(' 传统模式: ❌ 100 个用户 = 100 轮对话'); console.log(' Code Mode: ✅ for 循环直接搞定,1 次执行'); console.log(''); console.log('场景 3: 复杂工作流'); console.log(' 任务: "从 Google Drive 下载文档,转换格式,上传到 Salesforce"'); console.log(' 传统模式: ❌ 多次往返,中间文件内容重复传输'); console.log(' Code Mode: ✅ 管道式处理,数据不出沙箱'); console.log(''); console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n'); // 安全优势 console.log('🔒 安全优势:\n'); console.log('1. 网络隔离:'); console.log(' - 沙箱无法访问互联网(除非明确允许的域名)'); console.log(' - 防止数据泄露'); console.log(''); console.log('2. 文件系统隔离:'); console.log(' - 无法读取 ~/.ssh, ~/.aws 等敏感目录'); console.log(' - 无法修改 .env, .git 等关键文件'); console.log(''); console.log('3. API Key 保护:'); console.log(' - MCP clients 在主进程,API key 不暴露给沙箱'); console.log(' - LLM 生成的代码无法泄露凭证'); console.log(''); console.log('4. 资源限制:'); console.log(' - CPU、内存、执行时间都有上限'); console.log(' - 防止恶意或失控代码'); console.log(''); console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n'); // 总结 console.log('✅ 总结:\n'); console.log('Code Mode 的本质是让 LLM 发挥所长:'); console.log(' • LLM 擅长写代码(训练数据丰富)'); console.log(' • 不擅长直接调工具(训练数据少)'); console.log(' • 把 MCP 工具包装成代码 API'); console.log(' • 在沙箱内安全执行'); console.log(' • 减少 token、提升性能、支持复杂场景'); console.log(''); console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n'); console.log('🚀 下一步:\n'); console.log(' 1. npm install # 安装依赖'); console.log(' 2. npm run generate-api # 生成 TypeScript API'); console.log(' 3. npm run example # 运行演示'); console.log(''); console.log('📖 详细文档: cat README.md'); console.log('');

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cexll/code-mode-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server