mcpField
L
Laravel MCP Client

Laravel MCP Client

github.com/scriptoshiフレームワーク・SDK3294 週間前に更新

Laravel MCP Client について

Laravel MCP Client は Claude を MCP プロトコルで カスタムツールサーバーと統合します。Laravel 開発者向けに設計され、ツールサーバー管理、キュー対応、会話の永続化を提供します。

主な機能

  1. 01Claude API 統合とツールサーバー管理
  2. 02長時間実行タスクのキュー対応
  3. 03イベント駆動アーキテクチャ
  4. 04会話のデータベース永続化
  5. 05自動チャットタイトル生成
  6. 06包括的なログシステム

活用シーン

  1. 01Claude の能力をカスタムビジネスロジックで拡張
  2. 02Laravel アプリケーションで AI アシスタントを構築
  3. 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

設定

  1. 設定ファイルを公開します:
php artisan vendor:publish --provider="Scriptoshi\McpClient\McpClientServiceProvider"
  1. .env ファイルに Anthropic API キーを追加します:
ANTHROPIC_API_KEY=your-api-key-here
ANTHROPIC_MODEL=claude-3-sonnet-20240229
ANTHROPIC_MAX_TOKENS=1024
  1. マイグレーションを実行します:
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');

イベント

このパッケージはリスンできるいくつかのイベントをディスパッチします:

  • MessageCreatedEvent
  • MessageProcessedEvent
  • MessageErrorEvent

テスト

composer test

セキュリティ

セキュリティ関連の問題を発見した場合は、issue トラッカーを使用せず、[email protected] にメールでお知らせください。

クレジット

ライセンス

MIT ライセンス(MIT)。詳細は License File を参照してください。

コメント

MCP は初めてですか?

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

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