Agent Skills by ALSEL
Anthropic ClaudeLLM・AI開発⭐ リポ 0品質スコア 70/100

develop-mcp-server-ts

TypeScriptでMCP(Model Context Protocol)サーバーを構築するための標準化されたワークフローです。公式のTypeScript SDKを使用してMCPサーバーを構築・拡張する場合、ツール、リソース、プロンプトを追加する場合、ツールのアノテーション(title、readOnlyHintなど)を設定する場合、StdioまたはStreamable HTTPトランスポートを選択する場合、およびMCP InspectorやClaude Desktopでテストする場合に使用できます。

description の原文を見る

Standardized workflow for building MCP (Model Context Protocol) servers in TypeScript. Use when building or extending an MCP server with the official TypeScript SDK (tools, resources, prompts), adding tool annotations (title, readOnlyHint, etc.), choosing Stdio vs Streamable HTTP transport, or testing with MCP Inspector or Claude Desktop.

SKILL.md 本文

MCPサーバー開発(TypeScript)

目的

公式TypeScript SDKを使用してMCPサーバーをビルドするための繰り返し可能で文書化されたワークフローを提供します。これにより、エージェントと開発者はアドホックな検出なしにツール、リソース、プロンプトを追加できます。このワークフローに従い、要件から動作確認可能なサーバー(StdioまたはStreamable HTTP)を構築します。このスキルはMCPスペック2025-11-25に準拠しており、ツール、リソース、プロンプト、およびサーバーユーティリティ(ロギング、完了、ページネーション)に対応しています。

ワークフロー チェックリスト

  • ステップ1:要件の発見
    • references/mcp-specification.mdを読んでプリミティブ(ツール、リソース、プロンプト)とトランスポートについて学ぶ。
    • サーバーが公開するプリミティブを決定する(例:ツールのみ、またはツール+リソース)。
    • トランスポートを選択:Stdio(ローカル、プロセスベース)またはStreamable HTTP(リモート、Webベース)。
  • ステップ2:プロジェクト初期化
  • ステップ3:実装パターン
    • references/typescript-sdk-cheatsheet.mdを使用してMcpServer、トランスポート、registerTool(Zod inputSchema付き)、registerResourceについて学ぶ。
    • ツールアノテーション(title、readOnlyHint、destructiveHint、idempotentHint、openWorldHint)を検討し、クライアントがツールを提示でき、ユーザーが承認できるようにする。チートシートの「ツールアノテーション」とMCP Tool annotationsを参照。
    • データを削除または永続的に変更するツールの場合、destructiveHint: trueを設定。クライアントは実行前に確認プロンプトを表示すべきであり、エージェント指示では破壊的なツールを呼び出す前にユーザーに確認するよう要求すること。
    • Stdioの場合:ロギングにはconsole.error(またはstderr)のみを使用し、console.log(stdoutはJSON-RPCを破損させる)は絶対に使用しない。
    • オプションでassets/templates/server-stdio.tsまたはassets/templates/server-http.tsからコピー。
  • ステップ4:テスト
    • MCP Inspectorでテスト:例えばnpx @modelcontextprotocol/inspectorを実行し、サーバーを起動(例:node build/index.js)。
    • またはClaude Desktopでテスト:claude_desktop_config.json(macOS:~/Library/Application Support/Claude/claude_desktop_config.json)にサーバーを追加し、commandargsを指定して、Claude Desktopを再起動。

詳細な手順

1. 要件の発見

MCPスペック概要を読んで以下を理解します:

  • プリミティブ:ツール(LLMから呼び出し可能)、リソース(読み取り専用コンテキスト)、プロンプト(再利用可能なテンプレート)。
  • トランスポート:Stdio(ローカル、クライアント1つ/プロセス)対Streamable HTTP(リモート、多数のクライアント)。
  • ライフサイクル:初期化、機能ネゴシエーション、その後ツール一覧表示/呼び出しまたはリソース読み取り。

サーバーが必要とするプリミティブを決定し、ローカルで実行(Stdio)するかホストされた環境(Streamable HTTP)で実行するかを決めます。

2. プロジェクト初期化

  • パッケージを作成します(例:pnpm initまたはnpm init -y)。
  • インストール:pnpm add @modelcontextprotocol/sdk zod(またはnpm install @modelcontextprotocol/sdk zod)。SDKはツールのinputSchemaにZodが必要です。
  • ESMを使用する場合はpackage.jsonに"type": "module"を設定。
  • "module": "Node16""moduleResolution": "Node16""target": "ES2022""outDir": "./build"(またはそれに類する設定)を含むtsconfigを使用。

3. 実装パターン

TypeScript SDKチートシートを使用して以下を行います:

  • McpServerを作成しトランスポート(StdioServerTransportまたはStreamableHTTPServerTransport)に接続。
  • server.registerTool(name, { description, inputSchema }, handler)でツールを登録。inputSchemaにはZodを使用(例:{ id: z.string() })。{ content: [{ type: "text", text: "..." }] }を返します。クライアントがツールを提示または承認するのに役立つ場合は、ツールアノテーション(title、readOnlyHint、destructiveHint、idempotentHint、openWorldHint)を追加します。破壊的な操作(例:削除)の場合は、destructiveHint: trueを設定。クライアントはユーザー確認プロンプトを表示すべきであり、エージェント指示ではそのようなツールを呼び出す前にユーザーに確認するよう要求すること。
  • 必要に応じてリソースを登録(URIテンプレートと読み取りハンドラー)。
  • ロギング:Stdioトランスポート使用時は、stdoutに書き込まず、console.errorまたはstderrに出力するロガーを使用。

4. テスト

  • MCP Inspector:npx @modelcontextprotocol/inspectorを実行し、サーバーを起動(例えばClaude Desktopで使用するコマンド)。Inspector UIを使用してツールを一覧表示し、呼び出します。
  • Claude Desktop:設定ファイルを編集(ローカルMCPサーバーに接続を参照)。mcpServersの配下にcommandargsを含むエントリを追加(例:node["/path/to/build/index.js"])。Claude Desktopを完全に再起動(アプリを終了してから再度開く)。サーバーがコネクタに表示されることを確認。

成功の基準

  • サーバーはツール(および/またはリソース/プロンプト)を正しく一覧表示および実行できる。
  • Stdioの場合:console.logの使用がなく、ログはstderrに出力される。
  • ツールのinputSchemaはZodを使用し、SDK期待値と一致している。
  • ツール名はスペック2025-11-25に準拠(1〜128文字、許可された文字)。エラーはツール実行結果(isError: true)またはプロトコルエラーとして適切に使用。
  • ツールアノテーション(title、readOnlyHint、destructiveHint、idempotentHint、openWorldHint)は、クライアントがツールを提示または承認するのに役立つ場合に使用される。
  • 公式リンク(TypeScript SDK、MCPスペック2025-11-25)がバージョンとAPIの詳細に使用される。

参考リソース

ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
yu-iskw
リポジトリ
yu-iskw/lightdash-tools
ライセンス
Apache-2.0
最終更新
2026/5/1

Source: https://github.com/yu-iskw/lightdash-tools / ライセンス: Apache-2.0

本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: yu-iskw · yu-iskw/lightdash-tools · ライセンス: Apache-2.0