Token导航 LogoToken导航TokenDH.com
Codebench MCP logo
运维云端stdio官方级别未说明来源级核验

Codebench MCP

MCP Server

提供现代JavaScript运行时环境的执行服务器,支持HTTP服务、Fetch API、定时器、缓存和加密等功能。

工具数

0

提示词数

0

GitHub Stars

3

资源数

0
Go云端部署Docker

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

mark3labs

提供方

mark3labs

最后核验

2026/5/17 20:20

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run -i --rm ghcr.io/mark3labs/codebench-mcp:latest

详细介绍

JavaScript执行器MCP服务器

此MCP服务器提供具有现代运行时的JavaScript执行功能。

特性

executeJS 该工具提供:

  • 控制台API: console.log(), console.error(), console.warn() (内置)
  • HTTP服务器: serve() 用于服务器创建(通过 require('http/server'))
  • 获取API:现代 fetch() 具有请求、响应、标头、表单数据(全局)
  • 计时器: setTimeout(), setInterval(), clearTimeout(), clearInterval() (全球)
  • 缓冲:用于二进制数据处理的缓冲区、Blob、文件API(全局)
  • 加密:加密函数-哈希、加密、HMAC(通过 require('crypto'))
  • 缓存:支持TTL的内存缓存(通过 require('cache'))
  • 附加模块:编码(全局),url(全局)

入门指南

安装

使用Go安装

go install github.com/mark3labs/codebench-mcp@latest

用法

作为独立服务器

codebench-mcp

具有模块配置

# Enable only specific modules
codebench-mcp --enabled-modules http,fetch

# Disable specific modules (enable all others)
codebench-mcp --disabled-modules timers

# Set custom execution timeout (in seconds)
codebench-mcp --execution-timeout 600  # 10 minutes

# Show help
codebench-mcp --help

可用模块:

  • http -HTTP服务器创建和客户端请求(require('HTTP/server'))
  • fetch -现代获取API,包括请求、响应、头和FormData(全球可用)
  • timers -setTimeout、setInterval、clearTimeout、clearInterval(全局可用)
  • buffer -用于二进制数据处理的缓冲区、Blob、文件API(全局可用)
  • cache -支持TTL的内存缓存(必需(“缓存”))
  • crypto -加密函数(散列、加密、HMAC)(必需(‘crypto’))
  • encoding -用于文本编码/解码的TextEncoder、TextDecoder(全球可用)
  • url -URL和URLSearchParams API(全球可用)

默认情况下,所有模块均已启用。您可以使用CLI标志选择性地启用或禁用模块。

注:executeJS 工具描述会动态更新,仅显示已启用的模块,并包括每个模块提供的详细信息。

作为Go项目中的库

package main

import (
	"log"

	"github.com/mark3labs/codebench-mcp/server"
	"github.com/mark3labs/mcp-go/server"
)

func main() {
	// Create a new JavaScript executor server
	jss, err := server.NewJSServer()
	if err != nil {
		log.Fatalf("Failed to create server: %v", err)
	}

	// Serve requests
	if err := server.ServeStdio(jss); err != nil {
		log.Fatalf("Server error: %v", err)
	}
}

使用InProcessTransport

package main

import (
	"context"
	"log"

	"github.com/mark3labs/codebench-mcp/server"
	"github.com/mark3labs/mcp-go/client"
	"github.com/mark3labs/mcp-go/mcp"
)

func main() {
	// Create the JS server with custom module configuration
	config := server.ModuleConfig{
		EnabledModules: []string{"fetch", "crypto", "buffer"},
	}
	jsServer, err := server.NewJSServerWithConfig(config)
	if err != nil {
		log.Fatalf("Failed to create server: %v", err)
	}

	// Create an in-process client
	mcpClient, err := client.NewInProcessClient(jsServer)
	if err != nil {
		log.Fatalf("Failed to create client: %v", err)
	}
	defer mcpClient.Close()

	// Start the client
	if err := mcpClient.Start(context.Background()); err != nil {
		log.Fatalf("Failed to start client: %v", err)
	}

	// Initialize the client
	initRequest := mcp.InitializeRequest{}
	initRequest.Params.ProtocolVersion = mcp.LATEST_PROTOCOL_VERSION
	initRequest.Params.ClientInfo = mcp.Implementation{
		Name:    "my-app",
		Version: "1.0.0",
	}
	_, err = mcpClient.Initialize(context.Background(), initRequest)
	if err != nil {
		log.Fatalf("Failed to initialize: %v", err)
	}

	// Execute JavaScript code
	callRequest := mcp.CallToolRequest{}
	callRequest.Params.Name = "executeJS"
	callRequest.Params.Arguments = map[string]any{
		"code": `
			console.log("Hello from JavaScript!");
			const result = Math.sqrt(16);
			console.log("Square root of 16 is:", result);
			result;
		`,
	}

	result, err := mcpClient.CallTool(context.Background(), callRequest)
	if err != nil {
		log.Fatalf("Failed to call tool: %v", err)
	}

	if result.IsError {
		log.Printf("JavaScript execution error: %v", result.Content)
	} else {
		log.Printf("JavaScript execution result: %v", result.Content)
	}
}

使用模型上下文协议

要将此服务器与支持MCP的应用程序集成,请执行以下操作:

{
  "mcpServers": {
    "javascript": {
      "command": "codebench-mcp"
    }
  }
}

码头工人

使用Docker运行

您可以使用Docker运行JavaScript Executor MCP服务器:

docker run -i --rm ghcr.io/mark3labs/codebench-mcp:latest

使用MCP配置Docker

要将Docker镜像与支持MCP的应用程序集成,请执行以下操作:

{
  "mcpServers": {
    "javascript": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/mark3labs/codebench-mcp:latest"
      ]
    }
  }
}

工具参考

executeJS

使用现代运行时环境执行JavaScript代码。

参数:

  • code (必填):要执行的JavaScript代码

配置:

  • 默认执行超时:5分钟
  • 可通过以下方式配置 --execution-timeout CLI标志

例子:

console.log("Hello, World!");

// Basic JavaScript execution
const result = 2 + 3;
console.log('Result:', result);

// Fetch API (available globally when enabled)
const response = await fetch('https://api.example.com/data');
const data = await response.json();

// HTTP server (require import)
const serve = require('http/server');
serve(8000, async (req) => {
  return new Response('Hello World');
});

// Cache operations (require import)
const cache = require('cache');
cache.set('key', 'value');
console.log(cache.get('key'));

// Crypto operations (require import)
const crypto = require('crypto');
const hash = crypto.md5('hello').hex();
console.log('MD5 hash:', hash);

// Timers (available globally)
setTimeout(() => console.log('Hello after 1 second'), 1000);

// Buffer operations (available globally)
const buffer = Buffer.from('hello', 'utf8');
console.log(buffer.toString('base64'));

// URL operations (available globally)
const url = new URL('https://example.com/path?param=value');
console.log('Host:', url.host);
console.log('Pathname:', url.pathname);

局限性

  • 没有fs或进程模块 -文件系统和进程API在运行时不可用
  • 模块访问方式各不相同 -有些模块是全局的(fetch,http),其他模块可能需要require()
  • 每次执行都会创建一个新的VM -为了隔离,每次执行都以干净状态开始
  • 模块过滤 -配置存在,但实际运行时过滤未完全实现
  • 执行超时 -JavaScript执行受到可配置超时的限制(默认值:5分钟)

建筑

go build -o codebench-mcp .

许可证

请参阅 许可证 文件以获取详细信息。

目录标签

目录标签

Go云端部署DockerJavaScript执行本地部署HTTP服务FetchAPI加密功能缓存管理

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

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

来源信息

继续浏览同类 MCP