mcpField
🧠
🧠 cdk-serverless-mcp-server

🧠 cdk-serverless-mcp-server

ローカル
github.com/elevaクラウド・インフラ379 週間前に更新

🧠 cdk-serverless-mcp-server について

cdk-serverless-mcp-serverは、AWS CDKでAWS Lambdaにデプロイし、API Gateway経由でHTTP公開するMCPサーバーのサンプルです。クラウド配置のひな型として、加算ツールとローカル開発用のJestテストを含みます。

主な機能

  1. 01AWS CDKによるデプロイ
  2. 02単一のAWS Lambda関数で実行
  3. 03API Gateway経由でHTTP公開
  4. 04サンプルのaddツールを収録
  5. 05Jestによるローカルテスト

活用シーン

  1. 01クラウドMCPサーバーのひな型作成
  2. 02HTTP経由でMCPサーバーを公開
  3. 03JSON-RPCツールのローカルテスト

MCP 対応

AWS Lambda上で動作するMCPサーバーを提供し、API Gatewayの/mcpパスでHTTP POSTを受け付けます。サンプルサーバーにはaddツールが用意されています。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

🧠 cdk-serverless-mcp-server

AWS Lambda にデプロイし、Amazon API Gateway 経由で公開する、AWS CDK を使用してデプロイする非常にシンプルな Model Context Protocol(MCP)サーバーです。 このスケルトンは、このリポジトリで AWS Lambda 関数と Model Context Protocol(MCP)サーバーの統合を実現する middy ミドルウェアを開発した、Frédéric Barthelet氏の素晴らしい成果を基にしています。

長い話

🛠 機能

  • 🪄 @modelcontextprotocol/sdk を使用した最小構成の MCP サーバー
  • 🚀 単一の AWS Lambda 関数としてデプロイ
  • 🌐 API Gateway 経由で /mcp に公開される HTTP POST エンドポイント
  • 🔄 jest を使用したローカル開発テストに対応
  • 🧪 JSON-RPC 連携を使ったシンプルなサンプルツール(add)を収録

📦 プロジェクト構成

cdk-serverless-mcp-server/
├── __tests__/                              # Jest tests
├── bin/                                    # CDK entry point
├── cdk-serverless-mcp-server.ts                # CDK app
├── lib/                                    # CDK stack
│   └── cdk-serverless-mcp-server-stack.ts      # CDK stack
├── src/                                    # Source code
│   └── index.mjs                               # MCP server handler
├── .gitignore                              # Git ignore file
├── cdk.json                                # CDK Project config
├── package.json                            # Project dependencies
├── package-lock.json                       # Project lock file
├── README.md                               # This documentation file

🛠 前提条件

🚀 はじめに

  1. 依存関係をインストールします:
npm install
  1. AWS CDK をグローバルにインストールします(未インストールの場合):
npm install -g aws-cdk
  1. jest でローカルテストを実行します
npm run test

🧬 コードの説明

このコードは、このリポジトリで AWS Lambda 関数と Model Context Protocol(MCP)サーバーの統合を実現する middy ミドルウェアを開発した、Frédéric Barthelet氏の素晴らしい成果を基にしています。

src/index.js
import middy from "@middy/core";
import httpErrorHandler from "@middy/http-error-handler";
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod";
import mcpMiddleware from "middy-mcp";

const server = new McpServer({
  name: "Lambda hosted MCP Server",
  version: "1.0.0",
});

server.tool("add", { a: z.number(), b: z.number() }, async ({ a, b }) => ({
  content: [{ type: "text", text: String(a + b) }],
}));

export const handler = middy()
  .use(mcpMiddleware({ server }))
  .use(httpErrorHandler());

📡 AWS にデプロイする

次を実行します:

npm run layer-dependencies-install # install dependencies for the layer

次に、スタックをデプロイします:

cdk bootstrap
cdk deploy

デプロイ後、コマンドの出力に表示された URL で MCP サーバーを利用できます。

🧪 デプロイ後に curl リクエストでテストする

ツールの一覧表示
curl --location 'http://your-endpoint/dev/mcp' \
--header 'content-type: application/json' \
--header 'accept: application/json' \
--header 'jsonrpc: 2.0' \
--data '{
  "jsonrpc": "2.0",
  "method": "tools/list",
  "id": 1
}'
➕ add ツールを使用する
curl --location 'http://your-endpoint/dev/mcp' \
--header 'content-type: application/json' \
--header 'accept: application/json' \
--header 'jsonrpc: 2.0' \
--data '{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "add",
    "arguments": {
      "a": 5,
      "b": 3
    }
  }
}'

📘 ライセンス

MIT — 自由にフォーク、変更し、ご自身のバージョンをデプロイしてください!

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。