Skip to main content
Glama
config.ts2.55 kB
import * as z from "zod"; import { DEFAULT_SYSTEM_PROMPT } from "./constants/default-prompts.js"; import { nullableString } from "./types/common.js"; const configSchema = z .object({ DIRECTUS_URL: z.string().describe("The URL of the Directus instance."), DIRECTUS_TOKEN: nullableString().describe( "The user token for the Directus instance." ), DIRECTUS_USER_EMAIL: nullableString().describe( "The email of the user to login with." ), DIRECTUS_USER_PASSWORD: nullableString().describe( "The password of the user to login with." ), DISABLE_TOOLS: z .array(z.string()) .default(["delete-item"]) .describe("Disable specific tools by name. Defaults to ['delete-item']"), MCP_SYSTEM_PROMPT_ENABLED: z .string() .optional() .default("true") .describe("Enable a tailored system prompt for the MCP server."), MCP_SYSTEM_PROMPT: nullableString() .describe( "Overwrite the default system prompt for the MCP server. Will load into the context before you use any other Directus tools." ) .default(DEFAULT_SYSTEM_PROMPT), DIRECTUS_PROMPTS_COLLECTION_ENABLED: z .string() .optional() .default("false") .describe("Enable MCP prompts."), DIRECTUS_PROMPTS_COLLECTION: nullableString().describe( "The Directus collection to store LLM prompts in." ), DIRECTUS_PROMPTS_NAME_FIELD: nullableString() .default("name") .describe("The name of the field that contains the prompt name."), DIRECTUS_PROMPTS_DESCRIPTION_FIELD: nullableString() .default("description") .describe("The name of the field that contains the prompt description."), DIRECTUS_PROMPTS_SYSTEM_PROMPT_FIELD: nullableString() .default("system_prompt") .describe("The name of the field that contains the prompt."), DIRECTUS_PROMPTS_MESSAGES_FIELD: nullableString() .default("messages") .describe("The name of the field that contains the prompt messages."), }) .refine( (data) => { return ( !!data.DIRECTUS_TOKEN || (!!data.DIRECTUS_USER_EMAIL && !!data.DIRECTUS_USER_PASSWORD) ); }, { message: "Either DIRECTUS_TOKEN or both DIRECTUS_USER_EMAIL and DIRECTUS_USER_PASSWORD must be provided.", path: ["DIRECTUS_TOKEN"], } ); export const createConfig = (config: Partial<Config>) => { return configSchema.parse(Object.assign(process.env, config)); }; export type Config = z.infer<typeof configSchema>;

Latest Blog Posts

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/JoshTheDerf/directus-extension-mcp'

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