Skip to main content
Glama

Convex MCP server

Official
by get-convex
schema_metadata.rs1.52 kB
use json_trait::JsonForm as _; use serde::{ Deserialize, Serialize, }; use value::codegen_convex_serialization; use super::schema_state::{ SchemaState, SerializedSchemaState, }; use crate::schemas::DatabaseSchema; #[derive(Debug, Clone, PartialEq)] #[cfg_attr(any(test, feature = "testing"), derive(proptest_derive::Arbitrary))] pub struct SchemaMetadata { pub state: SchemaState, pub raw_schema: String, } impl SchemaMetadata { pub fn database_schema(&self) -> anyhow::Result<DatabaseSchema> { DatabaseSchema::json_deserialize(&self.raw_schema) } pub fn new(state: SchemaState, schema: DatabaseSchema) -> anyhow::Result<Self> { let raw_schema = schema.json_serialize()?; Ok(Self { state, raw_schema }) } } #[derive(Serialize, Deserialize)] pub struct SerializedSchemaMetadata { state: SerializedSchemaState, schema: String, } impl TryFrom<SchemaMetadata> for SerializedSchemaMetadata { type Error = anyhow::Error; fn try_from(s: SchemaMetadata) -> anyhow::Result<Self> { Ok(Self { state: s.state.try_into()?, schema: s.raw_schema, }) } } impl TryFrom<SerializedSchemaMetadata> for SchemaMetadata { type Error = anyhow::Error; fn try_from(s: SerializedSchemaMetadata) -> anyhow::Result<Self> { Ok(Self { state: s.state.try_into()?, raw_schema: s.schema, }) } } codegen_convex_serialization!(SchemaMetadata, SerializedSchemaMetadata);

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