Newcontext-mode—Save 98% of your AI coding agent's context windowLearn more
MCP Directory
ServersClientsBlog

context-mode

Save 98% of your AI coding agent's context window. Works with Claude Code, Cursor, Copilot, Codex, and more.

Try context-mode
MCP Directory

Model Context Protocol Directory

MKSF LTD
Suite 8805 5 Brayford Square
London, E1 0SG

MCP Directory

  • About
  • Blog
  • Documentation
  • Contact

Menu

  • Servers
  • Clients

© 2026 model-context-protocol.com

The Model Context Protocol (MCP) is an open standard for AI model communication.
Powered by Mert KoseogluSoftware Forge
  1. Home
  2. Servers
  3. sqlmcp

sqlmcp

GitHub

Your dynamik MCP server for your SQL database

0
0

MCP Database Explorer Server

Ein MCP (Model Context Protocol) Server auf Basis von Spring Boot und Spring AI,
der dynamischen Zugriff auf Datenbanktabellen ermöglicht. MCP-Tools werden als
SQL-Query-Templates in der Datenbank gespeichert und können zur Laufzeit
hinzugefügt, geändert oder entfernt werden.

Voraussetzungen

  • Java 21 (oder höher)
  • Maven (wird über den mitgelieferten Maven Wrapper bereitgestellt)

Projekt bauen

# Kompilieren
./mvnw compile

# Tests ausführen
./mvnw test

# JAR-Datei erstellen
./mvnw package

# JAR-Datei erstellen (Tests überspringen)
./mvnw package -DskipTests

Unter Windows mvnw.cmd statt ./mvnw verwenden.

Server starten

# Über Maven
./mvnw spring-boot:run

# Oder direkt als JAR
java -jar target/mcp_test-0.0.1-SNAPSHOT.jar

Der Server startet auf Port 8080.

Endpunkte

EndpunktBeschreibung
http://localhost:8080/mcpMCP Server (Streamable-HTTP Protokoll)
POST http://localhost:8080/api/tools/refreshTools aus der Datenbank neu laden
http://localhost:8080/h2-consoleH2 Datenbank-Konsole (Entwicklung)

H2-Konsole Zugangsdaten

  • JDBC URL: jdbc:h2:mem:mcpdb
  • User: sa
  • Passwort: (leer)

MCP Client-Konfiguration

VS Code (.vscode/mcp.json)

{
  "servers": {
    "db-explorer": {
      "type": "http",
      "url": "http://localhost:8080/mcp"
    }
  }
}

MCP Inspector (zum Testen)

npx @modelcontextprotocol/inspector

Dann als Transport "Streamable HTTP" wählen und http://localhost:8080/mcp eingeben.

MCP-Funktionen

Tools (dynamisch)

Tools werden aus der Tabelle TOOL_REGISTRY geladen. Jedes Tool führt ein vordefiniertes
SQL-SELECT-Statement aus. Parameter werden über TOOL_PARAMETER definiert.

Mitgelieferte Seed-Tools:

ToolBeschreibung
list-tablesAlle registrierten Tabellen mit Beschreibung auflisten
describe-tableSpaltendefinitionen einer Tabelle anzeigen
query-customersAlle Kunden abrufen
customers-by-cityKunden nach Stadt filtern
orders-by-customerBestellungen eines Kunden suchen (LIKE-Muster)
high-value-ordersBestellungen über einem Mindestbetrag
count-customersAnzahl der Kunden
count-ordersAnzahl der Bestellungen

Neues Tool zur Laufzeit hinzufügen:

-- In der H2-Konsole oder per SQL-Client:
INSERT INTO TOOL_REGISTRY (TOOL_NAME, DESCRIPTION, SQL_QUERY) VALUES
    ('my-tool', 'Beschreibung des Tools', 'SELECT * FROM CUSTOMERS WHERE CITY = :city');

INSERT INTO TOOL_PARAMETER (TOOL_NAME, PARAM_NAME, PARAM_TYPE, DESCRIPTION, REQUIRED, ORDINAL) VALUES
    ('my-tool', 'city', 'string', 'Stadt zum Filtern', TRUE, 1);

Danach POST http://localhost:8080/api/tools/refresh aufrufen — das Tool ist sofort im MCP Client verfügbar.

Sicherheit: Nur SELECT-Queries erlaubt. DDL/DML-Keywords und gefährliche H2-Funktionen werden blockiert. Parameter werden per NamedParameterJdbcTemplate gebunden (kein SQL-Injection). Queries haben ein Timeout von 10 Sekunden und ein automatisches LIMIT von 1000 Zeilen.

Resources (3)

Resource URIBeschreibung
db://tablesListe aller registrierten Tabellen als JSON
db://table/{name}/schemaSchema einer bestimmten Tabelle als JSON
db://table/{name}/dataDaten einer Tabelle als JSON (max. 100 Zeilen)

Prompts (2)

PromptBeschreibung
data-analysisGeneriert einen Analyse-Prompt mit Schema und Beispieldaten einer Tabelle
query-helperGeneriert einen Prompt mit allen verfügbaren Tabellen und Schemata als Abfrage-Hilfe

Beispieldaten

Der Server startet mit zwei vordefinierten Tabellen:

  • CUSTOMERS — Kundenstammdaten (ID, Name, Email, City) mit 5 Beispielkunden
  • ORDERS — Bestellungen (ID, Customer_ID, Product, Amount, Order_Date) mit 7 Beispielbestellungen

Später auf DB2 (IBM i) umstellen

  1. DB2-Treiber in pom.xml hinzufügen:
    <dependency>
        <groupId>com.ibm.db2</groupId>
        <artifactId>jcc</artifactId>
        <scope>runtime</scope>
    </dependency>
  2. application.properties anpassen:
    spring.datasource.url=jdbc:db2://HOST:PORT/DBNAME
    spring.datasource.driver-class-name=com.ibm.db2.jcc.DB2Driver
    spring.datasource.username=BENUTZER
    spring.datasource.password=PASSWORT
    spring.sql.init.mode=never
    spring.h2.console.enabled=false
  3. Tabellen direkt auf dem IBM i anlegen, in der Registry registrieren und passende Tools in TOOL_REGISTRY definieren.

Repository

VA
VandoOmi

VandoOmi/sqlmcp

Created

April 13, 2026

Updated

April 13, 2026

Language

Java

Category

Database