This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gremlin-mcp
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 0238f3fb477ddd3a48885e71ef3ab40e680815e1
Author: Stephen Mallette <[email protected]>
AuthorDate: Wed Oct 1 09:26:05 2025 -0400

    Restructured gremlin-mcp to match TinkerPop standards under Maven
---
 gremlin-tools/gremlin-mcp/pom.xml                  | 124 +++++++++++++++++++++
 .../{ => src/main/javascript}/.env.example         |   0
 .../{ => src/main/javascript}/.gitignore           |   2 +-
 .../{ => src/main/javascript}/.npmignore           |   0
 .../{ => src/main/javascript}/.prettierignore      |   0
 .../{ => src/main/javascript}/.prettierrc          |   0
 .../gremlin-mcp/{ => src/main/javascript}/LICENSE  |   0
 .../gremlin-mcp/{ => src/main/javascript}/NOTICE   |   0
 .../{ => src/main/javascript}/README.md            |   2 +-
 .../{ => src/main/javascript}/eslint.config.js     |   0
 .../{ => src/main/javascript}/jest.config.js       |   0
 .../{ => src/main/javascript}/package-lock.json    |  10 +-
 .../{ => src/main/javascript}/package.json         |   2 +-
 .../src/{ => main/javascript/src}/config.ts        |   0
 .../src/{ => main/javascript/src}/constants.ts     |   4 +-
 .../src/{ => main/javascript/src}/errors.ts        |   0
 .../{ => main/javascript/src}/gremlin/client.ts    |   0
 .../javascript/src}/gremlin/connection.ts          |   0
 .../javascript/src}/gremlin/edge-patterns.ts       |   0
 .../javascript/src}/gremlin/models/graph-schema.ts |   0
 .../src}/gremlin/models/import-export.ts           |   0
 .../javascript/src}/gremlin/models/index.ts        |   0
 .../javascript/src}/gremlin/models/query-result.ts |   0
 .../javascript/src}/gremlin/property-analyzer.ts   |   0
 .../javascript/src}/gremlin/query-utils.ts         |   0
 .../javascript/src}/gremlin/schema-assembly.ts     |   0
 .../javascript/src}/gremlin/schema-cache.ts        |   0
 .../javascript/src}/gremlin/schema-generator.ts    |   0
 .../{ => main/javascript/src}/gremlin/schema.ts    |   0
 .../{ => main/javascript/src}/gremlin/service.ts   |   0
 .../src/{ => main/javascript/src}/gremlin/types.ts |   0
 .../javascript/src}/handlers/resources.ts          |   0
 .../javascript/src}/handlers/tool-patterns.ts      |   0
 .../{ => main/javascript/src}/handlers/tools.ts    |   0
 .../src/{ => main/javascript/src}/server.ts        |   0
 .../javascript/src}/utils/data-operations.ts       |   0
 .../javascript/src}/utils/result-metadata.ts       |   0
 .../javascript/src}/utils/result-parser.ts         |   0
 .../{ => main/javascript/src}/utils/type-guards.ts |   0
 .../{ => src/main/javascript}/tests/config.test.ts |   5 +-
 .../main/javascript}/tests/edge-patterns.test.ts   |  10 +-
 .../tests/integration/mcp-integration.test.ts      |   2 +-
 .../{ => src/main/javascript}/tests/models.test.ts |   2 +-
 .../javascript}/tests/property-analyzer.test.ts    |   8 +-
 .../main/javascript}/tests/query-utils.test.ts     |   2 +-
 .../main/javascript}/tests/schema-assembly.test.ts |   6 +-
 .../{ => src/main/javascript}/tests/setup.ts       |   0
 .../{ => src/main/javascript}/tsconfig.json        |   6 +-
 gremlin-tools/pom.xml                              |   1 +
 49 files changed, 158 insertions(+), 28 deletions(-)

diff --git a/gremlin-tools/gremlin-mcp/pom.xml 
b/gremlin-tools/gremlin-mcp/pom.xml
new file mode 100644
index 0000000000..d38a0e6441
--- /dev/null
+++ b/gremlin-tools/gremlin-mcp/pom.xml
@@ -0,0 +1,124 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0";
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.tinkerpop</groupId>
+        <artifactId>gremlin-tools</artifactId>
+        <version>3.8.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>gremlin-mcp</artifactId>
+    <name>Apache TinkerPop :: Gremlin MCP</name>
+
+    <properties>
+        <maven.test.skip>false</maven.test.skip>
+        <skipTests>${maven.test.skip}</skipTests>
+        <npm.version>10.8.2</npm.version>
+        <node.version>v20.19.4</node.version>
+    </properties>
+
+    <build>
+        <directory>${basedir}/target</directory>
+        <finalName>${project.artifactId}-${project.version}</finalName>
+        <plugins>
+            <plugin>
+                <groupId>com.github.eirslett</groupId>
+                <artifactId>frontend-maven-plugin</artifactId>
+                <version>1.15.0</version>
+                <executions>
+                    <execution>
+                        <id>install node and npm</id>
+                        <phase>validate</phase>
+                        <goals>
+                            <goal>install-node-and-npm</goal>
+                        </goals>
+                    </execution>
+                    <execution>
+                        <id>npm install</id>
+                        <phase>validate</phase>
+                        <goals>
+                            <goal>npm</goal>
+                        </goals>
+                        <configuration>
+                            <arguments>ci</arguments>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>npm lint</id>
+                        <phase>validate</phase>
+                        <goals>
+                            <goal>npm</goal>
+                        </goals>
+                        <configuration>
+                            <skip>${skipTests}</skip>
+                            <arguments>run lint</arguments>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>npm build</id>
+                        <phase>generate-resources</phase>
+                        <goals>
+                            <goal>npm</goal>
+                        </goals>
+                        <configuration>
+                            <arguments>run build</arguments>
+                        </configuration>
+                    </execution>
+                </executions>
+                <configuration>
+                    <workingDirectory>${project.basedir}</workingDirectory>
+                    <nodeVersion>${node.version}</nodeVersion>
+                    <npmVersion>${npm.version}</npmVersion>
+                </configuration>
+            </plugin>
+
+            <!-- There is no JVM code/artifacts to publish for this module -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-javadoc-plugin</artifactId>
+                <configuration>
+                    <skip>true</skip>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-source-plugin</artifactId>
+                <configuration>
+                    <skipSource>true</skipSource>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-install-plugin</artifactId>
+                <configuration>
+                    <skip>true</skip>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-deploy-plugin</artifactId>
+                <configuration>
+                    <skip>true</skip>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/gremlin-tools/gremlin-mcp/.env.example 
b/gremlin-tools/gremlin-mcp/src/main/javascript/.env.example
similarity index 100%
rename from gremlin-tools/gremlin-mcp/.env.example
rename to gremlin-tools/gremlin-mcp/src/main/javascript/.env.example
diff --git a/gremlin-tools/gremlin-mcp/.gitignore 
b/gremlin-tools/gremlin-mcp/src/main/javascript/.gitignore
similarity index 98%
rename from gremlin-tools/gremlin-mcp/.gitignore
rename to gremlin-tools/gremlin-mcp/src/main/javascript/.gitignore
index 038ada8827..75fbc34146 100644
--- a/gremlin-tools/gremlin-mcp/.gitignore
+++ b/gremlin-tools/gremlin-mcp/src/main/javascript/.gitignore
@@ -18,7 +18,7 @@
 #
 
 # Dependencies
-node_modules/
+../../../node_modules/
 npm-debug.log*
 yarn-debug.log*
 yarn-error.log*
diff --git a/gremlin-tools/gremlin-mcp/.npmignore 
b/gremlin-tools/gremlin-mcp/src/main/javascript/.npmignore
similarity index 100%
rename from gremlin-tools/gremlin-mcp/.npmignore
rename to gremlin-tools/gremlin-mcp/src/main/javascript/.npmignore
diff --git a/gremlin-tools/gremlin-mcp/.prettierignore 
b/gremlin-tools/gremlin-mcp/src/main/javascript/.prettierignore
similarity index 100%
rename from gremlin-tools/gremlin-mcp/.prettierignore
rename to gremlin-tools/gremlin-mcp/src/main/javascript/.prettierignore
diff --git a/gremlin-tools/gremlin-mcp/.prettierrc 
b/gremlin-tools/gremlin-mcp/src/main/javascript/.prettierrc
similarity index 100%
rename from gremlin-tools/gremlin-mcp/.prettierrc
rename to gremlin-tools/gremlin-mcp/src/main/javascript/.prettierrc
diff --git a/gremlin-tools/gremlin-mcp/LICENSE 
b/gremlin-tools/gremlin-mcp/src/main/javascript/LICENSE
similarity index 100%
rename from gremlin-tools/gremlin-mcp/LICENSE
rename to gremlin-tools/gremlin-mcp/src/main/javascript/LICENSE
diff --git a/gremlin-tools/gremlin-mcp/NOTICE 
b/gremlin-tools/gremlin-mcp/src/main/javascript/NOTICE
similarity index 100%
rename from gremlin-tools/gremlin-mcp/NOTICE
rename to gremlin-tools/gremlin-mcp/src/main/javascript/NOTICE
diff --git a/gremlin-tools/gremlin-mcp/README.md 
b/gremlin-tools/gremlin-mcp/src/main/javascript/README.md
similarity index 99%
rename from gremlin-tools/gremlin-mcp/README.md
rename to gremlin-tools/gremlin-mcp/src/main/javascript/README.md
index bb050c3a3a..e98566bc53 100644
--- a/gremlin-tools/gremlin-mcp/README.md
+++ b/gremlin-tools/gremlin-mcp/src/main/javascript/README.md
@@ -528,7 +528,7 @@ The server implements intelligent schema discovery with 
enumeration detection:
 
 ## License
 
-This project is licensed under the Apache License 2.0 - see the 
[LICENSE](../../LICENSE) file for details.
+This project is licensed under the Apache License 2.0 - see the 
[LICENSE](../../../../../LICENSE) file for details.
 
 This project is part of the Apache TinkerPop project.
 
diff --git a/gremlin-tools/gremlin-mcp/eslint.config.js 
b/gremlin-tools/gremlin-mcp/src/main/javascript/eslint.config.js
similarity index 100%
rename from gremlin-tools/gremlin-mcp/eslint.config.js
rename to gremlin-tools/gremlin-mcp/src/main/javascript/eslint.config.js
diff --git a/gremlin-tools/gremlin-mcp/jest.config.js 
b/gremlin-tools/gremlin-mcp/src/main/javascript/jest.config.js
similarity index 100%
rename from gremlin-tools/gremlin-mcp/jest.config.js
rename to gremlin-tools/gremlin-mcp/src/main/javascript/jest.config.js
diff --git a/gremlin-tools/gremlin-mcp/package-lock.json 
b/gremlin-tools/gremlin-mcp/src/main/javascript/package-lock.json
similarity index 99%
rename from gremlin-tools/gremlin-mcp/package-lock.json
rename to gremlin-tools/gremlin-mcp/src/main/javascript/package-lock.json
index f4311d0af3..306ed1c4bf 100644
--- a/gremlin-tools/gremlin-mcp/package-lock.json
+++ b/gremlin-tools/gremlin-mcp/src/main/javascript/package-lock.json
@@ -1,12 +1,12 @@
 {
-  "name": "@kpritam/gremlin-mcp",
-  "version": "0.0.11-SNAPSHOT",
+  "name": "gremlin-mcp",
+  "version": "3.8.0-SNAPSHOT",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
-      "name": "@kpritam/gremlin-mcp",
-      "version": "0.0.11-SNAPSHOT",
+      "name": "gremlin-mcp",
+      "version": "3.8.0-SNAPSHOT",
       "hasInstallScript": true,
       "license": "Apache-2.0",
       "dependencies": {
@@ -39,7 +39,7 @@
         "typescript-eslint": "^8.40.0"
       },
       "engines": {
-        "node": ">=18.0.0"
+        "node": ">=20"
       }
     },
     "node_modules/@ampproject/remapping": {
diff --git a/gremlin-tools/gremlin-mcp/package.json 
b/gremlin-tools/gremlin-mcp/src/main/javascript/package.json
similarity index 98%
rename from gremlin-tools/gremlin-mcp/package.json
rename to gremlin-tools/gremlin-mcp/src/main/javascript/package.json
index 30364041c0..ad7443db7e 100644
--- a/gremlin-tools/gremlin-mcp/package.json
+++ b/gremlin-tools/gremlin-mcp/src/main/javascript/package.json
@@ -1,6 +1,6 @@
 {
   "name": "gremlin-mcp",
-  "version": "3.8.0-alpha1",
+  "version": "3.8.0-SNAPSHOT",
   "description": "The official Apache TinkerPop MCP server for Gremlin that 
allows for fetching status, schema, and querying using Gremlin for any 
TinkerPop-compatible graph database (TypeScript implementation).",
   "type": "module",
   "main": "dist/server.js",
diff --git a/gremlin-tools/gremlin-mcp/src/config.ts 
b/gremlin-tools/gremlin-mcp/src/main/javascript/src/config.ts
similarity index 100%
rename from gremlin-tools/gremlin-mcp/src/config.ts
rename to gremlin-tools/gremlin-mcp/src/main/javascript/src/config.ts
diff --git a/gremlin-tools/gremlin-mcp/src/constants.ts 
b/gremlin-tools/gremlin-mcp/src/main/javascript/src/constants.ts
similarity index 93%
rename from gremlin-tools/gremlin-mcp/src/constants.ts
rename to gremlin-tools/gremlin-mcp/src/main/javascript/src/constants.ts
index 889737d245..c20a739e55 100644
--- a/gremlin-tools/gremlin-mcp/src/constants.ts
+++ b/gremlin-tools/gremlin-mcp/src/main/javascript/src/constants.ts
@@ -24,12 +24,12 @@
  * including server metadata, MCP protocol identifiers, and configuration 
defaults.
  */
 
-export const gremlinVersion = '3.8.0-SNAPSHOT'; // DO NOT MODIFY - Configured 
automatically by Maven Replacer Plugin
+export const GREMLIN_VERSION = '3.8.0-SNAPSHOT'; // DO NOT MODIFY - Configured 
automatically by Maven Replacer Plugin
 
 // Server Information
 export const SERVER_INFO = {
   NAME: 'gremlin-mcp',
-  VERSION: gremlinVersion,
+  VERSION: GREMLIN_VERSION,
 } as const;
 
 // MCP Resource URIs
diff --git a/gremlin-tools/gremlin-mcp/src/errors.ts 
b/gremlin-tools/gremlin-mcp/src/main/javascript/src/errors.ts
similarity index 100%
rename from gremlin-tools/gremlin-mcp/src/errors.ts
rename to gremlin-tools/gremlin-mcp/src/main/javascript/src/errors.ts
diff --git a/gremlin-tools/gremlin-mcp/src/gremlin/client.ts 
b/gremlin-tools/gremlin-mcp/src/main/javascript/src/gremlin/client.ts
similarity index 100%
rename from gremlin-tools/gremlin-mcp/src/gremlin/client.ts
rename to gremlin-tools/gremlin-mcp/src/main/javascript/src/gremlin/client.ts
diff --git a/gremlin-tools/gremlin-mcp/src/gremlin/connection.ts 
b/gremlin-tools/gremlin-mcp/src/main/javascript/src/gremlin/connection.ts
similarity index 100%
rename from gremlin-tools/gremlin-mcp/src/gremlin/connection.ts
rename to 
gremlin-tools/gremlin-mcp/src/main/javascript/src/gremlin/connection.ts
diff --git a/gremlin-tools/gremlin-mcp/src/gremlin/edge-patterns.ts 
b/gremlin-tools/gremlin-mcp/src/main/javascript/src/gremlin/edge-patterns.ts
similarity index 100%
rename from gremlin-tools/gremlin-mcp/src/gremlin/edge-patterns.ts
rename to 
gremlin-tools/gremlin-mcp/src/main/javascript/src/gremlin/edge-patterns.ts
diff --git a/gremlin-tools/gremlin-mcp/src/gremlin/models/graph-schema.ts 
b/gremlin-tools/gremlin-mcp/src/main/javascript/src/gremlin/models/graph-schema.ts
similarity index 100%
rename from gremlin-tools/gremlin-mcp/src/gremlin/models/graph-schema.ts
rename to 
gremlin-tools/gremlin-mcp/src/main/javascript/src/gremlin/models/graph-schema.ts
diff --git a/gremlin-tools/gremlin-mcp/src/gremlin/models/import-export.ts 
b/gremlin-tools/gremlin-mcp/src/main/javascript/src/gremlin/models/import-export.ts
similarity index 100%
rename from gremlin-tools/gremlin-mcp/src/gremlin/models/import-export.ts
rename to 
gremlin-tools/gremlin-mcp/src/main/javascript/src/gremlin/models/import-export.ts
diff --git a/gremlin-tools/gremlin-mcp/src/gremlin/models/index.ts 
b/gremlin-tools/gremlin-mcp/src/main/javascript/src/gremlin/models/index.ts
similarity index 100%
rename from gremlin-tools/gremlin-mcp/src/gremlin/models/index.ts
rename to 
gremlin-tools/gremlin-mcp/src/main/javascript/src/gremlin/models/index.ts
diff --git a/gremlin-tools/gremlin-mcp/src/gremlin/models/query-result.ts 
b/gremlin-tools/gremlin-mcp/src/main/javascript/src/gremlin/models/query-result.ts
similarity index 100%
rename from gremlin-tools/gremlin-mcp/src/gremlin/models/query-result.ts
rename to 
gremlin-tools/gremlin-mcp/src/main/javascript/src/gremlin/models/query-result.ts
diff --git a/gremlin-tools/gremlin-mcp/src/gremlin/property-analyzer.ts 
b/gremlin-tools/gremlin-mcp/src/main/javascript/src/gremlin/property-analyzer.ts
similarity index 100%
rename from gremlin-tools/gremlin-mcp/src/gremlin/property-analyzer.ts
rename to 
gremlin-tools/gremlin-mcp/src/main/javascript/src/gremlin/property-analyzer.ts
diff --git a/gremlin-tools/gremlin-mcp/src/gremlin/query-utils.ts 
b/gremlin-tools/gremlin-mcp/src/main/javascript/src/gremlin/query-utils.ts
similarity index 100%
rename from gremlin-tools/gremlin-mcp/src/gremlin/query-utils.ts
rename to 
gremlin-tools/gremlin-mcp/src/main/javascript/src/gremlin/query-utils.ts
diff --git a/gremlin-tools/gremlin-mcp/src/gremlin/schema-assembly.ts 
b/gremlin-tools/gremlin-mcp/src/main/javascript/src/gremlin/schema-assembly.ts
similarity index 100%
rename from gremlin-tools/gremlin-mcp/src/gremlin/schema-assembly.ts
rename to 
gremlin-tools/gremlin-mcp/src/main/javascript/src/gremlin/schema-assembly.ts
diff --git a/gremlin-tools/gremlin-mcp/src/gremlin/schema-cache.ts 
b/gremlin-tools/gremlin-mcp/src/main/javascript/src/gremlin/schema-cache.ts
similarity index 100%
rename from gremlin-tools/gremlin-mcp/src/gremlin/schema-cache.ts
rename to 
gremlin-tools/gremlin-mcp/src/main/javascript/src/gremlin/schema-cache.ts
diff --git a/gremlin-tools/gremlin-mcp/src/gremlin/schema-generator.ts 
b/gremlin-tools/gremlin-mcp/src/main/javascript/src/gremlin/schema-generator.ts
similarity index 100%
rename from gremlin-tools/gremlin-mcp/src/gremlin/schema-generator.ts
rename to 
gremlin-tools/gremlin-mcp/src/main/javascript/src/gremlin/schema-generator.ts
diff --git a/gremlin-tools/gremlin-mcp/src/gremlin/schema.ts 
b/gremlin-tools/gremlin-mcp/src/main/javascript/src/gremlin/schema.ts
similarity index 100%
rename from gremlin-tools/gremlin-mcp/src/gremlin/schema.ts
rename to gremlin-tools/gremlin-mcp/src/main/javascript/src/gremlin/schema.ts
diff --git a/gremlin-tools/gremlin-mcp/src/gremlin/service.ts 
b/gremlin-tools/gremlin-mcp/src/main/javascript/src/gremlin/service.ts
similarity index 100%
rename from gremlin-tools/gremlin-mcp/src/gremlin/service.ts
rename to gremlin-tools/gremlin-mcp/src/main/javascript/src/gremlin/service.ts
diff --git a/gremlin-tools/gremlin-mcp/src/gremlin/types.ts 
b/gremlin-tools/gremlin-mcp/src/main/javascript/src/gremlin/types.ts
similarity index 100%
rename from gremlin-tools/gremlin-mcp/src/gremlin/types.ts
rename to gremlin-tools/gremlin-mcp/src/main/javascript/src/gremlin/types.ts
diff --git a/gremlin-tools/gremlin-mcp/src/handlers/resources.ts 
b/gremlin-tools/gremlin-mcp/src/main/javascript/src/handlers/resources.ts
similarity index 100%
rename from gremlin-tools/gremlin-mcp/src/handlers/resources.ts
rename to 
gremlin-tools/gremlin-mcp/src/main/javascript/src/handlers/resources.ts
diff --git a/gremlin-tools/gremlin-mcp/src/handlers/tool-patterns.ts 
b/gremlin-tools/gremlin-mcp/src/main/javascript/src/handlers/tool-patterns.ts
similarity index 100%
rename from gremlin-tools/gremlin-mcp/src/handlers/tool-patterns.ts
rename to 
gremlin-tools/gremlin-mcp/src/main/javascript/src/handlers/tool-patterns.ts
diff --git a/gremlin-tools/gremlin-mcp/src/handlers/tools.ts 
b/gremlin-tools/gremlin-mcp/src/main/javascript/src/handlers/tools.ts
similarity index 100%
rename from gremlin-tools/gremlin-mcp/src/handlers/tools.ts
rename to gremlin-tools/gremlin-mcp/src/main/javascript/src/handlers/tools.ts
diff --git a/gremlin-tools/gremlin-mcp/src/server.ts 
b/gremlin-tools/gremlin-mcp/src/main/javascript/src/server.ts
similarity index 100%
rename from gremlin-tools/gremlin-mcp/src/server.ts
rename to gremlin-tools/gremlin-mcp/src/main/javascript/src/server.ts
diff --git a/gremlin-tools/gremlin-mcp/src/utils/data-operations.ts 
b/gremlin-tools/gremlin-mcp/src/main/javascript/src/utils/data-operations.ts
similarity index 100%
rename from gremlin-tools/gremlin-mcp/src/utils/data-operations.ts
rename to 
gremlin-tools/gremlin-mcp/src/main/javascript/src/utils/data-operations.ts
diff --git a/gremlin-tools/gremlin-mcp/src/utils/result-metadata.ts 
b/gremlin-tools/gremlin-mcp/src/main/javascript/src/utils/result-metadata.ts
similarity index 100%
rename from gremlin-tools/gremlin-mcp/src/utils/result-metadata.ts
rename to 
gremlin-tools/gremlin-mcp/src/main/javascript/src/utils/result-metadata.ts
diff --git a/gremlin-tools/gremlin-mcp/src/utils/result-parser.ts 
b/gremlin-tools/gremlin-mcp/src/main/javascript/src/utils/result-parser.ts
similarity index 100%
rename from gremlin-tools/gremlin-mcp/src/utils/result-parser.ts
rename to 
gremlin-tools/gremlin-mcp/src/main/javascript/src/utils/result-parser.ts
diff --git a/gremlin-tools/gremlin-mcp/src/utils/type-guards.ts 
b/gremlin-tools/gremlin-mcp/src/main/javascript/src/utils/type-guards.ts
similarity index 100%
rename from gremlin-tools/gremlin-mcp/src/utils/type-guards.ts
rename to gremlin-tools/gremlin-mcp/src/main/javascript/src/utils/type-guards.ts
diff --git a/gremlin-tools/gremlin-mcp/tests/config.test.ts 
b/gremlin-tools/gremlin-mcp/src/main/javascript/tests/config.test.ts
similarity index 98%
rename from gremlin-tools/gremlin-mcp/tests/config.test.ts
rename to gremlin-tools/gremlin-mcp/src/main/javascript/tests/config.test.ts
index c10e47051c..935f862173 100644
--- a/gremlin-tools/gremlin-mcp/tests/config.test.ts
+++ b/gremlin-tools/gremlin-mcp/src/main/javascript/tests/config.test.ts
@@ -23,7 +23,8 @@
  */
 
 import { Effect } from 'effect';
-import { AppConfig, type AppConfigType } from '../src/config.js';
+import { GREMLIN_VERSION } from '../src/constants';
+import { AppConfig, type AppConfigType } from '../src/config';
 
 describe('Effect-based Configuration Management', () => {
   const originalEnv = process.env;
@@ -76,7 +77,7 @@ describe('Effect-based Configuration Management', () => {
         },
         server: {
           name: 'gremlin-mcp',
-          version: '0.0.11-SNAPSHOT',
+          version: GREMLIN_VERSION,
         },
       });
       expect(result.gremlin.username).toBeDefined();
diff --git a/gremlin-tools/gremlin-mcp/tests/edge-patterns.test.ts 
b/gremlin-tools/gremlin-mcp/src/main/javascript/tests/edge-patterns.test.ts
similarity index 97%
rename from gremlin-tools/gremlin-mcp/tests/edge-patterns.test.ts
rename to 
gremlin-tools/gremlin-mcp/src/main/javascript/tests/edge-patterns.test.ts
index 5556f005fd..52035ab3bc 100644
--- a/gremlin-tools/gremlin-mcp/tests/edge-patterns.test.ts
+++ b/gremlin-tools/gremlin-mcp/src/main/javascript/tests/edge-patterns.test.ts
@@ -30,16 +30,16 @@ import { describe, it, expect, beforeEach, jest } from 
'@jest/globals';
 import {
   generateEdgePatterns as generateEdgePatterns,
   analyzePatternStatistics,
-} from '../src/gremlin/edge-patterns.js';
-import { Errors } from '../src/errors.js';
-import type { EdgePattern } from '../src/gremlin/models.js';
+} from '../src/gremlin/edge-patterns';
+import { Errors } from '../src/errors';
+import type { EdgePattern } from '../src/gremlin/models';
 
 // Mock Gremlin query utilities
-jest.mock('../src/gremlin/query-utils.js', () => ({
+jest.mock('../src/gremlin/query-utils', () => ({
   executeGremlinQuery: jest.fn(),
 }));
 
-import { executeGremlinQuery } from '../src/gremlin/query-utils.js';
+import { executeGremlinQuery } from '../src/gremlin/query-utils';
 
 const mockExecuteGremlinQuery = executeGremlinQuery as jest.MockedFunction<
   typeof executeGremlinQuery
diff --git 
a/gremlin-tools/gremlin-mcp/tests/integration/mcp-integration.test.ts 
b/gremlin-tools/gremlin-mcp/src/main/javascript/tests/integration/mcp-integration.test.ts
similarity index 99%
rename from gremlin-tools/gremlin-mcp/tests/integration/mcp-integration.test.ts
rename to 
gremlin-tools/gremlin-mcp/src/main/javascript/tests/integration/mcp-integration.test.ts
index 559fff8cec..0c87ac87f8 100644
--- a/gremlin-tools/gremlin-mcp/tests/integration/mcp-integration.test.ts
+++ 
b/gremlin-tools/gremlin-mcp/src/main/javascript/tests/integration/mcp-integration.test.ts
@@ -35,7 +35,7 @@
 
 import { Client } from '@modelcontextprotocol/sdk/client/index.js';
 import { StdioClientTransport } from 
'@modelcontextprotocol/sdk/client/stdio.js';
-import { TOOL_NAMES } from '../../src/constants.js';
+import { TOOL_NAMES } from '../../src/constants';
 import { type ContentBlock } from '@modelcontextprotocol/sdk/types.js';
 
 interface TestCallToolResult {
diff --git a/gremlin-tools/gremlin-mcp/tests/models.test.ts 
b/gremlin-tools/gremlin-mcp/src/main/javascript/tests/models.test.ts
similarity index 99%
rename from gremlin-tools/gremlin-mcp/tests/models.test.ts
rename to gremlin-tools/gremlin-mcp/src/main/javascript/tests/models.test.ts
index efa0cc15c0..e133971fb5 100644
--- a/gremlin-tools/gremlin-mcp/tests/models.test.ts
+++ b/gremlin-tools/gremlin-mcp/src/main/javascript/tests/models.test.ts
@@ -30,7 +30,7 @@ import {
   GremlinConfigSchema,
   GremlinQueryResultSchema,
   SchemaMetadataSchema,
-} from '../src/gremlin/models.js';
+} from '../src/gremlin/models';
 
 describe('Models and Schemas', () => {
   describe('PropertySchema', () => {
diff --git a/gremlin-tools/gremlin-mcp/tests/property-analyzer.test.ts 
b/gremlin-tools/gremlin-mcp/src/main/javascript/tests/property-analyzer.test.ts
similarity index 96%
rename from gremlin-tools/gremlin-mcp/tests/property-analyzer.test.ts
rename to 
gremlin-tools/gremlin-mcp/src/main/javascript/tests/property-analyzer.test.ts
index a93747f982..ff6973788b 100644
--- a/gremlin-tools/gremlin-mcp/tests/property-analyzer.test.ts
+++ 
b/gremlin-tools/gremlin-mcp/src/main/javascript/tests/property-analyzer.test.ts
@@ -31,16 +31,16 @@ import {
   analyzePropertyFromValues,
   analyzeSingleProperty,
   analyzeElementProperties,
-} from '../src/gremlin/property-analyzer.js';
-import { Errors } from '../src/errors.js';
+} from '../src/gremlin/property-analyzer';
+import { Errors } from '../src/errors';
 
 // Mock Gremlin traversal source and query utilities
-jest.mock('../src/gremlin/query-utils.js', () => ({
+jest.mock('../src/gremlin/query-utils', () => ({
   processBatched: jest.fn(),
   getSamplePropertyValues: jest.fn(),
 }));
 
-import { processBatched, getSamplePropertyValues } from 
'../src/gremlin/query-utils.js';
+import { processBatched, getSamplePropertyValues } from 
'../src/gremlin/query-utils';
 
 const mockProcessBatched = processBatched as jest.MockedFunction<typeof 
processBatched>;
 const mockGetSamplePropertyValues = getSamplePropertyValues as 
jest.MockedFunction<
diff --git a/gremlin-tools/gremlin-mcp/tests/query-utils.test.ts 
b/gremlin-tools/gremlin-mcp/src/main/javascript/tests/query-utils.test.ts
similarity index 99%
rename from gremlin-tools/gremlin-mcp/tests/query-utils.test.ts
rename to 
gremlin-tools/gremlin-mcp/src/main/javascript/tests/query-utils.test.ts
index 1ed4b545b6..c0a9b11f04 100644
--- a/gremlin-tools/gremlin-mcp/tests/query-utils.test.ts
+++ b/gremlin-tools/gremlin-mcp/src/main/javascript/tests/query-utils.test.ts
@@ -32,7 +32,7 @@ import {
   executeGremlinQuery,
   getVertexLabels,
   getEdgeLabels,
-} from '../src/gremlin/query-utils.js';
+} from '../src/gremlin/query-utils';
 
 // Mock Gremlin traversal source
 const mockTraversalSource = {
diff --git a/gremlin-tools/gremlin-mcp/tests/schema-assembly.test.ts 
b/gremlin-tools/gremlin-mcp/src/main/javascript/tests/schema-assembly.test.ts
similarity index 99%
rename from gremlin-tools/gremlin-mcp/tests/schema-assembly.test.ts
rename to 
gremlin-tools/gremlin-mcp/src/main/javascript/tests/schema-assembly.test.ts
index 96975209b3..b4dec00159 100644
--- a/gremlin-tools/gremlin-mcp/tests/schema-assembly.test.ts
+++ 
b/gremlin-tools/gremlin-mcp/src/main/javascript/tests/schema-assembly.test.ts
@@ -33,9 +33,9 @@ import {
   validateEdges,
   validateEdgePatterns,
   validateAllComponents,
-} from '../src/gremlin/schema-assembly.js';
-import type { Vertex, Edge, EdgePattern } from '../src/gremlin/models.js';
-import type { SchemaConfig } from '../src/gremlin/types.js';
+} from '../src/gremlin/schema-assembly';
+import type { Vertex, Edge, EdgePattern } from '../src/gremlin/models';
+import type { SchemaConfig } from '../src/gremlin/types';
 
 describe('schema-assembly', () => {
   const mockConfig: SchemaConfig = {
diff --git a/gremlin-tools/gremlin-mcp/tests/setup.ts 
b/gremlin-tools/gremlin-mcp/src/main/javascript/tests/setup.ts
similarity index 100%
rename from gremlin-tools/gremlin-mcp/tests/setup.ts
rename to gremlin-tools/gremlin-mcp/src/main/javascript/tests/setup.ts
diff --git a/gremlin-tools/gremlin-mcp/tsconfig.json 
b/gremlin-tools/gremlin-mcp/src/main/javascript/tsconfig.json
similarity index 93%
rename from gremlin-tools/gremlin-mcp/tsconfig.json
rename to gremlin-tools/gremlin-mcp/src/main/javascript/tsconfig.json
index 61dc9119d7..5463b7d5a3 100644
--- a/gremlin-tools/gremlin-mcp/tsconfig.json
+++ b/gremlin-tools/gremlin-mcp/src/main/javascript/tsconfig.json
@@ -30,7 +30,11 @@
     "verbatimModuleSyntax": true
   },
   "include": ["src/**/*"],
-  "exclude": ["node_modules", "dist", "tests"],
+  "exclude": [
+    "node_modules",
+    "dist",
+    "tests"
+  ],
   "ts-node": {
     "esm": true
   }
diff --git a/gremlin-tools/pom.xml b/gremlin-tools/pom.xml
index 6aebca27eb..709394e1f4 100644
--- a/gremlin-tools/pom.xml
+++ b/gremlin-tools/pom.xml
@@ -31,6 +31,7 @@ limitations under the License.
         <module>gremlin-benchmark</module>
         <module>gremlin-coverage</module>
         <module>gremlin-socket-server</module>
+        <module>gremlin-mcp</module>
     </modules>
 
     <build>

Reply via email to