list-metrics
Retrieve paginated lists of business and operational metrics, with options to filter by fields, include deleted entities, and navigate using cursors.
Instructions
List business/operational Metrics (OM 1.12+) with pagination
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Comma-separated fields to include | |
| limit | No | Number of results per page | |
| before | No | Cursor for backward pagination | |
| after | No | Cursor for forward pagination | |
| include | No | Include deleted entities | non-deleted |
| extractFields | No | Comma-separated dotted paths to project from response (e.g. 'id,name,owner.name,columns.*.name'). Use `*` as wildcard for arrays/objects. Wrap field names with dots in backticks. Reduces response tokens dramatically on large entities. |
Implementation Reference
- src/tools/governance-entities.ts:92-97 (handler)Handler function that calls the OpenMetadata API /metrics endpoint to list metrics with pagination, applying default field extraction unless extractFields is provided.
export async function listMetrics(params: z.infer<typeof listMetricsSchema>) { const { extractFields, ...query } = params; const data = await omClient.get("/metrics", query); if (extractFields) return data; return applyExtractFields(data, DEFAULTS.metric.list); } - Zod schema defining the input parameters for list-metrics: fields, limit, before, after cursors, include deleted, and extractFields.
export const listMetricsSchema = z.object({ fields: z.string().optional().describe("Comma-separated fields to include"), limit: z.coerce.number().optional().default(10).describe("Number of results per page"), before: z.string().optional().describe("Cursor for backward pagination"), after: z.string().optional().describe("Cursor for forward pagination"), include: listIncludeEnum.optional().default("non-deleted").describe("Include deleted entities"), extractFields: z.string().optional().describe(extractFieldsDescription), }); - src/index.ts:440-440 (registration)Registration of the list-metrics tool with MCP server, binding the schema and handler.
tool("list-metrics", "List business/operational Metrics (OM 1.12+) with pagination", listMetricsSchema.shape, wrapToolHandler(listMetrics)); - Default field projection for metrics list (used by applyExtractFields helper when caller doesn't provide extractFields).
metric: { list: `${COMMON_LIST_FIELDS},data.*.metricExpression,data.*.metricType,data.*.granularity,data.*.unitOfMeasurement`, get: `${COMMON_GET_FIELDS},metricExpression,metricType,granularity,unitOfMeasurement,relatedMetrics`, },