PHP code example of sandermuller / laravel-x402-mcp
1. Go to this page and download the library: Download sandermuller/laravel-x402-mcp library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
sandermuller / laravel-x402-mcp example snippets
use Laravel\Mcp\Request;
use Laravel\Mcp\Response;
use Laravel\Mcp\Server\Tool;
use X402\Laravel\Mcp\Attributes\X402Price;
#[X402Price(amount: '0.01', asset: 'USDC', network: 'base')]
final class FetchPremiumData extends Tool
{
public function description(): string
{
return 'Premium dataset. Costs $0.01 USDC on Base.';
}
public function handle(Request $request): Response
{
// Runs only after payment is settled.
return Response::json(['data' => '...']);
}
}
use Laravel\Mcp\Server\Server;
use X402\Laravel\Mcp\Server\Concerns\WithX402Payment;
final class MyMcpServer extends Server
{
use WithX402Payment;
protected array $tools = [
FetchPremiumData::class,
];
}
use Laravel\Mcp\Server\Resource;
use X402\Laravel\Mcp\Attributes\X402Price;
#[X402Price(amount: '0.05', asset: 'USDC', network: 'base')]
final class PremiumDataset extends Resource
{
protected string $uri = 'data://premium/v1';
public function handle(): Response
{
return Response::text('...');
}
}
use X402\Laravel\Facades\X402;
$fake = X402::fake();
// Drive the MCP server however you normally would (HTTP, stdio, in-process).
$this->postJson('/mcp', $jsonRpcCall)->assertOk();
$fake->assertVerified('mcp://tool/fetch-premium-data');
$fake->assertSettled('mcp://tool/fetch-premium-data');