@keeveeg/godot-mcp 1.0.0
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/dist/config.d.ts +30 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +28 -0
- package/dist/config.js.map +1 -0
- package/dist/godot-bridge.d.ts +81 -0
- package/dist/godot-bridge.d.ts.map +1 -0
- package/dist/godot-bridge.js +294 -0
- package/dist/godot-bridge.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +61 -0
- package/dist/index.js.map +1 -0
- package/dist/server.d.ts +25 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +45 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/accessibility.d.ts +7 -0
- package/dist/tools/accessibility.d.ts.map +1 -0
- package/dist/tools/accessibility.js +71 -0
- package/dist/tools/accessibility.js.map +1 -0
- package/dist/tools/addon_management.d.ts +7 -0
- package/dist/tools/addon_management.d.ts.map +1 -0
- package/dist/tools/addon_management.js +64 -0
- package/dist/tools/addon_management.js.map +1 -0
- package/dist/tools/analysis.d.ts +7 -0
- package/dist/tools/analysis.d.ts.map +1 -0
- package/dist/tools/analysis.js +43 -0
- package/dist/tools/analysis.js.map +1 -0
- package/dist/tools/analytics.d.ts +7 -0
- package/dist/tools/analytics.d.ts.map +1 -0
- package/dist/tools/analytics.js +76 -0
- package/dist/tools/analytics.js.map +1 -0
- package/dist/tools/animation.d.ts +7 -0
- package/dist/tools/animation.d.ts.map +1 -0
- package/dist/tools/animation.js +142 -0
- package/dist/tools/animation.js.map +1 -0
- package/dist/tools/asset_pipeline.d.ts +7 -0
- package/dist/tools/asset_pipeline.d.ts.map +1 -0
- package/dist/tools/asset_pipeline.js +102 -0
- package/dist/tools/asset_pipeline.js.map +1 -0
- package/dist/tools/asset_scaffolding.d.ts +7 -0
- package/dist/tools/asset_scaffolding.d.ts.map +1 -0
- package/dist/tools/asset_scaffolding.js +113 -0
- package/dist/tools/asset_scaffolding.js.map +1 -0
- package/dist/tools/audio.d.ts +7 -0
- package/dist/tools/audio.d.ts.map +1 -0
- package/dist/tools/audio.js +116 -0
- package/dist/tools/audio.js.map +1 -0
- package/dist/tools/audio_config.d.ts +7 -0
- package/dist/tools/audio_config.d.ts.map +1 -0
- package/dist/tools/audio_config.js +83 -0
- package/dist/tools/audio_config.js.map +1 -0
- package/dist/tools/batch.d.ts +7 -0
- package/dist/tools/batch.d.ts.map +1 -0
- package/dist/tools/batch.js +96 -0
- package/dist/tools/batch.js.map +1 -0
- package/dist/tools/build_config.d.ts +7 -0
- package/dist/tools/build_config.d.ts.map +1 -0
- package/dist/tools/build_config.js +98 -0
- package/dist/tools/build_config.js.map +1 -0
- package/dist/tools/cicd_pipeline.d.ts +7 -0
- package/dist/tools/cicd_pipeline.d.ts.map +1 -0
- package/dist/tools/cicd_pipeline.js +125 -0
- package/dist/tools/cicd_pipeline.js.map +1 -0
- package/dist/tools/cloud_services.d.ts +7 -0
- package/dist/tools/cloud_services.d.ts.map +1 -0
- package/dist/tools/cloud_services.js +97 -0
- package/dist/tools/cloud_services.js.map +1 -0
- package/dist/tools/code_generation.d.ts +7 -0
- package/dist/tools/code_generation.d.ts.map +1 -0
- package/dist/tools/code_generation.js +79 -0
- package/dist/tools/code_generation.js.map +1 -0
- package/dist/tools/code_quality.d.ts +7 -0
- package/dist/tools/code_quality.d.ts.map +1 -0
- package/dist/tools/code_quality.js +98 -0
- package/dist/tools/code_quality.js.map +1 -0
- package/dist/tools/collaboration.d.ts +7 -0
- package/dist/tools/collaboration.d.ts.map +1 -0
- package/dist/tools/collaboration.js +73 -0
- package/dist/tools/collaboration.js.map +1 -0
- package/dist/tools/debug_config.d.ts +7 -0
- package/dist/tools/debug_config.d.ts.map +1 -0
- package/dist/tools/debug_config.js +77 -0
- package/dist/tools/debug_config.js.map +1 -0
- package/dist/tools/debugging.d.ts +7 -0
- package/dist/tools/debugging.d.ts.map +1 -0
- package/dist/tools/debugging.js +90 -0
- package/dist/tools/debugging.js.map +1 -0
- package/dist/tools/documentation_tools.d.ts +7 -0
- package/dist/tools/documentation_tools.d.ts.map +1 -0
- package/dist/tools/documentation_tools.js +89 -0
- package/dist/tools/documentation_tools.js.map +1 -0
- package/dist/tools/editor.d.ts +7 -0
- package/dist/tools/editor.d.ts.map +1 -0
- package/dist/tools/editor.js +97 -0
- package/dist/tools/editor.js.map +1 -0
- package/dist/tools/editor_config.d.ts +7 -0
- package/dist/tools/editor_config.d.ts.map +1 -0
- package/dist/tools/editor_config.js +92 -0
- package/dist/tools/editor_config.js.map +1 -0
- package/dist/tools/export.d.ts +7 -0
- package/dist/tools/export.d.ts.map +1 -0
- package/dist/tools/export.js +81 -0
- package/dist/tools/export.js.map +1 -0
- package/dist/tools/game_template.d.ts +7 -0
- package/dist/tools/game_template.d.ts.map +1 -0
- package/dist/tools/game_template.js +112 -0
- package/dist/tools/game_template.js.map +1 -0
- package/dist/tools/gameplay_automation.d.ts +7 -0
- package/dist/tools/gameplay_automation.d.ts.map +1 -0
- package/dist/tools/gameplay_automation.js +109 -0
- package/dist/tools/gameplay_automation.js.map +1 -0
- package/dist/tools/git_integration.d.ts +7 -0
- package/dist/tools/git_integration.d.ts.map +1 -0
- package/dist/tools/git_integration.js +75 -0
- package/dist/tools/git_integration.js.map +1 -0
- package/dist/tools/headless_testing.d.ts +7 -0
- package/dist/tools/headless_testing.d.ts.map +1 -0
- package/dist/tools/headless_testing.js +65 -0
- package/dist/tools/headless_testing.js.map +1 -0
- package/dist/tools/iap_monetization.d.ts +7 -0
- package/dist/tools/iap_monetization.d.ts.map +1 -0
- package/dist/tools/iap_monetization.js +70 -0
- package/dist/tools/iap_monetization.js.map +1 -0
- package/dist/tools/index.d.ts +12 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +93 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/input.d.ts +7 -0
- package/dist/tools/input.d.ts.map +1 -0
- package/dist/tools/input.js +110 -0
- package/dist/tools/input.js.map +1 -0
- package/dist/tools/localization.d.ts +7 -0
- package/dist/tools/localization.d.ts.map +1 -0
- package/dist/tools/localization.js +97 -0
- package/dist/tools/localization.js.map +1 -0
- package/dist/tools/marketing.d.ts +7 -0
- package/dist/tools/marketing.d.ts.map +1 -0
- package/dist/tools/marketing.js +87 -0
- package/dist/tools/marketing.js.map +1 -0
- package/dist/tools/memory_profiling.d.ts +7 -0
- package/dist/tools/memory_profiling.d.ts.map +1 -0
- package/dist/tools/memory_profiling.js +58 -0
- package/dist/tools/memory_profiling.js.map +1 -0
- package/dist/tools/mod_support.d.ts +7 -0
- package/dist/tools/mod_support.d.ts.map +1 -0
- package/dist/tools/mod_support.js +93 -0
- package/dist/tools/mod_support.js.map +1 -0
- package/dist/tools/navigation.d.ts +7 -0
- package/dist/tools/navigation.d.ts.map +1 -0
- package/dist/tools/navigation.js +133 -0
- package/dist/tools/navigation.js.map +1 -0
- package/dist/tools/networking.d.ts +7 -0
- package/dist/tools/networking.d.ts.map +1 -0
- package/dist/tools/networking.js +94 -0
- package/dist/tools/networking.js.map +1 -0
- package/dist/tools/node.d.ts +7 -0
- package/dist/tools/node.d.ts.map +1 -0
- package/dist/tools/node.js +209 -0
- package/dist/tools/node.js.map +1 -0
- package/dist/tools/node_config.d.ts +7 -0
- package/dist/tools/node_config.d.ts.map +1 -0
- package/dist/tools/node_config.js +97 -0
- package/dist/tools/node_config.js.map +1 -0
- package/dist/tools/particles.d.ts +7 -0
- package/dist/tools/particles.d.ts.map +1 -0
- package/dist/tools/particles.js +118 -0
- package/dist/tools/particles.js.map +1 -0
- package/dist/tools/performance_optimization.d.ts +7 -0
- package/dist/tools/performance_optimization.d.ts.map +1 -0
- package/dist/tools/performance_optimization.js +75 -0
- package/dist/tools/performance_optimization.js.map +1 -0
- package/dist/tools/physics.d.ts +7 -0
- package/dist/tools/physics.d.ts.map +1 -0
- package/dist/tools/physics.js +106 -0
- package/dist/tools/physics.js.map +1 -0
- package/dist/tools/physics_config.d.ts +7 -0
- package/dist/tools/physics_config.d.ts.map +1 -0
- package/dist/tools/physics_config.js +95 -0
- package/dist/tools/physics_config.js.map +1 -0
- package/dist/tools/platform_export.d.ts +7 -0
- package/dist/tools/platform_export.d.ts.map +1 -0
- package/dist/tools/platform_export.js +76 -0
- package/dist/tools/platform_export.js.map +1 -0
- package/dist/tools/platform_specific.d.ts +7 -0
- package/dist/tools/platform_specific.d.ts.map +1 -0
- package/dist/tools/platform_specific.js +92 -0
- package/dist/tools/platform_specific.js.map +1 -0
- package/dist/tools/profiling.d.ts +7 -0
- package/dist/tools/profiling.d.ts.map +1 -0
- package/dist/tools/profiling.js +28 -0
- package/dist/tools/profiling.js.map +1 -0
- package/dist/tools/project.d.ts +7 -0
- package/dist/tools/project.d.ts.map +1 -0
- package/dist/tools/project.js +86 -0
- package/dist/tools/project.js.map +1 -0
- package/dist/tools/project_config.d.ts +7 -0
- package/dist/tools/project_config.d.ts.map +1 -0
- package/dist/tools/project_config.js +143 -0
- package/dist/tools/project_config.js.map +1 -0
- package/dist/tools/project_creation.d.ts +7 -0
- package/dist/tools/project_creation.d.ts.map +1 -0
- package/dist/tools/project_creation.js +147 -0
- package/dist/tools/project_creation.js.map +1 -0
- package/dist/tools/rendering_config.d.ts +7 -0
- package/dist/tools/rendering_config.d.ts.map +1 -0
- package/dist/tools/rendering_config.js +110 -0
- package/dist/tools/rendering_config.js.map +1 -0
- package/dist/tools/resource.d.ts +7 -0
- package/dist/tools/resource.d.ts.map +1 -0
- package/dist/tools/resource.js +124 -0
- package/dist/tools/resource.js.map +1 -0
- package/dist/tools/resource_config.d.ts +7 -0
- package/dist/tools/resource_config.d.ts.map +1 -0
- package/dist/tools/resource_config.js +76 -0
- package/dist/tools/resource_config.js.map +1 -0
- package/dist/tools/runtime.d.ts +7 -0
- package/dist/tools/runtime.d.ts.map +1 -0
- package/dist/tools/runtime.js +231 -0
- package/dist/tools/runtime.js.map +1 -0
- package/dist/tools/save_load.d.ts +7 -0
- package/dist/tools/save_load.d.ts.map +1 -0
- package/dist/tools/save_load.js +63 -0
- package/dist/tools/save_load.js.map +1 -0
- package/dist/tools/scene.d.ts +7 -0
- package/dist/tools/scene.d.ts.map +1 -0
- package/dist/tools/scene.js +129 -0
- package/dist/tools/scene.js.map +1 -0
- package/dist/tools/scene3d.d.ts +7 -0
- package/dist/tools/scene3d.d.ts.map +1 -0
- package/dist/tools/scene3d.js +82 -0
- package/dist/tools/scene3d.js.map +1 -0
- package/dist/tools/scene_config.d.ts +7 -0
- package/dist/tools/scene_config.d.ts.map +1 -0
- package/dist/tools/scene_config.js +79 -0
- package/dist/tools/scene_config.js.map +1 -0
- package/dist/tools/scene_scaffolding.d.ts +7 -0
- package/dist/tools/scene_scaffolding.d.ts.map +1 -0
- package/dist/tools/scene_scaffolding.js +110 -0
- package/dist/tools/scene_scaffolding.js.map +1 -0
- package/dist/tools/script.d.ts +7 -0
- package/dist/tools/script.d.ts.map +1 -0
- package/dist/tools/script.js +111 -0
- package/dist/tools/script.js.map +1 -0
- package/dist/tools/script_scaffolding.d.ts +7 -0
- package/dist/tools/script_scaffolding.d.ts.map +1 -0
- package/dist/tools/script_scaffolding.js +115 -0
- package/dist/tools/script_scaffolding.js.map +1 -0
- package/dist/tools/security.d.ts +7 -0
- package/dist/tools/security.d.ts.map +1 -0
- package/dist/tools/security.js +73 -0
- package/dist/tools/security.js.map +1 -0
- package/dist/tools/shader.d.ts +7 -0
- package/dist/tools/shader.d.ts.map +1 -0
- package/dist/tools/shader.js +118 -0
- package/dist/tools/shader.js.map +1 -0
- package/dist/tools/shared-types.d.ts +138 -0
- package/dist/tools/shared-types.d.ts.map +1 -0
- package/dist/tools/shared-types.js +170 -0
- package/dist/tools/shared-types.js.map +1 -0
- package/dist/tools/testing.d.ts +7 -0
- package/dist/tools/testing.d.ts.map +1 -0
- package/dist/tools/testing.js +78 -0
- package/dist/tools/testing.js.map +1 -0
- package/dist/tools/theme.d.ts +7 -0
- package/dist/tools/theme.d.ts.map +1 -0
- package/dist/tools/theme.js +97 -0
- package/dist/tools/theme.js.map +1 -0
- package/dist/tools/tilemap.d.ts +7 -0
- package/dist/tools/tilemap.d.ts.map +1 -0
- package/dist/tools/tilemap.js +89 -0
- package/dist/tools/tilemap.js.map +1 -0
- package/dist/tools/version_control_advanced.d.ts +7 -0
- package/dist/tools/version_control_advanced.d.ts.map +1 -0
- package/dist/tools/version_control_advanced.js +100 -0
- package/dist/tools/version_control_advanced.js.map +1 -0
- package/dist/tools/visual_testing.d.ts +7 -0
- package/dist/tools/visual_testing.d.ts.map +1 -0
- package/dist/tools/visual_testing.js +81 -0
- package/dist/tools/visual_testing.js.map +1 -0
- package/dist/types.d.ts +77 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +37 -0
- package/dist/types.js.map +1 -0
- package/package.json +49 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Visual testing tools - 6 tools for visual regression testing
|
|
3
|
+
*/
|
|
4
|
+
import { callGodot } from '../server.js';
|
|
5
|
+
import { z, Name, FilePath } from './shared-types.js';
|
|
6
|
+
export function registerVisualTestingTools(server, bridge) {
|
|
7
|
+
// 1. take_screenshot_with_context
|
|
8
|
+
server.registerTool(
|
|
9
|
+
'take_screenshot_with_context',
|
|
10
|
+
{
|
|
11
|
+
description: 'Take a screenshot with scene context metadata (node tree, properties of specified nodes)',
|
|
12
|
+
inputSchema: {
|
|
13
|
+
name: Name.describe('Name for this screenshot (used as filename, e.g. "main_menu")'),
|
|
14
|
+
include_nodes: z.array(z.string()).optional().describe('Node paths to include property data for (requires include_props=true)'),
|
|
15
|
+
include_props: z.boolean().optional().default(false).describe('Whether to include property snapshots for listed include_nodes (default: false)'),
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
async (args) => callGodot(bridge, 'take_screenshot_with_context', args),
|
|
19
|
+
);
|
|
20
|
+
// 2. compare_screenshots
|
|
21
|
+
server.registerTool(
|
|
22
|
+
'compare_screenshots',
|
|
23
|
+
{
|
|
24
|
+
description: 'Compare two screenshots pixel-by-pixel and return a diff result with mismatch percentage',
|
|
25
|
+
inputSchema: {
|
|
26
|
+
baseline: FilePath.describe('Path to the baseline screenshot'),
|
|
27
|
+
current: FilePath.describe('Path to the current screenshot'),
|
|
28
|
+
threshold: z.number().min(0).max(1).optional().default(0.01).describe('Pixel difference threshold 0-1 (default: 0.01)'),
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
async (args) => callGodot(bridge, 'compare_screenshots', args),
|
|
32
|
+
);
|
|
33
|
+
// 3. assert_visual_match
|
|
34
|
+
server.registerTool(
|
|
35
|
+
'assert_visual_match',
|
|
36
|
+
{
|
|
37
|
+
description: 'Assert that a screenshot matches a baseline within a threshold - pass/fail result',
|
|
38
|
+
inputSchema: {
|
|
39
|
+
name: Name.describe('Screenshot name to check — must match a name previously used with take_screenshot_with_context'),
|
|
40
|
+
baseline: FilePath.describe('Path or name of the baseline screenshot (resolves against baselines directory if not a full path)'),
|
|
41
|
+
threshold: z.number().min(0).max(1).optional().default(0.01).describe('Acceptable difference threshold (default: 0.01)'),
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
async (args) => callGodot(bridge, 'assert_visual_match', args),
|
|
45
|
+
);
|
|
46
|
+
// 4. record_visual_regression
|
|
47
|
+
server.registerTool(
|
|
48
|
+
'record_visual_regression',
|
|
49
|
+
{
|
|
50
|
+
description: 'Record multiple frames over time for visual regression testing',
|
|
51
|
+
inputSchema: {
|
|
52
|
+
test_name: Name.describe('Name for this recording session'),
|
|
53
|
+
frames: z.number().int().min(1).max(100).optional().default(10).describe('Number of frames to capture (default: 10)'),
|
|
54
|
+
interval: z.number().min(0.1).max(10).optional().default(0.5).describe('Seconds between captures (default: 0.5)'),
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
async (args) => callGodot(bridge, 'record_visual_regression', args),
|
|
58
|
+
);
|
|
59
|
+
// 5. get_visual_diff_report
|
|
60
|
+
server.registerTool(
|
|
61
|
+
'get_visual_diff_report',
|
|
62
|
+
{
|
|
63
|
+
description: 'Get the aggregated visual regression report from all assert_visual_match calls in this session',
|
|
64
|
+
inputSchema: {},
|
|
65
|
+
},
|
|
66
|
+
async () => callGodot(bridge, 'get_visual_diff_report'),
|
|
67
|
+
);
|
|
68
|
+
// 6. set_visual_baseline
|
|
69
|
+
server.registerTool(
|
|
70
|
+
'set_visual_baseline',
|
|
71
|
+
{
|
|
72
|
+
description: 'Set or update a visual baseline for future comparisons',
|
|
73
|
+
inputSchema: {
|
|
74
|
+
name: Name.describe('Baseline name identifier'),
|
|
75
|
+
screenshot_path: FilePath.describe('Path to the screenshot to use as baseline'),
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
async (args) => callGodot(bridge, 'set_visual_baseline', args),
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=visual_testing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visual_testing.js","sourceRoot":"","sources":["../../src/tools/visual_testing.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeScript types for Godot MCP Server
|
|
3
|
+
*
|
|
4
|
+
* Shared Zod schemas and tool-result helpers live in tools/shared-types.ts.
|
|
5
|
+
* This file re-exports them for backward compatibility.
|
|
6
|
+
*/
|
|
7
|
+
export type { ToolContent, ToolResult } from './tools/shared-types.js';
|
|
8
|
+
export { toolResult, errorResult } from './tools/shared-types.js';
|
|
9
|
+
import type { ToolResult } from './tools/shared-types.js';
|
|
10
|
+
/** @deprecated Use toolResult() from tools/shared-types.ts */
|
|
11
|
+
export declare function createToolResult(text: string): ToolResult;
|
|
12
|
+
/** @deprecated Use errorResult() from tools/shared-types.ts */
|
|
13
|
+
export declare function createErrorResult(message: string): ToolResult;
|
|
14
|
+
/** JSON-RPC 2.0 Request */
|
|
15
|
+
export interface JsonRpcRequest {
|
|
16
|
+
jsonrpc: '2.0';
|
|
17
|
+
id: string | number;
|
|
18
|
+
method: string;
|
|
19
|
+
params?: Record<string, unknown>;
|
|
20
|
+
}
|
|
21
|
+
/** JSON-RPC 2.0 Success Response */
|
|
22
|
+
export interface JsonRpcSuccessResponse {
|
|
23
|
+
jsonrpc: '2.0';
|
|
24
|
+
id: string | number;
|
|
25
|
+
result: unknown;
|
|
26
|
+
}
|
|
27
|
+
/** JSON-RPC 2.0 Error Response */
|
|
28
|
+
export interface JsonRpcErrorResponse {
|
|
29
|
+
jsonrpc: '2.0';
|
|
30
|
+
id: string | number | null;
|
|
31
|
+
error: JsonRpcError;
|
|
32
|
+
}
|
|
33
|
+
/** JSON-RPC 2.0 Error object */
|
|
34
|
+
export interface JsonRpcError {
|
|
35
|
+
code: number;
|
|
36
|
+
message: string;
|
|
37
|
+
data?: unknown;
|
|
38
|
+
}
|
|
39
|
+
/** JSON-RPC 2.0 Response (union) */
|
|
40
|
+
export type JsonRpcResponse = JsonRpcSuccessResponse | JsonRpcErrorResponse;
|
|
41
|
+
/** JSON-RPC 2.0 Notification (no id) */
|
|
42
|
+
export interface JsonRpcNotification {
|
|
43
|
+
jsonrpc: '2.0';
|
|
44
|
+
method: string;
|
|
45
|
+
params?: Record<string, unknown>;
|
|
46
|
+
}
|
|
47
|
+
/** Any JSON-RPC message */
|
|
48
|
+
export type JsonRpcMessage = JsonRpcRequest | JsonRpcResponse | JsonRpcNotification;
|
|
49
|
+
/** Pending request tracking */
|
|
50
|
+
export interface PendingRequest {
|
|
51
|
+
id: string | number;
|
|
52
|
+
method: string;
|
|
53
|
+
resolve: (value: unknown) => void;
|
|
54
|
+
reject: (reason: Error) => void;
|
|
55
|
+
timer: ReturnType<typeof setTimeout>;
|
|
56
|
+
}
|
|
57
|
+
/** Godot bridge connection state */
|
|
58
|
+
export type ConnectionState = 'disconnected' | 'connecting' | 'connected';
|
|
59
|
+
/** Bridge event types */
|
|
60
|
+
export interface BridgeEvents {
|
|
61
|
+
connected: () => void;
|
|
62
|
+
disconnected: () => void;
|
|
63
|
+
error: (error: Error) => void;
|
|
64
|
+
}
|
|
65
|
+
/** Standard error codes for JSON-RPC */
|
|
66
|
+
export declare const JsonRpcErrorCode: {
|
|
67
|
+
readonly PARSE_ERROR: -32700;
|
|
68
|
+
readonly INVALID_REQUEST: -32600;
|
|
69
|
+
readonly METHOD_NOT_FOUND: -32601;
|
|
70
|
+
readonly INVALID_PARAMS: -32602;
|
|
71
|
+
readonly INTERNAL_ERROR: -32603;
|
|
72
|
+
};
|
|
73
|
+
/** Type guard for JSON-RPC success response */
|
|
74
|
+
export declare function isSuccessResponse(response: JsonRpcResponse): response is JsonRpcSuccessResponse;
|
|
75
|
+
/** Type guard for JSON-RPC error response */
|
|
76
|
+
export declare function isErrorResponse(response: JsonRpcResponse): response is JsonRpcErrorResponse;
|
|
77
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGlE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,8DAA8D;AAC9D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAIzD;AAED,+DAA+D;AAC/D,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAK7D;AAMD,2BAA2B;AAC3B,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,oCAAoC;AACpC,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,kCAAkC;AAClC,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,YAAY,CAAC;CACrB;AAED,gCAAgC;AAChC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,oCAAoC;AACpC,MAAM,MAAM,eAAe,GAAG,sBAAsB,GAAG,oBAAoB,CAAC;AAE5E,wCAAwC;AACxC,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,2BAA2B;AAC3B,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,eAAe,GAAG,mBAAmB,CAAC;AAEpF,+BAA+B;AAC/B,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAClC,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,KAAK,IAAI,CAAC;IAChC,KAAK,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;CACtC;AAED,oCAAoC;AACpC,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG,YAAY,GAAG,WAAW,CAAC;AAE1E,yBAAyB;AACzB,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC/B;AAED,wCAAwC;AACxC,eAAO,MAAM,gBAAgB;;;;;;CAMnB,CAAC;AAEX,+CAA+C;AAC/C,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,eAAe,GAAG,QAAQ,IAAI,sBAAsB,CAE/F;AAED,6CAA6C;AAC7C,wBAAgB,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,QAAQ,IAAI,oBAAoB,CAE3F"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeScript types for Godot MCP Server
|
|
3
|
+
*
|
|
4
|
+
* Shared Zod schemas and tool-result helpers live in tools/shared-types.ts.
|
|
5
|
+
* This file re-exports them for backward compatibility.
|
|
6
|
+
*/
|
|
7
|
+
export { toolResult, errorResult } from './tools/shared-types.js';
|
|
8
|
+
/** @deprecated Use toolResult() from tools/shared-types.ts */
|
|
9
|
+
export function createToolResult(text) {
|
|
10
|
+
return {
|
|
11
|
+
content: [{ type: 'text', text }],
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
/** @deprecated Use errorResult() from tools/shared-types.ts */
|
|
15
|
+
export function createErrorResult(message) {
|
|
16
|
+
return {
|
|
17
|
+
content: [{ type: 'text', text: message }],
|
|
18
|
+
isError: true,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
/** Standard error codes for JSON-RPC */
|
|
22
|
+
export const JsonRpcErrorCode = {
|
|
23
|
+
PARSE_ERROR: -32700,
|
|
24
|
+
INVALID_REQUEST: -32600,
|
|
25
|
+
METHOD_NOT_FOUND: -32601,
|
|
26
|
+
INVALID_PARAMS: -32602,
|
|
27
|
+
INTERNAL_ERROR: -32603,
|
|
28
|
+
};
|
|
29
|
+
/** Type guard for JSON-RPC success response */
|
|
30
|
+
export function isSuccessResponse(response) {
|
|
31
|
+
return 'result' in response;
|
|
32
|
+
}
|
|
33
|
+
/** Type guard for JSON-RPC error response */
|
|
34
|
+
export function isErrorResponse(response) {
|
|
35
|
+
return 'error' in response;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAKlE,8DAA8D;AAC9D,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;KAClC,CAAC;AACJ,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC1C,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC;AAmED,wCAAwC;AACxC,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,WAAW,EAAE,CAAC,KAAK;IACnB,eAAe,EAAE,CAAC,KAAK;IACvB,gBAAgB,EAAE,CAAC,KAAK;IACxB,cAAc,EAAE,CAAC,KAAK;IACtB,cAAc,EAAE,CAAC,KAAK;CACd,CAAC;AAEX,+CAA+C;AAC/C,MAAM,UAAU,iBAAiB,CAAC,QAAyB;IACzD,OAAO,QAAQ,IAAI,QAAQ,CAAC;AAC9B,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,eAAe,CAAC,QAAyB;IACvD,OAAO,OAAO,IAAI,QAAQ,CAAC;AAC7B,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@keeveeg/godot-mcp",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "MCP server for Godot Engine — 300+ AI-powered tools for game development",
|
|
5
|
+
"author": "KeeVeeG",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/KeeVeeG/godot-mcp",
|
|
10
|
+
"directory": "server"
|
|
11
|
+
},
|
|
12
|
+
"homepage": "https://keeveeg.github.io/godot-mcp",
|
|
13
|
+
"keywords": [
|
|
14
|
+
"godot",
|
|
15
|
+
"mcp",
|
|
16
|
+
"model-context-protocol",
|
|
17
|
+
"game-development",
|
|
18
|
+
"ai",
|
|
19
|
+
"godot-engine",
|
|
20
|
+
"gamedev"
|
|
21
|
+
],
|
|
22
|
+
"type": "module",
|
|
23
|
+
"main": "dist/index.js",
|
|
24
|
+
"bin": {
|
|
25
|
+
"godot-mcp": "dist/index.js"
|
|
26
|
+
},
|
|
27
|
+
"files": [
|
|
28
|
+
"dist/"
|
|
29
|
+
],
|
|
30
|
+
"scripts": {
|
|
31
|
+
"build": "tsc",
|
|
32
|
+
"start": "node dist/index.js",
|
|
33
|
+
"dev": "tsc --watch"
|
|
34
|
+
},
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
37
|
+
"ws": "^8.18.0",
|
|
38
|
+
"zod": "^3.24.0"
|
|
39
|
+
},
|
|
40
|
+
"devDependencies": {
|
|
41
|
+
"@types/node": "^22.0.0",
|
|
42
|
+
"@types/ws": "^8.5.13",
|
|
43
|
+
"typescript": "^5.7.0",
|
|
44
|
+
"vitest": "^3.0.0"
|
|
45
|
+
},
|
|
46
|
+
"engines": {
|
|
47
|
+
"node": ">=20.0.0"
|
|
48
|
+
}
|
|
49
|
+
}
|