66c80fd613
fixes #462
231 lines
6.1 KiB
JSON
231 lines
6.1 KiB
JSON
{
|
|
"$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/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"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|