Skip to main content
Glama
ApikeyGuard.ts865 B
import { FastifyRequest } from 'fastify'; import { Injectable, CanActivate, ExecutionContext } from '@nestjs/common'; import { Observable } from 'rxjs'; import { ConfigurationService } from '../../config/configuration.js'; import { UnauthorizedError } from '../../common/errors/index.js'; @Injectable() export class ApiKeyGuard implements CanActivate { constructor(private readonly config: ConfigurationService) {} canActivate( context: ExecutionContext ): boolean | Promise<boolean> | Observable<boolean> { const request = context.switchToHttp().getRequest<FastifyRequest>(); const apiKey = request.headers['x-api-key'] as string; if (!apiKey) { throw new UnauthorizedError('API key is missing'); } if (apiKey != this.config.apiKey) { throw new UnauthorizedError('API key is not valid'); } return true; } }

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/KasarLabs/snak'

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