mcpField
M
mcp-devtools

mcp-devtools

ローカル
github.com/marin1321開発ツール326 週間前に更新

mcp-devtools について

mcp-devtoolsは、設定された範囲と権限のもとでローカル開発環境へのアクセスを提供する、開発者やAIエージェント向けのMCPサーバーです。ファイル、データベース、プロセス、OpenAPI操作をまとめ、リソース、プロンプト、プラグインAPIにも対応します。

主な機能

  1. 01ファイル、データベース、プロセス、APIのツール
  2. 02stdioと認証付きHTTPトランスポート
  3. 03MCPリソースとプロンプト
  4. 04カスタムツール用プラグインAPI
  5. 05パス範囲、コマンド許可リスト、読み取り専用SQL制御
  6. 06監査ログ、シークレットのマスキング、出力制限

活用シーン

  1. 01プロジェクト範囲内のファイルの読み取りと検索
  2. 02コマンドの実行やプロセス・ログの確認
  3. 03読み取り専用制御下でのデータベースクエリ
  4. 04OpenAPI仕様で制限されたホストへのAPI呼び出し

MCP 対応

クライアント向けに14個のツール、3個のMCPリソース、4個のMCPプロンプトを提供し、stdioまたは認証付きHTTPトランスポートに対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"marin1321-mcp-devtools": {
"command": "npx",
"args": [
"-y",
"@oscarmarin/mcp-devtools"
]
}
}
}
起動コマンドnpx -y @oscarmarin/mcp-devtools

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@oscarmarin/mcp-devtools1.0.1

ツール

15

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
messagestringはいサーバーがそのまま返す任意の文字列

詳細

mcp-devtools

npm version CI License: MIT Node.js

Model Context Protocolを通じて、AIネイティブな開発者ツールを提供します。 AI エージェント(Claude、Cursor、Copilot、Continue など)に、 ローカル開発環境への安全で範囲を限定したアクセスを提供する、本番品質のMCP サーバーです。

なぜ必要なのか

MCPエコシステムには、単一目的のチュートリアルやベンダーにロックインされた アダプターがあふれています。日常的な開発者ツール向けの、十分に保守され、 複数のツールに対応し、フレームワークに依存しない、本番品質のMCPパッケージはありません。

mcp-devtoolsは、14個のツール、3つのMCPリソース、 4つのMCPプロンプト、プラグインAPI、2種類のトランスポート方式(stdio + HTTP (認証付き))、および監査ログを備え、この課題を解決します。DailyBotの 本番環境で磨き上げたパターンを基に構築されています。

クイックスタート

stdio(デフォルト)
npx @oscarmarin/mcp-devtools

Claude Desktop(~/Library/Application Support/Claude/claude_desktop_config.json)に追加します。

{
  "mcpServers": {
    "devtools": {
      "command": "npx",
      "args": ["-y", "@oscarmarin/mcp-devtools"]
    }
  }
}

または、Cursor(~/.cursor/mcp.json)の場合も同じブロックを追加します。

HTTPトランスポート

プロジェクトのルートにmcp-devtools.jsonを作成します。

{
  "transport": "http",
  "port": 3333,
  "auth": {
    "token": "env:MCP_AUTH_TOKEN"
  }
}

次に、サーバーを起動します。

npx @oscarmarin/mcp-devtools

MCPエンドポイントはhttp://localhost:3333で利用できます。

ツール

グループツール
ファイルシステムread_file、write_file、list_directory、search_files、get_file_info
データベースquery_db、list_tables、describe_table
プロセスrun_command、read_logs、get_env、list_processes
OpenAPIparse_openapi、call_api

ツールごとのリファレンス: docs/tools/。

MCPリソース

サーバーは、MCPリソースを通じて読み取り専用のデータを公開します。

URI説明
devtools://toolsスキーマ付きの、登録済みツールの全カタログ
devtools://server-infoサーバーのバージョン、トランスポート、対象範囲、ツール数

MCPプロンプト

一般的な開発ワークフロー向けに厳選されたプロンプトテンプレートです。

プロンプト説明
debug_errormcp-devtoolsのツールを使ってエラーを体系的にデバッグします
code_reviewファイルをレビューして、バグ、セキュリティ上の問題、コード品質を確認します
explore_codebaseプロジェクトの構造と規約を調査して理解します
refactor_function読みやすさ、パフォーマンス、テスト容易性を高めるために関数をリファクタリングします

プラグインAPI

フォークせずに、カスタムツールでmcp-devtoolsを拡張できます。

設定ベース(起動時に読み込み):

{
  "plugins": ["./my-tools.js", "@scope/mcp-plugin-foo"]
}

各プラグインモジュールは、ツール定義の配列をデフォルトエクスポートします。

import { defineTool } from "@oscarmarin/mcp-devtools";
import { z } from "zod";

export default [
  defineTool({
    name: "my_tool",
    description: "Does something useful",
    inputSchema: z.object({ input: z.string() }),
    handler: async (args, config) => ({
      ok: true,
      data: { result: args.input.toUpperCase() },
    }),
  }),
];

設定

設定はcosmiconfigによって、 mcp-devtools.json、.mcp-devtoolsrc、またはpackage.jsonのmcpDevtoolsキーから読み込まれます。完全なスキーマについては、 mcp-devtools.example.jsonと docs/configuration.mdを参照してください。

設定なしでの利用にも対応しています。設定ファイルを指定せずにnpx @oscarmarin/mcp-devtoolsを実行すると、 スキーマのデフォルト値が使われます(RNF-05)。

セキュリティ

回避できない4つの制御:

  1. ファイルシステムのスコープ境界。 すべてのパスを絶対パスに解決し、config.scope と照合します。スコープ外に出るシンボリックリンクは SCOPE_VIOLATION をスローします。
  2. コマンドの許可リスト。 run_command は、ベース名が allowedCommands に含まれるバイナリのみを実行します。spawn(file, args)(シェルなし)を使って呼び出すため、コマンド引数を介したシェルインジェクションは構造上不可能です。
  3. データベースの読み取り専用モード。 readOnly: true の場合、すべての SQL を解析し、INSERT/UPDATE/DELETE/DROP/CREATE/GRANT を拒否します。PostgreSQL では、クエリを BEGIN READ ONLY ... ROLLBACK で実行します。
  4. HTTP Bearer 認証。 auth.token が設定されている場合、すべての HTTP リクエストに Authorization: Bearer <token> を含める必要があります。タイミング攻撃を防ぐため、比較には crypto.timingSafeEqual を使用します。

追加の安全対策:

  • 監査ログ。 各ツール呼び出しについて、実行時間、サニタイズ済みの入力、結果ステータスを記録するオプトイン方式の NDJSON ログです。
  • シークレットのマスキング。 get_env は、一般的なシークレットのパターン(SECRET、TOKEN、PASSWORD、KEY など)に一致する値を自動的にマスキングします。
  • OpenAPI のホスト制限。 call_api は、仕様の servers 配列に記載されたホストにのみリクエストを送信します。
  • 出力の上限。 すべてのツールは、コンテキストが過剰に増えるのを防ぐため、出力に上限を設けています(コマンドは100KB、ファイルは1MB、クエリは200行)。

コントリビューション

git clone https://github.com/marin1321/mcp-devtools.git
cd mcp-devtools
npm install
npm run dev       # tsup --watch
npm run test      # vitest
npm run typecheck # tsc --noEmit
npm run lint      # eslint .

ワークフローの全容については CONTRIBUTING.md を、コミュニティのガイドラインについては CODE_OF_CONDUCT.md をご覧ください。

ライセンス

MIT © Oscar Humberto Marin Molina — oscarmarindev.com

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。