schemacrawler-ai — Claude Code MCP server: what it does, install
This MCP server lets an AI agent inspect database schemas, including tables, keys, and procedures, and answer SQL questions in plain language.
claude mcp add --env SCHCRWLR_MCP_SERVER_TRANSPORT=<SCHCRWLR_MCP_SERVER_TRANSPORT> --env SCHCRWLR_DATABASE_USER=<SCHCRWLR_DATABASE_USER> --env SCHCRWLR_DATABASE_PASSWORD=<SCHCRWLR_DATABASE_PASSWORD> --env SCHCRWLR_JDBC_URL=<SCHCRWLR_JDBC_URL> --env SCHCRWLR_SERVER=<SCHCRWLR_SERVER> --transport stdio schemacrawler-ai -- docker run -i --rm -e SCHCRWLR_MCP_SERVER_TRANSPORT -e SCHCRWLR_DATABASE_USER -e SCHCRWLR_DATABASE_PASSWORD -e SCHCRWLR_JDBC_URL -e SCHCRWLR_SERVER schemacrawler/schemacrawler-ai:17.16.0-1What schemacrawler-ai does
schemacrawler-ai connects a database to an AI agent through MCP. The agent can inspect tables, relationships, and keys, look up stored procedures, and discuss SQL using natural-language requests.
The server runs from the Docker image schemacrawler/schemacrawler-ai:17.16.0-1. Its setup passes the MCP transport, database user and password, JDBC URL, and SCHCRWLR_SERVER value into the container. The server cannot connect without database credentials and SCHCRWLR_JDBC_URL.
Setup commands are provided for Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, and other listed platforms. In Claude Code, the MCP entry uses claude mcp add and starts Docker over stdio.
What it helps with
- inspect database tables and keys
- look up stored procedures by asking the agent
- get SQL guidance from the schema
- query database structure in natural language
Example prompts for the agent
- Show the tables and keys in the connected database.
- Find stored procedures related to orders.
- Suggest the SQL query I need for this task using the database schema.
How to install schemacrawler-ai
Platform CLI
claude mcp add --env SCHCRWLR_MCP_SERVER_TRANSPORT=<SCHCRWLR_MCP_SERVER_TRANSPORT> --env SCHCRWLR_DATABASE_USER=<SCHCRWLR_DATABASE_USER> --env SCHCRWLR_DATABASE_PASSWORD=<SCHCRWLR_DATABASE_PASSWORD> --env SCHCRWLR_JDBC_URL=<SCHCRWLR_JDBC_URL> --env SCHCRWLR_SERVER=<SCHCRWLR_SERVER> --transport stdio schemacrawler-ai -- docker run -i --rm -e SCHCRWLR_MCP_SERVER_TRANSPORT -e SCHCRWLR_DATABASE_USER -e SCHCRWLR_DATABASE_PASSWORD -e SCHCRWLR_JDBC_URL -e SCHCRWLR_SERVER schemacrawler/schemacrawler-ai:17.16.0-1Replace <…> with your own values. 8 more environment variables are in the server README
Platform CLI
codex mcp add schemacrawler-ai --env SCHCRWLR_MCP_SERVER_TRANSPORT=<SCHCRWLR_MCP_SERVER_TRANSPORT> --env SCHCRWLR_DATABASE_USER=<SCHCRWLR_DATABASE_USER> --env SCHCRWLR_DATABASE_PASSWORD=<SCHCRWLR_DATABASE_PASSWORD> --env SCHCRWLR_JDBC_URL=<SCHCRWLR_JDBC_URL> --env SCHCRWLR_SERVER=<SCHCRWLR_SERVER> -- docker run -i --rm -e SCHCRWLR_MCP_SERVER_TRANSPORT -e SCHCRWLR_DATABASE_USER -e SCHCRWLR_DATABASE_PASSWORD -e SCHCRWLR_JDBC_URL -e SCHCRWLR_SERVER schemacrawler/schemacrawler-ai:17.16.0-1Replace <…> with your own values. 8 more environment variables are in the server README
Config file
{
"mcpServers": {
"schemacrawler-ai": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SCHCRWLR_MCP_SERVER_TRANSPORT",
"-e",
"SCHCRWLR_DATABASE_USER",
"-e",
"SCHCRWLR_DATABASE_PASSWORD",
"-e",
"SCHCRWLR_JDBC_URL",
"-e",
"SCHCRWLR_SERVER",
"schemacrawler/schemacrawler-ai:17.16.0-1"
],
"env": {
"SCHCRWLR_MCP_SERVER_TRANSPORT": "<SCHCRWLR_MCP_SERVER_TRANSPORT>",
"SCHCRWLR_DATABASE_USER": "<SCHCRWLR_DATABASE_USER>",
"SCHCRWLR_DATABASE_PASSWORD": "<SCHCRWLR_DATABASE_PASSWORD>",
"SCHCRWLR_JDBC_URL": "<SCHCRWLR_JDBC_URL>",
"SCHCRWLR_SERVER": "<SCHCRWLR_SERVER>"
}
}
}
}Replace <…> with your own values. 8 more environment variables are in the server README
Config file
{
"servers": {
"schemacrawler-ai": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SCHCRWLR_MCP_SERVER_TRANSPORT",
"-e",
"SCHCRWLR_DATABASE_USER",
"-e",
"SCHCRWLR_DATABASE_PASSWORD",
"-e",
"SCHCRWLR_JDBC_URL",
"-e",
"SCHCRWLR_SERVER",
"schemacrawler/schemacrawler-ai:17.16.0-1"
],
"env": {
"SCHCRWLR_MCP_SERVER_TRANSPORT": "<SCHCRWLR_MCP_SERVER_TRANSPORT>",
"SCHCRWLR_DATABASE_USER": "<SCHCRWLR_DATABASE_USER>",
"SCHCRWLR_DATABASE_PASSWORD": "<SCHCRWLR_DATABASE_PASSWORD>",
"SCHCRWLR_JDBC_URL": "<SCHCRWLR_JDBC_URL>",
"SCHCRWLR_SERVER": "<SCHCRWLR_SERVER>"
}
}
}
}Replace <…> with your own values. 8 more environment variables are in the server README
Platform CLI
gemini mcp add -e SCHCRWLR_MCP_SERVER_TRANSPORT=<SCHCRWLR_MCP_SERVER_TRANSPORT> -e SCHCRWLR_DATABASE_USER=<SCHCRWLR_DATABASE_USER> -e SCHCRWLR_DATABASE_PASSWORD=<SCHCRWLR_DATABASE_PASSWORD> -e SCHCRWLR_JDBC_URL=<SCHCRWLR_JDBC_URL> -e SCHCRWLR_SERVER=<SCHCRWLR_SERVER> schemacrawler-ai docker run -i --rm -e SCHCRWLR_MCP_SERVER_TRANSPORT -e SCHCRWLR_DATABASE_USER -e SCHCRWLR_DATABASE_PASSWORD -e SCHCRWLR_JDBC_URL -e SCHCRWLR_SERVER schemacrawler/schemacrawler-ai:17.16.0-1Replace <…> with your own values. 8 more environment variables are in the server README
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about schemacrawler-ai
How do I install schemacrawler-ai in Claude Code?
Run `claude mcp add --env SCHCRWLR_MCP_SERVER_TRANSPORT=<SCHCRWLR_MCP_SERVER_TRANSPORT> --env SCHCRWLR_DATABASE_USER=<SCHCRWLR_DATABASE_USER> --env SCHCRWLR_DATABASE_PASSWORD=<SCHCRWLR_DATABASE_PASSWORD> --env SCHCRWLR_JDBC_URL=<SCHCRWLR_JDBC_URL> --env SCHCRWLR_SERVER=<SCHCRWLR_SERVER> --transport stdio schemacrawler-ai -- docker run -i --rm -e SCHCRWLR_MCP_SERVER_TRANSPORT -e SCHCRWLR_DATABASE_USER -e SCHCRWLR_DATABASE_PASSWORD -e SCHCRWLR_JDBC_URL -e SCHCRWLR_SERVER schemacrawler/schemacrawler-ai:17.16.0-1`.
What does schemacrawler-ai do?
It lets an AI agent explore a database schema in natural language, including tables, keys, and procedures, while providing SQL guidance.
What does schemacrawler-ai need to run?
The setup needs the Docker image plus values for MCP transport, database credentials, the JDBC URL, and SCHCRWLR_SERVER. It supports Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, and other listed platforms.