プロダクション用MCPサーバーのTypeScriptのサンプルコードで、プラグイン可能な認証、各ツールごとのレートリミット、構造化された監査ログ、およびOpenTelemetryが付属しており—実際のツールを作成するのに役立ちますので、退屈な部分を再発明する必要はありません.
私が読んだMCPサーバーのチュートリアルは、文字列をエコーする単一のツールを登録する方法を示しています。その後、「プロダクションの関心事」を振り返り、投稿を終了します.
プロダクションの関心事 は この投稿の
@hailbytes/mcp-server-template は、実際に企業が運用するMCPサーバーをリリースする際に使用する、意見を含んだTypeScriptのサンプルテンプレートです。以下の機能が含まれています:
- 認証 — APIキー、OAuth、JWTに対応するプラグイン可能なミドルウェア
- リートリミット — クライアントごとに、ツールごとに制限されるため、一つの逸脱したエージェントがサーバー全体をダウンさせることができません
- 監査ログ — 各ツール呼び出しとセッションイベントの構造化ログ
- OpenTelemetry — トレースとメトリクス、モデルが何をしたか実際にデバッグできるように
- マルチトランスポート — SSE、stdio、HTTPがスケルトン時点で選択
新しいサーバーをスケルトン化
npx @hailbytes/create-mcp-server my-server --transport=sse
アクセスできるディレクトリをcdし、npm run devすぐに使用できます.
またはプログラムで埋め込みます
import { createMcpServer, defineTools } from "@hailbytes/mcp-server-template";
const tools = defineTools([
{
name: "echo",
description: "Echoes the input back.",
inputSchema: { type: "object", properties: { message: { type: "string" } } },
handler: async ({ message }) => ({ content: [{ type: "text", text: message }] }),
},
]);
const server = await createMcpServer({
name: "my-server",
version: "1.0.0",
transport: "sse",
tools,
auth: { type: "api-key", header: "X-Api-Key" },
rateLimit: { requestsPerMinute: 60 },
audit: { destination: "stdout" },
});
await server.start();
これは「本番用MCPサーバー」のdiffとチュートリアルのecho例との比較全体です.
これを組み合わせます@hailbytes/mcp-security-scanner を設定すると、デフォルトでセキュアなサーバーが立ち上がり、ツールを追加してもその状態を維持します。
npx @hailbytes/create-mcp-server my-server
ソース:github.com/hailbytes/mcp-server-template — MITライセンス。











