{"openapi":"3.1.0","info":{"title":"Symbolic Math Tools API","version":"1.0.0","description":"REST endpoints for computer algebra: solve, simplify, expand, factor, substitute, differentiate, integrate. The same tools are also exposed via MCP at /api/mcp."},"servers":[{"url":"https://tools.aieo.se"}],"paths":{"/api/v1/solve_equation":{"post":{"operationId":"solve_equation","summary":"Solve equation","description":"Analytically solve a single equation for a variable. Accepts 'lhs = rhs' or an expression equal to zero.","tags":["computer-algebra"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"equation":{"type":"string","minLength":1,"description":"Equation to solve, e.g. 'x^2 - 5x + 6 = 0' or 'x^2 - 4'"},"variable":{"type":"string","minLength":1,"description":"Variable to solve for, e.g. 'x'"}},"required":["equation","variable"],"additionalProperties":false},"example":{"equation":"x^2 - 5*x + 6 = 0","variable":"x"}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["ok","result"],"properties":{"ok":{"const":true},"result":{}}},{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"string"}}}]}}}},"400":{"description":"Invalid request body"}}}},"/api/v1/solve_system":{"post":{"operationId":"solve_system","summary":"Solve system","description":"Analytically solve a system of equations for given variables.","tags":["computer-algebra"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"equations":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"description":"List of equations, e.g. ['x+y=3','x-y=1']"},"variables":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"description":"Variables to solve for, e.g. ['x','y']"}},"required":["equations","variables"],"additionalProperties":false},"example":{"equations":["x + y = 3","x - y = 1"],"variables":["x","y"]}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["ok","result"],"properties":{"ok":{"const":true},"result":{}}},{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"string"}}}]}}}},"400":{"description":"Invalid request body"}}}},"/api/v1/simplify":{"post":{"operationId":"simplify","summary":"Simplify","description":"Simplify an algebraic expression.","tags":["computer-algebra"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"expression":{"type":"string","minLength":1,"description":"Algebraic expression, e.g. '(x+1)^2'"}},"required":["expression"],"additionalProperties":false},"example":{"expression":"(x^2 - 1)/(x - 1)"}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["ok","result"],"properties":{"ok":{"const":true},"result":{}}},{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"string"}}}]}}}},"400":{"description":"Invalid request body"}}}},"/api/v1/expand":{"post":{"operationId":"expand","summary":"Expand","description":"Expand products and powers in an algebraic expression.","tags":["computer-algebra"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"expression":{"type":"string","minLength":1,"description":"Algebraic expression, e.g. '(x+1)^2'"}},"required":["expression"],"additionalProperties":false},"example":{"expression":"(x + 1)^3"}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["ok","result"],"properties":{"ok":{"const":true},"result":{}}},{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"string"}}}]}}}},"400":{"description":"Invalid request body"}}}},"/api/v1/factor":{"post":{"operationId":"factor","summary":"Factor","description":"Factor a polynomial expression.","tags":["computer-algebra"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"expression":{"type":"string","minLength":1,"description":"Algebraic expression, e.g. '(x+1)^2'"}},"required":["expression"],"additionalProperties":false},"example":{"expression":"x^2 - 5*x + 6"}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["ok","result"],"properties":{"ok":{"const":true},"result":{}}},{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"string"}}}]}}}},"400":{"description":"Invalid request body"}}}},"/api/v1/substitute":{"post":{"operationId":"substitute","summary":"Substitute","description":"Substitute variables in an expression with given values or sub-expressions.","tags":["computer-algebra"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"expression":{"type":"string","minLength":1,"description":"Expression to substitute into"},"substitutions":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of variable -> replacement value or expression"}},"required":["expression","substitutions"],"additionalProperties":false},"example":{"expression":"a*x^2 + b*x + c","substitutions":{"a":"1","b":"-3","c":"2"}}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["ok","result"],"properties":{"ok":{"const":true},"result":{}}},{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"string"}}}]}}}},"400":{"description":"Invalid request body"}}}},"/api/v1/differentiate":{"post":{"operationId":"differentiate","summary":"Differentiate","description":"Symbolically differentiate an expression with respect to a variable.","tags":["computer-algebra"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"expression":{"type":"string","minLength":1},"variable":{"type":"string","minLength":1},"order":{"type":"integer","minimum":1,"maximum":10,"default":1}},"required":["expression","variable"],"additionalProperties":false},"example":{"expression":"sin(x) * x^2","variable":"x","order":1}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["ok","result"],"properties":{"ok":{"const":true},"result":{}}},{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"string"}}}]}}}},"400":{"description":"Invalid request body"}}}},"/api/v1/integrate":{"post":{"operationId":"integrate","summary":"Integrate","description":"Symbolically integrate an expression with respect to a variable.","tags":["computer-algebra"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"expression":{"type":"string","minLength":1},"variable":{"type":"string","minLength":1}},"required":["expression","variable"],"additionalProperties":false},"example":{"expression":"x * sin(x)","variable":"x"}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["ok","result"],"properties":{"ok":{"const":true},"result":{}}},{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"string"}}}]}}}},"400":{"description":"Invalid request body"}}}}}}