create-mcp-servers について
Claude Code で MCP サーバーを作成・保守する開発者向けスキルです。操作数に応じた構成選択に加え、認証情報の安全管理、OAuth、レスポンス最適化、検証の手順を扱います。
主な機能
- 01新規作成・更新・トラブル対応の手順
- 02操作数に応じた構成選択
- 03Python と TypeScript のテンプレート
- 04環境変数と認証情報の安全管理
- 05OAuth、レスポンス最適化、検証の案内
活用シーン
- 01API を基に MCP サーバーを構築
- 02既存の MCP サーバーを拡張
- 03接続や実行時の問題を診断
MCP 対応
Claude クライアントにツール、リソース、プロンプトを公開する MCP サーバーの作成を支援し、Claude Code と Claude Desktop への導入手順も扱います。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ glittercowboy/ taches-cc-resources --skill create-mcp-serversインストール後、Claude Code で/create-mcp-serversを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/adaptive-questioning-guide.mdapi-research-template.mdauto-installation.mdbest-practices.mdcreation-workflow.mdlarge-api-pattern.mdoauth-implementation.mdpython-implementation.mdresponse-optimization.mdtesting-and-deployment.mdtools-and-resources.mdtraditional-pattern.mdtypescript-implementation.mdvalidation-checkpoints.mdscripts/setup-python-project.shsetup-typescript-project.shtemplates/operations.jsonpython-server.pytypescript-server.tsworkflows/create-new-server.mdtroubleshoot-server.mdupdate-existing-server.md詳細
<essential_principles>
<the_5_rules> すべての MCP サーバーは、次のルールに従う必要があります。
- シークレットをハードコードしない - 設定では
${VAR}展開を使用し、コードでは環境変数を使用します cwdプロパティを使用する - 依存関係を分離します(引数に--cwdを指定するのではありません)- 常に絶対パスを使用する -
which uvでパスを確認し、相対パスは使用しません - ディレクトリごとにサーバーを1つ配置する -
~/Developer/mcp/{server-name}/ - Python では
uvを使用する - pip より優れており、仮想環境を自動で処理します </the_5_rules>
<security_checklist>
- ユーザーにシークレットをチャットに貼り付けるよう求めないでください
- 認証情報には常に環境変数を使用してください
- 設定では ${VAR} 展開を使用してください
- ユーザーがターミナルで実行する正確なコマンドを提示してください
- 値を表示せずに、環境変数の有無を確認してください
- API キーをコードや設定にハードコードしないでください </security_checklist>
<architecture_decision> 操作の数によってアーキテクチャが決まります。
- 操作が1~2個 → 従来型パターン(フラットなツール)
- 操作が3個以上 → オンデマンド検出パターン(メタツール)
従来型:各操作を個別のツールにします オンデマンド型:4つのメタツール(discover、get_schema、execute、continue)+ operations.json </architecture_decision>
MCP サーバーが公開するもの: - **ツール**:Claude が呼び出せる関数(API リクエスト、ファイル操作、計算) - **リソース**:Claude が読み取れるデータ(ファイル、データベースのレコード、API レスポンス) - **プロンプト**:引数付きの再利用可能なプロンプトテンプレート標準の配置場所:~/Developer/mcp/{server-name}/
</essential_principles>
ユーザーの意図に基づいて、適切なワークフローに振り分けます。コンテキストが提示されていない(説明なしでスキルが呼び出された場合): AskUserQuestion を使用します:
- header:「モード」
- question:「何をしますか?」
- options:
- 「新しい MCP サーバーを作成する」→ workflows/create-new-server.md
- 「既存の MCP サーバーを更新する」→ workflows/update-existing-server.md
- 「サーバーのトラブルシューティングを行う」→ workflows/troubleshoot-server.md
コンテキストが提示されている(ユーザーが希望する内容を説明した場合): workflows/create-new-server.md に直接振り分けます
<workflows_index>
| ワークフロー | 目的 |
|---|---|
| create-new-server.md | 初回確認から検証までの全8ステップのワークフロー |
| update-existing-server.md | 既存サーバーの変更または拡張 |
| troubleshoot-server.md | 接続や実行時の問題の診断と修正 |
| </workflows_index> |
<templates_index>
| テンプレート | 目的 |
|---|---|
| python-server.py | Python 用の従来型パターンのひな形 |
| typescript-server.ts | TypeScript 用の従来型パターンのひな形 |
| operations.json | オンデマンド検出用の操作定義 |
| </templates_index> |
<scripts_index>
| スクリプト | 目的 |
|---|---|
| setup-python-project.sh | uv を使用して Python MCP プロジェクトを初期化 |
| setup-typescript-project.sh | npm を使用して TypeScript MCP プロジェクトを初期化 |
| </scripts_index> |
<references_index> コアワークフロー:
- creation-workflow.md - 正確なコマンドを含む、手順をすべて記載したワークフロー
アーキテクチャパターン:
- traditional-pattern.md - 操作が1~2個の場合(フラットなツール)
- large-api-pattern.md - 操作が3個以上の場合(オンデマンド検出)
言語別の実装:
- python-implementation.md - 非同期パターン、型ヒント
- typescript-implementation.md - 型安全性、SDK の機能
高度なトピック:
- oauth-implementation.md - stdio 分離を使用した OAuth
- response-optimization.md - フィールドの切り詰め、ページネーション
- tools-and-resources.md - Resources API、プロンプト、ストリーミング
- testing-and-deployment.md - 単体テスト、パッケージ化、公開
- validation-checkpoints.md - すべての検証チェック
- adaptive-questioning-guide.md - 初回確認用の質問テンプレート
- api-research-template.md - API 調査ドキュメントの形式 </references_index> <quick_reference>
# List servers
claude mcp list
# Add server (Python)
claude mcp add --transport stdio <name> \
--env API_KEY='${API_KEY}' \
-- uv --directory ~/Developer/mcp/<name> run python -m src.server
# Add server (TypeScript)
claude mcp add --transport stdio <name> \
--env API_KEY='${API_KEY}' \
-- node ~/Developer/mcp/<name>/build/index.js
# Remove server
claude mcp remove <name>
# Check logs
tail -f ~/Library/Logs/Claude/mcp-server-<name>.log
# Find paths
which uv && which node && which python
</quick_reference>
<troubleshooting_quick>
サーバーが表示されない場合: claude mcp list を確認し、~/.claude/settings.json の設定を確認してください。
「command not found」と表示される場合: which uv / which node で確認した絶対パスを使用してください。
環境変数が見つからない場合:
echo $MY_API_KEY # Check if set
echo 'export MY_API_KEY="value"' >> ~/.zshrc && source ~/.zshrc
会話内にシークレットが表示された場合: 作業を中止してください。会話を削除し、認証情報をローテーションしてください。チャットにシークレットを貼り付けないでください。
トラブルシューティングの詳細:workflows/troubleshoot-server.md </troubleshooting_quick>
<success_criteria> 本番環境に対応した MCP サーバーには、以下が備わっています:
- Claude Code の設定が有効である(
claude mcp listに ✓ Connected と表示される) - Claude Desktop の設定が有効である
- 環境変数が ~/.zshrc で安全に設定されている
- アーキテクチャが操作数に適合している
- 該当する場合、OAuth stdio が分離されている
- リスト/検索操作の応答が最適化されている
- すべての検証チェックポイントに合格している
- ログにエラーがない </success_criteria>