1. Go to this page and download the library: Download armature/mcp-analytics 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/ */
armature / mcp-analytics example snippets
declare(strict_types=1);
use Armature\McpAnalytics\Analytics;
use Armature\McpAnalytics\Config;
use Mcp\Server;
use Mcp\Server\Transport\StdioTransport;
nvironment(),
);
$builder->addTool(
handler: static fn (string $customerId): array => [
'customer_id' => $customerId,
'status' => 'active',
],
name: 'lookup_customer',
description: 'Look up a customer.',
inputSchema: [
'type' => 'object',
'properties' => [
'customerId' => ['type' => 'string'],
],
'
use Mcp\Server\Transport\StreamableHttpTransport;
use Nyholm\Psr7\Factory\Psr17Factory;
use Nyholm\Psr7Server\ServerRequestCreator;
$factory = new Psr17Factory();
$request = (new ServerRequestCreator($factory, $factory, $factory, $factory))
->fromGlobals();
$transport = new StreamableHttpTransport(
request: $request,
responseFactory: $factory,
streamFactory: $factory,
middleware: [
...StreamableHttpTransport::defaultMiddleware(),
$authenticationMiddleware,
$analytics->httpMiddleware(),
],
);
try {
$response = $server->run($transport);
} finally {
$analytics->flush();
}
use Armature\McpAnalytics\Config;
use Armature\McpAnalytics\DeliveryMode;
$config = new Config(
delivery: DeliveryMode::Deferred,
scheduler: $hostLifecycleScheduler,
);
$config = new Config(captureTelemetry: false);
$config = new Config(
onError: static function (Throwable $error, array $batch): void {
// Log the safe error code/class. Do not log the batch.
},
);