You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2025/10/08 12:10:30 UTC
(tinkerpop) 08/19: Restructured gremlin-mcp to match TinkerPop standards under Maven
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 4227c16ee2a1d1af074bb2fa14932ff7770b2ea0
Author: Stephen Mallette <st...@amazon.com>
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>