Token导航 LogoToken导航

MCP Server · AI代理

Code Mode (code-mode)

通过代码执行实现工具调用的首个库,可将AI代理从繁琐的工具调用转变为高效的代码执行。

未说明官方级别未说明来源级核验工具 0
AI代理代码执行PythonClaude多协议支持Claude Desktop

快速开始

公开资料没有提供安装命令,按仓库或官方文档接入。
作者 / 组织
universal-tool-calling-protocol
提供方
universal-tool-calling-protocol

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

1,458

仓库热度

收录来源

1 个

MCP World

选型结论

Code Mode (code-mode) 属于AI代理类 MCP Server,公开资料标注 0 个工具,通过传输方式未标注接入,适配 Claude Desktop、Claude,没有现成的安装命令;接入前要先准备 访问 Token。

分类

AI代理

传输方式

未说明

认证方式

访问 Token

部署方式

公开资料未说明

安装与配置

公开目录没有给出安装命令,需要按仓库 README安装;下面按同类条目的通用流程说明。

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    先确认运行方式

    公开资料没有标注传输方式,先看仓库 README,确认是本地进程还是远程地址。

  2. 2

    获取服务

    公开目录没有给出安装命令,按仓库 README里的步骤安装或获取服务。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 0 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

公开资料仍需确认:安装命令

详细介绍

🤖 Code-Mode Library: First library for tool calls via code execution

将您的AI代理从笨重的工具调用者转变为高效的代码执行者——只需3行。

为什么这会改变一切

LLM擅长编写代码,但在工具调用方面遇到了困难。与其直接公开数百个工具,不如给他们一个执行TypeScript代码并访问整个工具包的工具。

苹果, 云耀,以及 人类 与传统的转储函数信息相比,代码模式是一种更有效的工具调用方法,然后提取JSON进行函数调用。

基准测试

独立 Python基准测试研究 通过以下方式验证性能声明 每年节省9536美元的成本 每天1000个场景:

场景复杂性传统代码模式改进
简单(2-3个工具)3次迭代1次执行快67%
中等(4-7工具)8次迭代1次执行速度提高75%
复杂(8+工具)16次迭代1次执行速度提高88%

为什么代码模式占主导地位:

批量优势 -单个代码块替换多个API调用\ 认知效率 -LLM擅长代码生成与工具编排\ 计算效率 -操作之间没有上下文重新处理

入门指南

[

从三行开始

import { CodeModeUtcpClient } from '@utcp/code-mode';

const client = await CodeModeUtcpClient.create();                    // 1. Initialize
await client.registerManual({ name: 'github', /* MCP config */ });  // 2. Add tools  
const { result } = await client.callToolChain(`/* TypeScript */`);   // 3. Execute code

就是这样。你的AI代理现在可以在一个请求中执行复杂的工作流,而不是几十个。

所得

渐进式工具发现

// Agent discovers tools dynamically, loads only what it needs
const tools = await client.searchTools('github pull request');
// Instead of 500 tool definitions → 3 relevant tools

自然代码执行

const { result, logs } = await client.callToolChain(`
  // Chain multiple operations in one request
  const pr = await github.get_pull_request({ owner: 'microsoft', repo: 'vscode', pull_number: 1234 });
  const comments = await github.get_pull_request_comments({ owner: 'microsoft', repo: 'vscode', pull_number: 1234 });
  const reviews = await github.get_pull_request_reviews({ owner: 'microsoft', repo: 'vscode', pull_number: 1234 });
  
  // Process data efficiently in-sandbox
  return {
    title: pr.title,
    commentCount: comments.length,
    approvals: reviews.filter(r => r.state === 'APPROVED').length
  };
`);
// Single API call replaces 15+ traditional tool calls

自动生成的TypeScript接口

namespace github {
  interface get_pull_requestInput {
    /** Repository owner */
    owner: string;
    /** Repository name */ 
    repo: string;
    /** Pull request number */
    pull_number: number;
  }
}

企业就绪

  • 安全VM沙盒 Node.js隔离防止未经授权的访问
  • 超时保护 –可配置的执行限制可防止代码失控
  • 完全可观测性 –完整的控制台输出捕获和错误处理
  • 零外部依赖 –工具只能通过注册的UTCP/MCP服务器访问
  • 运行时反思 –自适应工作流的动态界面发现

如果你在一家企业工作,需要支持,请预约咨询 这里.

通用协议支持

适用于 任何工具生态系统:

协议描述用法
主控程序模型上下文协议服务器call_template_type: 'mcp'
超文本传输协议具有自动发现功能的REST APIcall_template_type: 'http'\
文件本地JSON/YAML配置call_template_type: 'file'
命令行界面命令行工具执行call_template_type: 'cli'

安装

npm install @utcp/code-mode

更简单:即用型MCP服务器

想要无需任何设置的代码模式吗? 将我们的即插即用MCP服务器与Claude Desktop或任何MCP客户端一起使用:

{
  "mcpServers": {
    "code-mode": {
      "command": "npx",
      "args": ["@utcp/code-mode-mcp"],
      "env": {
        "UTCP_CONFIG_FILE": "/path/to/your/.utcp_config.json"
      }
    }
  }
}

就是这样! 无需安装,不需要Node.js知识。这 代码模式MCP服务器 自动:

  • 通过下载并运行最新版本 npx
  • 从JSON加载工具配置
  • 为Claude Desktop提供代码执行功能
  • 给你 call_tool_chain 作为执行TypeScript的MCP工具

非常适合非开发人员 谁想要克劳德桌面的代码模式功能!

直接使用TypeScript

1. MCP服务器集成

连接到任何模型上下文协议服务器:

每 call_template_type 是一个单独的插件包。安装并导入 启动时打包一次,这样它就可以在客户端注册自己;插件 注册为导入的副作用。对于 mcp那是 @utcp/mcp. 同样的模式也适用于其他运输方式: @utcp/http, @utcp/text等等。 ``bash npm install @utcp/mcp ``
import '@utcp/mcp';                      // registers the 'mcp' call template
import { CodeModeUtcpClient } from '@utcp/code-mode';

const client = await CodeModeUtcpClient.create();

// Connect to GitHub MCP server
await client.registerManual({
  name: 'github',
  call_template_type: 'mcp',
  config: {
    mcpServers: {
      github: {
        transport: 'stdio',              // required by @utcp/mcp
        command: 'docker',
        args: ['run', '-i', '--rm', '-e', 'GITHUB_PERSONAL_ACCESS_TOKEN', 'mcp/github'],
        env: { GITHUB_PERSONAL_ACCESS_TOKEN: process.env.GITHUB_TOKEN }
      }
    }
  }
});

2. 执行多步骤工作流

用单个代码执行替换15+个工具调用:

const { result, logs } = await client.callToolChain(`
  // Traditional: 4 separate API round trips → Code Mode: 1 execution
  const pr = await github.get_pull_request({ owner: 'microsoft', repo: 'vscode', pull_number: 1234 });
  const comments = await github.get_pull_request_comments({ owner: 'microsoft', repo: 'vscode', pull_number: 1234 });
  const reviews = await github.get_pull_request_reviews({ owner: 'microsoft', repo: 'vscode', pull_number: 1234 });
  const files = await github.get_pull_request_files({ owner: 'microsoft', repo: 'vscode', pull_number: 1234 });
  
  // Process data in-sandbox (no token overhead)
  const summary = {
    title: pr.title,
    state: pr.state,
    author: pr.user.login,
    stats: {
      comments: comments.length,
      reviews: reviews.length, 
      filesChanged: files.length,
      approvals: reviews.filter(r => r.state === 'APPROVED').length
    },
    topDiscussion: comments.slice(0, 3).map(c => ({
      author: c.user.login,
      preview: c.body.substring(0, 100) + '...'
    }))
  };
  
  console.log(\`PR "\${pr.title}" analysis complete\`);
  return summary;
`);

console.log('Analysis Result:', result);
// console output: 'PR "Fix memory leak in hooks" analysis complete'

______________________________________________________________________

高级功能

多协议工具链

在一次执行中混合和匹配不同的工具生态系统:

// Register multiple tool sources
await client.registerManual({ name: 'github', call_template_type: 'mcp', /* config */ });
await client.registerManual({ name: 'slack', call_template_type: 'http', /* config */ });
await client.registerManual({ name: 'db', call_template_type: 'file', file_path: './db-tools.json' }); // This loads a UTCP manual from a json file

const result = await client.callToolChain(`
  // Fetch PR data from GitHub (MCP)
  const pr = await github.get_pull_request({ owner: 'company', repo: 'api', pull_number: 42 });
  
  // Query deployment status from database (File)
  const deployment = await db.get_deployment_status({ pr_id: pr.id });
  
  // Send notification to Slack (HTTP)
  await slack.post_message({
    channel: '#releases',
    text: \`PR #42 "\${pr.title}" deployed to \${deployment.environment}\`
  });
  
  return { pr: pr.title, environment: deployment.environment };
`);

运行时接口反思

工具可以动态发现和适应可用接口:

const result = await client.callToolChain(`
  // Discover available tools at runtime
  console.log('Available interfaces:', __interfaces);
  
  // Get specific tool interface for validation
  const prInterface = __getToolInterface('github.get_pull_request');
  console.log('PR tool expects:', prInterface);
  
  // Use interface info for dynamic workflows
  const hasSlackTools = __interfaces.includes('namespace slack');
  if (hasSlackTools) {
    await slack.post_message({ channel: '#dev', text: 'Analysis complete' });
  }
  
  return { toolsAvailable: hasSlackTools };
`);

上下文高效数据处理

在不增加模型上下文的情况下处理大型数据集:

const result = await client.callToolChain(`
  // Fetch large dataset
  const allIssues = await github.list_repository_issues({ owner: 'facebook', repo: 'react' });
  console.log('Fetched', allIssues.length, 'total issues');
  
  // Process efficiently in-sandbox
  const criticalBugs = allIssues
    .filter(issue => issue.labels.some(l => l.name === 'bug'))
    .filter(issue => issue.labels.some(l => l.name === 'high priority'))
    .map(issue => ({
      number: issue.number,
      title: issue.title,
      author: issue.user.login,
      daysOld: Math.floor((Date.now() - new Date(issue.created_at)) / (1000 * 60 * 60 * 24))
    }))
    .sort((a, b) => b.daysOld - a.daysOld);
  
  // Only return processed summary (not 10,000 raw issues)
  return {
    totalIssues: allIssues.length,
    criticalBugs: criticalBugs.slice(0, 10), // Top 10 oldest critical bugs
    summary: \`Found \${criticalBugs.length} critical bugs, oldest is \${criticalBugs[0]?.daysOld} days old\`
  };
`);

错误处理和可观察性

具有完全透明执行的内置错误处理:

const { result, logs } = await client.callToolChain(`
  try {
    console.log('Starting multi-step workflow...');
    
    const data = await external_api.fetch_data({ id: 'user-123' });
    console.log('Data fetched successfully');
    
    const processed = await data_processor.transform(data);
    console.warn('Processing completed with', processed.warnings.length, 'warnings');
    
    return processed;
  } catch (error) {
    console.error('Workflow failed:', error.message);
    throw error; // Propagates to outer error handling
  }
`, 30000); // 30-second timeout

// Complete observability
console.log('Result:', result);
console.log('Execution logs:', logs);
// ['Starting multi-step workflow...', 'Data fetched successfully', '[WARN] Processing completed with 2 warnings']

自定义超时

为不同的工作负载类型配置执行限制:

// Quick operations (5 seconds)
const quickResult = await client.callToolChain(`return await ping.check();`, 5000);

// Heavy data processing (2 minutes) 
const heavyResult = await client.callToolChain(`
  const bigData = await database.export_full_dataset();
  return await analytics.process_dataset(bigData);
`, 120000);

______________________________________________________________________

AI代理集成

与任何AI框架即插即用。内置的提示模板处理所有复杂性:

import { CodeModeUtcpClient } from '@utcp/code-mode';

const systemPrompt = `
You are an AI assistant with access to tools via UTCP CodeMode.
${CodeModeUtcpClient.AGENT_PROMPT_TEMPLATE}
Additional instructions...
`;

// Works with any AI library
const response = await openai.chat.completions.create({
  model: 'gpt-4',
  messages: [
    { role: 'system', content: systemPrompt },
    { role: 'user', content: 'Analyze the latest PR in microsoft/vscode' }
  ]
});

该模板提供了以下方面的全面指导:

  • 工具发现工作流程(searchTools → __interfaces → callToolChain)
  • 分层访问模式(manual.tool() 语法)
  • 接口自检(__getToolInterface())
  • 错误处理和最佳实践

______________________________________________________________________

API 参考

核心方法

callToolChain(code: string, timeout?: number)

以完全的工具访问和可观察性执行TypeScript代码。

  • 退货: {result: any, logs: string[]} 带有执行结果和捕获的控制台输出
  • 默认超时:30秒
getAllToolsTypeScriptInterfaces()

为IDE集成生成完整的TypeScript接口。

  • 退货:包含所有命名空间接口定义的字符串
searchTools(query: string) *(来自UtcpClient)*

使用自然语言查询发现工具。

  • 退货:一系列带有描述和界面的相关工具

静态方法

CodeModeUtcpClient.create(root_dir?, config?)

使用可选配置创建新的客户端实例。

CodeModeUtcpClient.AGENT_PROMPT_TEMPLATE

AI代理的生产就绪提示模板。

______________________________________________________________________

安全与性能

设计安全

  • Node.js虚拟机沙盒 –孤立的执行上下文
  • 没有文件系统访问权限 –仅通过注册服务器使用工具
  • 超时保护 –可配置的执行限制
  • 零网络接入 –没有暴露的外部依赖项或API密钥

性能优化

  • 最小内存占用 –VM上下文是轻量级的
  • 高效的工具缓存 –TypeScript接口自动缓存
  • 流媒体控制台输出 –无缓冲的实时日志捕获
  • 标识符净化 –优雅地处理无效的TypeScript标识符

______________________________________________________________________

开发经验

IDE集成

生成TypeScript定义以获得完整的IntelliSense支持:

# Generate tool interfaces  
const interfaces = await client.getAllToolsTypeScriptInterfaces();
await fs.writeFile('generated-tools.d.ts', interfaces);

# Add to tsconfig.json
{
  "compilerOptions": {
    "typeRoots": ["./generated-tools.d.ts"]
  }
}

调试和监控

生产部署的内置可观察性:

const { result, logs } = await client.callToolChain(userCode);

// Ship logs to your monitoring system
logs.forEach(log => {
  if (log.startsWith('[ERROR]')) monitoring.error(log);
  if (log.startsWith('[WARN]')) monitoring.warn(log);
});

______________________________________________________________________

基准方法

这 全面的Python学习 测试过的 16个现实场景 穿过:

  • 财务工作流程 (发票、费用跟踪)
  • DevOps运营 (部署、监控)
  • 数据处理 (分析、报告)
  • 业务自动化 (CRM、通知)

测试模型: 克劳德·海库,双子座闪电侠\ 定价依据: 0.25美元/百万输入,1.25美元/百万输出代币\ 规模: 1000个场景/天=代码模式每年节省9536美元

了解更多

许可证

MPL-2.0 –具有商业友好条款的开源。

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

代码执行Python本地部署AI代理工具调用TypeScript多协议支持

支持客户端

Claude DesktopClaude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

多步任务编排

把拆解、检索、执行串成一条链,模型按步骤调用工具。

长期上下文

把会话、笔记和知识放到外部存储,换个会话还能接着做。

接自有流程

把内部系统和模型连起来,让助手调用已有的工作流。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 已经适配 Claude Desktop、Claude,换客户端不用重新研究配置。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • 公开资料没有可直接复制的安装命令,第一次接入要自己找入口。
  • 需要自备访问 Token,没有凭据没法直接试。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。

更适合

  • 需要在AI代理场景里让模型直接调用外部能力的人。
  • 已经在用 Claude Desktop 的用户,接入路径最短。
  • 愿意照着官方文档一步步配环境的人。

不太适合

  • 暂时拿不到访问 Token的人。
  • 希望一条命令就装好、不想看文档的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Code Mode (code-mode)

MCP World · 本页

0未说明未标注1 个2026-05-17
Everything Claude Code

MCP World

0stdio有1 个2026-05-17
Filesystem 560c4363

MCP World

13未说明未标注2 个2026-05-17
Time 7365cb6d

MCP.so

2SSE有2 个2026-05-17
Server Everything (everything)

MCP World

11stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Code Mode (code-mode) 怎么安装?

公开目录没有给出可以直接复制的安装命令,需要按仓库 README里的步骤安装;装好后写进客户端的 MCP 配置再重启。

Code Mode (code-mode) 怎么在 Claude Desktop、Cursor 里配置?

它是传输方式未标注,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Code Mode (code-mode) 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Code Mode (code-mode) 需要 API Key 吗?

公开资料标注的认证方式是访问 Token,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Code Mode (code-mode) 支持哪些客户端?

公开资料标注支持 Claude Desktop、Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP