Skip to main content
Glama
InMemoryAdapter.php2.27 kB
<?php namespace App\MCP\Adapters; use OPGG\LaravelMcpServer\Transports\SseAdapters\SseAdapterInterface; /** * In-Memory SSE Adapter for testing purposes * * This adapter stores messages in memory and should only be used for development/testing. * In production, use a persistent adapter like Redis or NATS. */ class InMemoryAdapter implements SseAdapterInterface { /** * In-memory storage for messages * Format: ['clientId' => ['message1', 'message2', ...]] */ private static array $messages = []; /** * Configuration storage */ private array $config = []; public function pushMessage(string $clientId, string $message): void { if (!isset(self::$messages[$clientId])) { self::$messages[$clientId] = []; } self::$messages[$clientId][] = $message; // Apply TTL-like behavior by limiting message count per client $maxMessages = $this->config['max_messages_per_client'] ?? 100; if (count(self::$messages[$clientId]) > $maxMessages) { array_shift(self::$messages[$clientId]); } } public function removeAllMessages(string $clientId): void { unset(self::$messages[$clientId]); } public function receiveMessages(string $clientId): array { return self::$messages[$clientId] ?? []; } public function popMessage(string $clientId): ?string { if (empty(self::$messages[$clientId])) { return null; } return array_shift(self::$messages[$clientId]); } public function hasMessages(string $clientId): bool { return !empty(self::$messages[$clientId]); } public function getMessageCount(string $clientId): int { return count(self::$messages[$clientId] ?? []); } public function initialize(array $config): void { $this->config = $config; } /** * Debug method to get all stored messages (for testing) */ public function getAllMessages(): array { return self::$messages; } /** * Debug method to clear all messages (for testing) */ public function clearAllMessages(): void { self::$messages = []; } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/uberr2000/mcp_demo'

If you have feedback or need assistance with the MCP directory API, please join our Discord server