Skip to main content
Glama

CTX: Context as Code (CaC) tool

by context-hub
MIT License
235
  • Apple
  • Linux
ListResourcesAction.php2.21 kB
<?php declare(strict_types=1); namespace Butschster\ContextGenerator\McpServer\Action\Resources; use Butschster\ContextGenerator\Application\Logger\LoggerPrefix; use Butschster\ContextGenerator\Config\Loader\ConfigLoaderInterface; use Butschster\ContextGenerator\Config\Registry\ConfigRegistryAccessor; use Butschster\ContextGenerator\McpServer\McpConfig; use Butschster\ContextGenerator\McpServer\Routing\Attribute\Get; use Mcp\Server\Contracts\ReferenceProviderInterface; use PhpMcp\Schema\Resource; use PhpMcp\Schema\Result\ListResourcesResult; use Psr\Http\Message\ServerRequestInterface; use Psr\Log\LoggerInterface; final readonly class ListResourcesAction { public function __construct( #[LoggerPrefix(prefix: 'resources.list')] private LoggerInterface $logger, private ConfigLoaderInterface $configLoader, private ReferenceProviderInterface $provider, private McpConfig $config, ) {} #[Get(path: '/resources/list', name: 'resources.list')] public function __invoke(ServerRequestInterface $request): ListResourcesResult { $this->logger->info('Listing available resources'); $resources = []; // Get resources from registry foreach ($this->provider->getResources() as $resource) { $resources[] = $resource; } // Add document resources from config loader $config = new ConfigRegistryAccessor($this->configLoader->load()); foreach ($config->getDocuments() as $document) { $tags = \implode(', ', $document->getTags()); $resources[] = new Resource( uri: 'ctx://document/' . $document->outputPath, name: $this->config->getDocumentNameFormat( path: $document->outputPath, description: $document->description, tags: $tags, ), description: \sprintf( '%s. Tags: %s', $document->description, $tags, ), mimeType: 'application/markdown', ); } return new ListResourcesResult(resources: $resources); } }

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/context-hub/generator'

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