"""
schemas.py
This file defines the JSON schemas for each MCP tool.
Claude (or another LLM client) reads these schemas during the MCP handshake
and uses them to understand what arguments to provide when calling tools.
"""
# ------------------------------------------------------------
# JSON Schema definitions for tools
# ------------------------------------------------------------
TOOL_SCHEMAS = {
"setParameter": {
"description": "Set a synthesizer parameter by name.",
"inputSchema": {
"type": "object",
"properties": {
"param": {"type": "string", "description": "The parameter name."},
"value": {"type": "number", "description": "The new value (0.0–1.0)."}
},
"required": ["param", "value"]
},
"outputSchema": {
"type": "object",
"properties": {
"ok": {"type": "boolean"},
"message": {"type": "string"}
},
"required": ["ok"]
}
},
"getParameter": {
"description": "Retrieve the current value of a synthesizer parameter.",
"inputSchema": {
"type": "object",
"properties": {
"param": {"type": "string"}
},
"required": ["param"]
},
"outputSchema": {
"type": "object",
"properties": {
"value": {"type": "number"}
},
"required": ["value"]
}
},
"listParameters": {
"description": "List all available synthesizer parameters.",
"inputSchema": {
"type": "object",
"properties": {}
},
"outputSchema": {
"type": "object",
"properties": {
"parameters": {
"type": "array",
"items": {"type": "string"}
}
},
"required": ["parameters"]
}
}
}