Skip to main content
Glama
endpoints.ts5.73 kB
/** * Centralized API endpoints configuration */ import { getApiUrl } from "./env.js"; /** * Get the base URL for API requests */ export function getBaseUrl(): string { const baseUrl = getApiUrl(); return baseUrl; } /** * Build query string from parameters object */ function buildQueryString(params: Record<string, string | number | boolean | undefined | null>): string { const queryParams = new URLSearchParams(); for (const [key, value] of Object.entries(params)) { if (value !== undefined && value !== null) { queryParams.append(key, String(value)); } } const queryString = queryParams.toString(); return queryString ? `?${queryString}` : ""; } /** * MCP API endpoints */ export const endpoints = { /** * List test runs with filters * GET /api/mcp/list-testruns */ listTestRuns: (params?: { by_branch?: string; by_time_interval?: string; by_author?: string; by_commit?: string; by_environment?: string; by_pr?: string; limit?: number; page?: number; get_all?: string | boolean; }): string => { const baseUrl = getBaseUrl(); const queryString = params ? buildQueryString(params) : ""; return `${baseUrl}/api/mcp/list-testruns${queryString}`; }, /** * Get detailed test run information by test run ID(s) - supports batch operations * GET /api/mcp/get-run-details * @param params.testrun_id - Optional: Single ID or comma-separated IDs (max 20). Example: 'run1' or 'run1,run2,run3' * @param params.counter - Optional: Filter by test run counter number */ getRunDetails: (params: { testrun_id?: string; // Optional: Single ID or comma-separated IDs for batch (max 20) counter?: number; }): string => { const baseUrl = getBaseUrl(); const queryString = buildQueryString(params); return `${baseUrl}/api/mcp/get-run-details${queryString}`; }, /** * List test cases with comprehensive filtering options * GET /api/mcp/list-testcase * @param params.by_testrun_id - Optional: Single ID or comma-separated IDs (max 20). Required unless using counter, by_pages, or by_branch * @param params.counter - Optional: Test run counter number. Alternative to by_testrun_id * @param params.by_status - Optional: passed, failed, skipped, or flaky * @param params.by_spec_file_name - Optional: Filter by spec file name * @param params.by_error_category - Optional: Filter by error category * @param params.by_browser_name - Optional: Filter by browser name * @param params.by_tag - Optional: Filter by tag(s) * @param params.by_total_runtime - Optional: Filter by runtime (e.g., '<60', '>100') * @param params.by_artifacts - Optional: Filter by artifacts availability * @param params.by_error_message - Optional: Filter by error message * @param params.by_attempt_number - Optional: Filter by attempt number * @param params.by_pages - Optional: List by page number (doesn't require testrun_id/counter) * @param params.by_branch - Optional: Filter by branch (doesn't require testrun_id/counter) * @param params.by_time_interval - Optional: Filter by time interval * @param params.limit - Optional: Results per page * @param params.by_environment - Optional: Filter by environment * @param params.by_author - Optional: Filter by author * @param params.by_commit - Optional: Filter by commit hash * @param params.page - Optional: Page number * @param params.get_all - Optional: Get all results */ listTestCases: (params?: { by_testrun_id?: string; // Single ID or comma-separated IDs for batch (max 20) counter?: number; by_status?: string; by_spec_file_name?: string; by_error_category?: string; by_browser_name?: string; by_tag?: string; by_total_runtime?: string; by_artifacts?: string | boolean; by_error_message?: string; by_attempt_number?: number; by_pages?: number; by_branch?: string; by_time_interval?: string; limit?: number; by_environment?: string; by_author?: string; by_commit?: string; page?: number; get_all?: string | boolean; }): string => { const baseUrl = getBaseUrl(); const queryString = params ? buildQueryString(params) : ""; return `${baseUrl}/api/mcp/list-testcase${queryString}`; }, /** * Get detailed test case information * GET /api/mcp/get-testcase-details * @param params.testcaseid - Optional: Test case ID (can be used alone) * @param params.by_title - Optional: Test case name/title (must be combined with by_testrun_id or counter) * @param params.by_testrun_id - Optional: Test run ID (required when using by_title) * @param params.counter - Optional: Test run counter (required when using by_title if by_testrun_id not provided) */ getTestCaseDetails: (params?: { testcaseid?: string; // Test case ID (can be used alone) by_title?: string; // Test case name (must be combined with by_testrun_id or counter) by_testrun_id?: string; // Test run ID (required when using by_title) counter?: string | number; // Test run counter (required when using by_title if by_testrun_id not provided) }): string => { const baseUrl = getBaseUrl(); const queryString = params ? buildQueryString(params) : ""; return `${baseUrl}/api/mcp/get-testcase-details${queryString}`; }, /** * Hello/health check endpoint - validates API key and returns project name * GET /api/mcp/hello */ hello: (): string => { const baseUrl = getBaseUrl(); return `${baseUrl}/api/mcp/hello`; }, };

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/testdino-inc/testdino-mcp'

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