A free, open-source Model Context Protocol (MCP) server for SAP Sybase SQL Anywhere, powered by the jConnect JDBC driver.
Based on CData's MCP server framework (MIT license), modified to work with jConnect instead of the commercial CData driver.
- Connects to SQL Anywhere databases via jConnect (free, pure Java, no native libraries)
- Exposes three MCP tools:
get_tables,get_columns,run_query - Works with Claude Code, Claude Desktop, and any MCP-compatible client
- Uses SQL Anywhere system views for metadata (SYS.SYSTAB, SYS.SYSCOLUMN, SYS.SYSDOMAIN)
- Java 17+ (for building and running)
- jConnect JDBC driver (
jconn4.jar) — included with SQL Anywhere installations, or available from DBeaver's driver cache
- Download the pre-built JAR:
curl -L -o sybase-mcp-server.jar \ https://github.com/edurbs/sybase-sqlanywhere-mcp/releases/download/v1.0.0/sybase-mcp-server-jar-with-dependencies.jar
- Download jConnect: jconn4.jar (license)
- Create a
.prpfile (see Configuration) - Run it — see Usage with Claude Code or Usage with Claude Desktop
If you prefer to build from source, or want to modify the server:
git clone https://github.com/edurbs/sybase-sqlanywhere-mcp.git
cd sybase-sqlanywhere-mcp
mvn clean packageThis produces target/sybase-mcp-server-jar-with-dependencies.jar.
Create a .prp file (see sqlanywhere.prp.example for a template):
Prefix=sybase
DriverPath=/path/to/jconn4.jar
DriverClass=com.sybase.jdbc4.jdbc.SybDriver
JdbcUrl=jdbc:sybase:Tds=HOST:PORT/DATABASE?user=USERNAME&password=PASSWORD
Tables=Note: .prp files contain credentials and are excluded from git via .gitignore.
- From DBeaver's hosted copy: jconn4.jar (jConnect 16.0 SP03 PL02)
- jConnect License (proprietary — use restricted to Sybase ASE interoperability)
- From a SQL Anywhere installation:
Bin64/jconn4.jar - From DBeaver's local driver cache:
~/.local/share/DBeaverData/drivers/drivers/sybase/jconnect/jconn4.jar
Add to your project's .mcp.json:
{
"mcpServers": {
"sybase": {
"type": "stdio",
"command": "java",
"args": [
"-jar",
"/path/to/sybase-mcp-server-jar-with-dependencies.jar",
"/path/to/sqlanywhere.prp"
]
}
}
}Add to your Claude Desktop config (claude_desktop_config.json):
{
"mcpServers": {
"sybase": {
"command": "/path/to/java",
"args": [
"-jar",
"/path/to/sybase-mcp-server-jar-with-dependencies.jar",
"/path/to/sqlanywhere.prp"
]
}
}
}jConnect communicates with SQL Anywhere via the TDS protocol. TDS requires table names to be qualified with their owner/schema:
-- This works:
SELECT * FROM owner.tablename
-- This does NOT work (TDS cannot resolve unqualified names):
SELECT * FROM tablenameUse the get_tables tool first to find the correct owner (Schema column), then qualify names in your queries.
Also: Do NOT use double-quoted identifiers ("tablename") — they cause syntax errors through TDS.
| Tool | Description |
|---|---|
sybase_get_tables |
List all tables (returns Schema, Table, Type, Remarks) |
sybase_get_columns |
List columns for a table (returns Schema, Table, Column, DataType, Nullable) |
sybase_run_query |
Execute a SQL SELECT query |
MIT License — see LICENSE for details.