Skip to content

Conversation

sualeh
Copy link
Contributor

@sualeh sualeh commented Jul 25, 2025


name: Update: Use Docker-built image for schemacrawler-ai
about: Requests for updating a MCP server to the Docker Catalog
title: "Update: Use Docker-built image for schemacrawler-ai"
labels: submission
assignees: ""

MCP Server Information

Server Name: schemacrawler-ai
Repository URL: https://github.com/schemacrawler/SchemaCrawler-AI
Brief Description: Enables natural language interaction with your database schema

Basic Requirements

  • Open Source: Uses acceptable license (Apache-2.0, MIT, BSD-2-Clause, BSD-3-Clause or other permissive license)
  • MCP Compliant: Implements MCP API specification
  • Active Development: Recent commits and maintained
  • Docker Artifact: Dockerfile
  • Documentation: Basic README and setup instructions
  • Security Contact: Method for reporting security issues

Submitter Checklist

  • This server meets the basic requirements listed above
  • I understand this will undergo automated and manual review.
  • I have tested the MCP Server using task validate -- --name SERVER_NAME
  • I have built the MCP Server using task build -- --tools SERVER_NAME

@sualeh sualeh requested a review from a team as a code owner July 25, 2025 00:32
@ipedrazas
Copy link
Contributor

Build fails, when I run task build -- --tools schemacrawler-ai I get the following error:

Aug 28, 2025 11:16:34 AM schemacrawler.tools.commandline.SchemaCrawlerCommandLine executeCommandLine
INFO: Running command ConnectCommand
Aug 28, 2025 11:16:34 AM schemacrawler.tools.commandline.command.ConnectCommand run
INFO: Using database plugin <>
Aug 28, 2025 11:16:34 AM schemacrawler.tools.commandline.command.ConnectCommand loadSchemaCrawlerOptionsBuilder
FINE: Creating SchemaCrawler options builder
Aug 28, 2025 11:16:34 AM schemacrawler.tools.commandline.command.ConnectCommand createDataSource
FINE: Creating data-source
Aug 28, 2025 11:16:34 AM us.fatehi.utility.datasource.DatabaseConnectionSources newDatabaseConnectionSource
CONFIG: Loading database schema using multiple threads
Aug 28, 2025 11:16:34 AM us.fatehi.utility.datasource.SimpleDatabaseConnectionSource <init>
WARNING: Database user is not provided
Aug 28, 2025 11:16:34 AM us.fatehi.utility.datasource.SimpleDatabaseConnectionSource <init>
WARNING: Database password is not provided
Aug 28, 2025 11:16:34 AM jdk.internal.event.EventHelper logX509CertificateEvent
FINE: X509Certificate: Alg:SHA384withRSA, Serial:05:9b:1b:57:9e:8e:21:32:e2:39:07:bd:a7:77:75:5c, Subject:CN=DigiCert Trusted Root G4, OU=www.digicert.com, O=DigiCert Inc, C=US, Issuer:CN=DigiCert Trusted Root G4, OU=www.digicert.com, O=DigiCert Inc, C=US, Key type:RSA, Length:4096, Cert Id:1057369358, Valid from:8/1/13, 12:00 PM, Valid until:1/15/38, 12:00 PM
Aug 28, 2025 11:16:34 AM jdk.internal.event.EventHelper logX509CertificateEvent
FINE: X509Certificate: Alg:SHA384withRSA, Serial:08:ad:40:b2:60:d2:9c:4c:9f:5e:cd:a9:bd:93:ae:d9, Subject:CN=DigiCert Trusted G4 Code Signing RSA4096 SHA384 2021 CA1, O="DigiCert, Inc.", C=US, Issuer:CN=DigiCert Trusted Root G4, OU=www.digicert.com, O=DigiCert Inc, C=US, Key type:RSA, Length:4096, Cert Id:3406046841, Valid from:4/29/21, 12:00 AM, Valid until:4/28/36, 11:59 PM
Aug 28, 2025 11:16:34 AM jdk.internal.event.EventHelper logX509CertificateEvent
FINE: X509Certificate: Alg:SHA256withRSA, Serial:0a:16:40:c2:60:6e:fe:65:9b:46:35:87:5f:38:14:fe, Subject:CN="Amazon Web Services, Inc.", OU=Amazon Redshift, O="Amazon Web Services, Inc.", L=Seattle, ST=Washington, C=US, SERIALNUMBER=4152954, OID.2.5.4.15=Private Organization, OID.1.3.6.1.4.1.311.60.2.1.2=Delaware, OID.1.3.6.1.4.1.311.60.2.1.3=US, Issuer:CN=DigiCert Trusted G4 Code Signing RSA4096 SHA384 2021 CA1, O="DigiCert, Inc.", C=US, Key type:RSA, Length:3072, Cert Id:2264124271, Valid from:1/31/25, 12:00 AM, Valid until:1/30/26, 11:59 PM
Aug 28, 2025 11:16:34 AM jdk.internal.event.EventHelper logX509CertificateEvent
FINE: X509Certificate: Alg:SHA256withRSA, Serial:0b:ae:66:bc:5a:ba:7f:95:87:c6:f9:e9:04:e3:33:04, Subject:CN=DigiCert Timestamp 2024, O=DigiCert, C=US, Issuer:CN=DigiCert Trusted G4 RSA4096 SHA256 TimeStamping CA, O="DigiCert, Inc.", C=US, Key type:RSA, Length:4096, Cert Id:3934399196, Valid from:9/26/24, 12:00 AM, Valid until:11/25/35, 11:59 PM
Aug 28, 2025 11:16:34 AM jdk.internal.event.EventHelper logX509CertificateEvent
FINE: X509Certificate: Alg:SHA256withRSA, Serial:07:36:37:b7:24:54:7c:d8:47:ac:fd:28:66:2a:5e:5b, Subject:CN=DigiCert Trusted G4 RSA4096 SHA256 TimeStamping CA, O="DigiCert, Inc.", C=US, Issuer:CN=DigiCert Trusted Root G4, OU=www.digicert.com, O=DigiCert Inc, C=US, Key type:RSA, Length:4096, Cert Id:3207540671, Valid from:3/23/22, 12:00 AM, Valid until:3/22/37, 11:59 PM
Aug 28, 2025 11:16:34 AM jdk.internal.event.EventHelper logX509CertificateEvent
FINE: X509Certificate: Alg:SHA384withRSA, Serial:0e:9b:18:8e:f9:d0:2d:e7:ef:db:50:e2:08:40:18:5a, Subject:CN=DigiCert Trusted Root G4, OU=www.digicert.com, O=DigiCert Inc, C=US, Issuer:CN=DigiCert Assured ID Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US, Key type:RSA, Length:4096, Cert Id:845088433, Valid from:8/1/22, 12:00 AM, Valid until:11/9/31, 11:59 PM
Aug 28, 2025 11:16:34 AM jdk.internal.event.EventHelper logX509CertificateEvent
FINE: X509Certificate: Alg:SHA384withRSA, Serial:05:9b:1b:57:9e:8e:21:32:e2:39:07:bd:a7:77:75:5c, Subject:CN=DigiCert Trusted Root G4, OU=www.digicert.com, O=DigiCert Inc, C=US, Issuer:CN=DigiCert Trusted Root G4, OU=www.digicert.com, O=DigiCert Inc, C=US, Key type:RSA, Length:4096, Cert Id:1057369358, Valid from:8/1/13, 12:00 PM, Valid until:1/15/38, 12:00 PM
Aug 28, 2025 11:16:34 AM jdk.internal.event.EventHelper logX509CertificateEvent
FINE: X509Certificate: Alg:SHA384withRSA, Serial:08:ad:40:b2:60:d2:9c:4c:9f:5e:cd:a9:bd:93:ae:d9, Subject:CN=DigiCert Trusted G4 Code Signing RSA4096 SHA384 2021 CA1, O="DigiCert, Inc.", C=US, Issuer:CN=DigiCert Trusted Root G4, OU=www.digicert.com, O=DigiCert Inc, C=US, Key type:RSA, Length:4096, Cert Id:3406046841, Valid from:4/29/21, 12:00 AM, Valid until:4/28/36, 11:59 PM
Aug 28, 2025 11:16:34 AM jdk.internal.event.EventHelper logX509CertificateEvent
FINE: X509Certificate: Alg:SHA256withRSA, Serial:0d:1f:02:a4:a2:c5:a3:d3:a3:7d:da:07:19:9a:36:20, Subject:CN=Microsoft Corporation, OU=Java Signing (SHA2), O=Microsoft Corporation, L=Redmond, ST=Washington, C=US, Issuer:CN=DigiCert Trusted G4 Code Signing RSA4096 SHA384 2021 CA1, O="DigiCert, Inc.", C=US, Key type:RSA, Length:4096, Cert Id:1223504232, Valid from:8/30/24, 12:00 AM, Valid until:10/29/27, 11:59 PM
Aug 28, 2025 11:16:34 AM jdk.internal.event.EventHelper logX509CertificateEvent
FINE: X509Certificate: Alg:SHA256withRSA, Serial:0a:80:ef:18:4b:8d:f1:05:82:d1:c4:76:a7:95:74:68, Subject:CN=DigiCert SHA256 RSA4096 Timestamp Responder 2025 1, O="DigiCert, Inc.", C=US, Issuer:CN=DigiCert Trusted G4 TimeStamping RSA4096 SHA256 2025 CA1, O="DigiCert, Inc.", C=US, Key type:RSA, Length:4096, Cert Id:2267438615, Valid from:6/4/25, 12:00 AM, Valid until:9/3/36, 11:59 PM
Aug 28, 2025 11:16:34 AM jdk.internal.event.EventHelper logX509CertificateEvent
FINE: X509Certificate: Alg:SHA256withRSA, Serial:0d:c7:ac:57:05:ff:21:99:2e:40:43:22:0c:3a:49:86, Subject:CN=DigiCert Trusted G4 TimeStamping RSA4096 SHA256 2025 CA1, O="DigiCert, Inc.", C=US, Issuer:CN=DigiCert Trusted Root G4, OU=www.digicert.com, O=DigiCert Inc, C=US, Key type:RSA, Length:4096, Cert Id:838034565, Valid from:5/7/25, 12:00 AM, Valid until:1/14/38, 11:59 PM
Aug 28, 2025 11:16:34 AM jdk.internal.event.EventHelper logX509CertificateEvent
FINE: X509Certificate: Alg:SHA384withRSA, Serial:0e:9b:18:8e:f9:d0:2d:e7:ef:db:50:e2:08:40:18:5a, Subject:CN=DigiCert Trusted Root G4, OU=www.digicert.com, O=DigiCert Inc, C=US, Issuer:CN=DigiCert Assured ID Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US, Key type:RSA, Length:4096, Cert Id:845088433, Valid from:8/1/22, 12:00 AM, Valid until:11/9/31, 11:59 PM
Aug 28, 2025 11:16:34 AM org.postgresql.Driver parseURL
FINE: JDBC URL must start with "jdbc:postgresql:" but was: 12.12.12.12
Aug 28, 2025 11:16:34 AM com.microsoft.sqlserver.jdbc.SQLServerDriver:1 acceptsURL
FINER: ENTRY Arguments not traced.
Aug 28, 2025 11:16:34 AM com.microsoft.sqlserver.jdbc.SQLServerDriver:1 acceptsURL
FINER: RETURN false
Aug 28, 2025 11:16:34 AM net.snowflake.client.jdbc.SnowflakeConnectString parse
FINE: Connect strings must start with jdbc:snowflake://
Aug 28, 2025 11:16:34 AM us.fatehi.utility.UtilityLogger logSafeArguments
INFO: Command line:
--url
12.12.12.12
--user:env
SA
<password provided>
--info-level
standard
--log-level
ALL
--routines
.*
--command
mcpserver
--transport
stdio
Aug 28, 2025 11:16:34 AM us.fatehi.utility.UtilityLogger logFatalStackTrace
SEVERE: Could not get connection properties
us.fatehi.utility.SQLRuntimeException: Could not get connection properties
        at us.fatehi.utility.datasource.AbstractDatabaseConnectionSource.createConnectionProperties(AbstractDatabaseConnectionSource.java:73)
        at us.fatehi.utility.datasource.SimpleDatabaseConnectionSource.<init>(SimpleDatabaseConnectionSource.java:60)
        at us.fatehi.utility.datasource.DatabaseConnectionSources.newDatabaseConnectionSource(DatabaseConnectionSources.java:45)
        at us.fatehi.utility.datasource.DatabaseConnectionSources.newDatabaseConnectionSource(DatabaseConnectionSources.java:52)
        at schemacrawler.tools.databaseconnector.DatabaseConnector.newDatabaseConnectionSource(DatabaseConnector.java:131)
        at schemacrawler.tools.commandline.command.ConnectCommand.createDataSource(ConnectCommand.java:125)
        at schemacrawler.tools.commandline.command.ConnectCommand.run(ConnectCommand.java:104)
        at schemacrawler.tools.commandline.SchemaCrawlerCommandLine.executeCommandLine(SchemaCrawlerCommandLine.java:82)
        at schemacrawler.tools.commandline.SchemaCrawlerCommandLine.execute(SchemaCrawlerCommandLine.java:54)
        at schemacrawler.Main.main(Main.java:76)
        at schemacrawler.tools.ai.mcpserver.DockerMcpServer.main(DockerMcpServer.java:244)
Caused by: java.sql.SQLException: Could not find a suitable JDBC driver for database connection URL <12.12.12.12>
        at us.fatehi.utility.datasource.AbstractDatabaseConnectionSource.getJdbcDriver(AbstractDatabaseConnectionSource.java:120)
        at us.fatehi.utility.datasource.AbstractDatabaseConnectionSource.createConnectionProperties(AbstractDatabaseConnectionSource.java:44)
        ... 10 more
Caused by: java.sql.SQLException: No suitable driver
        at java.sql/java.sql.DriverManager.getDriver(DriverManager.java:300)
        at us.fatehi.utility.datasource.AbstractDatabaseConnectionSource.getJdbcDriver(AbstractDatabaseConnectionSource.java:117)
        ... 11 more

Aug 28, 2025 11:16:34 AM schemacrawler.tools.commandline.utility.CommandLineLogger logState
INFO: Environment:
  SchemaCrawler 16.26.3
  Linux 6.10.14-linuxkit
  Eclipse Adoptium OpenJDK 64-Bit Server VM 21.0.7+6-LTS
  JVM Architecture 64-bit ARM (aarch64)
Aug 28, 2025 11:16:34 AM schemacrawler.tools.commandline.utility.CommandLineLogger logState
INFO: Connection:
  Not connected to a database
SchemaCrawler 16.26.3

Error: Could not get connection properties

Aug 28, 2025 11:16:34 AM us.fatehi.utility.ioresource.BaseInputResource openNewInputReader
FINE: Opened resource <jar:file:/opt/schemacrawler/lib/schemacrawler-commandline-16.26.3.jar!/command-line-error.footer.txt> for reading
Run SchemaCrawler again with just the
-h
option for help

Or, run SchemaCrawler again with an additional
--log-level=CONFIG
option for details on the error

Additional resources are on the SchemaCrawler website,
https://www.schemacrawler.com
and a live, interactive tutorial is on
https://killercoda.com/schemacrawler


Environment:
  SchemaCrawler 16.26.3
  Linux 6.10.14-linuxkit
  Eclipse Adoptium OpenJDK 64-Bit Server VM 21.0.7+6-LTS
  JVM Architecture 64-bit ARM (aarch64)
Connection:
  Not connected to a database
Aug 28, 2025 11:16:34 AM java.lang.Shutdown logRuntimeExit
FINE: Runtime.exit() called with status: 1
java.lang.Throwable: Runtime.exit(1)
        at java.base/java.lang.Shutdown.logRuntimeExit(Shutdown.java:179)
        at java.base/java.lang.Shutdown.exit(Shutdown.java:160)
        at java.base/java.lang.Runtime.exit(Runtime.java:188)
        at java.base/java.lang.System.exit(System.java:1920)
        at schemacrawler.Main.exit(Main.java:97)
        at schemacrawler.Main.main(Main.java:82)
        at schemacrawler.tools.ai.mcpserver.DockerMcpServer.main(DockerMcpServer.java:244)

exit status 1
task: Failed to run task "build": exit status 1

Bear in mind, that we need to be able to list tools without a valid connection to the database.

@sualeh
Copy link
Contributor Author

sualeh commented Aug 28, 2025

@ipedrazas Thanks. I will take a look, and modify.

@sualeh
Copy link
Contributor Author

sualeh commented Aug 31, 2025

@ipedrazas @nicksieger This issue has been resolved. Please could you retest? Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants