unreal-engine-mcp-server 0.3.0 → 0.3.1

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.
@@ -563,7 +563,7 @@ Example:
563
563
  description: `Stream in/out a sublevel and set visibility.
564
564
 
565
565
  Example:
566
- - {'levelName':'Sublevel_A','shouldBeLoaded':true,'shouldBeVisible':true}`,
566
+ - {"levelName":"Sublevel_A","shouldBeLoaded":true,"shouldBeVisible":true}`,
567
567
  inputSchema: {
568
568
  type: 'object',
569
569
  properties: {
@@ -589,8 +589,8 @@ Example:
589
589
  description: `Create a light (Directional/Point/Spot/Rect/Sky) with optional transform/intensity.
590
590
 
591
591
  Examples:
592
- - {'lightType':'Directional','name':'KeyLight','intensity':5.0}
593
- - {'lightType':'Point','name':'Fill','location':{'x':0,'y':100,'z':200},'intensity':2000}`,
592
+ - {"lightType":"Directional","name":"KeyLight","intensity":5.0}
593
+ - {"lightType":"Point","name":"Fill","location":{"x":0,"y":100,"z":200},"intensity":2000}`,
594
594
  inputSchema: {
595
595
  type: 'object',
596
596
  properties: {
@@ -619,7 +619,13 @@ Examples:
619
619
  },
620
620
  {
621
621
  name: 'build_lighting',
622
- description: 'Start a lighting build at an optional quality level (Preview/Medium/High/Production).',
622
+ description: `Start a lighting build.
623
+
624
+ When to use:
625
+ - Bake lights for preview or final output (choose quality).
626
+
627
+ Example:
628
+ - {"quality":"High"}`,
623
629
  inputSchema: {
624
630
  type: 'object',
625
631
  properties: {
@@ -638,7 +644,13 @@ Examples:
638
644
  // Landscape Tools
639
645
  {
640
646
  name: 'create_landscape',
641
- description: 'Attempt to create a landscape. Native Python APIs are limited; you may receive a guidance message to use Landscape Mode in the editor.',
647
+ description: `Attempt to create a landscape.
648
+
649
+ Notes:
650
+ - Native Python APIs are limited; you may be guided to use Landscape Mode in the editor.
651
+
652
+ Example:
653
+ - {"name":"Landscape_Basic","sizeX":1024,"sizeY":1024}`,
642
654
  inputSchema: {
643
655
  type: 'object',
644
656
  properties: {
@@ -660,7 +672,10 @@ Examples:
660
672
  },
661
673
  {
662
674
  name: 'sculpt_landscape',
663
- description: 'Sculpt a landscape using editor tools (best-effort; some operations may require manual Landscape Mode).',
675
+ description: `Sculpt a landscape using editor tools (best-effort; some operations may require manual Landscape Mode).
676
+
677
+ Example:
678
+ - {"landscapeName":"Landscape_Basic","tool":"Smooth","brushSize":300,"strength":0.5}`,
664
679
  inputSchema: {
665
680
  type: 'object',
666
681
  properties: {
@@ -685,7 +700,7 @@ Examples:
685
700
  description: `Create or load a FoliageType asset for instanced foliage workflows.
686
701
 
687
702
  Example:
688
- - {'name':'FT_Grass','meshPath':'/Game/Foliage/SM_Grass','density':300}`,
703
+ - {"name":"FT_Grass","meshPath":"/Game/Foliage/SM_Grass","density":300}`,
689
704
  inputSchema: {
690
705
  type: 'object',
691
706
  properties: {
@@ -706,7 +721,13 @@ Example:
706
721
  },
707
722
  {
708
723
  name: 'paint_foliage',
709
- description: 'Paint foliage on landscape',
724
+ description: `Paint foliage onto the world.
725
+
726
+ When to use:
727
+ - Scatter instances using an existing FoliageType.
728
+
729
+ Example:
730
+ - {"foliageType":"/Game/Foliage/Types/FT_Grass","position":{"x":0,"y":0,"z":0},"brushSize":300}`,
710
731
  inputSchema: {
711
732
  type: 'object',
712
733
  properties: {
@@ -735,7 +756,10 @@ Example:
735
756
  // Debug Visualization Tools
736
757
  {
737
758
  name: 'draw_debug_shape',
738
- description: 'Draw a debug shape',
759
+ description: `Draw a debug shape.
760
+
761
+ Example:
762
+ - {"shape":"Sphere","position":{"x":0,"y":0,"z":0},"size":100,"color":[255,0,0,255],"duration":3}`,
739
763
  inputSchema: {
740
764
  type: 'object',
741
765
  properties: {
@@ -768,7 +792,10 @@ Example:
768
792
  },
769
793
  {
770
794
  name: 'set_view_mode',
771
- description: 'Set the viewport view mode',
795
+ description: `Set the viewport view mode.
796
+
797
+ Example:
798
+ - {"mode":"Wireframe"}`,
772
799
  inputSchema: {
773
800
  type: 'object',
774
801
  properties: {
@@ -788,7 +815,10 @@ Example:
788
815
  // Performance Tools
789
816
  {
790
817
  name: 'start_profiling',
791
- description: 'Start performance profiling',
818
+ description: `Start performance profiling.
819
+
820
+ Example:
821
+ - {"type":"GPU","duration":10}`,
792
822
  inputSchema: {
793
823
  type: 'object',
794
824
  properties: {
@@ -808,7 +838,10 @@ Example:
808
838
  },
809
839
  {
810
840
  name: 'show_fps',
811
- description: 'Show FPS counter',
841
+ description: `Show/hide the FPS counter.
842
+
843
+ Example:
844
+ - {"enabled":true,"verbose":false}`,
812
845
  inputSchema: {
813
846
  type: 'object',
814
847
  properties: {
@@ -828,7 +861,10 @@ Example:
828
861
  },
829
862
  {
830
863
  name: 'set_scalability',
831
- description: 'Set scalability settings',
864
+ description: `Set scalability/quality levels.
865
+
866
+ Example:
867
+ - {"category":"Shadows","level":2}`,
832
868
  inputSchema: {
833
869
  type: 'object',
834
870
  properties: {
@@ -849,7 +885,10 @@ Example:
849
885
  // Audio Tools
850
886
  {
851
887
  name: 'play_sound',
852
- description: 'Play a sound',
888
+ description: `Play a sound.
889
+
890
+ Example:
891
+ - {"soundPath":"/Game/Audio/SFX/Click","volume":0.5,"is3D":true}`,
853
892
  inputSchema: {
854
893
  type: 'object',
855
894
  properties: {
@@ -878,7 +917,10 @@ Example:
878
917
  },
879
918
  {
880
919
  name: 'create_ambient_sound',
881
- description: 'Create an ambient sound',
920
+ description: `Create an ambient sound actor.
921
+
922
+ Example:
923
+ - {"name":"Amb_Wind","soundPath":"/Game/Audio/Amb/AMB_Wind","location":{"x":0,"y":0,"z":0},"radius":1000}`,
882
924
  inputSchema: {
883
925
  type: 'object',
884
926
  properties: {
@@ -908,7 +950,10 @@ Example:
908
950
  // UI Tools
909
951
  {
910
952
  name: 'create_widget',
911
- description: 'Create a UI widget',
953
+ description: `Create a UI widget.
954
+
955
+ Example:
956
+ - {"name":"HUDMain","type":"HUD","savePath":"/Game/UI"}`,
912
957
  inputSchema: {
913
958
  type: 'object',
914
959
  properties: {
@@ -929,7 +974,10 @@ Example:
929
974
  },
930
975
  {
931
976
  name: 'show_widget',
932
- description: 'Show or hide a widget',
977
+ description: `Show or hide a widget.
978
+
979
+ Example:
980
+ - {"widgetName":"HUDMain","visible":true}`,
933
981
  inputSchema: {
934
982
  type: 'object',
935
983
  properties: {
@@ -949,7 +997,10 @@ Example:
949
997
  },
950
998
  {
951
999
  name: 'create_hud',
952
- description: 'Create a HUD',
1000
+ description: `Create a HUD description/layout.
1001
+
1002
+ Example:
1003
+ - {"name":"GameHUD","elements":[{"type":"Text","position":[10,10]}]}`,
953
1004
  inputSchema: {
954
1005
  type: 'object',
955
1006
  properties: {
@@ -982,7 +1033,14 @@ Example:
982
1033
  // Console command (universal tool)
983
1034
  {
984
1035
  name: 'console_command',
985
- description: 'Execute any console command in Unreal Engine',
1036
+ description: `Execute a console command.
1037
+
1038
+ When to use:
1039
+ - Quick toggles like "stat fps", "viewmode wireframe", or r.* cvars.
1040
+
1041
+ Examples:
1042
+ - {"command":"stat fps"}
1043
+ - {"command":"r.ScreenPercentage 75"}`,
986
1044
  inputSchema: {
987
1045
  type: 'object',
988
1046
  properties: {
@@ -14,6 +14,7 @@ export declare class UnrealBridge {
14
14
  private reconnectAttempts;
15
15
  private readonly MAX_RECONNECT_ATTEMPTS;
16
16
  private readonly BASE_RECONNECT_DELAY;
17
+ private autoReconnectEnabled;
17
18
  private commandQueue;
18
19
  private isProcessing;
19
20
  private readonly MIN_COMMAND_DELAY;
@@ -32,6 +33,7 @@ export declare class UnrealBridge {
32
33
  * @param retryDelayMs Delay between retry attempts in milliseconds
33
34
  * @returns Promise that resolves when connected or rejects after all attempts fail
34
35
  */
36
+ private connectPromise?;
35
37
  tryConnect(maxAttempts?: number, timeoutMs?: number, retryDelayMs?: number): Promise<boolean>;
36
38
  connect(timeoutMs?: number): Promise<void>;
37
39
  httpCall<T = any>(path: string, method?: 'GET' | 'POST' | 'PUT', body?: any): Promise<T>;
@@ -39,6 +41,7 @@ export declare class UnrealBridge {
39
41
  getExposed(): Promise<any>;
40
42
  executeConsoleCommand(command: string): Promise<any>;
41
43
  executePython(command: string): Promise<any>;
44
+ setAutoReconnectEnabled(enabled: boolean): void;
42
45
  private scheduleReconnect;
43
46
  disconnect(): Promise<void>;
44
47
  /**
@@ -49,7 +52,7 @@ export declare class UnrealBridge {
49
52
  /**
50
53
  * Execute Python script and parse the result
51
54
  */
52
- private executePythonWithResult;
55
+ executePythonWithResult(script: string): Promise<any>;
53
56
  /**
54
57
  * Get the Unreal Engine version via Python and parse major/minor/patch.
55
58
  */