Skip to main content
Glama

Convex MCP server

Official
by get-convex
finishPush.ts2.89 kB
import { z } from "zod"; import { looseObject } from "./utils.js"; export const authDiff = looseObject({ added: z.array(z.string()), removed: z.array(z.string()), }); export type AuthDiff = z.infer<typeof authDiff>; export const componentDefinitionDiff = looseObject({}); export type ComponentDefinitionDiff = z.infer<typeof componentDefinitionDiff>; export const componentDiffType = z.discriminatedUnion("type", [ looseObject({ type: z.literal("create"), }), looseObject({ type: z.literal("modify"), }), looseObject({ type: z.literal("unmount"), }), looseObject({ type: z.literal("remount"), }), ]); export type ComponentDiffType = z.infer<typeof componentDiffType>; export const moduleDiff = looseObject({ added: z.array(z.string()), removed: z.array(z.string()), }); export type ModuleDiff = z.infer<typeof moduleDiff>; export const udfConfigDiff = looseObject({ previous_version: z.string(), next_version: z.string(), }); export type UdfConfigDiff = z.infer<typeof udfConfigDiff>; export const cronDiff = looseObject({ added: z.array(z.string()), updated: z.array(z.string()), deleted: z.array(z.string()), }); export type CronDiff = z.infer<typeof cronDiff>; const developerIndexConfig = z.intersection( z.discriminatedUnion("type", [ looseObject({ name: z.string(), type: z.literal("database"), fields: z.array(z.string()), }), looseObject({ name: z.string(), type: z.literal("search"), searchField: z.string(), filterFields: z.array(z.string()), }), looseObject({ name: z.string(), type: z.literal("vector"), dimensions: z.number(), vectorField: z.string(), filterFields: z.array(z.string()), }), ]), z.object({ staged: z.boolean().optional() }), ); export type DeveloperIndexConfig = z.infer<typeof developerIndexConfig>; export const indexDiff = looseObject({ added_indexes: z.array(developerIndexConfig), removed_indexes: z.array(developerIndexConfig), enabled_indexes: z.array(developerIndexConfig).optional(), disabled_indexes: z.array(developerIndexConfig).optional(), }); export type IndexDiff = z.infer<typeof indexDiff>; export const schemaDiff = looseObject({ previous_schema: z.nullable(z.string()), next_schema: z.nullable(z.string()), }); export type SchemaDiff = z.infer<typeof schemaDiff>; export const componentDiff = looseObject({ diffType: componentDiffType, moduleDiff, udfConfigDiff: z.nullable(udfConfigDiff), cronDiff, indexDiff, schemaDiff: z.nullable(schemaDiff), }); export type ComponentDiff = z.infer<typeof componentDiff>; export const finishPushDiff = looseObject({ authDiff, definitionDiffs: z.record(z.string(), componentDefinitionDiff), componentDiffs: z.record(z.string(), componentDiff), }); export type FinishPushDiff = z.infer<typeof finishPushDiff>;

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/get-convex/convex-backend'

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