@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,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CI/CD Pipeline tools - 8 tools for automated build and deployment workflows
|
|
3
|
+
*/
|
|
4
|
+
import { callGodot } from '../server.js';
|
|
5
|
+
import { z, Name, FilePath } from './shared-types.js';
|
|
6
|
+
export function registerCicdPipelineTools(server, bridge) {
|
|
7
|
+
// 1. create_github_actions_workflow
|
|
8
|
+
server.registerTool(
|
|
9
|
+
'create_github_actions_workflow',
|
|
10
|
+
{
|
|
11
|
+
description: 'Create a GitHub Actions workflow YAML file for automated CI/CD',
|
|
12
|
+
inputSchema: {
|
|
13
|
+
name: Name.describe('Workflow name (used as filename)'),
|
|
14
|
+
triggers: z.array(z.string()).describe("Event triggers (e.g. 'push', 'pull_request', 'workflow_dispatch')"),
|
|
15
|
+
jobs: z
|
|
16
|
+
.array(
|
|
17
|
+
z.object({
|
|
18
|
+
name: z.string().describe('Job name'),
|
|
19
|
+
steps: z
|
|
20
|
+
.array(
|
|
21
|
+
z.object({
|
|
22
|
+
name: z.string().describe('Step name'),
|
|
23
|
+
run: z.string().optional().describe('Shell command to run'),
|
|
24
|
+
uses: z.string().optional().describe("Action to use (e.g. 'actions/checkout@v4')"),
|
|
25
|
+
}),
|
|
26
|
+
)
|
|
27
|
+
.describe('Job steps'),
|
|
28
|
+
}),
|
|
29
|
+
)
|
|
30
|
+
.describe('Workflow jobs'),
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
async (args) => callGodot(bridge, 'cicd/create_github_actions_workflow', args),
|
|
34
|
+
);
|
|
35
|
+
// 2. create_gitlab_ci
|
|
36
|
+
server.registerTool(
|
|
37
|
+
'create_gitlab_ci',
|
|
38
|
+
{
|
|
39
|
+
description: 'Create a GitLab CI/CD configuration file (.gitlab-ci.yml)',
|
|
40
|
+
inputSchema: {
|
|
41
|
+
stages: z.array(z.string()).describe("Pipeline stages (e.g. 'build', 'test', 'deploy')"),
|
|
42
|
+
jobs: z
|
|
43
|
+
.record(
|
|
44
|
+
z.object({
|
|
45
|
+
stage: z.string().describe('Which stage this job belongs to'),
|
|
46
|
+
script: z.array(z.string()).describe('Commands to run in this job'),
|
|
47
|
+
}),
|
|
48
|
+
)
|
|
49
|
+
.describe('Job definitions keyed by job name'),
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
async (args) => callGodot(bridge, 'cicd/create_gitlab_ci', args),
|
|
53
|
+
);
|
|
54
|
+
// 3. setup_automated_testing
|
|
55
|
+
server.registerTool(
|
|
56
|
+
'setup_automated_testing',
|
|
57
|
+
{
|
|
58
|
+
description: 'Set up automated testing workflow for the Godot project',
|
|
59
|
+
inputSchema: {
|
|
60
|
+
framework: z.enum(['gut', 'custom']).describe('Test framework to use (GUT or custom)'),
|
|
61
|
+
test_path: FilePath.describe("Path to test directory (e.g. 'res://tests/')"),
|
|
62
|
+
on_push: z.boolean().optional().describe('Run tests on every push (default: true)'),
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
async (args) => callGodot(bridge, 'cicd/setup_automated_testing', args),
|
|
66
|
+
);
|
|
67
|
+
// 4. setup_automated_export
|
|
68
|
+
server.registerTool(
|
|
69
|
+
'setup_automated_export',
|
|
70
|
+
{
|
|
71
|
+
description: 'Set up automated export workflow for building game binaries',
|
|
72
|
+
inputSchema: {
|
|
73
|
+
platforms: z.array(z.string()).describe("Target platforms (e.g. 'windows', 'linux', 'web', 'android')"),
|
|
74
|
+
on_tag: z.boolean().optional().describe('Only export on tag push (default: false)'),
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
async (args) => callGodot(bridge, 'cicd/setup_automated_export', args),
|
|
78
|
+
);
|
|
79
|
+
// 5. create_release_workflow
|
|
80
|
+
server.registerTool(
|
|
81
|
+
'create_release_workflow',
|
|
82
|
+
{
|
|
83
|
+
description: 'Create a release workflow with version tagging and multi-platform builds',
|
|
84
|
+
inputSchema: {
|
|
85
|
+
version_pattern: z.string().describe("Version tag pattern (e.g. 'v*', 'release-*')"),
|
|
86
|
+
platforms: z.array(z.string()).describe('Target platforms for release builds'),
|
|
87
|
+
auto_notes: z.boolean().optional().describe('Auto-generate release notes from commits (default: true)'),
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
async (args) => callGodot(bridge, 'cicd/create_release_workflow', args),
|
|
91
|
+
);
|
|
92
|
+
// 6. validate_ci_config
|
|
93
|
+
server.registerTool(
|
|
94
|
+
'validate_ci_config',
|
|
95
|
+
{
|
|
96
|
+
description: 'Validate a CI/CD configuration file for syntax and structure errors',
|
|
97
|
+
inputSchema: {
|
|
98
|
+
config_path: FilePath.describe("Path to CI config file (e.g. '.github/workflows/build.yml', '.gitlab-ci.yml')"),
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
async (args) => callGodot(bridge, 'cicd/validate_ci_config', args),
|
|
102
|
+
);
|
|
103
|
+
// 7. get_ci_templates
|
|
104
|
+
server.registerTool(
|
|
105
|
+
'get_ci_templates',
|
|
106
|
+
{
|
|
107
|
+
description: 'Get available CI/CD templates for Godot projects',
|
|
108
|
+
inputSchema: {},
|
|
109
|
+
},
|
|
110
|
+
async () => callGodot(bridge, 'cicd/get_ci_templates'),
|
|
111
|
+
);
|
|
112
|
+
// 8. create_docker_config
|
|
113
|
+
server.registerTool(
|
|
114
|
+
'create_docker_config',
|
|
115
|
+
{
|
|
116
|
+
description: 'Create a Dockerfile for containerized Godot builds and exports',
|
|
117
|
+
inputSchema: {
|
|
118
|
+
base_image: z.string().optional().describe('Base Docker image (default: Ubuntu)'),
|
|
119
|
+
godot_version: z.string().optional().describe("Godot version to install (e.g. '4.3')"),
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
async (args) => callGodot(bridge, 'cicd/create_docker_config', args),
|
|
123
|
+
);
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=cicd_pipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cicd_pipeline.js","sourceRoot":"","sources":["../../src/tools/cicd_pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloud services tools - 8 tools for cloud save, leaderboards, achievements, and remote config
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
5
|
+
import type { GodotBridge } from "../godot-bridge.js";
|
|
6
|
+
export declare function registerCloudServicesTools(server: McpServer, bridge: GodotBridge): void;
|
|
7
|
+
//# sourceMappingURL=cloud_services.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud_services.d.ts","sourceRoot":"","sources":["../../src/tools/cloud_services.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAiGvF"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloud services tools - 8 tools for cloud save, leaderboards, achievements, and remote config
|
|
3
|
+
*/
|
|
4
|
+
import { callGodot } from '../server.js';
|
|
5
|
+
import { z, Name, OptionalProperties } from './shared-types.js';
|
|
6
|
+
export function registerCloudServicesTools(server, bridge) {
|
|
7
|
+
// 1. get_cloud_settings
|
|
8
|
+
server.registerTool(
|
|
9
|
+
'get_cloud_settings',
|
|
10
|
+
{
|
|
11
|
+
description: 'Get the current cloud service configuration',
|
|
12
|
+
inputSchema: {},
|
|
13
|
+
},
|
|
14
|
+
async () => callGodot(bridge, 'get_cloud_settings'),
|
|
15
|
+
);
|
|
16
|
+
// 2. setup_cloud_saves
|
|
17
|
+
server.registerTool(
|
|
18
|
+
'setup_cloud_saves',
|
|
19
|
+
{
|
|
20
|
+
description: 'Configure cloud save system with a provider and optional endpoint',
|
|
21
|
+
inputSchema: {
|
|
22
|
+
provider: z.enum(['steam', 'custom']).describe('Cloud save provider'),
|
|
23
|
+
endpoint: z.string().optional().describe("Custom endpoint URL (required for 'custom' provider)"),
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
async (args) => callGodot(bridge, 'setup_cloud_saves', args),
|
|
27
|
+
);
|
|
28
|
+
// 3. sync_cloud_saves
|
|
29
|
+
server.registerTool(
|
|
30
|
+
'sync_cloud_saves',
|
|
31
|
+
{
|
|
32
|
+
description: 'Synchronize local save files with the cloud in the specified direction',
|
|
33
|
+
inputSchema: {
|
|
34
|
+
direction: z.enum(['upload', 'download', 'both']).describe('Sync direction: upload local to cloud, download cloud to local, or both'),
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
async (args) => callGodot(bridge, 'sync_cloud_saves', args),
|
|
38
|
+
);
|
|
39
|
+
// 4. get_leaderboard
|
|
40
|
+
server.registerTool(
|
|
41
|
+
'get_leaderboard',
|
|
42
|
+
{
|
|
43
|
+
description: 'Retrieve entries from a leaderboard',
|
|
44
|
+
inputSchema: {
|
|
45
|
+
leaderboard_id: Name.describe('Leaderboard identifier'),
|
|
46
|
+
count: z.number().int().min(1).max(100).optional().describe('Number of entries to retrieve (default: 10)'),
|
|
47
|
+
around_player: z.boolean().optional().describe('If true, return entries around the current player (default: false)'),
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
async (args) => callGodot(bridge, 'get_leaderboard', args),
|
|
51
|
+
);
|
|
52
|
+
// 5. submit_score
|
|
53
|
+
server.registerTool(
|
|
54
|
+
'submit_score',
|
|
55
|
+
{
|
|
56
|
+
description: 'Submit a score to a leaderboard with optional metadata',
|
|
57
|
+
inputSchema: {
|
|
58
|
+
leaderboard_id: Name.describe('Leaderboard identifier'),
|
|
59
|
+
score: z.number().describe('Score value to submit'),
|
|
60
|
+
metadata: OptionalProperties,
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
async (args) => callGodot(bridge, 'submit_score', args),
|
|
64
|
+
);
|
|
65
|
+
// 6. get_achievements
|
|
66
|
+
server.registerTool(
|
|
67
|
+
'get_achievements',
|
|
68
|
+
{
|
|
69
|
+
description: 'Get all achievements with their unlock status',
|
|
70
|
+
inputSchema: {},
|
|
71
|
+
},
|
|
72
|
+
async () => callGodot(bridge, 'get_achievements'),
|
|
73
|
+
);
|
|
74
|
+
// 7. unlock_achievement
|
|
75
|
+
server.registerTool(
|
|
76
|
+
'unlock_achievement',
|
|
77
|
+
{
|
|
78
|
+
description: 'Unlock a specific achievement by its ID',
|
|
79
|
+
inputSchema: {
|
|
80
|
+
achievement_id: Name.describe('Achievement identifier to unlock'),
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
async (args) => callGodot(bridge, 'unlock_achievement', args),
|
|
84
|
+
);
|
|
85
|
+
// 8. get_cloud_config
|
|
86
|
+
server.registerTool(
|
|
87
|
+
'get_cloud_config',
|
|
88
|
+
{
|
|
89
|
+
description: 'Get a remote configuration value by key',
|
|
90
|
+
inputSchema: {
|
|
91
|
+
key: Name.describe('Configuration key to retrieve'),
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
async (args) => callGodot(bridge, 'get_cloud_config', args),
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=cloud_services.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud_services.js","sourceRoot":"","sources":["../../src/tools/cloud_services.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Code generation tools - 6 tools for GDScript code generation and analysis
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
5
|
+
import type { GodotBridge } from "../godot-bridge.js";
|
|
6
|
+
export declare function registerCodeGenerationTools(server: McpServer, bridge: GodotBridge): void;
|
|
7
|
+
//# sourceMappingURL=code_generation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code_generation.d.ts","sourceRoot":"","sources":["../../src/tools/code_generation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CA6ExF"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Code generation tools - 6 tools for GDScript code generation and analysis
|
|
3
|
+
*/
|
|
4
|
+
import { callGodot } from '../server.js';
|
|
5
|
+
import { z, ScriptPath } from './shared-types.js';
|
|
6
|
+
export function registerCodeGenerationTools(server, bridge) {
|
|
7
|
+
// 1. generate_gdscript
|
|
8
|
+
server.registerTool(
|
|
9
|
+
'generate_gdscript',
|
|
10
|
+
{
|
|
11
|
+
description: 'Generate a GDScript file from a natural language description',
|
|
12
|
+
inputSchema: {
|
|
13
|
+
description: z.string().describe('Description of what the script should do'),
|
|
14
|
+
base_class: z.string().optional().describe("Base class to extend (e.g. 'CharacterBody2D', 'Node')"),
|
|
15
|
+
style: z.enum(['minimal', 'documented']).optional().describe('Code style: minimal or fully documented (default: documented)'),
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
async (args) => callGodot(bridge, 'generate_gdscript', args),
|
|
19
|
+
);
|
|
20
|
+
// 2. refactor_code
|
|
21
|
+
server.registerTool(
|
|
22
|
+
'refactor_code',
|
|
23
|
+
{
|
|
24
|
+
description: 'Refactor a GDScript file using a specified refactoring operation',
|
|
25
|
+
inputSchema: {
|
|
26
|
+
script_path: ScriptPath,
|
|
27
|
+
refactoring: z.enum(['extract_method', 'rename', 'move', 'inline']).describe('Refactoring operation to perform'),
|
|
28
|
+
target: z.string().optional().describe('Target for the refactoring (method name, new name, destination, etc.)'),
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
async (args) => callGodot(bridge, 'refactor_code', args),
|
|
32
|
+
);
|
|
33
|
+
// 3. suggest_improvements
|
|
34
|
+
server.registerTool(
|
|
35
|
+
'suggest_improvements',
|
|
36
|
+
{
|
|
37
|
+
description: 'Analyze a GDScript file and suggest code quality improvements',
|
|
38
|
+
inputSchema: {
|
|
39
|
+
script_path: ScriptPath,
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
async (args) => callGodot(bridge, 'suggest_improvements', args),
|
|
43
|
+
);
|
|
44
|
+
// 4. generate_unit_tests
|
|
45
|
+
server.registerTool(
|
|
46
|
+
'generate_unit_tests',
|
|
47
|
+
{
|
|
48
|
+
description: 'Generate unit test script for a GDScript file',
|
|
49
|
+
inputSchema: {
|
|
50
|
+
script_path: ScriptPath,
|
|
51
|
+
framework: z.enum(['gut', 'custom']).optional().describe('Test framework to use (default: custom)'),
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
async (args) => callGodot(bridge, 'generate_unit_tests', args),
|
|
55
|
+
);
|
|
56
|
+
// 5. generate_documentation
|
|
57
|
+
server.registerTool(
|
|
58
|
+
'generate_documentation',
|
|
59
|
+
{
|
|
60
|
+
description: 'Generate documentation comments for a GDScript file',
|
|
61
|
+
inputSchema: {
|
|
62
|
+
script_path: ScriptPath,
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
async (args) => callGodot(bridge, 'generate_documentation', args),
|
|
66
|
+
);
|
|
67
|
+
// 6. check_code_quality
|
|
68
|
+
server.registerTool(
|
|
69
|
+
'check_code_quality',
|
|
70
|
+
{
|
|
71
|
+
description: 'Check a GDScript file for code quality issues and return a quality report',
|
|
72
|
+
inputSchema: {
|
|
73
|
+
script_path: ScriptPath,
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
async (args) => callGodot(bridge, 'check_code_quality', args),
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=code_generation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code_generation.js","sourceRoot":"","sources":["../../src/tools/code_generation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,UAAU,2BAA2B,CAAC,MAAiB,EAAE,MAAmB;IAChF,uBAAuB;IACvB,MAAM,CAAC,YAAY,CACf,mBAAmB,EACnB;QACE,WAAW,EAAE,8DAA8D;QAC3E,WAAW,EAAE;YACf,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;YAC5E,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;YACnG,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;SAC9H;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,mBAAmB,EAAE,IAA+B,CAAC,CACxF,CAAC;IAEJ,mBAAmB;IACnB,MAAM,CAAC,YAAY,CACf,eAAe,EACf;QACE,WAAW,EAAE,kEAAkE;QAC/E,WAAW,EAAE;YACf,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,kCAAkC,CAAC;YAChH,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uEAAuE,CAAC;SAChH;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,eAAe,EAAE,IAA+B,CAAC,CACpF,CAAC;IAEJ,0BAA0B;IAC1B,MAAM,CAAC,YAAY,CACf,sBAAsB,EACtB;QACE,WAAW,EAAE,+DAA+D;QAC5E,WAAW,EAAE;YACf,WAAW,EAAE,UAAU;SACxB;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,sBAAsB,EAAE,IAA+B,CAAC,CAC3F,CAAC;IAEJ,yBAAyB;IACzB,MAAM,CAAC,YAAY,CACf,qBAAqB,EACrB;QACE,WAAW,EAAE,+CAA+C;QAC5D,WAAW,EAAE;YACf,WAAW,EAAE,UAAU;YACvB,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;SACpG;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,qBAAqB,EAAE,IAA+B,CAAC,CAC1F,CAAC;IAEJ,4BAA4B;IAC5B,MAAM,CAAC,YAAY,CACf,wBAAwB,EACxB;QACE,WAAW,EAAE,qDAAqD;QAClE,WAAW,EAAE;YACf,WAAW,EAAE,UAAU;SACxB;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,wBAAwB,EAAE,IAA+B,CAAC,CAC7F,CAAC;IAEJ,wBAAwB;IACxB,MAAM,CAAC,YAAY,CACf,oBAAoB,EACpB;QACE,WAAW,EAAE,2EAA2E;QACxF,WAAW,EAAE;YACf,WAAW,EAAE,UAAU;SACxB;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,oBAAoB,EAAE,IAA+B,CAAC,CACzF,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Code quality tools - 8 tools for linting, analysis, and code health
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
5
|
+
import type { GodotBridge } from "../godot-bridge.js";
|
|
6
|
+
export declare function registerCodeQualityTools(server: McpServer, bridge: GodotBridge): void;
|
|
7
|
+
//# sourceMappingURL=code_quality.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code_quality.d.ts","sourceRoot":"","sources":["../../src/tools/code_quality.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAkGrF"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Code quality tools - 8 tools for linting, analysis, and code health
|
|
3
|
+
*/
|
|
4
|
+
import { callGodot } from '../server.js';
|
|
5
|
+
import { z, ScriptPath } from './shared-types.js';
|
|
6
|
+
export function registerCodeQualityTools(server, bridge) {
|
|
7
|
+
// 1. run_linter
|
|
8
|
+
server.registerTool(
|
|
9
|
+
'run_linter',
|
|
10
|
+
{
|
|
11
|
+
description: 'Run GDScript linter on project files and return lint errors',
|
|
12
|
+
inputSchema: {
|
|
13
|
+
path: z.string().optional().describe('Directory or file to lint (default: entire project)'),
|
|
14
|
+
fix: z.boolean().optional().describe('Attempt to auto-fix issues (default: false)'),
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
async (args) => callGodot(bridge, 'code_quality/run_linter', args),
|
|
18
|
+
);
|
|
19
|
+
// 2. run_static_analysis
|
|
20
|
+
server.registerTool(
|
|
21
|
+
'run_static_analysis',
|
|
22
|
+
{
|
|
23
|
+
description: 'Run static analysis on GDScript files to find potential issues',
|
|
24
|
+
inputSchema: {
|
|
25
|
+
path: z.string().optional().describe('Directory or file to analyze (default: entire project)'),
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
async (args) => callGodot(bridge, 'code_quality/run_static_analysis', args),
|
|
29
|
+
);
|
|
30
|
+
// 3. check_type_safety
|
|
31
|
+
server.registerTool(
|
|
32
|
+
'check_type_safety',
|
|
33
|
+
{
|
|
34
|
+
description: 'Check type safety of a GDScript file (untyped variables, missing return types)',
|
|
35
|
+
inputSchema: {
|
|
36
|
+
script_path: ScriptPath,
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
async (args) => callGodot(bridge, 'code_quality/check_type_safety', args),
|
|
40
|
+
);
|
|
41
|
+
// 4. find_code_smells
|
|
42
|
+
server.registerTool(
|
|
43
|
+
'find_code_smells',
|
|
44
|
+
{
|
|
45
|
+
description: 'Find code smells in GDScript files (long functions, deep nesting, god classes)',
|
|
46
|
+
inputSchema: {
|
|
47
|
+
path: z.string().optional().describe('Directory or file to scan (default: entire project)'),
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
async (args) => callGodot(bridge, 'code_quality/find_code_smells', args),
|
|
51
|
+
);
|
|
52
|
+
// 5. calculate_code_metrics
|
|
53
|
+
server.registerTool(
|
|
54
|
+
'calculate_code_metrics',
|
|
55
|
+
{
|
|
56
|
+
description: 'Calculate code metrics (cyclomatic complexity, lines of code, function count)',
|
|
57
|
+
inputSchema: {
|
|
58
|
+
path: z.string().optional().describe('Directory or file to measure (default: entire project)'),
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
async (args) => callGodot(bridge, 'code_quality/calculate_code_metrics', args),
|
|
62
|
+
);
|
|
63
|
+
// 6. suggest_refactoring
|
|
64
|
+
server.registerTool(
|
|
65
|
+
'suggest_refactoring',
|
|
66
|
+
{
|
|
67
|
+
description: 'Analyze a GDScript file and suggest refactoring improvements',
|
|
68
|
+
inputSchema: {
|
|
69
|
+
script_path: ScriptPath,
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
async (args) => callGodot(bridge, 'code_quality/suggest_refactoring', args),
|
|
73
|
+
);
|
|
74
|
+
// 7. validate_naming_conventions
|
|
75
|
+
server.registerTool(
|
|
76
|
+
'validate_naming_conventions',
|
|
77
|
+
{
|
|
78
|
+
description: 'Check GDScript files for naming convention violations',
|
|
79
|
+
inputSchema: {
|
|
80
|
+
path: z.string().optional().describe('Directory or file to check (default: entire project)'),
|
|
81
|
+
style: z.enum(['snake_case', 'camelCase', 'PascalCase']).optional().describe('Expected naming style (default: snake_case per GDScript convention)'),
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
async (args) => callGodot(bridge, 'code_quality/validate_naming_conventions', args),
|
|
85
|
+
);
|
|
86
|
+
// 8. generate_code_report
|
|
87
|
+
server.registerTool(
|
|
88
|
+
'generate_code_report',
|
|
89
|
+
{
|
|
90
|
+
description: 'Generate a comprehensive code quality report in the specified format',
|
|
91
|
+
inputSchema: {
|
|
92
|
+
format: z.enum(['json', 'html', 'markdown']).optional().describe('Report output format (default: markdown)'),
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
async (args) => callGodot(bridge, 'code_quality/generate_code_report', args),
|
|
96
|
+
);
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=code_quality.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code_quality.js","sourceRoot":"","sources":["../../src/tools/code_quality.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Collaboration tools - 6 tools for multi-user editor collaboration
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
5
|
+
import type { GodotBridge } from "../godot-bridge.js";
|
|
6
|
+
export declare function registerCollaborationTools(server: McpServer, bridge: GodotBridge): void;
|
|
7
|
+
//# sourceMappingURL=collaboration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collaboration.d.ts","sourceRoot":"","sources":["../../src/tools/collaboration.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAuEvF"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Collaboration tools - 6 tools for multi-user editor collaboration
|
|
3
|
+
*/
|
|
4
|
+
import { callGodot } from '../server.js';
|
|
5
|
+
import { z, ScenePath, NodePath, Name, PositiveInt } from './shared-types.js';
|
|
6
|
+
export function registerCollaborationTools(server, bridge) {
|
|
7
|
+
// 1. get_editor_users
|
|
8
|
+
server.registerTool(
|
|
9
|
+
'get_editor_users',
|
|
10
|
+
{
|
|
11
|
+
description: 'Get a list of users currently connected to the editor collaboration session',
|
|
12
|
+
inputSchema: {},
|
|
13
|
+
},
|
|
14
|
+
async () => callGodot(bridge, 'collaboration/get_editor_users'),
|
|
15
|
+
);
|
|
16
|
+
// 2. share_scene
|
|
17
|
+
server.registerTool(
|
|
18
|
+
'share_scene',
|
|
19
|
+
{
|
|
20
|
+
description: 'Share a scene file with specific users in the collaboration session',
|
|
21
|
+
inputSchema: {
|
|
22
|
+
scene_path: ScenePath,
|
|
23
|
+
users: z.array(z.string()).describe('List of user identifiers to share with'),
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
async (args) => callGodot(bridge, 'collaboration/share_scene', args),
|
|
27
|
+
);
|
|
28
|
+
// 3. lock_node
|
|
29
|
+
server.registerTool(
|
|
30
|
+
'lock_node',
|
|
31
|
+
{
|
|
32
|
+
description: 'Lock a node to prevent other users from editing it',
|
|
33
|
+
inputSchema: {
|
|
34
|
+
node_path: NodePath,
|
|
35
|
+
duration: PositiveInt.optional().describe('Lock duration in seconds (default: 300)'),
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
async (args) => callGodot(bridge, 'collaboration/lock_node', args),
|
|
39
|
+
);
|
|
40
|
+
// 4. unlock_node
|
|
41
|
+
server.registerTool(
|
|
42
|
+
'unlock_node',
|
|
43
|
+
{
|
|
44
|
+
description: 'Unlock a previously locked node',
|
|
45
|
+
inputSchema: {
|
|
46
|
+
node_path: NodePath,
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
async (args) => callGodot(bridge, 'collaboration/unlock_node', args),
|
|
50
|
+
);
|
|
51
|
+
// 5. get_locked_nodes
|
|
52
|
+
server.registerTool(
|
|
53
|
+
'get_locked_nodes',
|
|
54
|
+
{
|
|
55
|
+
description: 'Get a list of all currently locked nodes and their owners',
|
|
56
|
+
inputSchema: {},
|
|
57
|
+
},
|
|
58
|
+
async () => callGodot(bridge, 'collaboration/get_locked_nodes'),
|
|
59
|
+
);
|
|
60
|
+
// 6. send_message
|
|
61
|
+
server.registerTool(
|
|
62
|
+
'send_message',
|
|
63
|
+
{
|
|
64
|
+
description: 'Send a message to another user in the collaboration session',
|
|
65
|
+
inputSchema: {
|
|
66
|
+
user: Name.describe('Target user identifier'),
|
|
67
|
+
message: z.string().describe('Message content'),
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
async (args) => callGodot(bridge, 'collaboration/send_message', args),
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=collaboration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collaboration.js","sourceRoot":"","sources":["../../src/tools/collaboration.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE9E,MAAM,UAAU,0BAA0B,CAAC,MAAiB,EAAE,MAAmB;IAC/E,sBAAsB;IACtB,MAAM,CAAC,YAAY,CACf,kBAAkB,EAClB;QACE,WAAW,EAAE,6EAA6E;QAC1F,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAChE,CAAC;IAEJ,iBAAiB;IACjB,MAAM,CAAC,YAAY,CACf,aAAa,EACb;QACE,WAAW,EAAE,qEAAqE;QAClF,WAAW,EAAE;YACf,UAAU,EAAE,SAAS;YACrB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,wCAAwC,CAAC;SAC9E;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,2BAA2B,EAAE,IAA+B,CAAC,CAChG,CAAC;IAEJ,eAAe;IACf,MAAM,CAAC,YAAY,CACf,WAAW,EACX;QACE,WAAW,EAAE,oDAAoD;QACjE,WAAW,EAAE;YACf,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;SACrF;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,yBAAyB,EAAE,IAA+B,CAAC,CAC9F,CAAC;IAEJ,iBAAiB;IACjB,MAAM,CAAC,YAAY,CACf,aAAa,EACb;QACE,WAAW,EAAE,iCAAiC;QAC9C,WAAW,EAAE;YACf,SAAS,EAAE,QAAQ;SACpB;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,2BAA2B,EAAE,IAA+B,CAAC,CAChG,CAAC;IAEJ,sBAAsB;IACtB,MAAM,CAAC,YAAY,CACf,kBAAkB,EAClB;QACE,WAAW,EAAE,2DAA2D;QACxE,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAChE,CAAC;IAEJ,kBAAkB;IAClB,MAAM,CAAC,YAAY,CACf,cAAc,EACd;QACE,WAAW,EAAE,6DAA6D;QAC1E,WAAW,EAAE;YACf,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YAC7C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;SAChD;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,4BAA4B,EAAE,IAA+B,CAAC,CACjG,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Debug configuration tools - 6 tools for debug and logging settings
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
|
+
import type { GodotBridge } from '../godot-bridge.js';
|
|
6
|
+
export declare function registerDebugConfigTools(server: McpServer, bridge: GodotBridge): void;
|
|
7
|
+
//# sourceMappingURL=debug_config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug_config.d.ts","sourceRoot":"","sources":["../../src/tools/debug_config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAqFrF"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Debug configuration tools - 6 tools for debug and logging settings
|
|
3
|
+
*/
|
|
4
|
+
import { callGodot } from '../server.js';
|
|
5
|
+
import { z } from './shared-types.js';
|
|
6
|
+
export function registerDebugConfigTools(server, bridge) {
|
|
7
|
+
// 1. get_debug_settings
|
|
8
|
+
server.registerTool(
|
|
9
|
+
'get_debug_settings',
|
|
10
|
+
{
|
|
11
|
+
description: 'Get all debug settings (remote debug, profilers, error handling, logging)',
|
|
12
|
+
inputSchema: {},
|
|
13
|
+
},
|
|
14
|
+
async () => callGodot(bridge, 'debug_config/get_settings'),
|
|
15
|
+
);
|
|
16
|
+
// 2. set_remote_debug
|
|
17
|
+
server.registerTool(
|
|
18
|
+
'set_remote_debug',
|
|
19
|
+
{
|
|
20
|
+
description: 'Configure remote debugging connection',
|
|
21
|
+
inputSchema: {
|
|
22
|
+
enabled: z.boolean().describe('Enable/disable remote debugging'),
|
|
23
|
+
host: z.string().optional().default('127.0.0.1').describe("Debug host address (default: '127.0.0.1')"),
|
|
24
|
+
port: z.number().int().optional().default(6007).describe('Debug port (default: 6007)'),
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
async (args) => callGodot(bridge, 'debug_config/set_remote_debug', args),
|
|
28
|
+
);
|
|
29
|
+
// 3. set_profiler_settings
|
|
30
|
+
server.registerTool(
|
|
31
|
+
'set_profiler_settings',
|
|
32
|
+
{
|
|
33
|
+
description: 'Enable or disable built-in profilers',
|
|
34
|
+
inputSchema: {
|
|
35
|
+
cpu: z.boolean().optional().describe('Enable CPU profiler'),
|
|
36
|
+
gpu: z.boolean().optional().describe('Enable GPU profiler'),
|
|
37
|
+
memory: z.boolean().optional().describe('Enable memory profiler'),
|
|
38
|
+
network: z.boolean().optional().describe('Enable network profiler'),
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
async (args) => callGodot(bridge, 'debug_config/set_profilers', args),
|
|
42
|
+
);
|
|
43
|
+
// 4. set_error_handling
|
|
44
|
+
server.registerTool(
|
|
45
|
+
'set_error_handling',
|
|
46
|
+
{
|
|
47
|
+
description: 'Configure how the editor handles errors and warnings during gameplay',
|
|
48
|
+
inputSchema: {
|
|
49
|
+
break_on_error: z.boolean().optional().describe('Break into debugger on error'),
|
|
50
|
+
break_on_warning: z.boolean().optional().describe('Break into debugger on warning'),
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
async (args) => callGodot(bridge, 'debug_config/set_error_handling', args),
|
|
54
|
+
);
|
|
55
|
+
// 5. get_editor_log
|
|
56
|
+
server.registerTool(
|
|
57
|
+
'get_editor_log',
|
|
58
|
+
{
|
|
59
|
+
description: 'Get entries from the editor log, optionally filtered by type',
|
|
60
|
+
inputSchema: {
|
|
61
|
+
filter: z.enum(['error', 'warning', 'info']).optional().describe('Filter by message type'),
|
|
62
|
+
limit: z.number().int().min(1).max(500).optional().default(50).describe('Max entries to return (default 50)'),
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
async (args) => callGodot(bridge, 'debug_config/get_log', args),
|
|
66
|
+
);
|
|
67
|
+
// 6. clear_editor_log
|
|
68
|
+
server.registerTool(
|
|
69
|
+
'clear_editor_log',
|
|
70
|
+
{
|
|
71
|
+
description: 'Clear the editor output log',
|
|
72
|
+
inputSchema: {},
|
|
73
|
+
},
|
|
74
|
+
async () => callGodot(bridge, 'debug_config/clear_log'),
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=debug_config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug_config.js","sourceRoot":"","sources":["../../src/tools/debug_config.ts"],"names":[],"mappings":"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"}
|