loading…
Search for a command to run...
loading…
An MCP server that translates SQL statements into OData v4 query syntax, supporting SELECT, INSERT, UPDATE, and DELETE operations. It enables users to convert c
An MCP server that translates SQL statements into OData v4 query syntax, supporting SELECT, INSERT, UPDATE, and DELETE operations. It enables users to convert complex SQL queries into OData-compliant requests through single or batch translation tools.
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.
npm install -g sql2odata-mcp
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"sql2odata": {
"command": "npx",
"args": ["-y", "sql2odata-mcp"]
}
}
}
claude mcp add sql2odata -- npx -y sql2odata-mcp
Add to Cursor MCP settings:
{
"mcpServers": {
"sql2odata": {
"command": "npx",
"args": ["-y", "sql2odata-mcp"]
}
}
}
translate-sqlTranslate a single SQL statement to OData v4.
Parameters:
sql (string, required) — SQL statement (SELECT, INSERT, UPDATE, DELETE)encode (boolean, optional) — URL-encode the outputExample:
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-batchTranslate multiple SQL statements at once.
Parameters:
queries (string[], required) — Array of SQL statementsencode (boolean, optional) — URL-encode the outputsql-syntax-helpShow all supported SQL syntax and their OData v4 equivalents.
Parameters: none
sql-to-odataPre-built prompt template that translates SQL and explains the result.
Parameters:
sql (string) — SQL statement to translate| 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 |
MIT
Ulrich Waldmann — [email protected]
Add this to claude_desktop_config.json and restart Claude Desktop.
{
"mcpServers": {
"sql2odata-mcp": {
"command": "npx",
"args": []
}
}
}