MCP 2025-06-18
design.submitSynthesis
Submit a fenced proposal, contradiction or failure. Never activates rules.
Scopes
The agent key needs these scopes. The server also checks access to each record before returning data or changing it.
- read:design
Input schema
This schema is shared with tools/list, including the required fields and additionalProperties rules.
{
"type": "object",
"oneOf": [
{
"type": "object",
"properties": {
"runId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"generation": {
"type": "integer",
"minimum": 0
},
"evidenceDigest": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"kind": {
"const": "proposal"
},
"ruleKey": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"class": {
"enum": [
"functional",
"accessibility",
"principle",
"taste"
]
},
"text": {
"type": "string",
"minLength": 1,
"maxLength": 8000
},
"diff": {
"type": "string",
"minLength": 1,
"maxLength": 8000
},
"examples": {
"type": "array",
"maxItems": 100,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 2000
}
},
"antiExamples": {
"type": "array",
"maxItems": 100,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 2000
}
}
},
"required": [
"runId",
"generation",
"evidenceDigest",
"kind",
"ruleKey",
"class",
"text",
"diff",
"examples",
"antiExamples"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"runId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"generation": {
"type": "integer",
"minimum": 0
},
"evidenceDigest": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"kind": {
"const": "contradiction"
},
"requestedPreference": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"currentTask": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"concreteRisk": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"guidance": {
"type": "object",
"properties": {
"ruleId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"version": {
"type": "integer",
"minimum": 1
},
"digest": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
"required": [
"ruleId",
"version",
"digest"
],
"additionalProperties": false
},
"alternatives": {
"type": "array",
"minItems": 1,
"maxItems": 2,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 2000
}
},
"question": {
"type": "string",
"minLength": 1,
"maxLength": 2000
}
},
"required": [
"runId",
"generation",
"evidenceDigest",
"kind",
"requestedPreference",
"currentTask",
"concreteRisk",
"guidance",
"alternatives",
"question"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"runId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"generation": {
"type": "integer",
"minimum": 0
},
"evidenceDigest": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"kind": {
"const": "failure"
},
"code": {
"enum": [
"INSUFFICIENT_EVIDENCE",
"PROVIDER_UNAVAILABLE",
"INVALID_DRAFT"
]
},
"recovery": {
"type": "string",
"minLength": 1,
"maxLength": 2000
}
},
"required": [
"runId",
"generation",
"evidenceDigest",
"kind",
"code",
"recovery"
],
"additionalProperties": false
}
]
}Call this tool
Send it as POST https://www.specifywork.com/api/mcp. Authorization: Bearer <agent key>, a key that starts with sw_agent. Replace the example values with records your key can reach.
{
"jsonrpc": "2.0",
"id": "example_design_submitSynthesis",
"method": "tools/call",
"params": {
"name": "design.submitSynthesis",
"arguments": {
"runId": "<runId>",
"generation": 0,
"evidenceDigest": "<evidenceDigest>",
"kind": "proposal",
"ruleKey": "<ruleKey>",
"class": "functional",
"text": "<text>",
"diff": "<diff>",
"examples": [
"<example>"
],
"antiExamples": [
"<antiExample>"
]
}
}
}Read the result before continuing
The Design operation's result.
A call returns content[0].text with the JSON result and structuredContent.result with the same value. A refused call returns isError: true and the error code in content[0].text.
A request being accepted is not proof of an external action completing. Keep correlation IDs and mutation idempotency keys unchanged across safe retries.