这是一个用于执行 Deno TypeScript/JavaScript 代码的模型上下文协议(MCP)服务器。此服务器允许像 Claude 这样的大语言模型安全地运行 Deno 代码,并具有可配置的权限。
在使用此 MCP 服务器之前,请确保您已安装以下内容:
git clone https://github.com/Timtech4u/deno-mcp.git
cd deno-mcp
npm install
npm run build
打开您的 Claude Desktop 配置文件:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json添加 Deno MCP 服务器配置:
{
"mcpServers": {
"deno": {
"command": "node",
"args": [
"/absolute/path/to/deno-mcp/dist/index.js"
],
"disabled": false,
"autoApprove": [
"execute_deno_code",
"check_deno_version"
]
}
}
}
将 /absolute/path/to/deno-mcp 替换为您克隆仓库的实际路径。
重启 Claude Desktop。
打开您的 Cline MCP 设置文件:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json添加 Deno MCP 服务器配置:
{
"mcpServers": {
"deno": {
"command": "node",
"args": [
"/absolute/path/to/deno-mcp/dist/index.js"
],
"disabled": false,
"autoApprove": [
"execute_deno_code",
"check_deno_version"
]
}
}
}
将 /absolute/path/to/deno-mcp 替换为您克隆仓库的实际路径。
重启 Cline 或重新加载窗口。
配置完成后,您可以请求 Claude 以多种方式运行 Deno 代码。这里有一些示例:
您可以运行不需要特殊权限的简单 Deno 代码:
你能帮我运行这段 Deno 代码吗?
console.log("来自 Deno 的问候!");
console.log("版本:", Deno.version);
console.log("当前目录:", Deno.cwd());
要进行 HTTP 请求,需要授予网络权限:
带有网络权限运行这段 Deno 代码:
async function fetchData() {
const response = await fetch("https://jsonplaceholder.typicode.com/todos/1");
const data = await response.json();
console.log("获取的数据:", data);
}
await fetchData();
要读取或写入文件,需要授予文件系统权限:
带有文件系统权限运行这段 Deno 代码:
const text = "你好,Deno 文件系统!";
await Deno.writeTextFile("./hello.txt", text);
console.log("文件写入成功");
const content = await Deno.readTextFile("./hello.txt");
console.log("文件内容:", content);
您可以组合多种权限:
带有网络和文件系统权限运行这段 Deno 代码:
const response = await fetch("https://jsonplaceholder.typicode.com/todos/1");
const data = await response.json();
await Deno.writeTextFile("./todo.json", JSON.stringify(data, null, 2));
console.log("待办事项数据保存到文件");
您可以使用 Deno 的标准库:
带有网络权限运行这段 Deno 代码:
import { serve } from "https://deno.land/std@0.192.0/http/server.ts";
const handler = (req) => new Response("你好,Deno 服务器!");
console.log("HTTP 服务器正在运行于 http://localhost:8000");
serve(handler, { port: 8000 });
执行 Deno TypeScript/JavaScript 代码。
参数:
code (字符串,必需):要执行的 Deno 代码permissions (字符串数组,可选):要授予的权限列表(例如,“net”,“read”,“write”,“env”,“run”等)unstable (布尔值,可选):是否启用不稳定特性typescript (布尔值,可选):代码是 TypeScript (true) 还是 JavaScript (false)通过 Claude 使用示例:
你能运行这段带有网络和文件系统访问权限的 Deno 代码吗?
const response = await fetch("https://api.github.com/users/denoland");
const data = await response.json();
await Deno.writeTextFile("./deno-github.json", JSON.stringify(data, null, 2));
console.log("Deno 的 GitHub 数据已保存到文件");
返回已安装的 Deno 版本信息。
通过 Claude 使用示例:
你能检查我安装了哪个版本的 Deno 吗?
如果您看到类似“Deno 未安装”的错误,请确保 Deno 已安装并且在您的系统 PATH 中可用。
如果您的代码因权限错误而失败,请确保您请求了适当的权限:
"net""read" 和/或 "write""env""run"服务器对代码执行有一个 30 秒的超时。如果您的代码运行时间超过这个时间,它将被终止。
欢迎贡献!请随时提交一个拉取请求。
MIT