brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
analyze-codebase-for-mcp任意のコードベースを分析し、MCPツールとして公開するのに適した関数、API、 データソースを特定し、ツール仕様書を作成する。既存プロジェクトのMCPサーバーを 計画する時、AI対応ツールサーフェスとしてラップする前にコードベースを監査する時、 コードベースの機能とMCP経由で既に公開されている機能を比較する時、 scaffold-mcp-serverに渡すツール仕様を生成する時に使用する。
Independent GitHub snapshot · Automated classification · Original documentation governs
コードベースをスキャンして、MCPツール公開の候補となる関数、RESTエンドポイント、CLIコマンド、データアクセスパターンを発見し、構造化されたツール仕様書を作成する。
scaffold-mcp-serverに渡すツール仕様書を生成する時1.1. Globを使用してディレクトリツリーをマッピングし、ソースディレクトリに焦点を当てる:
src/**/*.{ts,js,py,R,go,rs} ソースファイル用**/routes/**、**/api/**、**/controllers/** エンドポイント定義用**/cli/**、**/commands/** CLIエントリポイント用**/package.json、**/setup.py、**/DESCRIPTION 依存関係メタデータ用1.2. ファイルを役割別に分類する:
1.3. 総ファイル数、コード行数、エクスポートされたシンボルを数えてプロジェクトの規模を把握する。
期待結果: 役割アノテーション付きの分類されたファイルインベントリ。
失敗時: コードベースが大きすぎる場合(10,000ファイル以上)、ドメインフォーカス入力を使用して特定のディレクトリやモジュールにスキャンを絞る。ソースファイルが見つからない場合、ルートパスと言語パラメータを確認する。
2.1. Grepを使用してエクスポートされた関数とパブリックAPIを見つける:
export (async )?function、export default、module.exports_プレフィックスのない関数、@app.route、@router#' @export roxygenタグ2.2. 各候補関数について以下を抽出する:
2.3. REST APIについては追加で以下を抽出する:
2.4. 潜在的な有用性でソートされた候補リストを構築する(パブリック、ドキュメント済み、型付き関数を優先)。
期待結果: 抽出されたメタデータ付きの20-100個の候補関数/エンドポイントのリスト。
失敗時: 候補が少ない場合、パブリックにできる内部関数も含めて検索を広げる。ドキュメントが不足している場合、出力にリスクとしてフラグを立てる。
3.1. 各候補について、MCPツール基準に対して評価する:
3.2. 各候補を1-5のスケールでスコアリングする:
3.3. スコア3以上の候補にフィルタリングする。スコア2の項目はリファクタリングが必要な「将来の候補」としてフラグを立てる。
期待結果: 各候補の適合性根拠付きのスコアリングおよびフィルタリングされた候補リスト。
失敗時: ほとんどの候補が3未満のスコアの場合、MCP公開前にコードベースのリファクタリングが必要な可能性がある。ギャップを文書化し、具体的な改善(型の追加、純粋関数の抽出、副作用のラッピング)を推奨する。
4.1. 選択された各候補(スコア >= 3)について、ツール仕様を起草する:
- name: tool_name
description: >
One-line description of what the tool does.
source_function: module.function_name
source_file: src/path/to/file.ts:42
parameters:
param_name:
type: string | number | boolean | object | array
description: What this parameter controls
required: true | false
default: value_if_optional
returns:
type: string | object | array
description: What the tool returns
side_effects:
- description of any side effect
estimated_latency: fast | medium | slow
suitability_score: 5
4.2. ツールを論理的なカテゴリにグループ化する(例: 「データクエリ」「ファイル操作」「分析」「設定」)。
4.3. ツール間の依存関係を特定する(例: 「list_datasets」は「query_dataset」の前に呼ぶべき)。
4.4. ラッパーが必要なツールがあるか判断する:
期待結果: カテゴリ、依存関係、ラッパーノート付きの完全なYAMLツール仕様。
失敗時: ツール仕様が曖昧な場合、ステップ2に戻ってソースコードからより多くの詳細を抽出する。パラメータ型が推論できない場合、手動レビュー用にフラグを立てる。
5.1. 以下のセクションを含む最終仕様書を作成する:
5.2. mcp-tool-spec.yml(機械可読)として保存し、オプションでmcp-tool-spec.md(人間可読のサマリー)も保存する。
5.3. 既存のMCPサーバーが提供された場合、ギャップ分析セクションを含める:
期待結果: scaffold-mcp-serverで利用可能な完全なツール仕様書。
失敗時: ドキュメントが合理的なサイズを超える場合(200ツール以上)、クロスリファレンス付きのモジュールに分割する。コードベースに適切な候補がない場合、代わりにリファクタリング推奨付きの「準備状況評価」ドキュメントを作成する。
Grepでファイル書き込み、ネットワーク呼び出し、データベース変更を注意深く監査する。scaffold-mcp-server - 出力仕様を使用して動作するMCPサーバーを生成するbuild-custom-mcp-server - 手動サーバー実装のリファレンスconfigure-mcp-server - 結果のサーバーをClaude Code/Desktopに接続するtroubleshoot-mcp-connection - サーバーデプロイ後の接続性をデバッグするreview-software-architecture - ツールサーフェス設計のアーキテクチャレビューsecurity-audit-codebase - 関数を外部に公開する前のセキュリティ監査