Skip to content

Commit 2de6e74

Browse files
authored
Merge pull request #69 from schemacrawler/transport
Make --transport mandatory
2 parents 74c5992 + 9b15159 commit 2de6e74

File tree

13 files changed

+52
-34
lines changed

13 files changed

+52
-34
lines changed

.github/workflows/docker-image.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,6 @@ jobs:
105105

106106
- id: build-docker-early-release
107107
name: Build and push SchemaCrawler AI early release Docker image
108-
if: ${{ !startsWith(github.ref, 'refs/tags/') }}
109108
uses: docker/build-push-action@v6
110109
with:
111110
file: ./Dockerfile.early-access-release

changelog.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22

33
SchemaCrawler AI release notes.
44

5+
<a name="v16.26.3-3"></a>
6+
## Release 16.26.3-3 - 2025-07-15
7+
8+
- Make `--transport` required, with no defaults
9+
10+
511
<a name="v16.26.3-2"></a>
612
## Release 16.26.3-2 - 2025-07-15
713

schemacrawler-ai-mcpserver/src/main/bin/schemacrawler-ai.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@
33
# SPDX-License-Identifier: CC-BY-NC-4.0
44

55
SC_DIR=/opt/schemacrawler
6-
java -cp "$SC_DIR"/lib/*:"$SC_DIR"/config schemacrawler.tools.command.aichat.mcp.DockerMcpServer "$@"
6+
java -cp "$SC_DIR"/lib/*:"$SC_DIR"/config schemacrawler.tools.ai.mcpserver.DockerMcpServer "$@"

schemacrawler-ai-mcpserver/src/main/java/schemacrawler/tools/ai/mcpserver/DockerMcpServer.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
import java.util.logging.Level;
1414
import static us.fatehi.utility.Utility.isBlank;
1515
import schemacrawler.schemacrawler.InfoLevel;
16+
import schemacrawler.tools.command.mcpserver.McpServerTransportType;
1617
import schemacrawler.tools.commandline.command.AvailableServers;
17-
import us.fatehi.utility.LoggingConfig;
1818

1919
/**
2020
* Construct SchemaCrawler arguments from environment variables and run SchemaCrawler MCP Server.
@@ -76,7 +76,7 @@ public void addSchemaCrawlerArguments(final List<String> arguments) {
7676

7777
// Add additional SchemaCrawler command line arguments
7878
arguments.add("--log-level");
79-
arguments.add(Level.OFF.getName());
79+
arguments.add(Level.INFO.getName());
8080

8181
arguments.add("--routines");
8282
arguments.add(".*");
@@ -85,7 +85,7 @@ public void addSchemaCrawlerArguments(final List<String> arguments) {
8585
arguments.add("mcpserver");
8686

8787
arguments.add("--transport");
88-
arguments.add("stdio");
88+
arguments.add(McpServerTransportType.stdio.name());
8989
}
9090

9191
/**
@@ -200,9 +200,6 @@ public boolean isValidInfoLevel(final String infoLevel) {
200200
* @throws Exception If an error occurs during execution
201201
*/
202202
public static void main(final String[] args) throws Exception {
203-
204-
new LoggingConfig(Level.OFF);
205-
206203
final McpServerContext runner = new McpServerContext();
207204
final String[] arguments = runner.buildArguments();
208205
schemacrawler.Main.main(arguments);

schemacrawler-ai-mcpserver/src/main/java/schemacrawler/tools/ai/mcpserver/McpServerUtility.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
import java.util.logging.Level;
1212
import java.util.logging.Logger;
13-
import schemacrawler.tools.command.mcpserver.McpTransport;
13+
import schemacrawler.tools.command.mcpserver.McpServerTransportType;
1414
import us.fatehi.utility.UtilityMarker;
1515
import us.fatehi.utility.string.StringFormat;
1616

@@ -19,7 +19,7 @@ public class McpServerUtility {
1919

2020
private static final Logger LOGGER = Logger.getLogger(McpServerUtility.class.getName());
2121

22-
public static void startMcpServer(final McpTransport mcpTransport) {
22+
public static void startMcpServer(final McpServerTransportType mcpTransport) {
2323
if (mcpTransport == null) {
2424
throw new IllegalArgumentException("MCP transport not provided");
2525
}

schemacrawler-ai-mcpserver/src/main/java/schemacrawler/tools/ai/mcpserver/server/ToolProviderService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public String getSchemaCrawlerVersion(
5858
final String clientId,
5959
@ToolParam(description = "Event id, if available.", required = false) final String eventId) {
6060
final ObjectNode objectNode = JsonUtility.mapper.createObjectNode();
61-
objectNode.put("schemacrawler-version", Version.about());
61+
objectNode.put("schemacrawler-version", Version.version().toString());
6262
objectNode.put("mcp-client-id", clientId);
6363
objectNode.put("mcp-event-id", eventId);
6464
return objectNode.toString();

schemacrawler-ai-mcpserver/src/main/java/schemacrawler/tools/command/mcpserver/McpServerCommandOptions.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,12 @@
1010

1111
import schemacrawler.tools.executable.CommandOptions;
1212

13-
public record McpServerCommandOptions(McpTransport mcpTransport) implements CommandOptions {}
13+
public record McpServerCommandOptions(McpServerTransportType mcpTransport)
14+
implements CommandOptions {
15+
16+
public McpServerCommandOptions {
17+
if (mcpTransport == null || mcpTransport == McpServerTransportType.unknown) {
18+
throw new IllegalArgumentException("No MCR Server transport specified");
19+
}
20+
}
21+
}

schemacrawler-ai-mcpserver/src/main/java/schemacrawler/tools/command/mcpserver/McpServerCommandOptionsBuilder.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
package schemacrawler.tools.command.mcpserver;
1010

11+
import static schemacrawler.tools.command.mcpserver.McpServerTransportType.unknown;
1112
import schemacrawler.schemacrawler.OptionsBuilder;
1213
import schemacrawler.tools.options.Config;
1314
import schemacrawler.tools.options.ConfigOptionsBuilder;
@@ -20,10 +21,12 @@ public static McpServerCommandOptionsBuilder builder() {
2021
return new McpServerCommandOptionsBuilder();
2122
}
2223

23-
private McpTransport mcpTransport;
24+
private McpServerTransportType mcpTransport;
2425

2526
private McpServerCommandOptionsBuilder() {
26-
mcpTransport = McpTransport.stdio;
27+
// MCP Server transport needs to be explicitly specified,
28+
// so default to known
29+
mcpTransport = unknown;
2730
}
2831

2932
@Override
@@ -34,7 +37,7 @@ public McpServerCommandOptionsBuilder fromOptions(final McpServerCommandOptions
3437
return this;
3538
}
3639

37-
public McpServerCommandOptionsBuilder withMcpTransport(McpTransport mcpServerType) {
40+
public McpServerCommandOptionsBuilder withMcpTransport(McpServerTransportType mcpServerType) {
3841
if (mcpServerType != null) {
3942
mcpTransport = mcpServerType;
4043
}
@@ -49,7 +52,7 @@ public McpServerCommandOptions toOptions() {
4952
@Override
5053
public McpServerCommandOptionsBuilder fromConfig(final Config config) {
5154
if (config != null) {
52-
mcpTransport = config.getEnumValue("transport", mcpTransport.stdio);
55+
mcpTransport = config.getEnumValue("transport", unknown);
5356
}
5457

5558
return this;

schemacrawler-ai-mcpserver/src/main/java/schemacrawler/tools/command/mcpserver/McpServerCommandProvider.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ public McpServerCommandProvider() {
2626
@Override
2727
public PluginCommand getCommandLineCommand() {
2828
final PluginCommand pluginCommand = newPluginCommand(COMMAND);
29-
pluginCommand.addOption("transport", McpTransport.class, "Type of MCP server to start");
29+
pluginCommand.addOption(
30+
"transport", McpServerTransportType.class, "Type of MCP server to start");
3031
return pluginCommand;
3132
}
3233

schemacrawler-ai-mcpserver/src/main/java/schemacrawler/tools/command/mcpserver/McpTransport.java renamed to schemacrawler-ai-mcpserver/src/main/java/schemacrawler/tools/command/mcpserver/McpServerTransportType.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88

99
package schemacrawler.tools.command.mcpserver;
1010

11-
public enum McpTransport {
11+
public enum McpServerTransportType {
12+
unknown,
1213
stdio,
1314
sse;
1415
}

0 commit comments

Comments
 (0)