PHP code example of bherila / mcp-laravel-bridge
1. Go to this page and download the library: Download bherila/mcp-laravel-bridge 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/ */
bherila / mcp-laravel-bridge example snippets
use Bherila\McpLaravelBridge\Http\McpHttpPolicy;
$this->app->singleton(McpHttpPolicy::class, fn () => new McpHttpPolicy(
allowedOrigins: fn (): array => config('agent_api.mcp_allowed_origins', []),
allowedHosts: fn (): array => array_values(array_unique([
McpHttpPolicy::hostFromUrl((string) config('app.url')),
McpHttpPolicy::hostFromUrl((string) config('bherila-auth.oauth_server.resource')),
])),
maxRequestBodyBytes: (int) config('agent_api.mcp_max_body_bytes', 262_144),
maxResponseBodyBytes: (int) config('agent_api.mcp_max_response_bytes', 1_048_576),
));
use Bherila\McpLaravelBridge\Http\McpHttpSecurityMiddleware;
Route::match(['POST', 'DELETE'], '/api/v1/mcp', AgentMcpController::class)
->middleware([
McpHttpSecurityMiddleware::class,
ExpectOAuthResource::class,
'auth:api',
CheckToken::using('mcp:use'),
'throttle:60,1',
]);
Route::options('/api/v1/mcp', AgentMcpController::class)
->middleware(McpHttpSecurityMiddleware::class);
public function __invoke(
Request $request,
AgentMcpServerFactory $servers,
McpHttpEndpoint $endpoint,
McpHttpPolicy $policy,
): Response {
return $endpoint->run(
$request,
fn (Request $request): Server => $servers->make($request),
$policy,
);
}
$server = SyntheticMcpServerFactory::make(
fn (): array => $applicationService->ping(),
);
use Bherila\McpLaravelBridge\Mcp\ToolWithSecuritySchemes;
$tool = new ToolWithSecuritySchemes(
securitySchemes: [[
'type' => 'oauth2',
'scopes' => ['mcp:use', 'records:read'],
]],
name: 'records.list',
title: 'List records',
// Empty JSON object schemas must remain objects on SDK 0.7.
inputSchema: ['type' => 'object', 'properties' => (object) []],
description: 'Lists authorized records.',
annotations: $annotations,
);
$registry->registerTool($tool, $handler);