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.
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1}/PKG-INFO +4 -1
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1}/README.md +4 -1
- mcp_lp_server-0.1.1/mcp_lp_server/__init__.py +0 -0
- mcp_lp_server-0.1.1/mcp_lp_server/__main__.py +4 -0
- mcp_lp_server-0.1.1/mcp_lp_server/gs_web_server.py +236 -0
- mcp_lp_server-0.1.1/mcp_lp_server/main.py +22 -0
- mcp_lp_server-0.1.1/mcp_lp_server/main_debug.py +13 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1}/mcp_lp_server.egg-info/PKG-INFO +4 -1
- mcp_lp_server-0.1.1/mcp_lp_server.egg-info/SOURCES.txt +147 -0
- mcp_lp_server-0.1.1/mcp_lp_server.egg-info/top_level.txt +2 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1}/pyproject.toml +3 -3
- mcp_lp_server-0.1.0/mcp_lp_server.egg-info/SOURCES.txt +0 -142
- mcp_lp_server-0.1.0/mcp_lp_server.egg-info/top_level.txt +0 -5
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/cms/cms_content_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/cms/cms_content_pb2.pyi +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/common/gravi_common_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/common/gravi_common_pb2.pyi +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/gsfile/sketch_gsfile_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/gsfile/sketch_gsfile_pb2.pyi +0 -0
- {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
- {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
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/library/material_library_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/library/material_library_pb2.pyi +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/localization/localization_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/localization/localization_pb2.pyi +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/models/bot_export_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/models/bot_export_pb2.pyi +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/models/gravi_model_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/models/gravi_model_pb2.pyi +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/models/notifications_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/models/notifications_pb2.pyi +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/models/preferences_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/models/preferences_pb2.pyi +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/models/rhino_compute_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/models/rhino_compute_pb2.pyi +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/proxy/control_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/proxy/control_pb2.pyi +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/release/release_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/release/release_pb2.pyi +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/ai/ask_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/ai/ask_pb2.pyi +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/ai/image_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/ai/image_pb2.pyi +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/auth/auth_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/auth/auth_pb2.pyi +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/common/async_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/common/async_pb2.pyi +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/doc/comment_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/doc/comment_pb2.pyi +0 -0
- {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
- {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
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/doc/export_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/doc/export_pb2.pyi +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/doc/revision_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/doc/revision_pb2.pyi +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/doc/room_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/doc/room_pb2.pyi +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/model/achievement_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/model/achievement_pb2.pyi +0 -0
- {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
- {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
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/model/collab_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/model/collab_pb2.pyi +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/model/login_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/model/login_pb2.pyi +0 -0
- {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
- {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
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/model/organisation_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/model/organisation_pb2.pyi +0 -0
- {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
- {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
- {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
- {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
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/model/signup_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/model/signup_pb2.pyi +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/org/invitation_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/org/invitation_pb2.pyi +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/org/management_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/org/management_pb2.pyi +0 -0
- {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
- {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
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/org/team_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/org/team_pb2.pyi +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/sketch/sketch_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/sketch/sketch_pb2.pyi +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/user/account_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/user/account_pb2.pyi +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/user/connections_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/user/connections_pb2.pyi +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/user/profile_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/user/profile_pb2.pyi +0 -0
- {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
- {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
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/voicechat/transcribe_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/voicechat/transcribe_pb2.pyi +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/voicechat/voice_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rest/voicechat/voice_pb2.pyi +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rpc/cosketch_rpc_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rpc/cosketch_rpc_pb2.pyi +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rpc/cosketch_serverpush_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/rpc/cosketch_serverpush_pb2.pyi +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/unity/analytics/analytics_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/unity/analytics/analytics_pb2.pyi +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/unity/gravi_unity_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/unity/gravi_unity_pb2.pyi +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/unity/unity_log_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/unity/unity_log_pb2.pyi +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/webanalytics/web_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/webanalytics/web_pb2.pyi +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/wrapper/wrappers_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/wrapper/wrappers_pb2.pyi +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gs_options_pb2.py +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gs_options_pb2.pyi +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1}/mcp_lp_server.egg-info/dependency_links.txt +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1}/mcp_lp_server.egg-info/entry_points.txt +0 -0
- {mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1}/mcp_lp_server.egg-info/requires.txt +0 -0
- {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.
|
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,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.
|
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
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[project]
|
2
2
|
name = "mcp-lp-server"
|
3
|
-
version = "0.1.
|
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 = ["
|
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
|
{mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/cms/cms_content_pb2.py
RENAMED
File without changes
|
{mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/cms/cms_content_pb2.pyi
RENAMED
File without changes
|
{mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/common/gravi_common_pb2.py
RENAMED
File without changes
|
{mcp_lp_server-0.1.0 → mcp_lp_server-0.1.1/mcp_lp_server}/codegens/gravi/common/gravi_common_pb2.pyi
RENAMED
File without changes
|
File without changes
|
File without changes
|