使用说明
Deno MCP服务器
用于执行Deno TypeScript/JavaScript代码的模型上下文协议(MCP)服务器。此服务器允许像Claude这样的LLM使用可配置的权限安全地运行Deno代码。
特性
- 执行Deno TypeScript或JavaScript代码
- 配置权限(网络、读、写、环境、运行等)
- 启用/禁用不稳定功能
- 获取Deno版本信息
先决条件
在使用此MCP服务器之前,请确保您已:
安装
- 克隆此存储库:
git clone https://github.com/Timtech4u/deno-mcp.git
cd deno-mcp
- 安装依赖项:
npm install
- 构建项目:
npm run build
配置
适用于克劳德桌面
-
打开您的Claude Desktop配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
添加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 MCP设置文件:
- macOS:
~/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
- macOS:
-
添加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代码:
Can you run this Deno code for me?
console.log("Hello from Deno!");
console.log("Version:", Deno.version);
console.log("Current directory:", Deno.cwd());
具有网络权限
要发出HTTP请求,您需要授予网络权限:
Run this Deno code with network permissions:
async function fetchData() {
const response = await fetch("https://jsonplaceholder.typicode.com/todos/1");
const data = await response.json();
console.log("Fetched data:", data);
}
await fetchData();
具有文件系统权限
要读取或写入文件,您需要授予文件系统权限:
Run this Deno code with file system permissions:
const text = "Hello, Deno File System!";
await Deno.writeTextFile("./hello.txt", text);
console.log("File written successfully");
const content = await Deno.readTextFile("./hello.txt");
console.log("File content:", content);
具有多个权限
您可以组合多个权限:
Run this Deno code with network and file system permissions:
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("Todo data saved to file");
使用Deno标准库
您可以使用Deno的标准库:
Run this Deno code with network permissions:
import { serve } from "https://deno.land/std@0.192.0/http/server.ts";
const handler = (req) => new Response("Hello, Deno Server!");
console.log("HTTP server running on http://localhost:8000");
serve(handler, { port: 8000 });
可用工具
execute_deno_code
执行Deno Types/JavaScript代码。
参数:
code(string,必填):要执行的Deno代码permissions(字符串数组,可选):要授予的权限列表(例如,“net”、“read”、“write”、“env”、“run”等)unstable(boolean,可选):是否启用不稳定功能typescript(boolean,可选):代码是TypeScript(true)还是JavaScript(false)
Claude的示例用法:
Can you run this Deno code with permissions for network and file system access?
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("GitHub data for Deno saved to file");
check_deno_version
返回有关已安装的Deno版本的信息。
Claude的示例用法:
Can you check what version of Deno I have installed?
故障排除
找不到Deno
如果您看到“Deno未安装”之类的错误,请确保Deno已安装并在系统PATH中可用。
权限错误
如果您的代码因权限错误而失败,请确保您正在请求相应的权限:
- 网络请求:
"net" - 文件系统:
"read"和"write" - 环境变量:
"env" - 正在运行子流程:
"run"
超时错误
服务器有30秒的代码执行超时时间。如果你的代码花费的时间超过这个时间,它将被终止。
贡献
欢迎投稿!请随时提交拉取请求。
许可证
麻省理工学院