ZapToMCP について
ZapToMCP は、MCP サーバーとクライアントを構築するための開発中の TypeScript モノレポです。SDK は型付き API と複数のトランスポートを備え、サーバー作成を簡略化する上位パッケージも含みます。
主な機能
- 01TypeScript MCP SDK
- 02型付き API
- 03インメモリ、SSE、stdio、HTTP のトランスポート
- 04上位レベルのサーバー抽象化
- 05ESM と CommonJS のサポート
活用シーン
- 01TypeScript で MCP サーバーを構築
- 02SDK で MCP クライアントを作成
- 03MCP 接続のトランスポートを選択
MCP 対応
このモノレポは MCP の TypeScript SDK と上位レベルのサーバーパッケージを提供します。SDK はインメモリ、SSE、stdio、ストリーミング可能な HTTP に対応し、サーバーとクライアントの実装に利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
ZapToMCP
⚠️ 開発中
Warning:このリポジトリは現在、活発に開発されています。API と実装の詳細は変更される可能性があります。ご自身の責任でご利用ください。
ZapToMCP は、Model Context Protocol(MCP)サーバーとクライアントの構築に必要なツールやライブラリを含むモノレポです。MCP 対応サービスを作成、デプロイ、管理するための効率的な方法を提供します。
概要
Model Context Protocol(MCP)は、AI アシスタントとツール間の通信に用いるオープン標準です。ZapToMCP は、MCP 対応のサーバーとクライアントを構築するプロセスを簡素化し、開発者がプロトコルの詳細を実装するのではなく、優れた AI 体験の作成に集中できるようにします。
リポジトリの構成
このモノレポには、次のパッケージが含まれています。
@zaptomcp/sdk:Model Context Protocol の TypeScript 実装@zaptomcp/server:MCP サーバーを作成するための高レベルな抽象化- 今後、さらにパッケージを追加予定...
はじめに
前提条件
- Node.js >= 20
- pnpm >= 10.8.1
インストール
リポジトリをクローンします。
git clone https://github.com/hoghweed/zaptomcp.git
cd zaptomcp
依存関係をインストールします。
pnpm install
インストール
# Install dependencies
pnpm install
# Bootstrap the monorepo
pnpm bootstrap
開発
利用可能なスクリプト
pnpm dev:すべてのパッケージの開発モードを開始しますpnpm build:すべてのパッケージをビルドしますpnpm clean:ビルド成果物をクリーンアップしますpnpm lint:すべてのパッケージのリントを実行しますpnpm format:すべてのパッケージのコードをフォーマットしますpnpm typecheck:すべてのパッケージの型チェックを実行しますpnpm commit:Conventional Commits 形式でコミットを作成します
コード品質
このプロジェクトでは、以下を使用しています。
- リントとフォーマットには Biome
- 型チェックには TypeScript
- Git フックには Husky
- コミットメッセージの検証には Commitlint
@zaptomcp/sdk
SDK パッケージは、Model Context Protocol(MCP)を利用するための TypeScript 実装を提供します。
機能
- 複数のトランスポート実装:
- メモリー内
- SSE(Server-Sent Events)
- Stdio
- Streamable HTTP
- 型安全な API
- 高いパフォーマンスを実現する Fastify を使用
- ESM と CommonJS の両方をサポート
インストール
pnpm add @zaptomcp/sdk
使用方法
MCP サーバーの作成
import { McpServer } from '@zaptomcp/sdk';
// Create a server with basic information
const server = new McpServer(
{
name: "my-mcp-server",
version: "1.0.0"
},
{
capabilities: {
// Define your server capabilities
sampling: {},
prompts: {},
resources: {},
tools: {},
logging: {}
},
instructions: "This is an MCP-compatible server"
}
);
// Connect the server to a transport
import { FastifyTransport } from '@zaptomcp/sdk/transports';
const transport = new FastifyTransport();
await server.connect(transport);
// Start listening for requests
await transport.listen(3000);
console.log("MCP server running on port 3000");
MCP クライアントの作成
import { Client } from '@zaptomcp/sdk';
// Create a client with basic information
const client = new Client(
{
name: "my-mcp-client",
version: "1.0.0"
},
{
capabilities: {
// Define your client capabilities
sampling: {}
}
}
);
// Connect to an MCP server
import { HTTPClientTransport } from '@zaptomcp/sdk/transports';
const transport = new HTTPClientTransport('http://localhost:3000');
await client.connect(transport);
// Read a resource
const resource = await client.readResource({
uri: "test://example/resource"
});
console.log(resource);
API ドキュメント
SDK では、次の主なエクスポートを利用できます。
Server:メインのサーバークラスtransports:各種トランスポート実装in-memory:メモリー内トランスポートsse:Server-Sent Events トランスポートstdio:標準入出力トランスポートstreamable-http:ストリーミングをサポートする HTTP トランスポート
開発
SDK の開発に取り組む場合:
# Navigate to the SDK package
cd packages/sdk
# Install dependencies
pnpm install
# Start development mode
pnpm dev
# Run tests
pnpm test
# Build the package
pnpm build
コントリビューション
コントリビューションを歓迎します。お気軽にプルリクエストを送信してください。
- リポジトリをフォークします
- フィーチャーブランチを作成します( git checkout -b feature/amazing-feature )
- Conventional Commits を使用して変更をコミットします( pnpm commit )
- ブランチにプッシュします( git push origin feature/amazing-feature )
- プルリクエストを作成します
ライセンス
このプロジェクトは MIT ライセンスの下で公開されています。詳細については LICENSE ファイルをご覧ください。
謝辞
- ZapToMCP は、FastMCP を参考に移植したものです。
- Model Context Protocol TypeScript SDK — 本プロジェクトが実装するオープン標準です。
- FastMCP は、Jonathan Lowin によるPython 実装を参考にしています。
- コードベースの一部は、LiteMCP から採用しました。
- コードベースの一部は、Model Context protocolでSSEをやってみる から採用しました。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。