export const mcpConfigSchema = {
$schema: "http://json-schema.org/draft-07/schema#",
$id: "https://<replace-with-host>/.well-known/mcp-config",
title: "MCP Session Configuration",
description: "Schema for the /mcp endpoint configuration.",
"x-query-style": "dot+bracket",
type: "object",
properties: {
apiToken: {
type: "string",
description: "API token used to authorise ClickUp requests."
},
defaultTeamId: {
type: "integer",
description: "Default ClickUp team identifier."
},
primaryLanguage: {
type: "string",
description: "Primary language for API responses. Falls back to CLICKUP_PRIMARY_LANGUAGE environment variable if not provided."
},
baseUrl: {
type: "string",
description: "Base URL for ClickUp API. Falls back to CLICKUP_BASE_URL environment variable, defaults to https://api.clickup.com/api/v2 if not provided."
},
requestTimeoutMs: {
type: "integer",
description: "Request timeout in milliseconds. Falls back to REQUEST_TIMEOUT_MS environment variable, defaults to 30000 if not provided."
},
defaultHeadersJson: {
type: "string",
description: "Default HTTP headers as JSON string. Falls back to DEFAULT_HEADERS_JSON environment variable if not provided."
},
authScheme: {
type: "string",
enum: ["auto", "personal_token", "oauth"],
description: "Authentication scheme. Falls back to CLICKUP_AUTH_SCHEME environment variable, defaults to 'auto' if not provided."
},
allowTools: {
anyOf: [{ type: "string" }, { type: "array", items: { type: "string" } }],
description: "Comma-separated string or array of tool names to allow. Overrides MCP_TOOLS_ALLOW environment variable if provided."
},
denyTools: {
anyOf: [{ type: "string" }, { type: "array", items: { type: "string" } }],
description: "Comma-separated string or array of tool names to deny. Overrides MCP_TOOLS_DENY environment variable if provided."
}
},
additionalProperties: false
} as const;
export type McpConfigSchema = typeof mcpConfigSchema;