List observations
listObservationsRetrieve observations like spans, generations, and events using filters for page, name, type, level, time, and environment.
Instructions
List observations (spans, generations, events) with filters.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| limit | No | Items per page (default 50, max 100) | |
| traceId | No | ||
| name | No | ||
| userId | No | ||
| type | No | ||
| level | No | ||
| parentObservationId | No | ||
| fromStartTime | No | ||
| toStartTime | No | ||
| environment | No |
Implementation Reference
- src/tools.ts:44-64 (registration)Registration of the 'listObservations' tool via server.registerTool() with name 'listObservations'.
// ---------- Observations ---------- server.registerTool( "listObservations", { title: "List observations", description: "List observations (spans, generations, events) with filters.", inputSchema: { ...paginationShape, traceId: z.string().optional(), name: z.string().optional(), userId: z.string().optional(), type: z.enum(["SPAN", "GENERATION", "EVENT"]).optional(), level: z.enum(["DEBUG", "DEFAULT", "WARNING", "ERROR"]).optional(), parentObservationId: z.string().optional(), fromStartTime: z.string().datetime().optional(), toStartTime: z.string().datetime().optional(), environment: z.string().optional(), }, }, async (args) => asJson(await client.get("/api/public/observations", args)), ); - src/tools.ts:63-63 (handler)Handler for 'listObservations': an async function that calls client.get('/api/public/observations', args) with the input arguments, wrapping the result in JSON text content via asJson().
async (args) => asJson(await client.get("/api/public/observations", args)), - src/tools.ts:50-61 (schema)Input schema for 'listObservations' with filters: pagination (page, limit), traceId, name, userId, type (SPAN/GENERATION/EVENT), level (DEBUG/DEFAULT/WARNING/ERROR), parentObservationId, fromStartTime, toStartTime, and environment.
inputSchema: { ...paginationShape, traceId: z.string().optional(), name: z.string().optional(), userId: z.string().optional(), type: z.enum(["SPAN", "GENERATION", "EVENT"]).optional(), level: z.enum(["DEBUG", "DEFAULT", "WARNING", "ERROR"]).optional(), parentObservationId: z.string().optional(), fromStartTime: z.string().datetime().optional(), toStartTime: z.string().datetime().optional(), environment: z.string().optional(), }, - src/schemas.ts:3-12 (helper)paginationShape is used via spread in the inputSchema to provide 'page' and 'limit' fields.
export const paginationShape = { page: z.number().int().positive().optional().describe("Page number (default 1)"), limit: z .number() .int() .min(1) .max(100) .optional() .describe("Items per page (default 50, max 100)"), }; - src/tools.ts:6-8 (helper)asJson helper used by the handler to wrap API response data into MCP content format.
const asJson = (data: unknown) => ({ content: [{ type: "text" as const, text: JSON.stringify(data, null, 2) }], });