Samurai MCP Super Server について
Samurai MCP Super Serverは、プラグイン型のMCPサービスとLLMプロバイダー管理を目指す開発者向けのGoバックエンドです。現在は認証、データベース、ログ基盤を備え、MCP対応、プラグイン、ダッシュボードは開発中です。
主な機能
- 01Gin HTTPサーバーを備えたGoバックエンド
- 02JWT認証とロールベースアクセス制御
- 03PostgreSQLによるデータ保存
- 04構造化ログとヘルスチェック
- 05開発環境の管理コマンド
活用シーン
- 01ユーザー登録とログインを備えたバックエンドの構築
- 02コマンドによる開発サービスの起動、確認、停止
- 03アプリケーション、アクセス、データベースログの確認
MCP 対応
MCPプロトコル、LLMプロバイダー連携、プラグインシステムは今後の実装予定です。READMEでは開発中とされており、現段階ではMCPツールを提供していません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Samurai MCP Super Server
プラグインアーキテクチャー、安全なボールト連携、リアルタイムのウェブダッシュボードを備えた、包括的な Model Context Protocol(MCP)スーパーサーバーです。
🚀 機能
コア機能
- プラグインベースのアーキテクチャー:サービスごとにモジュール化された MCP インスタンス(Twilio 経由の SMS など)
- LLM プロバイダー管理:API キー管理機能を備えた複数の LLM プロバイダーへの対応
- 安全なボールト連携:業界標準の API キー保存と暗号化
- リアルタイムのウェブダッシュボード:ライブ監視・管理インターフェース
- レート制限とスロットリング:プロバイダーおよびプラグインごとのリクエスト制御
- 包括的なログ記録:クエリ可能な履歴を備えたリクエスト/レスポンス分析
高度な機能
- プラグインマーケットプレイス:コミュニティが提供するプラグイン
- A/B テストフレームワーク:異なる LLM 設定のテスト
- コスト追跡:ユーザー/組織ごとの予算管理
- レスポンスキャッシュ:インテリジェントなキャッシュによる API コスト削減
- プラグインのサンドボックス化:プラグインのセキュリティ分離
- メトリクスと可観測性:Prometheus/Grafana 連携
開発者エクスペリエンス
- プラグイン SDK/CLI:簡単にプラグインを開発できるツール
- ホットリロード:開発中のプラグイン再読み込み
- OpenAPI ドキュメント:自動生成される API ドキュメント
- テストフレームワーク:プラグインテスト用のモックサービス
📁 プロジェクト構成
├── README.md
├── go.mod
├── go.sum
├── samurai.go # Development CLI tool
├── docker-compose.yml # Database services
├── .env.example # Environment template
├── backend/
│ ├── cmd/
│ │ └── server/
│ │ └── main.go # Application entry point
│ └── internal/
│ ├── api/
│ │ ├── handlers/ # HTTP request handlers
│ │ ├── middleware/ # HTTP middleware
│ │ └── routes/ # Route definitions
│ ├── config/ # Configuration management
│ ├── database/ # Database connection & models
│ └── utils/ # Utilities (logging, etc.)
├── config/
│ └── development.json # Development configuration
├── logs/ # Application logs
├── bin/ # Compiled binaries
└── data/ # Database data
🛠️ 前提条件
- Go 1.21+:Go をダウンロード
- Docker Desktop:Docker をダウンロード
- Git:Git をダウンロード
⚡ クイックスタート
1. リポジトリをクローンする
git clone https://github.com/exprays/samurai
cd exprays-samurai
2. 開発環境をセットアップする
go run samurai.go setup
これにより、次の処理が行われます。
- 必要なディレクトリを作成します
.env.exampleを.envにコピーします- Go の依存関係をダウンロードします
- 必要な Docker イメージを取得します
3. 開発環境を起動する
go run samurai.go dev
これにより、次の処理が行われます。
- PostgreSQL データベースを起動します
- バックエンドサーバーを起動します
- サービスの URL とステータスを表示します
4. インストールを確認する
go run samurai.go status
🔧 開発コマンド
| コマンド | 説明 |
|---|---|
go run samurai.go dev | 開発環境全体を起動します |
go run samurai.go setup | 開発環境をセットアップします |
go run samurai.go build | アプリケーションをビルドします |
go run samurai.go test | すべてのテストを実行します |
go run samurai.go status | サービスのステータスを表示します |
go run samurai.go logs | サービスのログを表示します |
go run samurai.go stop | すべてのサービスを停止します |
go run samurai.go clean | ビルド成果物をクリーンアップします |
🌐 サービスエンドポイント
| サービス | URL | 説明 |
|---|---|---|
| ヘルスチェック | http://localhost:8080/health | サービスのヘルスステータス |
| レディチェック | http://localhost:8080/health/ready | データベースの準備状況 |
| API ベース URL | http://localhost:8080/api/v1 | REST API エンドポイント |
| データベース | localhost:5432 | PostgreSQL データベース |
📊 ログ記録
このアプリケーションでは構造化ログを使用し、ログファイルを分けて記録します。
- アプリケーションログ:
logs/app.log- アプリケーションの主なイベント - アクセスログ:
logs/access.log- HTTP リクエスト/レスポンスのログ - データベースログ:
logs/database.log- データベースのクエリと操作
ログ設定
ログは環境変数で設定します。
LOG_LEVEL:debug、info、warn、error(デフォルト:info)LOG_FORMAT:json、console(デフォルト:json)
🔒 環境設定
.env.example を .env にコピーして設定します。
# Server Configuration
SERVER_PORT=8080
SERVER_HOST=localhost
SERVER_ENVIRONMENT=development
# Database Configuration
DATABASE_HOST=localhost
DATABASE_PORT=5432
DATABASE_USER=samurai
DATABASE_PASSWORD=samurai_password
DATABASE_NAME=samurai_db
DATABASE_SSL_MODE=disable
# Authentication
JWT_SECRET=your-jwt-secret-here
JWT_EXPIRY=24h
# Logging
LOG_LEVEL=info
LOG_FORMAT=json
🏗️ アーキテクチャー
現在の実装(フェーズ 1)
- ✅ モジュール管理を備えた Go プロジェクト構成
- ✅ Gin フレームワークを使用した HTTP サーバー
- ✅ 設定管理システム
- ✅ GORM を使用した PostgreSQL データベース
- ✅ 構造化ログ基盤
- ✅ JWT ベースの認証
- ✅ ユーザー登録およびログイン API
- ✅ ロールベースのアクセス制御(RBAC)
- ✅ API ミドルウェア(認証、CORS、ログ記録、リカバリー)
今後の機能(フェーズ 2 以降)
- 🔄 MCP プロトコルの実装
- 🔄 LLM プロバイダーとの統合
- 🔄 プラグインシステムのアーキテクチャ
- 🔄 Vault との統合
- 🔄 フロントエンドダッシュボード
- 🔄 監視と可観測性
🧪 テスト
# Run all tests
go run samurai.go test
# Run specific package tests
cd backend && go test ./internal/...
# Run tests with coverage
cd backend && go test -cover ./...
📦 ビルド
# Build for current platform
go run samurai.go build
# Build for specific platform
cd backend && GOOS=linux GOARCH=amd64 go build -o ../bin/mcp-server-linux ./cmd/server
🔍 監視
ヘルスチェック
GET /health- サービスの基本的な健全性GET /health/ready- データベース接続チェック
ログ
リアルタイムのログを表示します:
# Application logs
tail -f logs/app.log
# Access logs
tail -f logs/access.log
# Database logs
tail -f logs/database.log
🤝 コントリビューション
- リポジトリをフォークします
- 機能ブランチを作成します
- 変更を加えます
- 新しい機能のテストを追加します
- テストを実行し、すべて成功することを確認します
- プルリクエストを送信します
📋 開発フェーズ
フェーズ 1:基盤(完了)
- プロジェクトのセットアップと基本的なバックエンド
- 認証とセキュリティの基盤
- データベースモデルと接続
- ロギングのインフラストラクチャ
- 基本的な API ドキュメント
フェーズ 2:MCP の中核的な統合(進行中)
- MCP プロトコルの実装
- LLM プロバイダーとの統合
- プラグインと MCP のブリッジ
- API キーの管理
フェーズ 3 以降:高度な機能
- Vault との統合
- フロントエンドダッシュボード
- 監視と可観測性
- プラグインマーケットプレイス
- エンタープライズ機能
📞 サポート
サポートや質問については、以下をご利用ください:
- リポジトリでイシューを作成します
- API ドキュメントを確認します
- 開発ガイドを参照します
📄 ライセンス
[ライセンス情報は後日追加予定]
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。