MCP server for SAP SQL Anywhere 17. Read-only schema exploration and queries over ODBC for Claude Code and other MCP clients
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
git clone https://github.com/Dwarf1er/sqlanywhere-mcpResumen de MCP Servers
<div align="center">
# sqlanywhere-mcp
##### MCP server for SAP SQL Anywhere 17
<img alt="sqlanywhere-mcp logo" height="192" src="https://raw.githubusercontent.com/Dwarf1er/sqlanywhere-mcp/master/assets/logo.png" />
[](https://github.com/Dwarf1er/sqlanywhere-mcp/actions/workflows/ci.yml)
[](https://www.nuget.org/packages/SqlAnywhereMcp)
[](https://github.com/Dwarf1er/sqlanywhere-mcp/releases)
[](https://github.com/Dwarf1er/sqlanywhere-mcp/blob/master/LICENSE)
</div>
<!-- mcp-name: io.github.Dwarf1er/sqlanywhere-mcp -->
MCP (*Model Context Protocol*) server for SQL Anywhere 17. Lets an MCP client such as Claude Code or Claude Desktop query a SQL Anywhere database directly to explore the schema, stored procedures, triggers, and views. It runs on Windows, Linux, and macOS.
> **Disclaimer:** sqlanywhere-mcp is an independent, community open-source project. It is not affiliated with, endorsed by, or sponsored by SAP SE. SAP and SQL Anywhere are trademarks or registered trademarks of SAP SE. sqlanywhere-mcp does not include or redistribute any SAP software.
## Table of contents
- [sqlanywhere-mcp](#sqlanywhere-mcp)
- [Table of contents](#table-of-contents)
- [Prerequisites](#prerequisites)
- [ODBC driver setup](#odbc-driver-setup)
- [Installation](#installation)
- [From NuGet](#from-nuget)
- [From a release](#from-a-release)
- [From source](#from-source)
- [Configuration](#configuration)
- [File location](#file-location)
- [Fields](#fields)
- [Live reload](#live-reload)
- [Database password](#database-password)
- [Suggested helper: keyturn](#suggested-helper-keyturn)
- [Claude Code integration](#claude-code-integration)
- [As a plugin](#as-a-plugin)
- [By hand](#by-hand)
- [Claude Desktop integration](#claude-desktop-integration)
- [Multiple databases](#multiple-databases)
- [Available tools](#available-tools)
- [Databases](#databases)
- [Query execution](#query-execution)
- [Ownership](#ownership)
- [Schema introspection](#schema-introspection)
- [Object lists](#object-lists)
- [Source retrieval](#source-retrieval)
- [Procedure calls](#procedure-calls)
- [How it works](#how-it-works)
- [License](#license)
## Prerequisites
- The **SQL Anywhere 17 ODBC driver**, installed on the machine that runs sqlanywhere-mcp. It comes with the [SQL Anywhere 17](https://www.sap.com/products/data-cloud/sql-anywhere.html) client or server install, for the platform you run on.
- On **Linux and macOS**, an ODBC driver manager: [unixODBC](https://www.unixodbc.org/) (for example `apt install unixodbc`, `dnf install unixODBC`, `brew install unixodbc`). On Windows the driver manager is built in.
- The [.NET 10 SDK](https://dotnet.microsoft.com/download/dotnet/10.0), to build from source.
- An MCP client, such as [Claude Code](https://claude.ai/code) or Claude Desktop.
sqlanywhere-mcp itself is a .NET application with no platform-specific code. What differs per platform is how the driver is registered, which is covered in [ODBC driver setup](#odbc-driver-setup).
### ODBC driver setup
sqlanywhere-mcp connects with the ODBC driver named `SQL Anywhere 17`, which is the name the Windows installer registers. Use the `driver` setting (see [Fields](#fields)) when your driver is registered under another name.
- **Windows:** nothing to do after installing SQL Anywhere 17.
- **Linux and macOS:** unixODBC needs to know the driver. Either register it in `odbcinst.ini` under the name `SQL Anywhere 17`, or set `driver` in `config.json` to the path of the driver library, for example `/opt/sqlanywhere17/lib64/libdbodbc17.so` (the path depends on where SQL Anywhere is installed). The driver also needs its own libraries to be loadable; SQL Anywhere provides an `sa_config.sh` script for that, which you can source before starting your MCP client. See SAP's documentation for the details of your platform.
When the connection fails, the tool error names the driver it used, so a wrong driver name or a missing driver is visible in the client.
## Installation
There are three ways to get sqlanywhere-mcp. All of them give the same server, which needs the [prerequisites](#prerequisites) above (the ODBC driver, plus unixODBC on Linux and macOS).
### From NuGet
The [`SqlAnywhereMcp`](https://www.nuget.org/packages/SqlAnywhereMcp) package is a .NET tool with a self-contained build for each platform (`win-x64`, `linux-x64`, `linux-arm64`, `osx-x64`, `osx-arm64`), so no .NET runtime is needed to run it. It needs the .NET 10 SDK to install, which provides `dnx` and `dotnet tool`.
Run it without installing, which is what MCP clients usually do:
```bash
dnx SqlAnywhereMcp --yes
```
Or install it as a global tool, which puts `sqlanywhere-mcp` on your `PATH`:
```bash
dotnet tool install --global SqlAnywhereMcp
```
To register it with Claude Code without installing anything first:
```bash
claude mcp add --transport stdio --scope user sqlanywhere -- dnx SqlAnywhereMcp --yes
```
### From a release
Each [GitHub release](https://github.com/Dwarf1er/sqlanywhere-mcp/releases) has an archive per platform with the self-contained executable, plus a `SHA256SUMS` file. Unpack the one for your platform somewhere on your `PATH` and verify it with `sha256sum -c SHA256SUMS`. The executables are not code-signed, so macOS Gatekeeper and Windows SmartScreen may warn on first run.
### From source
Run the install script for your platform from a regular user account (no administrator rights needed). Each one publishes a self-contained executable, so the .NET runtime is not needed to run it.
**Windows** (PowerShell):
```powershell
.\install.ps1
```
It publishes `sqlanywhere-mcp.exe` to `%LOCALAPPDATA%\sqlanywhere-mcp\`, adds that directory to the user `PATH`, and prints the command to register the server with Claude Code.
| Option | Description |
|--------|-------------|
| `-Configuration Release` | Build configuration (default: `Release`) |
| `-Configuration Debug` | Build in Debug mode |
| `-Help` | Show help |
**Linux and macOS** (bash):
```bash
./install.sh
```
It detects the platform (`linux-x64`, `linux-arm64`, `osx-x64`, or `osx-arm64`), publishes `sqlanywhere-mcp` to `~/.local/bin/`, and prints the command to register the server with Claude Code. `-c Debug` builds in Debug mode.
The driver must match the architecture of the executable. If your SQL Anywhere 17 driver is x64 only, use an x64 build (on Apple silicon, the x64 build runs under Rosetta).
**Any platform**, by hand:
```bash
dotnet publish src/SqlAnywhereMcp -c Release -r <rid> --self-contained -o <output-dir>
```
where `<rid>` is a [.NET runtime identifier](https://learn.microsoft.com/dotnet/core/rid-catalog) such as `win-x64`, `linux-x64`, or `osx-x64`.
## Configuration
### File location
| Platform | Path |
|----------|------|
| Windows | `%APPDATA%\sqlanywhere-mcp\config.json` |
| Linux / macOS | `$XDG_CONFIG_HOME/sqlanywhere-mcp/config.json`, or `~/.config/sqlanywhere-mcp/config.json` when `XDG_CONFIG_HOME` is not set |
If the file is missing on first launch, an example is created automatically. Edit it and restart sqlanywhere-mcp once; after that, changes are picked up without a restart (see [Live reload](#live-reload)).
**Example configuration:**
```json
{
"defaults": {
"username": "dba",
"passwordCommand": "keyturn get dev-db --refresh"
},
"allowedProcedures": [],
"defaultDatabase": "demo",
"databases": {
"demo": { "host": "localhost", "database": "demodb" },
"staging": {
"host": "db.example.com",
"port": 2700,
"database": "stagingdb",
"passwordCommand": "keyturn get staging-db --refresh",
"allowedProcedures": ["dbo.sa_conn_info"]
}
}
}
```
Unknown fields are rejected, so a misspelled field (for example `allowedProcedure`) is reported instead of being silently ignored.
### Fields
Top level:
| Field | Required | Description |
|-------|----------|-------------|
| `databases` | Yes | The databases tools can reach, keyed by name. The name is what tools take as their `database` argument, and must be unique ignoring case. An empty object is valid: tools then report that no database is configured. See the fields below |
| `defaults` | No | Values every database uses unless it sets its own. See the fields below |
| `defaultDatabase` | No | Name of the database a tool uses when called without `database`. Not needed with a single database |
| `allowedProcedures` | No | Stored procedures that `call_procedure` may call on every database, each written as `owner.procedure` (default: none). See [Procedure calls](#procedure-calls) |
`defaults`:
| Field | Default | Description |
|-------|---------|-------------|
| `username` | - | Login username. Required, here or on each database |
| `passwordCommand` | - | Credential helper: a command that prints the database password. Required, here or on each database. See [Database password](#database-password) |
| `appInfo` | - | Value of the `AppInfo` ODBC parameter, used by SQL Anywhere to identify the connecting application (for example `my-app`) |
| `driver` | `SQL Anywhere 17` | ODBC driver name as registered with the driver manager, or the path of the driver library. See [ODBC driver setup](#odbc-driver-setup) |
| `port` | `2638` | TCP port of the database (SQL Anywhere's standard port) |
Each database:
| Field | Required | Description |
|-------|----------|-------------|
| `host` | Yes | Hostname of the SQL Anywhere server |
| `database` | Yes | Database name (`DBN` ODBC parameter) |
| `port` | No | Overrides `defauLo que la gente pregunta sobre sqlanywhere-mcp
¿Qué es Dwarf1er/sqlanywhere-mcp?
+
Dwarf1er/sqlanywhere-mcp es mcp servers para el ecosistema de Claude AI. MCP server for SAP SQL Anywhere 17. Read-only schema exploration and queries over ODBC for Claude Code and other MCP clients Tiene 0 estrellas en GitHub y su última actualización registrada es del 2026-10-17.
¿Cómo se instala sqlanywhere-mcp?
+
Puedes instalar sqlanywhere-mcp clonando el repositorio (https://github.com/Dwarf1er/sqlanywhere-mcp) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.
¿Es seguro usar Dwarf1er/sqlanywhere-mcp?
+
Nuestro agente de seguridad ha analizado Dwarf1er/sqlanywhere-mcp y le ha asignado un Trust Score de 95/100 (tier: Verified). Revisa el desglose completo de comprobaciones superadas y flags en esta página.
¿Quién mantiene Dwarf1er/sqlanywhere-mcp?
+
Dwarf1er/sqlanywhere-mcp es mantenido por Dwarf1er. La última actividad registrada en GitHub es del 2026-10-17, con 0 issues abiertos.
¿Hay alternativas a sqlanywhere-mcp?
+
Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.
Despliega sqlanywhere-mcp en tu cloud
Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.
¿Mantienes este repo? Añade un badge a tu README
Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.
[](https://claudewave.com/repo/dwarf1er-sqlanywhere-mcp)<a href="https://claudewave.com/repo/dwarf1er-sqlanywhere-mcp"><img src="https://claudewave.com/api/badge/dwarf1er-sqlanywhere-mcp" alt="Featured on ClaudeWave: Dwarf1er/sqlanywhere-mcp" width="320" height="64" /></a>Más MCP Servers
Reverse engineer anything with agents, from app behavior down to native binaries.
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev