mcp-lp-server 0.1.0__tar.gz → 0.1.1__tar.gz

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.
Files changed (151) hide show
  1. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1}/PKG-INFO +4 -1
  2. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1}/README.md +4 -1
  3. mcp_lp_server-0.1.1/mcp_lp_server/__init__.py +0 -0
  4. mcp_lp_server-0.1.1/mcp_lp_server/__main__.py +4 -0
  5. mcp_lp_server-0.1.1/mcp_lp_server/gs_web_server.py +236 -0
  6. mcp_lp_server-0.1.1/mcp_lp_server/main.py +22 -0
  7. mcp_lp_server-0.1.1/mcp_lp_server/main_debug.py +13 -0
  8. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1}/mcp_lp_server.egg-info/PKG-INFO +4 -1
  9. mcp_lp_server-0.1.1/mcp_lp_server.egg-info/SOURCES.txt +147 -0
  10. mcp_lp_server-0.1.1/mcp_lp_server.egg-info/top_level.txt +2 -0
  11. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1}/pyproject.toml +3 -3
  12. mcp_lp_server-0.1.0/mcp_lp_server.egg-info/SOURCES.txt +0 -142
  13. mcp_lp_server-0.1.0/mcp_lp_server.egg-info/top_level.txt +0 -5
  14. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/cms/cms_content_pb2.py +0 -0
  15. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/cms/cms_content_pb2.pyi +0 -0
  16. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/common/gravi_common_pb2.py +0 -0
  17. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/common/gravi_common_pb2.pyi +0 -0
  18. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/gsfile/asset/persistence/asset_pb2.py +0 -0
  19. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/gsfile/asset/persistence/asset_pb2.pyi +0 -0
  20. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/gsfile/layergroup/persistence/layer_group_pb2.py +0 -0
  21. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/gsfile/layergroup/persistence/layer_group_pb2.pyi +0 -0
  22. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/gsfile/legacy/legacy_gsfile_pb2.py +0 -0
  23. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/gsfile/legacy/legacy_gsfile_pb2.pyi +0 -0
  24. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/gsfile/metadata/persistence/metadata_pb2.py +0 -0
  25. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/gsfile/metadata/persistence/metadata_pb2.pyi +0 -0
  26. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/gsfile/sketch_gsfile_pb2.py +0 -0
  27. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/gsfile/sketch_gsfile_pb2.pyi +0 -0
  28. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/gsfile/strokelayer/persistence/layer_pb2.py +0 -0
  29. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/gsfile/strokelayer/persistence/layer_pb2.pyi +0 -0
  30. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/library/material_library_pb2.py +0 -0
  31. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/library/material_library_pb2.pyi +0 -0
  32. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/localization/localization_pb2.py +0 -0
  33. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/localization/localization_pb2.pyi +0 -0
  34. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/models/bot_export_pb2.py +0 -0
  35. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/models/bot_export_pb2.pyi +0 -0
  36. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/models/gravi_model_pb2.py +0 -0
  37. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/models/gravi_model_pb2.pyi +0 -0
  38. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/models/notifications_pb2.py +0 -0
  39. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/models/notifications_pb2.pyi +0 -0
  40. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/models/preferences_pb2.py +0 -0
  41. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/models/preferences_pb2.pyi +0 -0
  42. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/models/rhino_compute_pb2.py +0 -0
  43. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/models/rhino_compute_pb2.pyi +0 -0
  44. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/proxy/control_pb2.py +0 -0
  45. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/proxy/control_pb2.pyi +0 -0
  46. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/release/release_pb2.py +0 -0
  47. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/release/release_pb2.pyi +0 -0
  48. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/ai/ask_pb2.py +0 -0
  49. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/ai/ask_pb2.pyi +0 -0
  50. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/ai/image_pb2.py +0 -0
  51. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/ai/image_pb2.pyi +0 -0
  52. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/auth/auth_pb2.py +0 -0
  53. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/auth/auth_pb2.pyi +0 -0
  54. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/common/async_pb2.py +0 -0
  55. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/common/async_pb2.pyi +0 -0
  56. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/doc/comment_pb2.py +0 -0
  57. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/doc/comment_pb2.pyi +0 -0
  58. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/doc/doc_rest_pb2.py +0 -0
  59. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/doc/doc_rest_pb2.pyi +0 -0
  60. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/doc/export_pb2.py +0 -0
  61. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/doc/export_pb2.pyi +0 -0
  62. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/doc/revision_pb2.py +0 -0
  63. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/doc/revision_pb2.pyi +0 -0
  64. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/doc/room_pb2.py +0 -0
  65. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/doc/room_pb2.pyi +0 -0
  66. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/model/achievement_pb2.py +0 -0
  67. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/model/achievement_pb2.pyi +0 -0
  68. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/model/activate_code_pb2.py +0 -0
  69. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/model/activate_code_pb2.pyi +0 -0
  70. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/model/collab_pb2.py +0 -0
  71. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/model/collab_pb2.pyi +0 -0
  72. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/model/login_pb2.py +0 -0
  73. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/model/login_pb2.pyi +0 -0
  74. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/model/online_sketch_pb2.py +0 -0
  75. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/model/online_sketch_pb2.pyi +0 -0
  76. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/model/organisation_pb2.py +0 -0
  77. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/model/organisation_pb2.pyi +0 -0
  78. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/model/pair_device_pb2.py +0 -0
  79. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/model/pair_device_pb2.pyi +0 -0
  80. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/model/platform_rest_pb2.py +0 -0
  81. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/model/platform_rest_pb2.pyi +0 -0
  82. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/model/signup_pb2.py +0 -0
  83. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/model/signup_pb2.pyi +0 -0
  84. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/org/invitation_pb2.py +0 -0
  85. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/org/invitation_pb2.pyi +0 -0
  86. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/org/management_pb2.py +0 -0
  87. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/org/management_pb2.pyi +0 -0
  88. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/org/team_member_pb2.py +0 -0
  89. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/org/team_member_pb2.pyi +0 -0
  90. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/org/team_pb2.py +0 -0
  91. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/org/team_pb2.pyi +0 -0
  92. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/sketch/sketch_pb2.py +0 -0
  93. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/sketch/sketch_pb2.pyi +0 -0
  94. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/user/account_pb2.py +0 -0
  95. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/user/account_pb2.pyi +0 -0
  96. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/user/connections_pb2.py +0 -0
  97. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/user/connections_pb2.pyi +0 -0
  98. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/user/profile_pb2.py +0 -0
  99. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/user/profile_pb2.pyi +0 -0
  100. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/user/update_check_pb2.py +0 -0
  101. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/user/update_check_pb2.pyi +0 -0
  102. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/voicechat/transcribe_pb2.py +0 -0
  103. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/voicechat/transcribe_pb2.pyi +0 -0
  104. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/voicechat/voice_pb2.py +0 -0
  105. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/voicechat/voice_pb2.pyi +0 -0
  106. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rpc/cosketch_rpc_pb2.py +0 -0
  107. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rpc/cosketch_rpc_pb2.pyi +0 -0
  108. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rpc/cosketch_serverpush_pb2.py +0 -0
  109. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rpc/cosketch_serverpush_pb2.pyi +0 -0
  110. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rpc/files/file_upload_pb2.py +0 -0
  111. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rpc/files/file_upload_pb2.pyi +0 -0
  112. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rpc/model/collab_tools_pb2.py +0 -0
  113. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rpc/model/collab_tools_pb2.pyi +0 -0
  114. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rpc/model/common/sketch_common_pb2.py +0 -0
  115. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rpc/model/common/sketch_common_pb2.pyi +0 -0
  116. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rpc/model/common/sketch_configurable_ui_pb2.py +0 -0
  117. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rpc/model/common/sketch_configurable_ui_pb2.pyi +0 -0
  118. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rpc/model/common/sketch_interactions_pb2.py +0 -0
  119. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rpc/model/common/sketch_interactions_pb2.pyi +0 -0
  120. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rpc/model/deprecated/deprecated_sketch_model_pb2.py +0 -0
  121. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rpc/model/deprecated/deprecated_sketch_model_pb2.pyi +0 -0
  122. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rpc/model/extra/sketch_extra_pb2.py +0 -0
  123. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rpc/model/extra/sketch_extra_pb2.pyi +0 -0
  124. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rpc/model/incremental/sketch_incremental_pb2.py +0 -0
  125. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rpc/model/incremental/sketch_incremental_pb2.pyi +0 -0
  126. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rpc/model/inputs/sketch_inputs_pb2.py +0 -0
  127. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rpc/model/inputs/sketch_inputs_pb2.pyi +0 -0
  128. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rpc/model/sketch_model_pb2.py +0 -0
  129. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rpc/model/sketch_model_pb2.pyi +0 -0
  130. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/runtime/config/runtime_config_pb2.py +0 -0
  131. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/runtime/config/runtime_config_pb2.pyi +0 -0
  132. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/ui/model/ui_event_pb2.py +0 -0
  133. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/ui/model/ui_event_pb2.pyi +0 -0
  134. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/ui/model/ui_model_pb2.py +0 -0
  135. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/ui/model/ui_model_pb2.pyi +0 -0
  136. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/unity/analytics/analytics_pb2.py +0 -0
  137. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/unity/analytics/analytics_pb2.pyi +0 -0
  138. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/unity/gravi_unity_pb2.py +0 -0
  139. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/unity/gravi_unity_pb2.pyi +0 -0
  140. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/unity/unity_log_pb2.py +0 -0
  141. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/unity/unity_log_pb2.pyi +0 -0
  142. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/webanalytics/web_pb2.py +0 -0
  143. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/webanalytics/web_pb2.pyi +0 -0
  144. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/wrapper/wrappers_pb2.py +0 -0
  145. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/wrapper/wrappers_pb2.pyi +0 -0
  146. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gs_options_pb2.py +0 -0
  147. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gs_options_pb2.pyi +0 -0
  148. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1}/mcp_lp_server.egg-info/dependency_links.txt +0 -0
  149. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1}/mcp_lp_server.egg-info/entry_points.txt +0 -0
  150. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1}/mcp_lp_server.egg-info/requires.txt +0 -0
  151. {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-lp-server
3
- Version: 0.1.0
3
+ Version: 0.1.1
4
4
  Summary: Add your description here
5
5
  Requires-Python: >=3.12
6
6
  Description-Content-Type: text/markdown
@@ -40,3 +40,6 @@ protoc --python_out=codegens \
40
40
  Build: `uv build`
41
41
  Publish: `uv pip install .`
42
42
  Validate: `uv pip list | grep mcp-lp-server`
43
+
44
+ ## Token
45
+ `pypi-AgEIcHlwaS5vcmcCJGFjZWI4ODBkLTAyMzQtNDk1ZS1iOWJmLWVhMDI0NjJhNGViNQACKlszLCI2MmI0NmIwNy03YzFjLTQ0YmItOTQ3My01NmUzNWY0ODQyZGEiXQAABiCBdmopWAnOc9qEvGyLcxJSbNoKvibzXsNp9HMG4mPwzQ`
@@ -28,4 +28,7 @@ protoc --python_out=codegens \
28
28
  ## CI/CD
29
29
  Build: `uv build`
30
30
  Publish: `uv pip install .`
31
- Validate: `uv pip list | grep mcp-lp-server`
31
+ Validate: `uv pip list | grep mcp-lp-server`
32
+
33
+ ## Token
34
+ `pypi-AgEIcHlwaS5vcmcCJGFjZWI4ODBkLTAyMzQtNDk1ZS1iOWJmLWVhMDI0NjJhNGViNQACKlszLCI2MmI0NmIwNy03YzFjLTQ0YmItOTQ3My01NmUzNWY0ODQyZGEiXQAABiCBdmopWAnOc9qEvGyLcxJSbNoKvibzXsNp9HMG4mPwzQ`
File without changes
@@ -0,0 +1,4 @@
1
+ from mcp_lp_server import main
2
+
3
+ if __name__ == "__main__":
4
+ main.main()
@@ -0,0 +1,236 @@
1
+ import sys
2
+ import os
3
+
4
+ # Get the absolute path of the codegens folder
5
+ codegens_path = os.path.abspath(os.path.join(os.path.dirname(__file__), "codegens"))
6
+
7
+ # Add it to sys.path
8
+ if codegens_path not in sys.path:
9
+ sys.path.append(codegens_path)
10
+
11
+ from mcp.server.fastmcp import FastMCP
12
+ from google.protobuf.json_format import MessageToJson
13
+ import json
14
+ import requests
15
+ import codegens.gravi.rest.model.platform_rest_pb2 as platform_rest
16
+ import codegens.gravi.rest.model.login_pb2 as login_rest
17
+ import codegens.gravi.rest.auth.auth_pb2 as auth_rest
18
+ from codegens.gravi.models import gravi_model_pb2 as gravi_model
19
+
20
+
21
+ mcp = FastMCP("landingpad")
22
+
23
+ endpoint = "https://platform-dev.landingpad.me/platform/api"
24
+ # endpoint = "http://localhost:8080/platform/api"
25
+ class AuthTicket:
26
+ def __init__(self, stoken: str | None = None, userId: str=""):
27
+ self.stoken = stoken
28
+ self.userId = userId
29
+
30
+ from enum import Enum
31
+ class WorkSpace(Enum):
32
+ PRIVATE = 1
33
+ SHARED = 2
34
+
35
+ authTicket = AuthTicket()
36
+
37
+ def make_request(req: platform_rest.PlatformRestRequest) -> platform_rest.PlatformRestResponse | None:
38
+ global authTicket
39
+
40
+ """
41
+ Sends a serialized protobuf request to a specified endpoint via an HTTP POST request
42
+ and deserializes the response into a PlatformRestResponse object.
43
+ Args:
44
+ req (platform_rest.PlatformRestRequest): The protobuf request object to be serialized and sent.
45
+ Returns:
46
+ platform_rest.PlatformRestResponse | None: The deserialized response object if the request is successful
47
+ (HTTP 200), or None if an error occurs.
48
+ """
49
+ from codegens.gravi.models import gravi_model_pb2 as gravi_model
50
+ import uuid
51
+
52
+ # req.deviceInfo = gravi_model.DeviceInfo(browser = "gs-cli", os = "MacOS")
53
+ req.deviceInfo.deviceId = "gs-cli"
54
+ req.deviceInfo.browser = "gs-cli"
55
+ req.deviceInfo.os = "MacOS"
56
+
57
+ if authTicket.stoken is not None:
58
+ req.ticket.stoken = authTicket.stoken
59
+ req.clientVersion = "6.4.6-gscli"
60
+ req.reqId = uuid.uuid4().hex
61
+
62
+ # Serialize the protobuf object to a byte array
63
+ serialized_req = req.SerializeToString()
64
+
65
+ # Send the serialized data in the HTTP POST request
66
+ headers = {"Content-Type": "application/octet-stream"}
67
+ response = requests.post(endpoint, data=serialized_req, headers=headers)
68
+
69
+ # Deserialize the response binary stream into a PlatformRestResponse object
70
+ if response.status_code == 200:
71
+ platform_response = platform_rest.PlatformRestResponse()
72
+ platform_response.ParseFromString(response.content)
73
+ return platform_response
74
+ else:
75
+ print(f"Error: {response.status_code}, {response.text}")
76
+ return None
77
+
78
+ @mcp.tool("authentication-status")
79
+ def authentication_status():
80
+ """
81
+ Returns the authentication status of the user.
82
+ Returns:
83
+ dict: A json dictionary containing the authentication status of the user in key called status.
84
+ """
85
+ global authTicket
86
+ if authTicket.stoken is not None:
87
+ return """{"status": "authenticated"}"""
88
+ return """{"status": "unauthenticated"}"""
89
+
90
+ @mcp.tool("login")
91
+ def login(email: str, password: str):
92
+ """
93
+ Logs in the user with the specified email and password to Gravity Sketch Cloud.
94
+ Args:
95
+ email (str): The email of the user.
96
+ password (str): The password of the user.
97
+ Returns:
98
+ dict: A json dictionary containing:
99
+ result: the result of the login operation,
100
+ ticket: the authentication ticket if the login is successful and the expiry time of the ticket.
101
+ authDetail: the authentication details of the user if the login is successful, which includes the user ID.
102
+ """
103
+ global authTicket # Declare stoken as global to modify its value
104
+ req = platform_rest.PlatformRestRequest()
105
+ req.restType = platform_rest.PlatformRestType.LoginByEmail
106
+ req.loginByEmailRequest.email = email
107
+ req.loginByEmailRequest.password = password
108
+
109
+ platform_response = make_request(req)
110
+
111
+ # Deserialize the response binary stream into a PlatformRestResponse object
112
+ if platform_response is not None:
113
+ if platform_response.loginResponse.result == login_rest.LoginResult.LoginSuccess:
114
+ authTicket.stoken = platform_response.loginResponse.ticket.stoken
115
+ authTicket.userId = platform_response.loginResponse.authDetail.userId
116
+ return MessageToJson(platform_response.loginResponse)
117
+ return """{"result": %s}""" % login_rest.LoginResult.LoginFailure
118
+
119
+ @mcp.tool("logout")
120
+ def logout():
121
+ """
122
+ Logs out the user from Gravity Sketch Cloud.
123
+ Returns:
124
+ dict: A json dictionary containing the result of the logout operation.
125
+ """
126
+ global authTicket
127
+ if authTicket.stoken is None:
128
+ return {"result": "NotAuthenticated", "errorMessage": "User is not authenticated."}
129
+
130
+ req = platform_rest.PlatformRestRequest()
131
+ req.restType = platform_rest.PlatformRestType.Logout
132
+
133
+ platform_response = make_request(req)
134
+ if platform_response is not None and platform_response.errorCode == platform_rest.PlatformRestError.Ok:
135
+ authTicket.stoken = None
136
+ authTicket.userId = ""
137
+ return """{"result": "success"}"""
138
+ return """{"result": "failure"}"""
139
+
140
+ @mcp.tool("get-user-profile")
141
+ def get_user_profile():
142
+ """
143
+ Gets the user profile of the logged-in user.
144
+ Returns:
145
+ dict: A json dictionary containing
146
+ result: the result of the operation
147
+ userProfile: the user profile if the operation is successful.
148
+ """
149
+ req = platform_rest.PlatformRestRequest()
150
+ req.restType = platform_rest.PlatformRestType.GetLoggedInUserV2
151
+
152
+ platform_response = make_request(req)
153
+ if platform_response is not None and platform_response.errorCode == platform_rest.PlatformRestError.Ok:
154
+ return """{"result": "success", "userProfile": %s}""" % MessageToJson(platform_response.getLoggedInUserResponseV2)
155
+ return """{"result": "failure"}"""
156
+
157
+
158
+ @mcp.tool("list-docs")
159
+ def list_docs(folder: str, workspace: WorkSpace = WorkSpace.PRIVATE, page_size: int = 10, offset: int = 0):
160
+ """
161
+ Lists the documents in the specified folder from Gravity Sketch Cloud.
162
+ Args:
163
+ folder (str): The folder to list the documents from. Default is an empty string for the root folder.
164
+ workspace (WorkSpace): The workspace to list the documents from. Default is WorkSpace.PRIVATE.
165
+ page_size (int): The number of documents to list per page.
166
+ offset (int): The offset of the documents to list.
167
+ Returns:
168
+ dict: A json dictionary containing:
169
+ result: the result of the operation,
170
+ docs: the list of documents if the operation is successful.
171
+ """
172
+ req = platform_rest.PlatformRestRequest()
173
+ req.restType = platform_rest.PlatformRestType.ListDocs
174
+ req.listDocsRequest.spaceId.ownerId = authTicket.userId
175
+ req.listDocsRequest.spaceId.ownerIdType = gravi_model.IdType.UserId
176
+ if workspace == WorkSpace.PRIVATE:
177
+ req.listDocsRequest.spaceId.partitionId = authTicket.userId
178
+ req.listDocsRequest.spaceId.partitionIdType = gravi_model.IdType.UserId
179
+ else:
180
+ # Shared workspace is not unsupported currently as orgs and teams are not exposed by mcp
181
+ req.listDocsRequest.spaceId.partitionId = authTicket.userId
182
+ # req.listDocsRequest.spaceId.partitionIdType = gravi_model.IdType.OrgTeamId
183
+ req.listDocsRequest.spaceId.partitionIdType = gravi_model.IdType.UserId
184
+
185
+ req.listDocsRequest.folder = folder
186
+ req.listDocsRequest.pageSize = page_size
187
+ req.listDocsRequest.offset = offset
188
+
189
+ platform_response = make_request(req)
190
+
191
+ def summariseDoc(doc: gravi_model.DocumentTO):
192
+ return {"documentId": doc.documentId, "name": doc.docName, "type": doc.docType, "size": doc.fileSize, "created": doc.createdBy}
193
+
194
+ if platform_response is not None and platform_response.errorCode == platform_rest.PlatformRestError.Ok:
195
+ response_summary = [summariseDoc(doc) for doc in platform_response.listDocsResponse.docs]
196
+ return """{"result": "success", "documents": %s}""" % json.dumps(response_summary) # MessageToJson(platform_response.listDocsResponse)
197
+ return """{"result": "failure"}"""
198
+
199
+ @mcp.tool("download-doc")
200
+ def download_doc(doc_id: str, destination_path: str):
201
+ """
202
+ Downloads the document with the specified ID to the specified destination path from Gravity Sketch Cloud.
203
+ Args:
204
+ doc_id (str): The ID of the document to download.
205
+ destination_path (str): The path to save the downloaded document.
206
+ Returns:
207
+ dict: A json dictionary containing:
208
+ result: the result of the operation,
209
+ message: the message indicating the result of the operation.
210
+ """
211
+ req = platform_rest.PlatformRestRequest()
212
+ req.restType = platform_rest.PlatformRestType.DownloadDoc
213
+ req.downloadDocRequest.docId = doc_id
214
+
215
+ platform_response = make_request(req)
216
+ if platform_response is not None and platform_response.errorCode == platform_rest.PlatformRestError.Ok:
217
+ download_url = platform_response.DownloadDocResponse.downloadUrl
218
+ response = requests.get(download_url, stream=True)
219
+ if response.status_code == 200:
220
+ with open(destination_path, 'wb') as file:
221
+ for chunk in response.iter_content(chunk_size=8192):
222
+ file.write(chunk)
223
+ return """{"result": "success", "message": f"File downloaded to {%s}"}""" % destination_path
224
+ else:
225
+ return """{"result": "failure", "errorMessage": f"Failed to download file. HTTP {%s}"}""" % response.status_code
226
+
227
+ return """{"result": "failure to get doc url"}"""
228
+
229
+ # Main execution
230
+
231
+ def main():
232
+ """Run the MCP server"""
233
+ mcp.run()
234
+
235
+ if __name__ == "__main__":
236
+ main()
@@ -0,0 +1,22 @@
1
+ import sys
2
+ import os
3
+
4
+ # Get the absolute path of the codegens folder
5
+ module_folder = os.path.abspath(os.path.join(os.path.dirname(__file__)))
6
+
7
+ # Add it to sys.path
8
+ if module_folder not in sys.path:
9
+ sys.path.append(module_folder)
10
+ print("Added %s to sys.path" % module_folder)
11
+
12
+
13
+ from gs_web_server import main as server_main
14
+
15
+ def main():
16
+ """Entry point for the lp mcp package"""
17
+ print("Starting mcp server...")
18
+ server_main()
19
+
20
+
21
+ if __name__ == "__main__":
22
+ main()
@@ -0,0 +1,13 @@
1
+ import gs_web_server as gs
2
+
3
+ def main():
4
+ print(gs.login("ke+1@gravitysketch.com", "Password1"))
5
+ print(gs.get_user_profile())
6
+ print(gs.list_docs(""))
7
+ # print(gs.download_doc("4b2d0126-b558-4b7c-8cb7-477d485a744c", "test.png"))
8
+ print(gs.logout())
9
+ print(gs.authentication_status())
10
+
11
+
12
+ if __name__ == "__main__":
13
+ main()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-lp-server
3
- Version: 0.1.0
3
+ Version: 0.1.1
4
4
  Summary: Add your description here
5
5
  Requires-Python: >=3.12
6
6
  Description-Content-Type: text/markdown
@@ -40,3 +40,6 @@ protoc --python_out=codegens \
40
40
  Build: `uv build`
41
41
  Publish: `uv pip install .`
42
42
  Validate: `uv pip list | grep mcp-lp-server`
43
+
44
+ ## Token
45
+ `pypi-AgEIcHlwaS5vcmcCJGFjZWI4ODBkLTAyMzQtNDk1ZS1iOWJmLWVhMDI0NjJhNGViNQACKlszLCI2MmI0NmIwNy03YzFjLTQ0YmItOTQ3My01NmUzNWY0ODQyZGEiXQAABiCBdmopWAnOc9qEvGyLcxJSbNoKvibzXsNp9HMG4mPwzQ`
@@ -0,0 +1,147 @@
1
+ README.md
2
+ pyproject.toml
3
+ mcp_lp_server/__init__.py
4
+ mcp_lp_server/__main__.py
5
+ mcp_lp_server/gs_web_server.py
6
+ mcp_lp_server/main.py
7
+ mcp_lp_server/main_debug.py
8
+ mcp_lp_server.egg-info/PKG-INFO
9
+ mcp_lp_server.egg-info/SOURCES.txt
10
+ mcp_lp_server.egg-info/dependency_links.txt
11
+ mcp_lp_server.egg-info/entry_points.txt
12
+ mcp_lp_server.egg-info/requires.txt
13
+ mcp_lp_server.egg-info/top_level.txt
14
+ mcp_lp_server/codegens/gs_options_pb2.py
15
+ mcp_lp_server/codegens/gs_options_pb2.pyi
16
+ mcp_lp_server/codegens/gravi/cms/cms_content_pb2.py
17
+ mcp_lp_server/codegens/gravi/cms/cms_content_pb2.pyi
18
+ mcp_lp_server/codegens/gravi/common/gravi_common_pb2.py
19
+ mcp_lp_server/codegens/gravi/common/gravi_common_pb2.pyi
20
+ mcp_lp_server/codegens/gravi/gsfile/sketch_gsfile_pb2.py
21
+ mcp_lp_server/codegens/gravi/gsfile/sketch_gsfile_pb2.pyi
22
+ mcp_lp_server/codegens/gravi/gsfile/asset/persistence/asset_pb2.py
23
+ mcp_lp_server/codegens/gravi/gsfile/asset/persistence/asset_pb2.pyi
24
+ mcp_lp_server/codegens/gravi/gsfile/layergroup/persistence/layer_group_pb2.py
25
+ mcp_lp_server/codegens/gravi/gsfile/layergroup/persistence/layer_group_pb2.pyi
26
+ mcp_lp_server/codegens/gravi/gsfile/legacy/legacy_gsfile_pb2.py
27
+ mcp_lp_server/codegens/gravi/gsfile/legacy/legacy_gsfile_pb2.pyi
28
+ mcp_lp_server/codegens/gravi/gsfile/metadata/persistence/metadata_pb2.py
29
+ mcp_lp_server/codegens/gravi/gsfile/metadata/persistence/metadata_pb2.pyi
30
+ mcp_lp_server/codegens/gravi/gsfile/strokelayer/persistence/layer_pb2.py
31
+ mcp_lp_server/codegens/gravi/gsfile/strokelayer/persistence/layer_pb2.pyi
32
+ mcp_lp_server/codegens/gravi/library/material_library_pb2.py
33
+ mcp_lp_server/codegens/gravi/library/material_library_pb2.pyi
34
+ mcp_lp_server/codegens/gravi/localization/localization_pb2.py
35
+ mcp_lp_server/codegens/gravi/localization/localization_pb2.pyi
36
+ mcp_lp_server/codegens/gravi/models/bot_export_pb2.py
37
+ mcp_lp_server/codegens/gravi/models/bot_export_pb2.pyi
38
+ mcp_lp_server/codegens/gravi/models/gravi_model_pb2.py
39
+ mcp_lp_server/codegens/gravi/models/gravi_model_pb2.pyi
40
+ mcp_lp_server/codegens/gravi/models/notifications_pb2.py
41
+ mcp_lp_server/codegens/gravi/models/notifications_pb2.pyi
42
+ mcp_lp_server/codegens/gravi/models/preferences_pb2.py
43
+ mcp_lp_server/codegens/gravi/models/preferences_pb2.pyi
44
+ mcp_lp_server/codegens/gravi/models/rhino_compute_pb2.py
45
+ mcp_lp_server/codegens/gravi/models/rhino_compute_pb2.pyi
46
+ mcp_lp_server/codegens/gravi/proxy/control_pb2.py
47
+ mcp_lp_server/codegens/gravi/proxy/control_pb2.pyi
48
+ mcp_lp_server/codegens/gravi/release/release_pb2.py
49
+ mcp_lp_server/codegens/gravi/release/release_pb2.pyi
50
+ mcp_lp_server/codegens/gravi/rest/ai/ask_pb2.py
51
+ mcp_lp_server/codegens/gravi/rest/ai/ask_pb2.pyi
52
+ mcp_lp_server/codegens/gravi/rest/ai/image_pb2.py
53
+ mcp_lp_server/codegens/gravi/rest/ai/image_pb2.pyi
54
+ mcp_lp_server/codegens/gravi/rest/auth/auth_pb2.py
55
+ mcp_lp_server/codegens/gravi/rest/auth/auth_pb2.pyi
56
+ mcp_lp_server/codegens/gravi/rest/common/async_pb2.py
57
+ mcp_lp_server/codegens/gravi/rest/common/async_pb2.pyi
58
+ mcp_lp_server/codegens/gravi/rest/doc/comment_pb2.py
59
+ mcp_lp_server/codegens/gravi/rest/doc/comment_pb2.pyi
60
+ mcp_lp_server/codegens/gravi/rest/doc/doc_rest_pb2.py
61
+ mcp_lp_server/codegens/gravi/rest/doc/doc_rest_pb2.pyi
62
+ mcp_lp_server/codegens/gravi/rest/doc/export_pb2.py
63
+ mcp_lp_server/codegens/gravi/rest/doc/export_pb2.pyi
64
+ mcp_lp_server/codegens/gravi/rest/doc/revision_pb2.py
65
+ mcp_lp_server/codegens/gravi/rest/doc/revision_pb2.pyi
66
+ mcp_lp_server/codegens/gravi/rest/doc/room_pb2.py
67
+ mcp_lp_server/codegens/gravi/rest/doc/room_pb2.pyi
68
+ mcp_lp_server/codegens/gravi/rest/model/achievement_pb2.py
69
+ mcp_lp_server/codegens/gravi/rest/model/achievement_pb2.pyi
70
+ mcp_lp_server/codegens/gravi/rest/model/activate_code_pb2.py
71
+ mcp_lp_server/codegens/gravi/rest/model/activate_code_pb2.pyi
72
+ mcp_lp_server/codegens/gravi/rest/model/collab_pb2.py
73
+ mcp_lp_server/codegens/gravi/rest/model/collab_pb2.pyi
74
+ mcp_lp_server/codegens/gravi/rest/model/login_pb2.py
75
+ mcp_lp_server/codegens/gravi/rest/model/login_pb2.pyi
76
+ mcp_lp_server/codegens/gravi/rest/model/online_sketch_pb2.py
77
+ mcp_lp_server/codegens/gravi/rest/model/online_sketch_pb2.pyi
78
+ mcp_lp_server/codegens/gravi/rest/model/organisation_pb2.py
79
+ mcp_lp_server/codegens/gravi/rest/model/organisation_pb2.pyi
80
+ mcp_lp_server/codegens/gravi/rest/model/pair_device_pb2.py
81
+ mcp_lp_server/codegens/gravi/rest/model/pair_device_pb2.pyi
82
+ mcp_lp_server/codegens/gravi/rest/model/platform_rest_pb2.py
83
+ mcp_lp_server/codegens/gravi/rest/model/platform_rest_pb2.pyi
84
+ mcp_lp_server/codegens/gravi/rest/model/signup_pb2.py
85
+ mcp_lp_server/codegens/gravi/rest/model/signup_pb2.pyi
86
+ mcp_lp_server/codegens/gravi/rest/org/invitation_pb2.py
87
+ mcp_lp_server/codegens/gravi/rest/org/invitation_pb2.pyi
88
+ mcp_lp_server/codegens/gravi/rest/org/management_pb2.py
89
+ mcp_lp_server/codegens/gravi/rest/org/management_pb2.pyi
90
+ mcp_lp_server/codegens/gravi/rest/org/team_member_pb2.py
91
+ mcp_lp_server/codegens/gravi/rest/org/team_member_pb2.pyi
92
+ mcp_lp_server/codegens/gravi/rest/org/team_pb2.py
93
+ mcp_lp_server/codegens/gravi/rest/org/team_pb2.pyi
94
+ mcp_lp_server/codegens/gravi/rest/sketch/sketch_pb2.py
95
+ mcp_lp_server/codegens/gravi/rest/sketch/sketch_pb2.pyi
96
+ mcp_lp_server/codegens/gravi/rest/user/account_pb2.py
97
+ mcp_lp_server/codegens/gravi/rest/user/account_pb2.pyi
98
+ mcp_lp_server/codegens/gravi/rest/user/connections_pb2.py
99
+ mcp_lp_server/codegens/gravi/rest/user/connections_pb2.pyi
100
+ mcp_lp_server/codegens/gravi/rest/user/profile_pb2.py
101
+ mcp_lp_server/codegens/gravi/rest/user/profile_pb2.pyi
102
+ mcp_lp_server/codegens/gravi/rest/user/update_check_pb2.py
103
+ mcp_lp_server/codegens/gravi/rest/user/update_check_pb2.pyi
104
+ mcp_lp_server/codegens/gravi/rest/voicechat/transcribe_pb2.py
105
+ mcp_lp_server/codegens/gravi/rest/voicechat/transcribe_pb2.pyi
106
+ mcp_lp_server/codegens/gravi/rest/voicechat/voice_pb2.py
107
+ mcp_lp_server/codegens/gravi/rest/voicechat/voice_pb2.pyi
108
+ mcp_lp_server/codegens/gravi/rpc/cosketch_rpc_pb2.py
109
+ mcp_lp_server/codegens/gravi/rpc/cosketch_rpc_pb2.pyi
110
+ mcp_lp_server/codegens/gravi/rpc/cosketch_serverpush_pb2.py
111
+ mcp_lp_server/codegens/gravi/rpc/cosketch_serverpush_pb2.pyi
112
+ mcp_lp_server/codegens/gravi/rpc/files/file_upload_pb2.py
113
+ mcp_lp_server/codegens/gravi/rpc/files/file_upload_pb2.pyi
114
+ mcp_lp_server/codegens/gravi/rpc/model/collab_tools_pb2.py
115
+ mcp_lp_server/codegens/gravi/rpc/model/collab_tools_pb2.pyi
116
+ mcp_lp_server/codegens/gravi/rpc/model/sketch_model_pb2.py
117
+ mcp_lp_server/codegens/gravi/rpc/model/sketch_model_pb2.pyi
118
+ mcp_lp_server/codegens/gravi/rpc/model/common/sketch_common_pb2.py
119
+ mcp_lp_server/codegens/gravi/rpc/model/common/sketch_common_pb2.pyi
120
+ mcp_lp_server/codegens/gravi/rpc/model/common/sketch_configurable_ui_pb2.py
121
+ mcp_lp_server/codegens/gravi/rpc/model/common/sketch_configurable_ui_pb2.pyi
122
+ mcp_lp_server/codegens/gravi/rpc/model/common/sketch_interactions_pb2.py
123
+ mcp_lp_server/codegens/gravi/rpc/model/common/sketch_interactions_pb2.pyi
124
+ mcp_lp_server/codegens/gravi/rpc/model/deprecated/deprecated_sketch_model_pb2.py
125
+ mcp_lp_server/codegens/gravi/rpc/model/deprecated/deprecated_sketch_model_pb2.pyi
126
+ mcp_lp_server/codegens/gravi/rpc/model/extra/sketch_extra_pb2.py
127
+ mcp_lp_server/codegens/gravi/rpc/model/extra/sketch_extra_pb2.pyi
128
+ mcp_lp_server/codegens/gravi/rpc/model/incremental/sketch_incremental_pb2.py
129
+ mcp_lp_server/codegens/gravi/rpc/model/incremental/sketch_incremental_pb2.pyi
130
+ mcp_lp_server/codegens/gravi/rpc/model/inputs/sketch_inputs_pb2.py
131
+ mcp_lp_server/codegens/gravi/rpc/model/inputs/sketch_inputs_pb2.pyi
132
+ mcp_lp_server/codegens/gravi/runtime/config/runtime_config_pb2.py
133
+ mcp_lp_server/codegens/gravi/runtime/config/runtime_config_pb2.pyi
134
+ mcp_lp_server/codegens/gravi/ui/model/ui_event_pb2.py
135
+ mcp_lp_server/codegens/gravi/ui/model/ui_event_pb2.pyi
136
+ mcp_lp_server/codegens/gravi/ui/model/ui_model_pb2.py
137
+ mcp_lp_server/codegens/gravi/ui/model/ui_model_pb2.pyi
138
+ mcp_lp_server/codegens/gravi/unity/gravi_unity_pb2.py
139
+ mcp_lp_server/codegens/gravi/unity/gravi_unity_pb2.pyi
140
+ mcp_lp_server/codegens/gravi/unity/unity_log_pb2.py
141
+ mcp_lp_server/codegens/gravi/unity/unity_log_pb2.pyi
142
+ mcp_lp_server/codegens/gravi/unity/analytics/analytics_pb2.py
143
+ mcp_lp_server/codegens/gravi/unity/analytics/analytics_pb2.pyi
144
+ mcp_lp_server/codegens/gravi/webanalytics/web_pb2.py
145
+ mcp_lp_server/codegens/gravi/webanalytics/web_pb2.pyi
146
+ mcp_lp_server/codegens/gravi/wrapper/wrappers_pb2.py
147
+ mcp_lp_server/codegens/gravi/wrapper/wrappers_pb2.pyi
@@ -0,0 +1,2 @@
1
+ codegens
2
+ gravi
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mcp-lp-server"
3
- version = "0.1.0"
3
+ version = "0.1.1"
4
4
  description = "Add your description here"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -12,7 +12,7 @@ dependencies = [
12
12
  ]
13
13
 
14
14
  [tool.setuptools.packages.find]
15
- where = [".", "codegens"]
15
+ where = ["mcp_lp_server", "mcp_lp_server/codegens"]
16
16
 
17
17
  [project.scripts]
18
- mcp-lp-server = "mcp_lp_server.main:main"
18
+ mcp-lp-server = "mcp_lp_server.main:main"
@@ -1,142 +0,0 @@
1
- README.md
2
- pyproject.toml
3
- codegens/gs_options_pb2.py
4
- codegens/gs_options_pb2.pyi
5
- codegens/gravi/cms/cms_content_pb2.py
6
- codegens/gravi/cms/cms_content_pb2.pyi
7
- codegens/gravi/common/gravi_common_pb2.py
8
- codegens/gravi/common/gravi_common_pb2.pyi
9
- codegens/gravi/gsfile/sketch_gsfile_pb2.py
10
- codegens/gravi/gsfile/sketch_gsfile_pb2.pyi
11
- codegens/gravi/gsfile/asset/persistence/asset_pb2.py
12
- codegens/gravi/gsfile/asset/persistence/asset_pb2.pyi
13
- codegens/gravi/gsfile/layergroup/persistence/layer_group_pb2.py
14
- codegens/gravi/gsfile/layergroup/persistence/layer_group_pb2.pyi
15
- codegens/gravi/gsfile/legacy/legacy_gsfile_pb2.py
16
- codegens/gravi/gsfile/legacy/legacy_gsfile_pb2.pyi
17
- codegens/gravi/gsfile/metadata/persistence/metadata_pb2.py
18
- codegens/gravi/gsfile/metadata/persistence/metadata_pb2.pyi
19
- codegens/gravi/gsfile/strokelayer/persistence/layer_pb2.py
20
- codegens/gravi/gsfile/strokelayer/persistence/layer_pb2.pyi
21
- codegens/gravi/library/material_library_pb2.py
22
- codegens/gravi/library/material_library_pb2.pyi
23
- codegens/gravi/localization/localization_pb2.py
24
- codegens/gravi/localization/localization_pb2.pyi
25
- codegens/gravi/models/bot_export_pb2.py
26
- codegens/gravi/models/bot_export_pb2.pyi
27
- codegens/gravi/models/gravi_model_pb2.py
28
- codegens/gravi/models/gravi_model_pb2.pyi
29
- codegens/gravi/models/notifications_pb2.py
30
- codegens/gravi/models/notifications_pb2.pyi
31
- codegens/gravi/models/preferences_pb2.py
32
- codegens/gravi/models/preferences_pb2.pyi
33
- codegens/gravi/models/rhino_compute_pb2.py
34
- codegens/gravi/models/rhino_compute_pb2.pyi
35
- codegens/gravi/proxy/control_pb2.py
36
- codegens/gravi/proxy/control_pb2.pyi
37
- codegens/gravi/release/release_pb2.py
38
- codegens/gravi/release/release_pb2.pyi
39
- codegens/gravi/rest/ai/ask_pb2.py
40
- codegens/gravi/rest/ai/ask_pb2.pyi
41
- codegens/gravi/rest/ai/image_pb2.py
42
- codegens/gravi/rest/ai/image_pb2.pyi
43
- codegens/gravi/rest/auth/auth_pb2.py
44
- codegens/gravi/rest/auth/auth_pb2.pyi
45
- codegens/gravi/rest/common/async_pb2.py
46
- codegens/gravi/rest/common/async_pb2.pyi
47
- codegens/gravi/rest/doc/comment_pb2.py
48
- codegens/gravi/rest/doc/comment_pb2.pyi
49
- codegens/gravi/rest/doc/doc_rest_pb2.py
50
- codegens/gravi/rest/doc/doc_rest_pb2.pyi
51
- codegens/gravi/rest/doc/export_pb2.py
52
- codegens/gravi/rest/doc/export_pb2.pyi
53
- codegens/gravi/rest/doc/revision_pb2.py
54
- codegens/gravi/rest/doc/revision_pb2.pyi
55
- codegens/gravi/rest/doc/room_pb2.py
56
- codegens/gravi/rest/doc/room_pb2.pyi
57
- codegens/gravi/rest/model/achievement_pb2.py
58
- codegens/gravi/rest/model/achievement_pb2.pyi
59
- codegens/gravi/rest/model/activate_code_pb2.py
60
- codegens/gravi/rest/model/activate_code_pb2.pyi
61
- codegens/gravi/rest/model/collab_pb2.py
62
- codegens/gravi/rest/model/collab_pb2.pyi
63
- codegens/gravi/rest/model/login_pb2.py
64
- codegens/gravi/rest/model/login_pb2.pyi
65
- codegens/gravi/rest/model/online_sketch_pb2.py
66
- codegens/gravi/rest/model/online_sketch_pb2.pyi
67
- codegens/gravi/rest/model/organisation_pb2.py
68
- codegens/gravi/rest/model/organisation_pb2.pyi
69
- codegens/gravi/rest/model/pair_device_pb2.py
70
- codegens/gravi/rest/model/pair_device_pb2.pyi
71
- codegens/gravi/rest/model/platform_rest_pb2.py
72
- codegens/gravi/rest/model/platform_rest_pb2.pyi
73
- codegens/gravi/rest/model/signup_pb2.py
74
- codegens/gravi/rest/model/signup_pb2.pyi
75
- codegens/gravi/rest/org/invitation_pb2.py
76
- codegens/gravi/rest/org/invitation_pb2.pyi
77
- codegens/gravi/rest/org/management_pb2.py
78
- codegens/gravi/rest/org/management_pb2.pyi
79
- codegens/gravi/rest/org/team_member_pb2.py
80
- codegens/gravi/rest/org/team_member_pb2.pyi
81
- codegens/gravi/rest/org/team_pb2.py
82
- codegens/gravi/rest/org/team_pb2.pyi
83
- codegens/gravi/rest/sketch/sketch_pb2.py
84
- codegens/gravi/rest/sketch/sketch_pb2.pyi
85
- codegens/gravi/rest/user/account_pb2.py
86
- codegens/gravi/rest/user/account_pb2.pyi
87
- codegens/gravi/rest/user/connections_pb2.py
88
- codegens/gravi/rest/user/connections_pb2.pyi
89
- codegens/gravi/rest/user/profile_pb2.py
90
- codegens/gravi/rest/user/profile_pb2.pyi
91
- codegens/gravi/rest/user/update_check_pb2.py
92
- codegens/gravi/rest/user/update_check_pb2.pyi
93
- codegens/gravi/rest/voicechat/transcribe_pb2.py
94
- codegens/gravi/rest/voicechat/transcribe_pb2.pyi
95
- codegens/gravi/rest/voicechat/voice_pb2.py
96
- codegens/gravi/rest/voicechat/voice_pb2.pyi
97
- codegens/gravi/rpc/cosketch_rpc_pb2.py
98
- codegens/gravi/rpc/cosketch_rpc_pb2.pyi
99
- codegens/gravi/rpc/cosketch_serverpush_pb2.py
100
- codegens/gravi/rpc/cosketch_serverpush_pb2.pyi
101
- codegens/gravi/rpc/files/file_upload_pb2.py
102
- codegens/gravi/rpc/files/file_upload_pb2.pyi
103
- codegens/gravi/rpc/model/collab_tools_pb2.py
104
- codegens/gravi/rpc/model/collab_tools_pb2.pyi
105
- codegens/gravi/rpc/model/sketch_model_pb2.py
106
- codegens/gravi/rpc/model/sketch_model_pb2.pyi
107
- codegens/gravi/rpc/model/common/sketch_common_pb2.py
108
- codegens/gravi/rpc/model/common/sketch_common_pb2.pyi
109
- codegens/gravi/rpc/model/common/sketch_configurable_ui_pb2.py
110
- codegens/gravi/rpc/model/common/sketch_configurable_ui_pb2.pyi
111
- codegens/gravi/rpc/model/common/sketch_interactions_pb2.py
112
- codegens/gravi/rpc/model/common/sketch_interactions_pb2.pyi
113
- codegens/gravi/rpc/model/deprecated/deprecated_sketch_model_pb2.py
114
- codegens/gravi/rpc/model/deprecated/deprecated_sketch_model_pb2.pyi
115
- codegens/gravi/rpc/model/extra/sketch_extra_pb2.py
116
- codegens/gravi/rpc/model/extra/sketch_extra_pb2.pyi
117
- codegens/gravi/rpc/model/incremental/sketch_incremental_pb2.py
118
- codegens/gravi/rpc/model/incremental/sketch_incremental_pb2.pyi
119
- codegens/gravi/rpc/model/inputs/sketch_inputs_pb2.py
120
- codegens/gravi/rpc/model/inputs/sketch_inputs_pb2.pyi
121
- codegens/gravi/runtime/config/runtime_config_pb2.py
122
- codegens/gravi/runtime/config/runtime_config_pb2.pyi
123
- codegens/gravi/ui/model/ui_event_pb2.py
124
- codegens/gravi/ui/model/ui_event_pb2.pyi
125
- codegens/gravi/ui/model/ui_model_pb2.py
126
- codegens/gravi/ui/model/ui_model_pb2.pyi
127
- codegens/gravi/unity/gravi_unity_pb2.py
128
- codegens/gravi/unity/gravi_unity_pb2.pyi
129
- codegens/gravi/unity/unity_log_pb2.py
130
- codegens/gravi/unity/unity_log_pb2.pyi
131
- codegens/gravi/unity/analytics/analytics_pb2.py
132
- codegens/gravi/unity/analytics/analytics_pb2.pyi
133
- codegens/gravi/webanalytics/web_pb2.py
134
- codegens/gravi/webanalytics/web_pb2.pyi
135
- codegens/gravi/wrapper/wrappers_pb2.py
136
- codegens/gravi/wrapper/wrappers_pb2.pyi
137
- mcp_lp_server.egg-info/PKG-INFO
138
- mcp_lp_server.egg-info/SOURCES.txt
139
- mcp_lp_server.egg-info/dependency_links.txt
140
- mcp_lp_server.egg-info/entry_points.txt
141
- mcp_lp_server.egg-info/requires.txt
142
- mcp_lp_server.egg-info/top_level.txt
@@ -1,5 +0,0 @@
1
- build
2
- codegens
3
- dist
4
- gravi
5
- proto