Deno MCP Server について
Deno MCP Serverは、権限を設定してLLMにDenoのTypeScriptまたはJavaScriptを実行させます。Denoのバージョン確認や、不安定機能の有効化にも対応します。
主な機能
- 01TypeScriptまたはJavaScriptの実行
- 02ランタイム権限の設定
- 03不安定機能の有効化
- 04Denoバージョンの確認
活用シーン
- 01アシスタント経由でDenoのコード片を実行
- 02コード実行時にネットワークアクセスを許可
- 03権限を付与してファイルを読み書き
- 04インストール済みDenoのバージョンを確認
MCP 対応
このMCPサーバーは、指定した権限でDenoコードを実行するツールと、インストール済みDenoのバージョンを取得するツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Deno MCP サーバー
Deno TypeScript/JavaScript コードを実行するための Model Context Protocol(MCP)サーバーです。このサーバーを使うと、Claude などの LLM が、設定可能な権限のもとで Deno コードを安全に実行できます。
機能
- Deno TypeScript または JavaScript コードを実行
- 権限を設定(net、read、write、env、run など)
- unstable 機能を有効化/無効化
- Deno のバージョン情報を取得
前提条件
この MCP サーバーを使用する前に、以下を準備してください。
- Node.js 16 以降をインストール
- Deno をインストール
- Claude Desktop または Cline をインストール
インストール
- このリポジトリをクローンします。
git clone https://github.com/Timtech4u/deno-mcp.git
cd deno-mcp
- 依存関係をインストールします。
npm install
- プロジェクトをビルドします。
npm run build
設定
Claude Desktop の場合
-
Claude Desktop の設定ファイルを開きます。
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%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を、リポジトリをクローンした実際のパスに置き換えます。 -
Claude Desktop を再起動します。
Cline の場合
-
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
- 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/[email protected]/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 TypeScript/JavaScript コードを実行します。
パラメーター:
code(string、必須):実行する Deno コードpermissions(文字列の配列、省略可能):付与する権限の一覧(例:「net」、「read」、「write」、「env」、「run」など)unstable(boolean、省略可能):unstable 機能を有効にするかどうか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 is not installed」のようなエラーが表示される場合は、Deno がインストールされており、システムの PATH から利用できることを確認してください。
権限エラー
コードの実行時に権限エラーが発生する場合は、適切な権限を要求していることを確認してください。
- ネットワークリクエスト:「net」
- ファイルシステム:「read」および/または「write」
- 環境変数:「env」
- サブプロセスの実行:「run」
タイムアウトエラー
コードの実行には 30 秒のタイムアウトが設定されています。コードの実行にそれ以上かかる場合、終了されます。
コントリビューション
コントリビューションを歓迎します。お気軽にプルリクエストを送信してください。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。