The whole surface is one call, and that is the point: an assistant needing a number, a sorted list or a filtered array gets a deterministic answer instead of an estimate. The engine's syntax is the ceiling — whatever expr-lang can express works, and there is no way to reach outside the expression.
An MCP server that hands one job to the expr-lang engine: evaluate an expression and return the result. It exists so an assistant can do data manipulation exactly rather than talk its way through it — sorting a list of records, filtering an array, computing a number.
- Evaluate any expr-lang expression and get the result back — `eval`
- Arithmetic including modulo and exponentiation, string concatenation, length and case conversion, and boolean and comparison operators
- Array work — mapping, filtering, reducing and sorting — over structures you pass in, for example `sortBy(users, .Age, "desc")`
- Conditional logic, ternaries, and the engine's built-in mathematical, string, array and date functions
Go 1.18 or higher to build: clone the repository, `go mod download`, then `go build -o bin/server` (`go build -o bin/server.exe` on Windows). Point the client config at that binary — the documented entry names the server `eval`. Smithery will do the install instead: `npx -y @smithery/cli install @ivan-saorin/mcp-expr-lang --client claude`. No account, no key, nothing reached over the network.
One command — npx -y @smithery/cli install @ivan-saorin/mcp-expr-lang --client claude
