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 <[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>
