mcp-devtools について
mcp-devtoolsは、設定された範囲と権限のもとでローカル開発環境へのアクセスを提供する、開発者やAIエージェント向けのMCPサーバーです。ファイル、データベース、プロセス、OpenAPI操作をまとめ、リソース、プロンプト、プラグインAPIにも対応します。
主な機能
- 01ファイル、データベース、プロセス、APIのツール
- 02stdioと認証付きHTTPトランスポート
- 03MCPリソースとプロンプト
- 04カスタムツール用プラグインAPI
- 05パス範囲、コマンド許可リスト、読み取り専用SQL制御
- 06監査ログ、シークレットのマスキング、出力制限
活用シーン
- 01プロジェクト範囲内のファイルの読み取りと検索
- 02コマンドの実行やプロセス・ログの確認
- 03読み取り専用制御下でのデータベースクエリ
- 04OpenAPI仕様で制限されたホストへのAPI呼び出し
MCP 対応
クライアント向けに14個のツール、3個のMCPリソース、4個のMCPプロンプトを提供し、stdioまたは認証付きHTTPトランスポートに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
15掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| message | string | はい | サーバーがそのまま返す任意の文字列 |
詳細
mcp-devtools
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 |
| OpenAPI | parse_openapi、call_api |
ツールごとのリファレンス: docs/tools/。
MCPリソース
サーバーは、MCPリソースを通じて読み取り専用のデータを公開します。
| URI | 説明 |
|---|---|
devtools://tools | スキーマ付きの、登録済みツールの全カタログ |
devtools://server-info | サーバーのバージョン、トランスポート、対象範囲、ツール数 |
MCPプロンプト
一般的な開発ワークフロー向けに厳選されたプロンプトテンプレートです。
| プロンプト | 説明 |
|---|---|
debug_error | mcp-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つの制御:
- ファイルシステムのスコープ境界。 すべてのパスを絶対パスに解決し、
config.scopeと照合します。スコープ外に出るシンボリックリンクはSCOPE_VIOLATIONをスローします。 - コマンドの許可リスト。
run_commandは、ベース名がallowedCommandsに含まれるバイナリのみを実行します。spawn(file, args)(シェルなし)を使って呼び出すため、コマンド引数を介したシェルインジェクションは構造上不可能です。 - データベースの読み取り専用モード。
readOnly: trueの場合、すべての SQL を解析し、INSERT/UPDATE/DELETE/DROP/CREATE/GRANTを拒否します。PostgreSQL では、クエリをBEGIN READ ONLY ... ROLLBACKで実行します。 - 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
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。