sql2odata-mcp
by moonraker46
README.md
# sql2odata-mcp
**MCP server that translates SQL statements into OData v4 query syntax.**
Use this as a tool in Claude Desktop, Cursor, Windsurf, or any MCP-compatible LLM client.
## Install
```bash
npm install -g sql2odata-mcp
```
## Configuration
### Claude Desktop
Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
```json
{
"mcpServers": {
"sql2odata": {
"command": "npx",
"args": ["-y", "sql2odata-mcp"]
}
}
}
```
### Claude Code
```bash
claude mcp add sql2odata -- npx -y sql2odata-mcp
```
### Cursor
Add to Cursor MCP settings:
```json
{
"mcpServers": {
"sql2odata": {
"command": "npx",
"args": ["-y", "sql2odata-mcp"]
}
}
}
```
## Available Tools
### `translate-sql`
Translate a single SQL statement to OData v4.
**Parameters:**
- `sql` (string, required) — SQL statement (SELECT, INSERT, UPDATE, DELETE)
- `encode` (boolean, optional) — URL-encode the output
**Example:**
```
translate-sql({ sql: "SELECT Name, Age FROM Users WHERE Country = 'Germany' ORDER BY Name LIMIT 10" })
```
**Returns:**
```
GET /Users?$select=Name,Age&$filter=Country eq 'Germany'&$orderby=Name asc&$top=10
Parameters:
$select = Name,Age
$filter = Country eq 'Germany'
$orderby = Name asc
$top = 10
```
### `translate-batch`
Translate multiple SQL statements at once.
**Parameters:**
- `queries` (string[], required) — Array of SQL statements
- `encode` (boolean, optional) — URL-encode the output
### `sql-syntax-help`
Show all supported SQL syntax and their OData v4 equivalents.
**Parameters:** none
## Available Prompts
### `sql-to-odata`
Pre-built prompt template that translates SQL and explains the result.
**Parameters:**
- `sql` (string) — SQL statement to translate
## Supported SQL
| SQL | OData v4 |
|-----|----------|
| `SELECT col1, col2` | `$select=col1,col2` |
| `SELECT COUNT(*)` | `$count=true` |
| `FROM Table` | `/Table` |
| `WHERE col = 'val'` | `$filter=col eq 'val'` |
| `WHERE LIKE '%text%'` | `contains(col,'text')` |
| `WHERE IN ('a','b')` | `(col eq 'a' or col eq 'b')` |
| `WHERE BETWEEN 1 AND 10` | `col ge 1 and col le 10` |
| `IS NULL / IS NOT NULL` | `eq null / ne null` |
| `ORDER BY col ASC` | `$orderby=col asc` |
| `LIMIT n / OFFSET n` | `$top=n / $skip=n` |
| `JOIN Table ON ...` | `$expand=Table` |
| `GROUP BY + aggregates` | `$apply=groupby(...)` |
| `INSERT INTO ... VALUES` | **POST** + JSON body |
| `UPDATE ... SET ... WHERE` | **PATCH** + JSON body |
| `DELETE FROM ... WHERE` | **DELETE** |
## Related
- [sql2odata](https://marketplace.visualstudio.com/items?itemName=moonraker46.sql2odata) — VS Code Extension
- [sql2odata-cli](https://www.npmjs.com/package/sql2odata-cli) — CLI Tool
## License
MIT
## Author
**Ulrich Waldmann** — [moonraker@magenta.de](mailto:moonraker@magenta.de)
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues