Skip to main content
Glama

mcp-server-cloudflare

Official
by cloudflare
workers-observability.api.ts2.46 kB
import { env } from 'cloudflare:workers' import { fetchCloudflareApi } from '../cloudflare-api' import { zKeysResponse, zReturnedQueryRunResult, zValuesResponse, } from '../types/workers-logs.types' import { V4Schema } from '../v4-api' import type { z } from 'zod' import type { zKeysRequest, zQueryRunRequest, zValuesRequest } from '../types/workers-logs.types' type QueryRunRequest = z.infer<typeof zQueryRunRequest> function fixTimeframe(timeframe: QueryRunRequest['timeframe']) { return { from: new Date(timeframe.from).getTime(), to: new Date(timeframe.to).getTime(), } } export async function queryWorkersObservability( apiToken: string, accountId: string, query: QueryRunRequest ): Promise<z.infer<typeof zReturnedQueryRunResult> | null> { // @ts-expect-error We don't have actual env in this package const environment = env.ENVIRONMENT const data = await fetchCloudflareApi({ endpoint: '/workers/observability/telemetry/query', accountId, apiToken, responseSchema: V4Schema(zReturnedQueryRunResult), options: { method: 'POST', headers: { 'Content-Type': 'application/json', 'workers-observability-origin': `workers-observability-mcp-${environment}`, }, body: JSON.stringify({ ...query, timeframe: fixTimeframe(query.timeframe) }), }, }) return data.result } type QueryKeysRequest = z.infer<typeof zKeysRequest> export async function handleWorkerLogsKeys( apiToken: string, accountId: string, keysQuery: QueryKeysRequest ): Promise<zKeysResponse> { const data = await fetchCloudflareApi({ endpoint: '/workers/observability/telemetry/keys', accountId, apiToken, responseSchema: V4Schema(zKeysResponse), options: { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ ...keysQuery, timeframe: fixTimeframe(keysQuery.timeframe) }), }, }) return data.result || [] } export async function handleWorkerLogsValues( apiToken: string, accountId: string, valuesQuery: z.infer<typeof zValuesRequest> ): Promise<z.infer<typeof zValuesResponse> | null> { const data = await fetchCloudflareApi({ endpoint: '/workers/observability/telemetry/values', accountId, apiToken, responseSchema: V4Schema(zValuesResponse), options: { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ ...valuesQuery, timeframe: fixTimeframe(valuesQuery.timeframe) }), }, }) return data.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/cloudflare/mcp-server-cloudflare'

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