The SchemaCrawler AI MCP Server enables natural language interaction with your database schema using an MCP client in "Agent" mode. It allows users to explore tables, columns, foreign keys, triggers, stored procedures and more simply by asking questions like "Explain the code for the interest calculation stored procedure". You can also ask it to help with SQL, since it knows your schema. This is ideal for developers, DBAs, and data analysts who want to streamline schema comprehension and query development without diving into dense documentation.
142
8 Tools
Version 4.43 or later needs to be installed to add the server automatically
Use cases
About
The SchemaCrawler AI MCP Server enables natural language interaction with your database schema using an MCP client in "Agent" mode. It allows users to explore tables, columns, foreign keys, triggers, stored procedures and more simply by asking questions like "Explain the code for the interest calculation stored procedure". You can also ask it to help with SQL, since it knows your schema. This is ideal for developers, DBAs, and data analysts who want to streamline schema comprehension and query development without diving into dense documentation.
Attribute | Details |
---|---|
Docker Image | mcp/schemacrawler-ai |
Author | schemacrawler |
Repository | https://github.com/schemacrawler/SchemaCrawler-AI |
Dockerfile | https://github.com/schemacrawler/SchemaCrawler-AI/blob/docker-mcp-registry/Dockerfile |
Docker Image built by | Docker Inc. |
Docker Scout Health Score | |
Verify Signature | COSIGN_REPOSITORY=mcp/signatures cosign verify mcp/schemacrawler-ai --key https://raw.githubusercontent.com/docker/keyring/refs/heads/main/public/mcp/latest.pub |
Licence | Other |
Tools provided by this Server | Short Description |
---|---|
describe-routines | Get the details and description of database routine (stored procedures or functions), including parameters and return types. |
describe-tables | Get the details and description of database tables or views, including columns, primary key, foreign keys, indexes and triggers. |
get-schemacrawler-version | Gets the version of SchemaCrawler |
lint | Lint database schemas. |
list | List names of database objects like tables, routines (that is, functions and stored procedures), sequences, or synonyms. |
list-across-tables | List names of names of database objects like columns, indexes, triggers, and foreign keys for tables across the whole database. |
server-information | Provides more information about the database server, for example the product version, collation and so on. |
table-sample | Gets a few sample rows of data from a table. |
describe-routines
Get the details and description of database routine (stored procedures or functions), including parameters and return types. This could return a lot of information if not limited by a parameter specifying one or more routines. Returns data as a JSON object.
Parameters | Type | Description |
---|---|---|
description-scope | array optional | Indicates what details of the database stored procedure or function to return - parameters (including return types), attributes, and routine definition. Parameters, return types, and remarks or comments are always returned. |
routine-name | string optional | Name of database routine (stored procedure or function) to describe. May be specified as a regular expression matching the fully qualified stored procedure or function names (including the schema). Use an empty string if all routines are requested. If not specified, all routines are returned, but the results could be large. |
describe-tables
Get the details and description of database tables or views, including columns, primary key, foreign keys, indexes and triggers. This could return a lot of information if not limited by a parameter specifying one or more tables. Returns data as a JSON object.
Parameters | Type | Description |
---|---|---|
description-scope | array optional | Indicates what details of the database table or view to return - columns, primary key, foreign keys, indexes, triggers, attributes, and table definition. Columns, foreign key references to other tables, and remarks or comments are always returned by default. The other details can be requested. The results could be large. |
table-name | string optional | Name of database table or view to describe. May be specified as a regular expression, matching the fully qualified table name (including the schema). Use an empty string if all tables are requested. If not specified, all tables will be returned, but the results could be large. |
get-schemacrawler-version
Gets the version of SchemaCrawler
Parameters | Type | Description |
---|---|---|
arg0 | string optional | MCP Client identification, if available. |
arg1 | string optional | Event id, if available. |
lint
Lint database schemas. Find design issues with specific tables, or with the entire database. Find problems with database design, such as no indexes on foreign keys.
Parameters | Type | Description |
---|---|---|
table-name | string optional | May be specified as a regular expression, matching the fully qualified table name (including the schema). Use an empty string if all tables are requested. If not specified, all tables will be processed, but the results could be large, and execution time may be longer. |
list
List names of database objects like tables, routines (that is, functions and stored procedures), sequences, or synonyms. Returns JSON data.
Parameters | Type | Description |
---|---|---|
database-object-name | string optional | Name of database object to list. Is a regular expression, matching the fully qualified database object name (including the schema). May match more than one database object. Use an empty string if all database objects are requested. |
database-object-type | string optional | Type of database object to list, like tables (including views), routines (that is, stored procedures and functions), schemas (that is, catalogs), sequences, or synonyms. If the parameter is not provided, all database objects are listed. |
list-across-tables
List names of names of database objects like columns, indexes, triggers, and foreign keys for tables across the whole database. The corresponding tables are identified, and details can be obtained later by describing those tables. Returns JSON data.
Parameters | Type | Description |
---|---|---|
dependant-object-type | string | Type of database table dependant objects, like columns, indexes, foreign keys or triggers. |
dependant-object-name | string optional | Name of table dependant object. May be a regular expression, matching the fully qualified dependant object name (including the schema and table). May match more than one dependant object. Use an empty string if all dependant objects are requested. If not specified, all table dependant objects will be returned, but the results could be large. |
table-name | string optional | Name of database table for which dependant objects are described. May be a regular expression, matching the fully qualified table name (including the schema), in which case, multiple tables may be returned. Use an empty string if all tables are requested. If not specified, all tables will be returned, but the results could be large. |
server-information
Provides more information about the database server, for example the product version, collation and so on. Details will vary based on the type of the server, for example, if it is Oracle, SQL Server, PostgreSQL, MySQL, etc. Returns JSON data.
table-sample
Gets a few sample rows of data from a table. These rows are selected at random, and so different rows may be returned each time they are requested. Do not use this as a substitute for running a query on a table, but rather to infer what the table may contain.
Parameters | Type | Description |
---|---|---|
table-name | string optional | May be specified as a regular expression, matching the fully qualified table name (including the schema). Use an empty string if all tables are requested. If not specified, all tables will be processed, but the results could be large, and execution time may be longer. |
{
"mcpServers": {
"schemacrawler-ai": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SCHCRWLR_JDBC_URL",
"-e",
"SCHCRWLR_SERVER",
"-e",
"SCHCRWLR_HOST",
"-e",
"SCHCRWLR_PORT",
"-e",
"SCHCRWLR_DATABASE",
"-e",
"SCHCRWLR_INFO_LEVEL",
"-e",
"SCHCRWLR_LOG_LEVEL",
"-e",
"SCHCRWLR_DATABASE_USER",
"-e",
"SCHCRWLR_DATABASE_PASSWORD",
"-v",
"/local-directory:/local-directory",
"mcp/schemacrawler-ai"
],
"env": {
"SCHCRWLR_JDBC_URL": "12.12.12.12",
"SCHCRWLR_SERVER": "12.12.12.12",
"SCHCRWLR_HOST": "12.12.12.12",
"SCHCRWLR_PORT": "9999",
"SCHCRWLR_DATABASE": "public",
"SCHCRWLR_INFO_LEVEL": "standard",
"SCHCRWLR_LOG_LEVEL": "ALL",
"SCHCRWLR_DATABASE_USER": "SA",
"SCHCRWLR_DATABASE_PASSWORD": "super_S3cret"
}
}
}
}
Manual installation
You can install the MCP server using:
Installation for