返回市场
<中文翻译>
deno-mcp服务器

<中文翻译> deno-mcp服务器

作者:Timtech4u7 星标更新:2025-03-15

项目介绍

Deno MCP 服务器

这是一个用于执行 Deno TypeScript/JavaScript 代码的模型上下文协议(MCP)服务器。此服务器允许像 Claude 这样的大语言模型安全地运行 Deno 代码,并具有可配置的权限。

特性

  • 执行 Deno TypeScript 或 JavaScript 代码
  • 配置权限(网络、读取、写入、环境变量、运行子进程等)
  • 启用/禁用不稳定特性
  • 获取 Deno 版本信息

使用前提

在使用此 MCP 服务器之前,请确保您已安装以下内容:

安装

  1. 克隆此仓库:
git clone https://github.com/Timtech4u/deno-mcp.git
cd deno-mcp
  1. 安装依赖项:
npm install
  1. 构建项目:
npm run build

配置

对于 Claude Desktop

  1. 打开您的 Claude Desktop 配置文件:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  2. 添加 Deno MCP 服务器配置:

{
  "mcpServers": {
    "deno": {
      "command": "node",
      "args": [
        "/absolute/path/to/deno-mcp/dist/index.js"
      ],
      "disabled": false,
      "autoApprove": [
        "execute_deno_code",
        "check_deno_version"
      ]
    }
  }
}
  1. /absolute/path/to/deno-mcp 替换为您克隆仓库的实际路径。

  2. 重启 Claude Desktop。

对于 Cline

  1. 打开您的 Cline MCP 设置文件:

    • macOS: ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
    • Windows: %APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json
  2. 添加 Deno MCP 服务器配置:

{
  "mcpServers": {
    "deno": {
      "command": "node",
      "args": [
        "/absolute/path/to/deno-mcp/dist/index.js"
      ],
      "disabled": false,
      "autoApprove": [
        "execute_deno_code",
        "check_deno_version"
      ]
    }
  }
}
  1. /absolute/path/to/deno-mcp 替换为您克隆仓库的实际路径。

  2. 重启 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 的标准库:

带有网络权限运行这段 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 });

可用工具

execute_deno_code

执行 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 数据已保存到文件");

check_deno_version

返回已安装的 Deno 版本信息。

通过 Claude 使用示例:

你能检查我安装了哪个版本的 Deno 吗?

故障排除

Deno 未找到

如果您看到类似“Deno 未安装”的错误,请确保 Deno 已安装并且在您的系统 PATH 中可用。

权限错误

如果您的代码因权限错误而失败,请确保您请求了适当的权限:

  • 网络请求:"net"
  • 文件系统:"read" 和/或 "write"
  • 环境变量:"env"
  • 运行子进程:"run"

超时错误

服务器对代码执行有一个 30 秒的超时。如果您的代码运行时间超过这个时间,它将被终止。

贡献

欢迎贡献!请随时提交一个拉取请求。

许可证

MIT