Skip to main content
Glama

Sanity MCP Server

Official
by sanity-io
env.ts1.35 kB
import dotenv from 'dotenv' import {z} from 'zod' dotenv.config() const CommonEnvSchema = z.object({ SANITY_API_TOKEN: z.string().describe('Sanity API token'), SANITY_API_HOST: z .string() .optional() .default('https://api.sanity.io') .describe('Sanity API host'), INTERNAL_REQUESTER_HEADERS: z .string() .optional() .transform((v) => (v ? JSON.parse(v) : undefined)), INTERNAL_REQUEST_TAG_PREFIX: z.string().optional(), INTERNAL_USE_PROJECT_HOSTNAME: z .union([z.literal('true').transform(() => true), z.literal('false').transform(() => false)]) .optional(), MAX_TOOL_TOKEN_OUTPUT: z.coerce .number() .optional() .default(50000) .describe('Maximum tool token output'), }) const DefaultSchema = z .object({ MCP_USER_ROLE: z.enum(['developer', 'editor']), SANITY_PROJECT_ID: z.string().describe('Sanity project ID'), SANITY_DATASET: z.string().describe('The dataset'), }) .merge(CommonEnvSchema) const AgentSchema = z .object({ MCP_USER_ROLE: z.literal('internal_agent_role'), }) .merge(CommonEnvSchema) const EnvSchema = z.discriminatedUnion('MCP_USER_ROLE', [DefaultSchema, AgentSchema]) export const env = EnvSchema.safeParse(process.env) if (!env.success) { console.error('Invalid environment variables', env.error.format()) process.exit(1) }

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/sanity-io/sanity-mcp-server'

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