mcpField
N
NATS MCP Server

NATS MCP Server

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

NATS MCP Server について

NATS MCP Serverは、NATS CLIを介してAIエージェントがNATSメッセージングシステムを利用できるようにします。MCPクライアントからメッセージの送信、購読、リクエストを行う用途に向いています。

主な機能

  1. 01詳細オプション付きメッセージ送信
  2. 02条件を指定したサブジェクト購読
  3. 03リクエスト・リプライ対応
  4. 04NATS CLI経由の操作
  5. 05送信時のテンプレート処理

活用シーン

  1. 01ヘッダー付きメッセージをNATSサブジェクトへ送信
  2. 02時間や件数を指定してメッセージを受信
  3. 03サービスにリクエストを送り返信を待機

MCP 対応

MCP サーバーとして、MCP クライアントに送信、購読、リクエストのツールを公開し、NATS CLIを介してNATSと連携します。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

NATS MCP サーバー

NATS CLI を通じて、クラウドネイティブなメッセージングシステムであるNATSへのアクセスを提供する MCP(Model Context Protocol)サーバーです。

機能

  • 高度なオプション(ヘッダー、テンプレート、返信サブジェクト)を指定してメッセージを公開
  • タイムアウトとメッセージ数を設定してサブジェクトをサブスクライブ
  • ヘッダーを使用したリクエスト/返信パターンをサポート
  • NATS CLI と完全に統合
  • エラー処理とクリーンアップ

要件

  • Node.js >= 14.0.0
  • NATS CLI (nats)
NATS CLI のインストール
macOS

Homebrew を使用:

brew tap nats-io/nats-tools
brew install nats-io/nats-tools/nats
Linux

snap を使用:

snap install nats

apt を使用(Debian/Ubuntu):

# First, add the NATS repository
echo "deb https://dl.nats.io/nats-io/repo/deb nats release" | sudo tee /etc/apt/sources.list.d/nats.list
curl -fsSL https://dl.nats.io/nats-io/repo/deb/gpg.key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/nats.gpg

# Then install
sudo apt-get update
sudo apt-get install nats-server

yum を使用(RHEL/CentOS):

# Add the NATS repository
echo "[nats]
name=NATS Repository
baseurl=https://dl.nats.io/nats-io/repo/rpm/centos/\$releasever/\$basearch
gpgcheck=1
gpgkey=https://dl.nats.io/nats-io/repo/rpm/gpg.key
enabled=1" | sudo tee /etc/yum.repos.d/nats.repo

# Install
sudo yum install nats-server
Windows

Chocolatey を使用:

choco install nats-io-client

Scoop を使用:

scoop bucket add nats https://github.com/nats-io/scoop-bucket.git
scoop install nats

手動でインストールする場合:

  1. NATS CLI Releasesから最新リリースをダウンロードします
  2. アーカイブを展開します
  3. バイナリをシステムの PATH に追加します
ソースからビルド

お使いのシステムでパッケージを利用できない場合:

# Requires Go 1.16+
go install github.com/nats-io/natscli/nats@latest
インストールの確認

インストール後、CLI が動作することを確認します:

# Check version
nats --version

# Test connection to default server
nats ping

# List available commands
nats help

インストール

# Install from npm
npm install @modelcontextprotocol/nats-mcp-server

# Or clone and build from source
git clone https://github.com/bmorphism/nats-mcp-server.git
cd nats-mcp-server
npm install
npm run build

設定

サーバーは環境変数を使用して設定できます:

  • NATS_URL:NATS サーバーの URL(デフォルト:'nats://localhost:4222')

使用方法

サーバーは次の MCP ツールを提供します:

publish

高度なオプションを指定して、NATS サブジェクトにメッセージを公開します。

パラメーター:

  • subject(必須):メッセージを公開する NATS サブジェクト
  • message(必須):公開するメッセージ
  • reply(任意):リクエスト/返信パターンの返信サブジェクト
  • headers(任意):メッセージヘッダーの配列(キーと値のペア)
  • count(任意):公開するメッセージの数
  • sleep(任意):メッセージ間の待機時間(例:「100ms」)
  • template(任意):メッセージ内の Go テンプレート処理を有効にします

テンプレートを使用する例:

const result = await mcp.useTool("nats", "publish", {
  subject: "greetings",
  message: "Message {{Count}} @ {{Time}}",
  count: 5,
  sleep: "1s",
  template: true
});

ヘッダーを使用する例:

const result = await mcp.useTool("nats", "publish", {
  subject: "orders",
  message: "New order received",
  headers: [
    { key: "OrderId", value: "12345" },
    { key: "Priority", value: "high" }
  ]
});
subscribe

NATS サブジェクトをサブスクライブして、メッセージを受信します。

パラメーター:

  • subject(必須):サブスクライブする NATS サブジェクト
  • timeout(任意):サブスクリプションのタイムアウト(ミリ秒、デフォルト:5000)
  • count(任意):終了する前に受信するメッセージの数
  • raw(任意):メッセージのペイロードのみを表示します

例:

const result = await mcp.useTool("nats", "subscribe", {
  subject: "greetings",
  timeout: 10000,
  count: 5,
  raw: true
});
request

リクエストメッセージを送信し、返信を待ちます。

パラメーター:

  • subject(必須):リクエストの送信先となる NATS サブジェクト
  • message(必須):リクエストメッセージ
  • timeout(任意):リクエストのタイムアウト(ミリ秒、デフォルト:5000)
  • headers(任意):リクエストヘッダーの配列(キーと値のペア)

例:

const result = await mcp.useTool("nats", "request", {
  subject: "service.time",
  message: "What time is it?",
  timeout: 3000,
  headers: [
    { key: "Locale", value: "en-US" }
  ]
});

テンプレート関数

テンプレート(template: true)を使用する場合、次の関数を利用できます:

  • Count:メッセージ番号
  • TimeStamp:RFC3339 形式の現在時刻
  • Unix:UTC での 1970 年からの秒数
  • UnixNano:UTC での 1970 年からのナノ秒数
  • Time:現在時刻
  • ID:一意の ID
  • Random(min, max):min から max の長さのランダムな文字列

ランダム文字列を使用する例:

const result = await mcp.useTool("nats", "publish", {
  subject: "test",
  message: "Random data: {{ Random 10 100 }}",
  template: true
});

MCP 設定への追加

Cline(VSCode 拡張機能)の場合

~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json に追加します:

{
  "mcpServers": {
    "nats": {
      "command": "node",
      "args": ["/path/to/nats-mcp-server/build/index.js"],
      "env": {
        "NATS_URL": "nats://localhost:4222"
      }
    }
  }
}
Claude Desktop の場合

~/Library/Application Support/Claude/claude_desktop_config.json に追加します:

{
  "mcpServers": {
    "nats": {
      "command": "node",
      "args": ["/path/to/nats-mcp-server/build/index.js"],
      "env": {
        "NATS_URL": "nats://localhost:4222"
      }
    }
  }
}

エラー処理

サーバーには、次の状況に対応する堅牢なエラー処理が含まれています:

  • 接続の失敗
  • 無効なパラメーター
  • タイムアウト
  • ネットワークエラー
  • NATS 固有のエラー
  • CLI 実行エラー

開発

プロジェクトをビルドするには:

npm run build

ビルド出力は build ディレクトリに生成されます。

貢献

  1. リポジトリをフォークします
  2. 機能ブランチを作成します(git checkout -b feature/amazing-feature)
  3. 変更をコミットします(git commit -m 'Add some amazing feature')
  4. ブランチにプッシュします(git push origin feature/amazing-feature)
  5. プルリクエストを作成します

ライセンス

MIT

謝辞

  • NATS.io - 素晴らしいメッセージングシステムを提供してくださったこと
  • NATS CLI - CLI ツールを提供してくださったこと
  • Model Context Protocol - MCP フレームワークを提供してくださったこと

コメント

MCP は初めてですか?

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

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