@gremlin/mcp-server 2.2.0 → 2.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/Readme.md CHANGED
@@ -38,6 +38,19 @@ Go to Claude Settings > Developer and add the following to your `claude_desktop_
38
38
 
39
39
  ### VS Code / Cursor
40
40
 
41
+ > Requires [VS Code 1.99](https://code.visualstudio.com/updates/v1_99) or higher (MCP support was added in the March 2025 release). See also: [Cursor MCP docs](https://cursor.com/docs/mcp).
42
+
43
+ Open your MCP Settings:
44
+ - Cursor: `Cmd+Shift+P` → search "Cursor Settings" → Tools & Integrations → Add Custom MCP
45
+ - VSCode: `Cmd+Shift+P` → type "MCP: Open User Configuration"
46
+
47
+ Or directly edit them:
48
+ - Cursor (Mac/Linux): `~/.cursor/mcp.json`
49
+ - Cursor (Win): `%USERPROFILE%\.cursor\mcp.json`
50
+ - VSCode (Mac): `~/Library/Application Support/Code/User/mcp.json`
51
+ - VSCode (Win): `%APPDATA%\Code\User\mcp.json`
52
+ - VSCode (Linux): `~/.config/Code/User/mcp.json`
53
+
41
54
  Add the following to your MCP settings:
42
55
 
43
56
  ```json
@@ -63,6 +76,7 @@ Add the following to your MCP settings:
63
76
  }
64
77
  ```
65
78
 
79
+
66
80
  ## Available Tools
67
81
 
68
82
  ### Service Management
@@ -0,0 +1,27 @@
1
+ import type { GremlinClient } from './interface';
2
+ import type { Page, PendingReliabilityTestRun, PricingReport, RecentRunResponse, ReliabilityReport, ReliabilityTestRun, ReliabilityTestRunParameters, ReliabilityTestSuite, ReportPeriod, Self, Service, Team, TrackingPeriod, User } from '../types';
3
+ export declare class GremlinApi implements GremlinClient {
4
+ private baseUrl;
5
+ private userAgent;
6
+ private cache;
7
+ listUsers(): Promise<User[]>;
8
+ listTeams(): Promise<Team[]>;
9
+ getTeam(teamId: string): Promise<Team>;
10
+ listServicesForTeam(teamId: string): Promise<Page<Service>>;
11
+ getReliabilityReport(serviceId: string, teamId: string, date?: string): Promise<ReliabilityReport>;
12
+ getServiceDependencies(serviceId: string, teamId: string): Promise<ReliabilityReport>;
13
+ getServiceStatusChecks(serviceId: string, teamId: string): Promise<ReliabilityReport>;
14
+ getServiceRisks(serviceId: string, teamId: string): Promise<ReliabilityReport>;
15
+ getAllTestSuite(): Promise<ReliabilityTestSuite[]>;
16
+ getRecentReliabilityTests(teamId: string, limit?: number, pageToken?: string): Promise<Page<RecentRunResponse>>;
17
+ getReliabilityExperiment(serviceId: string, teamId: string, dependencyId?: string, testId?: string, limit?: number): Promise<Page<ReliabilityTestRun> | ReliabilityTestRun>;
18
+ runReliabilityTest(reliabilityTestId: string, teamId: string, params: ReliabilityTestRunParameters): Promise<ReliabilityTestRun>;
19
+ getPendingTestRuns(serviceId: string, teamId: string): Promise<PendingReliabilityTestRun[]>;
20
+ getService(serviceId: string, teamId: string): Promise<Page<Service>>;
21
+ getPricingReport(startDate: string, endDate: string, trackingPeriod?: TrackingPeriod): Promise<PricingReport>;
22
+ getClientSummary(teamId: string, start: string, end: string, period: ReportPeriod): Promise<unknown>;
23
+ getAttackSummary(teamId: string, start: string, end: string, period: ReportPeriod): Promise<unknown>;
24
+ getSelf(): Promise<Self>;
25
+ execute<T = unknown>(method: string, path: string, queryParams?: Record<string, string>, body?: Record<string, unknown>): Promise<T>;
26
+ private requestWithRetry;
27
+ }
@@ -0,0 +1,22 @@
1
+ import type { Page, PendingReliabilityTestRun, PricingReport, RecentRunResponse, ReliabilityReport, ReliabilityTestRun, ReliabilityTestRunParameters, ReliabilityTestSuite, ReportPeriod, Self, Service, Team, TrackingPeriod, User } from '../types';
2
+ export interface GremlinClient {
3
+ listUsers(): Promise<User[]>;
4
+ listTeams(): Promise<Team[]>;
5
+ getTeam(teamId: string): Promise<Team>;
6
+ listServicesForTeam(teamId: string): Promise<Page<Service>>;
7
+ getService(serviceId: string, teamId: string): Promise<Page<Service>>;
8
+ getSelf(): Promise<Self>;
9
+ getReliabilityReport(serviceId: string, teamId: string, date?: string): Promise<ReliabilityReport>;
10
+ getServiceDependencies(serviceId: string, teamId: string): Promise<ReliabilityReport>;
11
+ getServiceStatusChecks(serviceId: string, teamId: string): Promise<ReliabilityReport>;
12
+ getServiceRisks(serviceId: string, teamId: string): Promise<ReliabilityReport>;
13
+ getAllTestSuite(): Promise<ReliabilityTestSuite[]>;
14
+ getRecentReliabilityTests(teamId: string, limit?: number, pageToken?: string): Promise<Page<RecentRunResponse>>;
15
+ getReliabilityExperiment(serviceId: string, teamId: string, dependencyId?: string, testId?: string, limit?: number): Promise<Page<ReliabilityTestRun> | ReliabilityTestRun>;
16
+ runReliabilityTest(reliabilityTestId: string, teamId: string, params: ReliabilityTestRunParameters): Promise<ReliabilityTestRun>;
17
+ getPendingTestRuns(serviceId: string, teamId: string): Promise<PendingReliabilityTestRun[]>;
18
+ getPricingReport(startDate: string, endDate: string, trackingPeriod?: TrackingPeriod): Promise<PricingReport>;
19
+ getClientSummary(teamId: string, start: string, end: string, period: ReportPeriod): Promise<unknown>;
20
+ getAttackSummary(teamId: string, start: string, end: string, period: ReportPeriod): Promise<unknown>;
21
+ execute<T = unknown>(method: string, path: string, queryParams?: Record<string, string>, body?: Record<string, unknown>): Promise<T>;
22
+ }
@@ -0,0 +1,27 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ export interface ElicitationOption {
3
+ label: string;
4
+ value: string;
5
+ description?: string;
6
+ }
7
+ /**
8
+ * Abstracts over any mechanism that asks a user to pick from a set of options.
9
+ * Implement this to plug custom confirmation UIs into the Gremlin tools.
10
+ */
11
+ export interface ElicitationClient {
12
+ /**
13
+ * Prompt the user to choose one of the provided options.
14
+ * Returns the `value` of the chosen option.
15
+ * Throw if the prompt cannot be shown (e.g. unsupported runtime).
16
+ */
17
+ confirm(prompt: string, options: ElicitationOption[]): Promise<string>;
18
+ }
19
+ /**
20
+ * Adapter that implements ElicitationClient on top of the MCP SDK's elicitInput.
21
+ * Treats the first option as "proceed" and everything else as "cancel".
22
+ */
23
+ export declare class McpElicitationClient implements ElicitationClient {
24
+ private readonly server;
25
+ constructor(server: McpServer);
26
+ confirm(prompt: string, options: ElicitationOption[]): Promise<string>;
27
+ }
@@ -0,0 +1,11 @@
1
+ export type { GremlinClient } from './client/interface';
2
+ export type { ElicitationClient, ElicitationOption } from './elicitation';
3
+ export { McpElicitationClient } from './elicitation';
4
+ export type { Page, PendingReliabilityTestRun, PolicyEvaluation, PricingReport, PricingUsage, RecentRunResponse, ReliabilityCategorySummary, ReliabilityReport, ReliabilityTestRun, ReliabilityTestRunParameters, ReliabilityTestSuite, ReportPeriod, Self, Service, Team, TrackingPeriod, User, } from './types';
5
+ export { createGetReliabilityExperimentTool, createGetReliabilityReportTool, createGetCurrentTestSuiteTool, createRunReliabilityTestTool, createGetPendingTestRunsTool, createGetRecentReliabilityTestsTool, } from './tools/reliability-management';
6
+ export { createListServicesTool, createGetServiceDependenciesTool, createGetServiceStatusChecksTool, createListServiceRisksTool, } from './tools/services';
7
+ export { createListTeamsTool } from './tools/teams';
8
+ export { createGetPricingReportTool, createGetClientSummaryTool, createGetAttackSummaryTool, } from './tools/company';
9
+ export { createSearchGremlinApiTool, createExecuteGremlinApiTool } from './tools/openapi';
10
+ export { registerTools } from './tools/index';
11
+ export { registerResources } from './resources/index';