https://github.com/ivan-saorin/mcp-expr-lang
MCP Server around https://expr-lang.org
https://github.com/ivan-saorin/mcp-expr-lang
Last synced: about 1 month ago
JSON representation
MCP Server around https://expr-lang.org
- Host: GitHub
- URL: https://github.com/ivan-saorin/mcp-expr-lang
- Owner: ivan-saorin
- License: mit
- Created: 2025-05-01T14:56:00.000Z (5 months ago)
- Default Branch: master
- Last Pushed: 2025-05-01T23:02:10.000Z (5 months ago)
- Last Synced: 2025-05-30T06:28:19.418Z (4 months ago)
- Language: Go
- Size: 17.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-mcp-servers - MCP Expr Lang - MCP Expr-Lang provides a seamless integration between Claude AI and the powerful expr-lang expression evaluation engine. (Community Servers)
- awesome-mcp-servers - **MCP Expr Lang** - MCP Expr-Lang provides a seamless integration between Claude AI and the powerful expr-lang expression evaluation engine. `http` `ai` `ml` `git` `github` (Other)
- awesome-mcp-servers - **MCP Expr Lang** - MCP Expr-Lang provides a seamless integration between Claude AI and the powerful expr-lang expression evaluation engine. `http` `ai` `ml` `git` `github` (Other)
- mcp-index - Expression Evaluation Server - Evaluate complex expressions and manipulate data directly within conversations, enabling operations such as mathematical calculations, data transformation, sorting, and string manipulation. (Task and Project Management)
README
# MCP Expr-Lang
[](https://smithery.ai/server/@ivan-saorin/mcp-expr-lang)
A powerful expression evaluation tool for Claude Desktop using the Model Context Protocol (MCP).
## Overview
MCP Expr-Lang provides a seamless integration between Claude AI and the powerful [expr-lang](https://expr-lang.org/) expression evaluation engine. This tool allows you to perform complex data manipulations, calculations, and transformations directly within your Claude conversations.
With MCP Expr-Lang, you can:
- Evaluate mathematical expressions
- Transform and filter arrays and objects
- Sort complex data structures
- Perform string manipulations
- Use conditional logic
- And much more!## Installation
### Installing via Smithery
To install MCP Expr-Lang for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@ivan-saorin/mcp-expr-lang):
```bash
npx -y @smithery/cli install @ivan-saorin/mcp-expr-lang --client claude
```### Prerequisites
- Go 1.18 or higher
- Claude Desktop application
- Git### Step 1: Clone the Repository
```bash
git clone https://github.com/ivan-saorin/mcp-expr-lang.git
cd mcp-expr-lang
```### Step 2: Install Dependencies
```bash
go mod download
```### Step 3: Build the Application
#### For Windows
```bash
go build -o bin/server.exe
```#### For macOS/Linux
```bash
go build -o bin/server
chmod +x bin/server
```### Step 4: Configure Claude Desktop
1. Open Claude Desktop
2. Go to Settings
3. Navigate to the "Advanced" section
4. Add the following configuration to your `config.json`:#### For Windows
```json
{
"mcpServers": {
"eval": {
"command": "C:\\path\\to\\mcp-expr-lang\\bin\\server.exe"
}
}
}
```#### For macOS/Linux
```json
{
"mcpServers": {
"eval": {
"command": "/path/to/mcp-expr-lang/bin/server"
}
}
}
```5. Save the configuration and restart Claude Desktop
## Usage
Once installed, you can use the `eval` tool directly in your conversations with Claude. Simply ask Claude to evaluate an expression using the tool.
### Basic Example
```
User: Use eval to calculate "10 + 5 * 3"Claude: [Uses eval tool]
Result: 10 + 5 * 3 = 25
```### Complex Example
```
User: We have users = [{"Name": "John", "Age": 30},{"Name": "Ivan", "Age": 51},{"Name": "Eve", "Age": 15}]
Use eval to calculate "sortBy(users, .Age, "desc")"Claude: [Uses eval tool]
Result: The expression returns the users sorted by age in descending order:
[
{"Age": 51, "Name": "Ivan"},
{"Age": 30, "Name": "John"},
{"Age": 15, "Name": "Eve"}
]
```For more examples please see [EXAMPLES](./EXAMPLES.md)
## Features
MCP Expr-Lang supports all features of the expr-lang engine, including:
- **Arithmetic operations**: Addition, subtraction, multiplication, division, modulo, exponentiation
- **String operations**: Concatenation, length, uppercase/lowercase conversion
- **Boolean operations**: AND, OR, NOT, comparison operators
- **Array operations**: Mapping, filtering, reducing, sorting
- **Object manipulation**: Property access, transformation
- **Conditional logic**: Ternary operators, if-else expressions
- **Built-in functions**: Mathematical, string, array, and date functionsFor a complete guide to the expression language syntax and capabilities, see the [expr-lang documentation](https://expr-lang.org/docs/language-definition).
## Troubleshooting
### Common Issues
1. **Tool not appearing in Claude**: Make sure the path in your `config.json` is correct and Claude Desktop has been restarted.
2. **Execution errors**: Check that the expression syntax is correct according to the expr-lang documentation.
3. **Permission issues (macOS/Linux)**: Ensure the server binary has execution permissions (`chmod +x bin/server`).
### Getting Help
If you encounter any issues or have questions:
1. Check the [Issues](https://github.com/ivan-saorin/mcp-expr-lang/issues) section on GitHub
2. Open a new issue if your problem hasn't been reported## Contributing
Contributions are welcome! If you'd like to improve MCP Expr-Lang:
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Acknowledgments
- [expr-lang](https://github.com/expr-lang/expr) for the powerful expression evaluation engine
- [mcp-golang](https://github.com/metoro-io/mcp-golang) for the Model Context Protocol implementation
- [Claude AI](https://claude.ai/) for the AI assistant platform---
Made with ❤️ by [Ivan Saorin](https://github.com/ivan-saorin)