{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://raw.githubusercontent.com/can1357/oh-my-pi/main/packages/coding-agent/src/config/mcp-schema.json", "title": "OMP MCP configuration", "description": "Schema for mcp.json, .mcp.json, .omp/mcp.json, and ~/.omp/agent/mcp.json used by the OMP coding agent.", "type": "object", "additionalProperties": false, "properties": { "$schema": { "type": "string", "description": "Optional schema reference for editor autocomplete and validation." }, "mcpServers": { "type": "object", "description": "Map of MCP server name to server configuration.", "propertyNames": { "pattern": "^[a-zA-Z0-9_.-]{1,100}$" }, "additionalProperties": { "$ref": "#/$defs/serverConfig" } }, "disabledServers": { "type": "array", "description": "User-level denylist for disabling discovered servers by name.", "items": { "type": "string", "minLength": 1 }, "uniqueItems": true } }, "$defs": { "stringMap": { "type": "object", "additionalProperties": { "type": "string" } }, "authConfig": { "type": "object", "additionalProperties": false, "required": ["type"], "properties": { "type": { "type": "string", "enum": ["oauth", "apikey"], "description": "Auth strategy understood by OMP." }, "credentialId": { "type": "string", "description": "Stored OAuth credential id from agent auth storage." }, "tokenUrl": { "type": "string", "description": "Token endpoint persisted for refresh." }, "clientId": { "type": "string", "description": "OAuth client id persisted for refresh." }, "clientSecret": { "type": "string", "description": "OAuth client secret persisted for refresh." } } }, "oauthConfig": { "type": "object", "additionalProperties": false, "properties": { "clientId": { "type": "string" }, "clientSecret": { "type": "string" }, "redirectUri": { "type": "string" }, "callbackPort": { "type": "integer", "minimum": 1, "maximum": 65535 }, "callbackPath": { "type": "string" } }, "description": "Explicit OAuth client settings for servers that need them during /mcp reauth or initial connect." }, "serverBase": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Whether OMP should try to connect this server." }, "timeout": { "type": "number", "exclusiveMinimum": 0, "description": "Connection timeout in milliseconds." }, "auth": { "$ref": "#/$defs/authConfig" }, "oauth": { "$ref": "#/$defs/oauthConfig" } } }, "stdioServer": { "allOf": [ { "$ref": "#/$defs/serverBase" }, { "type": "object", "additionalProperties": false, "required": ["command"], "properties": { "type": { "type": "string", "enum": ["stdio"], "description": "Default transport when omitted." }, "command": { "type": "string", "minLength": 1, "description": "Executable to spawn." }, "args": { "type": "array", "items": { "type": "string" }, "description": "Arguments passed to the stdio server process." }, "env": { "$ref": "#/$defs/stringMap", "description": "Environment variables passed to the stdio process." }, "cwd": { "type": "string", "description": "Working directory used when spawning the stdio process." } }, "not": { "required": ["url"] } } ] }, "httpServer": { "allOf": [ { "$ref": "#/$defs/serverBase" }, { "type": "object", "additionalProperties": false, "required": ["type", "url"], "properties": { "type": { "type": "string", "enum": ["http"], "description": "Streamable HTTP transport." }, "url": { "type": "string", "minLength": 1, "description": "MCP endpoint URL." }, "headers": { "$ref": "#/$defs/stringMap", "description": "HTTP headers sent with MCP requests." } }, "not": { "required": ["command"] } } ] }, "sseServer": { "allOf": [ { "$ref": "#/$defs/serverBase" }, { "type": "object", "additionalProperties": false, "required": ["type", "url"], "properties": { "type": { "type": "string", "enum": ["sse"], "description": "Legacy SSE transport kept for compatibility. Prefer http for new configs." }, "url": { "type": "string", "minLength": 1, "description": "Legacy SSE endpoint URL." }, "headers": { "$ref": "#/$defs/stringMap", "description": "HTTP headers sent with the SSE transport." } }, "not": { "required": ["command"] } } ] }, "serverConfig": { "oneOf": [ { "$ref": "#/$defs/stdioServer" }, { "$ref": "#/$defs/httpServer" }, { "$ref": "#/$defs/sseServer" } ] } } }