Laravel MCP Client について
Laravel MCP Client は Claude を MCP プロトコルで カスタムツールサーバーと統合します。Laravel 開発者向けに設計され、ツールサーバー管理、キュー対応、会話の永続化を提供します。
主な機能
- 01Claude API 統合とツールサーバー管理
- 02長時間実行タスクのキュー対応
- 03イベント駆動アーキテクチャ
- 04会話のデータベース永続化
- 05自動チャットタイトル生成
- 06包括的なログシステム
活用シーン
- 01Claude の能力をカスタムビジネスロジックで拡張
- 02Laravel アプリケーションで AI アシスタントを構築
- 03複数のツールサーバー呼び出しを調整
MCP 対応
McpServerInterface を実装するカスタム MCP サーバーを Claude に接続し、ツール実行を可能にします。
詳細
Laravel MCP クライアント
開示:このパッケージは Claude AI によって完全に設計・作成されました。私がいくつかの場所でガイダンスと微調整を行いましたが、コードは Claude AI によって作成されました。
Laravel MCP(Message Context Protocol)Client は、Anthropic の Claude AI モデルをカスタムツールサーバーと統合するパッケージです。Claude の機能を自分のツールやサービスで拡張できます。
機能
- Anthropic の Claude API とのシームレスな統合
- ツールサーバーの管理と実行
- 長時間実行されるツールの組み込みキューイングサポート
- イベント駆動アーキテクチャ
- 自動チャットタイトル生成
- 完全なチャット履歴管理
- 会話とツール実行のデータベース永続化
- ソフトデリート対応
- 包括的なロギングシステム
必要要件
- PHP 8.3 以上
- Laravel 11.0 以上
- Anthropic API キー
インストール
composer 経由でパッケージをインストールできます:
composer require scriptoshi/laravel-mcp-client
設定
- 設定ファイルを公開します:
php artisan vendor:publish --provider="Scriptoshi\McpClient\McpClientServiceProvider"
- .env ファイルに Anthropic API キーを追加します:
ANTHROPIC_API_KEY=your-api-key-here
ANTHROPIC_MODEL=claude-3-sonnet-20240229
ANTHROPIC_MAX_TOKENS=1024
- マイグレーションを実行します:
php artisan migrate
使用方法
基本的な使用方法
use Scriptoshi\McpClient\Facades\McpClient;
// Start a new chat
McpClient::processRequest("What's the weather like?", $chatUuid);
カスタムツールサーバーの実装
McpServerInterface を実装する新しいサーバークラスを作成します:
use Scriptoshi\McpClient\Contracts\McpServerInterface;
class WeatherServer implements McpServerInterface
{
public function initialize(): array
{
return [
'serverInfo' => [
'name' => 'WeatherServer',
'version' => '1.0.0'
],
'capabilities' => [
'tools' => true
]
];
}
public function listTools(): array
{
return [
'tools' => [
[
'name' => 'get_weather',
'description' => 'Get current weather for a location',
'inputSchema' => [
'type' => 'object',
'properties' => [
'location' => [
'type' => 'string',
'description' => 'City name or coordinates'
]
],
'required' => ['location']
]
]
]
];
}
public function toolShouldQueue(string $toolname): bool
{
return false;
}
public function executeTool(string $name, array $arguments, LoggerInterface $logger): array
{
// Implement your tool logic here
}
}
ツールサーバーの登録
AppServiceProvider でツールサーバーを登録することや、専用のサービスプロバイダーを作成できます:
use Scriptoshi\McpClient\Facades\McpClient;
public function boot()
{
McpClient::registerServer('weather', new WeatherServer());
}
キューの使用
長時間実行されるツールの場合、キューイングを実装します:
public function toolShouldQueue(string $toolname): bool
{
return match($toolname) {
'long_running_process' => true,
default => false
};
}
チャット履歴の操作
use Scriptoshi\McpClient\Models\Chat;
// Find a chat by UUID
$chat = Chat::findByUuid($uuid);
// Get chat messages
$messages = $chat->messages;
// Get message responses
$responses = $message->responses;
// Get tool executions
$runners = $response->runners;
エラーハンドリング
このパッケージには包括的なエラーハンドリングとロギングが含まれています:
$runner->error('Something went wrong', [
'context' => 'Additional error details'
]);
// Different log levels
$runner->info('Processing started');
$runner->warning('Resource usage high');
$runner->success('Operation completed');
イベント
このパッケージはリスンできるいくつかのイベントをディスパッチします:
MessageCreatedEventMessageProcessedEventMessageErrorEvent
テスト
composer test
セキュリティ
セキュリティ関連の問題を発見した場合は、issue トラッカーを使用せず、[email protected] にメールでお知らせください。
クレジット
ライセンス
MIT ライセンス(MIT)。詳細は License File を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。