Skip to main content
Glama

CTX: Context as Code (CaC) tool

by context-hub
MIT License
235
  • Apple
  • Linux
UrlSourceConfig.php2.41 kB
<?php declare(strict_types=1); namespace Butschster\ContextGenerator\Config\Import\Source\Url; use Butschster\ContextGenerator\Config\Import\Source\Config\FilterConfig; use Butschster\ContextGenerator\Config\Import\Source\Config\SourceConfigInterface; /** * Configuration for URL imports */ final readonly class UrlSourceConfig implements SourceConfigInterface { /** * Creates a new URL source configuration */ public function __construct( public string $url, public int $ttl = 300, public array $headers = [], private ?FilterConfig $filter = null, ) {} /** * Create from an array configuration * * @param array $config Import configuration array * @param string $basePath Base path is ignored for URL sources */ public static function fromArray(array $config, string $basePath): self { if (!isset($config['url'])) { throw new \InvalidArgumentException("Source configuration must have a 'url' property"); } $url = $config['url']; $headers = $config['headers'] ?? []; $filter = FilterConfig::fromArray($config['filter'] ?? null); // Ensure headers is an array if (!\is_array($headers)) { $headers = []; } return new self( url: $url, ttl: (int) ($config['ttl'] ?? 300), headers: $headers, filter: $filter, ); } public function getType(): string { return 'url'; } /** * Get the file extension from the URL */ public function getExtension(): string { $parsedUrl = \parse_url($this->url); if (!isset($parsedUrl['path'])) { return ''; } return \strtolower(\pathinfo($parsedUrl['path'], PATHINFO_EXTENSION)); } public function getPath(): string { return $this->url; } public function getFilter(): ?FilterConfig { return $this->filter; } public function jsonSerialize(): array { $result = [ 'type' => $this->getType(), 'url' => $this->url, 'ttl' => $this->ttl, 'headers' => $this->headers, ]; if ($this->filter !== null && !$this->filter->isEmpty()) { $result['filter'] = $this->filter; } return $result; } }

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