Almide MCP Server
by almide
README.md
# Almide MCP Server
An [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) server that lets AI agents compile, run, and check [Almide](https://github.com/almide/almide) code.
## Tools
| Tool | Description |
|------|-------------|
| `compile` | Compile `.almd` source to Rust or TypeScript |
| `run` | Compile and execute `.almd` source with arguments |
| `check` | Check for syntax/compilation errors with diagnostic hints |
| `emit-ast` | Parse source and return the AST as JSON |
## Resources
| Resource | URI | Description |
|----------|-----|-------------|
| Grammar | `almide://grammar` | EBNF grammar + stdlib reference |
## Setup
### Prerequisites
- Node.js 18+
- [almide](https://github.com/almide/almide) compiler in PATH (or set `ALMIDE_BIN`)
### Install
```bash
git clone https://github.com/almide/mcp-server.git
cd mcp-server
npm install
npm run build
```
### Claude Code
Add to `~/.claude.json`:
```json
{
"mcpServers": {
"almide": {
"command": "node",
"args": ["/path/to/mcp-server/dist/index.js"]
}
}
}
```
### Claude Desktop
Add to `claude_desktop_config.json`:
```json
{
"mcpServers": {
"almide": {
"command": "node",
"args": ["/path/to/mcp-server/dist/index.js"],
"env": {
"ALMIDE_BIN": "/path/to/almide"
}
}
}
}
```
### Cursor
Add to `.cursor/mcp.json`:
```json
{
"mcpServers": {
"almide": {
"command": "node",
"args": ["/path/to/mcp-server/dist/index.js"]
}
}
}
```
## Usage Examples
Once connected, an AI agent can:
```
# Check code for errors
almide.check({ code: 'module app\nfn add(a: Int, b: Int) -> Int = a + b' })
# Compile to Rust
almide.compile({ code: '...', target: 'rust' })
# Run code
almide.run({ code: '...', args: ['hello'] })
# Get AST
almide.emit-ast({ code: '...' })
```
## Environment Variables
| Variable | Description | Default |
|----------|-------------|---------|
| `ALMIDE_BIN` | Path to almide binary | `almide` (from PATH) |
## License
MIT