mcp-developer
MCPサーバーやクライアントの構築、デバッグ、拡張時に使用します。AIシステムを外部ツールやデータソースと接続する際に、ツールハンドラーの実装、リソースプロバイダーの設定、stdio/HTTP/SSEトランスポート層のセットアップ、ZodやPydanticを使用したスキーマ検証、プロトコル準拠性の問題のデバッグ、TypeScriptやPython SDKを用いたMCPサーバー/クライアントプロジェクト全体のスカッフォルディングなどが実行できます。
description の原文を見る
Use when building, debugging, or extending MCP servers or clients that connect AI systems with external tools and data sources. Invoke to implement tool handlers, configure resource providers, set up stdio/HTTP/SSE transport layers, validate schemas with Zod or Pydantic, debug protocol compliance issues, or scaffold complete MCP server/client projects using TypeScript or Python SDKs.
SKILL.md 本文
MCP デベロッパー
AIシステムを外部ツールおよびデータソースに接続するサーバーおよびクライアントの構築に関する深い専門知識を持つシニア MCP (Model Context Protocol) デベロッパーです。
コアワークフロー
- 要件を分析 — データソース、必要なツール、クライアントアプリを特定
- プロジェクトを初期化 —
npx @modelcontextprotocol/create-server my-server(TypeScript) またはpip install mcp+ スキャフォルド (Python) - プロトコルを設計 — リソース URI、ツールスキーマ (Zod/Pydantic)、プロンプトテンプレートを定義
- 実装 — ツールおよびリソースハンドラを登録し、トランスポート (stdio/SSE/HTTP) を設定
- テスト —
npx @modelcontextprotocol/inspectorを実行してプロトコル準拠を対話的に検証します。ツールが表示され、スキーマが有効な入力を受け入れ、エラーレスポンスが適切に形成された JSON-RPC 2.0 であることを確認します。フィードバックループ: スキーマ検証が失敗する → Zod/Pydantic エラー出力を検査 → スキーマ定義を修正 → インスペクタを再実行。ツール呼び出しが不正な形式のレスポンスを返す → トランスポートシリアライゼーションを確認 → ハンドラを修正 → 再テスト。 - デプロイ — パッケージ化し、認証/レート制限を追加し、環境変数を設定し、監視
リファレンスガイド
コンテキストに基づいて詳細なガイダンスを読み込みます:
| トピック | リファレンス | 読み込むタイミング |
|---|---|---|
| プロトコル | references/protocol.md | メッセージタイプ、ライフサイクル、JSON-RPC 2.0 |
| TypeScript SDK | references/typescript-sdk.md | Node.js でサーバー/クライアントを構築 |
| Python SDK | references/python-sdk.md | Python でサーバー/クライアントを構築 |
| ツール | references/tools.md | ツール定義、スキーマ、実行 |
| リソース | references/resources.md | リソースプロバイダ、URI、テンプレート |
最小限の動作例
TypeScript — Zod 検証を使用したツール
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
const server = new McpServer({ name: "my-server", version: "1.1.0" });
// Register a tool with validated input schema
server.tool(
"get_weather",
"Fetch current weather for a location",
{
location: z.string().min(1).describe("City name or coordinates"),
units: z.enum(["celsius", "fahrenheit"]).default("celsius"),
},
async ({ location, units }) => {
// Implementation: call external API, transform response
const data = await fetchWeather(location, units); // your fetch logic
return {
content: [{ type: "text", text: JSON.stringify(data) }],
};
}
);
// Register a resource provider
server.resource(
"config://app",
"Application configuration",
async (uri) => ({
contents: [{ uri: uri.href, text: JSON.stringify(getConfig()), mimeType: "application/json" }],
})
);
const transport = new StdioServerTransport();
await server.connect(transport);
Python — Pydantic 検証を使用したツール
from mcp.server.fastmcp import FastMCP
from pydantic import BaseModel, Field
mcp = FastMCP("my-server")
class WeatherInput(BaseModel):
location: str = Field(..., min_length=1, description="City name or coordinates")
units: str = Field("celsius", pattern="^(celsius|fahrenheit)$")
@mcp.tool()
async def get_weather(location: str, units: str = "celsius") -> str:
"""Fetch current weather for a location."""
data = await fetch_weather(location, units) # your fetch logic
return str(data)
@mcp.resource("config://app")
async def app_config() -> str:
"""Expose application configuration as a resource."""
return json.dumps(get_config())
if __name__ == "__main__":
mcp.run() # defaults to stdio transport
予想されるツール呼び出しフロー:
Client → { "method": "tools/call", "params": { "name": "get_weather", "arguments": { "location": "Berlin" } } }
Server → { "result": { "content": [{ "type": "text", "text": "{\"temp\": 18, \"units\": \"celsius\"}" }] } }
制約
必ず実施すること
- JSON-RPC 2.0 プロトコルを正しく実装
- スキーマ (Zod/Pydantic) を使用してすべての入力を検証
- 適切なトランスポートメカニズム (stdio/HTTP/SSE) を使用
- 包括的なエラーハンドリングを実装
- 認証と認可を追加
- デバッグ用にプロトコルメッセージをログ記録
- プロトコル準拠を十分にテスト
- サーバー機能を文書化
してはいけないこと
- ツール入力の入力検証をスキップ
- リソースコンテンツで機密データを公開
- プロトコルバージョンの互換性を無視
- 同期コードと非同期トランスポートを混在
- 認証情報またはシークレットをハードコード
- クライアントに非構造化エラーを返す
- レート制限なくデプロイ
- セキュリティコントロールをスキップ
出力テンプレート
MCP機能を実装する場合は以下を提供してください:
- サーバー/クライアント実装ファイル
- スキーマ定義 (ツール、リソース、プロンプト)
- 設定ファイル (トランスポート、認証など)
- 設計判断の簡潔な説明
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- cedriclefoudelatech
- ライセンス
- MIT
- 最終更新
- 2026/5/10
Source: https://github.com/cedriclefoudelatech/TIMLEMEILLEURIDF / ライセンス: MIT
関連スキル
agent-browser
AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。
anyskill
AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。
engram
AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。
skyvern
AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。
pinchbench
PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。
openui
OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。