mcpscraper-memory-sdk 0.13.0__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.
- mcpscraper_memory_sdk-0.13.0/.gitignore +12 -0
- mcpscraper_memory_sdk-0.13.0/PKG-INFO +61 -0
- mcpscraper_memory_sdk-0.13.0/README.md +50 -0
- mcpscraper_memory_sdk-0.13.0/pyproject.toml +27 -0
- mcpscraper_memory_sdk-0.13.0/scripts/generate_models.py +154 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/__init__.py +9 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/_generated_client.py +588 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/_mcp_generated_client.py +1111 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/client.py +115 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/errors.py +17 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_client.py +136 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/__init__.py +0 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/access_accept_share.py +17 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/access_approve_sender.py +16 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/access_decline_share.py +16 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/access_inbox_settings.py +16 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/access_invite_account.py +21 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/access_issue_key.py +26 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/access_list_approved_senders.py +15 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/access_list_keys.py +17 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/access_note_inbox.py +14 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/access_remove_approved_sender.py +17 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/access_revoke_key.py +17 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/access_revoke_share.py +16 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/access_set_scope.py +19 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/access_share_note.py +26 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/access_share_vault.py +20 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/access_swap_vault.py +17 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/access_switch_account.py +18 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/access_unlink_share.py +16 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/add_vault.py +18 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/audit_site.py +17 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/browser_click.py +16 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/browser_close.py +12 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/browser_extension_delete.py +12 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/browser_extension_import.py +13 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/browser_extension_list.py +10 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/browser_goto.py +13 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/browser_list_replays.py +12 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/browser_list_sessions.py +12 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/browser_locate.py +13 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/browser_open.py +17 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/browser_press.py +13 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/browser_profile_connect.py +19 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/browser_profile_list.py +15 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/browser_read.py +12 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/browser_replay_annotate.py +19 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/browser_replay_download.py +14 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/browser_replay_mark.py +20 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/browser_replay_start.py +12 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/browser_replay_stop.py +13 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/browser_screenshot.py +12 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/browser_scroll.py +16 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/browser_type.py +14 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/bulk_delete_notes.py +24 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/call_service_connection_action.py +14 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/capture_serp_page_snapshots.py +16 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/capture_serp_snapshot.py +22 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/check_site_export.py +12 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/cost_usage.py +28 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/create_channel.py +19 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/create_scheduled_action.py +25 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/create_secure_vault.py +17 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/create_webhook.py +19 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/credits_info.py +13 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/delete_note.py +23 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/delete_scheduled_action.py +16 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/delete_vault.py +18 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/describe_service_connection_tool.py +14 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/diff_page.py +14 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/directory_workflow.py +24 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/export_connected_service_data.py +20 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/export_search_console_table_data.py +15 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/extract_site.py +18 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/extract_url.py +20 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/facebook_ad_search.py +14 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/facebook_ad_transcribe.py +12 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/facebook_page_intel.py +16 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/facebook_video_transcribe.py +13 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/fact_history.py +18 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/g2_reviews.py +13 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/get_chat_link.py +15 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/get_message_note.py +17 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/get_schedule_link.py +16 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/get_schedule_status.py +22 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/get_vault_app_link.py +15 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/get_vault_contract.py +17 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/gmail_send_message.py +15 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/google_ads_page_intel.py +15 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/google_ads_search.py +14 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/google_ads_transcribe.py +12 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/google_calendar_create_event.py +20 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/harvest_paa.py +20 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/import_service_connection_to_memory.py +17 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/instagram_media_download.py +19 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/instagram_profile_content.py +19 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/library_ingest.py +31 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/list_channel_members.py +18 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/list_channel_messages.py +17 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/list_memory_tags.py +16 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/list_scheduled_actions.py +14 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/list_service_connections.py +10 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/list_shared_with_me.py +14 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/list_vaults.py +16 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/list_webhooks.py +14 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/map_site_urls.py +13 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/maps_place_intel.py +18 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/maps_search.py +20 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/memory_backlinks.py +18 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/memory_capture.py +31 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/memory_export.py +18 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/memory_get.py +18 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/memory_graph_path.py +21 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/memory_graph_universe.py +23 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/memory_list.py +20 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/memory_put.py +26 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/memory_questions.py +18 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/memory_search.py +39 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/memory_suggest.py +17 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/memory_upload.py +22 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/meta_ad_creative_media.py +15 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/my_mentions.py +16 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/pause_scheduled_action.py +15 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/poll_channel.py +21 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/post_message.py +20 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/prepare_memory_write.py +26 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/propose_scheduled_action.py +21 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/provision_defaults.py +23 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/query_fanout_workflow.py +17 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/rank_tracker_workflow.py +26 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/react_message.py +21 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/read_service_connection.py +14 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/record_fact.py +22 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/reddit_thread.py +13 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/remove_channel_member.py +17 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/renew_connected_data_download.py +12 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/reply_message.py +21 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/report_artifact_read.py +14 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/resolve_memory_tags.py +16 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/resume_scheduled_action.py +17 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/revoke_chat_link.py +14 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/revoke_schedule_link.py +14 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/revoke_vault_app_link.py +14 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/revoke_webhook.py +16 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/route_memory.py +22 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/search_serp.py +20 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/set_agent_identity.py +16 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/set_schedule_defaults.py +16 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/set_schedule_entitlement.py +18 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/set_scheduled_action_connections.py +13 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/slack_send_message.py +14 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/storage_usage.py +19 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/table_create.py +19 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/table_delete_rows.py +17 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/table_describe.py +17 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/table_drop.py +16 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/table_insert_rows.py +17 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/table_list.py +14 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/table_query.py +22 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/temporal_recall.py +22 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/test_service_connection.py +13 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/trustpilot_reviews.py +13 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/upsert_memory_tag.py +19 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/validate_memory_write.py +22 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/video_analyze_start.py +21 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/video_analyze_status.py +22 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/video_frame_analysis.py +16 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/video_frame_analysis_status.py +12 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/workflow_artifact_read.py +14 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/workflow_list.py +12 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/workflow_run.py +14 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/workflow_status.py +12 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/workflow_step.py +12 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/workflow_suggest.py +19 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/youtube_harvest.py +15 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/youtube_transcribe.py +13 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/mcp_models/zoom_create_meeting.py +17 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/__init__.py +0 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/access_accept_share.py +19 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/access_approve_sender.py +18 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/access_decline_share.py +18 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/access_inbox_settings.py +18 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/access_invite_account.py +23 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/access_issue_key.py +28 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/access_list_approved_senders.py +18 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/access_list_keys.py +19 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/access_note_inbox.py +17 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/access_remove_approved_sender.py +19 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/access_revoke_key.py +19 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/access_revoke_share.py +18 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/access_set_scope.py +21 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/access_share_note.py +28 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/access_share_vault.py +22 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/access_swap_vault.py +19 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/access_switch_account.py +20 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/access_unlink_share.py +18 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/add_vault.py +20 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/cost_usage.py +30 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/create_channel.py +21 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/create_scheduled_action.py +27 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/create_secure_vault.py +19 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/create_webhook.py +21 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/delete_note.py +25 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/delete_scheduled_action.py +18 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/delete_vault.py +20 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/fact_history.py +20 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/get_chat_link.py +18 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/get_message_note.py +19 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/get_schedule_link.py +19 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/get_schedule_status.py +25 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/get_vault_contract.py +19 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/library_ingest.py +33 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/list_channel_members.py +20 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/list_channel_messages.py +19 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/list_memory_tags.py +18 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/list_scheduled_actions.py +17 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/list_shared_with_me.py +17 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/list_vaults.py +19 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/list_webhooks.py +17 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/memory_backlinks.py +20 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/memory_capture.py +33 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/memory_export.py +20 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/memory_get.py +20 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/memory_graph_path.py +23 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/memory_graph_universe.py +25 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/memory_list.py +22 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/memory_put.py +28 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/memory_questions.py +20 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/memory_search.py +24 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/memory_suggest.py +19 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/memory_upload.py +24 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/my_mentions.py +18 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/pause_scheduled_action.py +17 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/poll_channel.py +23 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/post_message.py +22 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/prepare_memory_write.py +28 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/propose_scheduled_action.py +21 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/provision_defaults.py +25 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/react_message.py +23 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/record_fact.py +24 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/remove_channel_member.py +19 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/reply_message.py +23 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/resolve_memory_tags.py +18 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/resume_scheduled_action.py +19 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/revoke_chat_link.py +17 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/revoke_schedule_link.py +17 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/revoke_webhook.py +18 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/route_memory.py +24 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/set_agent_identity.py +18 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/set_schedule_entitlement.py +20 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/storage_usage.py +22 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/table_create.py +21 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/table_delete_rows.py +19 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/table_describe.py +19 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/table_drop.py +18 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/table_insert_rows.py +19 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/table_list.py +17 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/table_query.py +24 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/temporal_recall.py +24 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/upsert_memory_tag.py +21 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/validate_memory_write.py +24 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/video_analyze_start.py +23 -0
- mcpscraper_memory_sdk-0.13.0/src/mcpscraper_memory/models/video_analyze_status.py +24 -0
- mcpscraper_memory_sdk-0.13.0/tests/test_client.py +196 -0
- mcpscraper_memory_sdk-0.13.0/uv.lock +527 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: mcpscraper-memory-sdk
|
|
3
|
+
Version: 0.13.0
|
|
4
|
+
Summary: Official Python clients for all 165 mcpscraper.dev MCP tools and the direct memory API
|
|
5
|
+
Project-URL: Repository, https://github.com/VilovietaSEO/mcpscraper-sdk
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Requires-Python: >=3.10
|
|
8
|
+
Requires-Dist: pydantic>=2
|
|
9
|
+
Requires-Dist: requests>=2.31
|
|
10
|
+
Description-Content-Type: text/markdown
|
|
11
|
+
|
|
12
|
+
# mcpscraper-memory-sdk (Python)
|
|
13
|
+
|
|
14
|
+
Official Python clients for all 165 unified [mcpscraper.dev](https://mcpscraper.dev) MCP tools plus the direct 89-tool [memory.mcpscraper.dev](https://memory.mcpscraper.dev) API.
|
|
15
|
+
|
|
16
|
+
This is a thin JSON-RPC client generated against [`../../contracts/memory.tools.json`](../../contracts/memory.tools.json), the public contract for the hosted API. It contains no product source — only typed request/response plumbing.
|
|
17
|
+
|
|
18
|
+
## Install
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
pip install "mcpscraper-memory-sdk @ git+https://github.com/VilovietaSEO/mcpscraper-sdk.git#subdirectory=packages/memory-python"
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Usage
|
|
25
|
+
|
|
26
|
+
```python
|
|
27
|
+
from mcpscraper_memory import MemoryClient, MemoryApiError
|
|
28
|
+
|
|
29
|
+
client = MemoryClient(api_key="mk_your_key")
|
|
30
|
+
|
|
31
|
+
try:
|
|
32
|
+
result = client.memory.search(query="competitor pricing pages")
|
|
33
|
+
for hit in result.results or []:
|
|
34
|
+
print(hit["source"], hit["score"])
|
|
35
|
+
except MemoryApiError as err:
|
|
36
|
+
print(f"memory call failed: {err}")
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Namespaces
|
|
40
|
+
|
|
41
|
+
`client.access`, `client.capture`, `client.channels`, `client.facts`, `client.library`, `client.memory`, `client.recall`, `client.schedule`, `client.storage`, `client.tables`, `client.vaults`, `client.video`, `client.webhooks` — one method per tool, snake_case, typed with generated Pydantic models.
|
|
42
|
+
|
|
43
|
+
Use `McpToolsClient(api_key="sk_...")` for all 165 unified tools (76 MCP Scraper plus 89 mirrored memory tools); it has the same generated namespaces as every other SDK package. Bulk Gmail, Calendar, Zoom, Meta Marketing, and Resend exports are available through `client.connections.export_connected_service_data(...)`; select `meta_ads_insights` for daily account/campaign/ad-set/ad reporting or `resend_data` for the Resend aggregate, and renew expired artifact URLs with `client.connections.renew_connected_data_download(artifact_id="artifact_123")`.
|
|
44
|
+
|
|
45
|
+
Use `client.call_tool_result(name, args)` for native MCP image, audio, or resource blocks. The existing `call_tool` method keeps returning the parsed structured/text value.
|
|
46
|
+
|
|
47
|
+
## Don't have a memory key?
|
|
48
|
+
|
|
49
|
+
If you already have an `mcpscraper.dev` API key and don't want to provision a separate `mk_...` memory key, use `mcpscraper-sdk`'s `ScraperClient.memory_tools` instead — it exposes this exact same set of 89 tools, dispatched through your scraper API key.
|
|
50
|
+
|
|
51
|
+
## Regenerating models
|
|
52
|
+
|
|
53
|
+
`src/mcpscraper_memory/models/` and `_generated_client.py` are generated from `../../contracts/memory.tools.json`. After editing the manifest, regenerate with:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
python scripts/generate_models.py
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## See also
|
|
60
|
+
|
|
61
|
+
[Repo README](../../README.md) (multi-language examples with real sample output) · [`mcpscraper-memory-sdk` on npm](../memory) (Node) · [`mcpscraper-sdk` Python source package](../scraper-python) (also reaches these 89 tools via a scraper key) · [`mcpscraper-cli`](../cli)
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# mcpscraper-memory-sdk (Python)
|
|
2
|
+
|
|
3
|
+
Official Python clients for all 165 unified [mcpscraper.dev](https://mcpscraper.dev) MCP tools plus the direct 89-tool [memory.mcpscraper.dev](https://memory.mcpscraper.dev) API.
|
|
4
|
+
|
|
5
|
+
This is a thin JSON-RPC client generated against [`../../contracts/memory.tools.json`](../../contracts/memory.tools.json), the public contract for the hosted API. It contains no product source — only typed request/response plumbing.
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pip install "mcpscraper-memory-sdk @ git+https://github.com/VilovietaSEO/mcpscraper-sdk.git#subdirectory=packages/memory-python"
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
```python
|
|
16
|
+
from mcpscraper_memory import MemoryClient, MemoryApiError
|
|
17
|
+
|
|
18
|
+
client = MemoryClient(api_key="mk_your_key")
|
|
19
|
+
|
|
20
|
+
try:
|
|
21
|
+
result = client.memory.search(query="competitor pricing pages")
|
|
22
|
+
for hit in result.results or []:
|
|
23
|
+
print(hit["source"], hit["score"])
|
|
24
|
+
except MemoryApiError as err:
|
|
25
|
+
print(f"memory call failed: {err}")
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Namespaces
|
|
29
|
+
|
|
30
|
+
`client.access`, `client.capture`, `client.channels`, `client.facts`, `client.library`, `client.memory`, `client.recall`, `client.schedule`, `client.storage`, `client.tables`, `client.vaults`, `client.video`, `client.webhooks` — one method per tool, snake_case, typed with generated Pydantic models.
|
|
31
|
+
|
|
32
|
+
Use `McpToolsClient(api_key="sk_...")` for all 165 unified tools (76 MCP Scraper plus 89 mirrored memory tools); it has the same generated namespaces as every other SDK package. Bulk Gmail, Calendar, Zoom, Meta Marketing, and Resend exports are available through `client.connections.export_connected_service_data(...)`; select `meta_ads_insights` for daily account/campaign/ad-set/ad reporting or `resend_data` for the Resend aggregate, and renew expired artifact URLs with `client.connections.renew_connected_data_download(artifact_id="artifact_123")`.
|
|
33
|
+
|
|
34
|
+
Use `client.call_tool_result(name, args)` for native MCP image, audio, or resource blocks. The existing `call_tool` method keeps returning the parsed structured/text value.
|
|
35
|
+
|
|
36
|
+
## Don't have a memory key?
|
|
37
|
+
|
|
38
|
+
If you already have an `mcpscraper.dev` API key and don't want to provision a separate `mk_...` memory key, use `mcpscraper-sdk`'s `ScraperClient.memory_tools` instead — it exposes this exact same set of 89 tools, dispatched through your scraper API key.
|
|
39
|
+
|
|
40
|
+
## Regenerating models
|
|
41
|
+
|
|
42
|
+
`src/mcpscraper_memory/models/` and `_generated_client.py` are generated from `../../contracts/memory.tools.json`. After editing the manifest, regenerate with:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
python scripts/generate_models.py
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## See also
|
|
49
|
+
|
|
50
|
+
[Repo README](../../README.md) (multi-language examples with real sample output) · [`mcpscraper-memory-sdk` on npm](../memory) (Node) · [`mcpscraper-sdk` Python source package](../scraper-python) (also reaches these 89 tools via a scraper key) · [`mcpscraper-cli`](../cli)
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "mcpscraper-memory-sdk"
|
|
3
|
+
version = "0.13.0"
|
|
4
|
+
description = "Official Python clients for all 165 mcpscraper.dev MCP tools and the direct memory API"
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
license = "MIT"
|
|
7
|
+
requires-python = ">=3.10"
|
|
8
|
+
dependencies = [
|
|
9
|
+
"requests>=2.31",
|
|
10
|
+
"pydantic>=2",
|
|
11
|
+
]
|
|
12
|
+
|
|
13
|
+
[project.urls]
|
|
14
|
+
Repository = "https://github.com/VilovietaSEO/mcpscraper-sdk"
|
|
15
|
+
|
|
16
|
+
[dependency-groups]
|
|
17
|
+
dev = [
|
|
18
|
+
"pytest>=8",
|
|
19
|
+
"responses>=0.25",
|
|
20
|
+
]
|
|
21
|
+
|
|
22
|
+
[build-system]
|
|
23
|
+
requires = ["hatchling"]
|
|
24
|
+
build-backend = "hatchling.build"
|
|
25
|
+
|
|
26
|
+
[tool.hatch.build.targets.wheel]
|
|
27
|
+
packages = ["src/mcpscraper_memory"]
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import json
|
|
2
|
+
import keyword
|
|
3
|
+
import re
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
|
|
6
|
+
REPO_ROOT = Path(__file__).resolve().parents[3]
|
|
7
|
+
MANIFEST_PATH = REPO_ROOT / "contracts" / "memory.tools.json"
|
|
8
|
+
PACKAGE_ROOT = Path(__file__).resolve().parents[1]
|
|
9
|
+
MODELS_DIR = PACKAGE_ROOT / "src" / "mcpscraper_memory" / "models"
|
|
10
|
+
CLIENT_GENERATED_PATH = PACKAGE_ROOT / "src" / "mcpscraper_memory" / "_generated_client.py"
|
|
11
|
+
|
|
12
|
+
CATEGORIES = [
|
|
13
|
+
"access", "capture", "channels", "facts", "graph", "library", "memory", "recall",
|
|
14
|
+
"schedule", "storage", "tables", "tags", "vaults", "video", "webhooks",
|
|
15
|
+
]
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def to_snake_case(value: str) -> str:
|
|
19
|
+
value = re.sub(r"[-\s]+", "_", value)
|
|
20
|
+
value = re.sub(r"(?<!^)(?=[A-Z])", "_", value)
|
|
21
|
+
snake = value.lower().strip("_")
|
|
22
|
+
return f"{snake}_" if keyword.iskeyword(snake) else snake
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def derive_method_name(legacy_id: str, category: str) -> str:
|
|
26
|
+
for candidate in (category, category.rstrip("s")):
|
|
27
|
+
prefix = f"{candidate}-"
|
|
28
|
+
if legacy_id.startswith(prefix) and len(legacy_id) > len(prefix):
|
|
29
|
+
return to_snake_case(legacy_id[len(prefix):])
|
|
30
|
+
return to_snake_case(legacy_id)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def to_pascal_case(value: str) -> str:
|
|
34
|
+
parts = re.split(r"[-_\s]+", value)
|
|
35
|
+
return "".join(p[0].upper() + p[1:] for p in parts if p)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def json_type_to_python(schema: dict, class_name_hint: str) -> str:
|
|
39
|
+
if "enum" in schema:
|
|
40
|
+
literal_values = ", ".join(json.dumps(v) for v in schema["enum"])
|
|
41
|
+
return f"Literal[{literal_values}]"
|
|
42
|
+
json_type = schema.get("type")
|
|
43
|
+
if json_type == "string":
|
|
44
|
+
return "str"
|
|
45
|
+
if json_type == "integer":
|
|
46
|
+
return "int"
|
|
47
|
+
if json_type == "number":
|
|
48
|
+
return "float"
|
|
49
|
+
if json_type == "boolean":
|
|
50
|
+
return "bool"
|
|
51
|
+
if json_type == "array":
|
|
52
|
+
item_schema = schema.get("items", {})
|
|
53
|
+
item_type = json_type_to_python(item_schema, class_name_hint)
|
|
54
|
+
return f"list[{item_type}]"
|
|
55
|
+
if json_type == "object" or "properties" in schema:
|
|
56
|
+
return "dict[str, Any]"
|
|
57
|
+
return "Any"
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
def field_definition(name: str, schema: dict, required: bool, class_name_hint: str) -> str:
|
|
61
|
+
py_type = json_type_to_python(schema, class_name_hint)
|
|
62
|
+
if not required:
|
|
63
|
+
py_type = f"{py_type} | None"
|
|
64
|
+
description = schema.get("description", "").replace('"', '\\"')
|
|
65
|
+
default = "None" if not required else "..."
|
|
66
|
+
return f' {to_snake_case(name)}: {py_type} = Field({default}, alias="{name}", description="{description}")'
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
def render_model(class_name: str, schema: dict) -> str:
|
|
70
|
+
properties = schema.get("properties", {}) or {}
|
|
71
|
+
required = set(schema.get("required", []) or [])
|
|
72
|
+
if not properties:
|
|
73
|
+
return f"class {class_name}(BaseModel):\n model_config = ConfigDict(populate_by_name=True, extra=\"allow\")\n"
|
|
74
|
+
lines = [f"class {class_name}(BaseModel):", ' model_config = ConfigDict(populate_by_name=True, extra="allow")', ""]
|
|
75
|
+
for prop_name, prop_schema in properties.items():
|
|
76
|
+
lines.append(field_definition(prop_name, prop_schema, prop_name in required, class_name))
|
|
77
|
+
return "\n".join(lines) + "\n"
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
def main() -> None:
|
|
81
|
+
manifest = json.loads(MANIFEST_PATH.read_text())
|
|
82
|
+
tools = manifest["tools"]
|
|
83
|
+
|
|
84
|
+
MODELS_DIR.mkdir(parents=True, exist_ok=True)
|
|
85
|
+
(MODELS_DIR / "__init__.py").write_text("")
|
|
86
|
+
|
|
87
|
+
by_category: dict[str, list[dict]] = {}
|
|
88
|
+
for tool in tools:
|
|
89
|
+
by_category.setdefault(tool["category"], []).append(tool)
|
|
90
|
+
|
|
91
|
+
for tool in tools:
|
|
92
|
+
legacy = tool["legacyId"]
|
|
93
|
+
module_name = to_snake_case(legacy)
|
|
94
|
+
input_class = to_pascal_case(legacy) + "Input"
|
|
95
|
+
output_class = to_pascal_case(legacy) + "Output"
|
|
96
|
+
|
|
97
|
+
content = [
|
|
98
|
+
"from typing import Any, Literal",
|
|
99
|
+
"from pydantic import BaseModel, ConfigDict, Field",
|
|
100
|
+
"",
|
|
101
|
+
"",
|
|
102
|
+
render_model(input_class, tool["inputSchema"]),
|
|
103
|
+
"",
|
|
104
|
+
render_model(output_class, tool["outputSchema"]),
|
|
105
|
+
]
|
|
106
|
+
(MODELS_DIR / f"{module_name}.py").write_text("\n".join(content))
|
|
107
|
+
|
|
108
|
+
namespace_blocks = []
|
|
109
|
+
import_lines = []
|
|
110
|
+
for category in CATEGORIES:
|
|
111
|
+
class_name = to_pascal_case(category) + "Namespace"
|
|
112
|
+
method_blocks = []
|
|
113
|
+
used_names: set[str] = set()
|
|
114
|
+
for tool in by_category.get(category, []):
|
|
115
|
+
legacy = tool["legacyId"]
|
|
116
|
+
wire_name = tool["name"]
|
|
117
|
+
module_name = to_snake_case(legacy)
|
|
118
|
+
input_class = to_pascal_case(legacy) + "Input"
|
|
119
|
+
output_class = to_pascal_case(legacy) + "Output"
|
|
120
|
+
method_name = derive_method_name(legacy, category)
|
|
121
|
+
if method_name in used_names:
|
|
122
|
+
method_name = to_snake_case(legacy)
|
|
123
|
+
used_names.add(method_name)
|
|
124
|
+
|
|
125
|
+
import_lines.append(
|
|
126
|
+
f"from .models.{module_name} import {input_class}, {output_class}"
|
|
127
|
+
)
|
|
128
|
+
method_blocks.append(
|
|
129
|
+
f' def {method_name}(self, **kwargs: Any) -> {output_class}:\n'
|
|
130
|
+
f' payload = {input_class}(**kwargs).model_dump(by_alias=True, exclude_none=True)\n'
|
|
131
|
+
f' result = self._call_tool("{wire_name}", payload)\n'
|
|
132
|
+
f' return {output_class}.model_validate(result)\n'
|
|
133
|
+
)
|
|
134
|
+
namespace_blocks.append(
|
|
135
|
+
f"class {class_name}:\n"
|
|
136
|
+
f" def __init__(self, call_tool):\n"
|
|
137
|
+
f" self._call_tool = call_tool\n\n"
|
|
138
|
+
+ "\n".join(method_blocks)
|
|
139
|
+
)
|
|
140
|
+
|
|
141
|
+
generated = (
|
|
142
|
+
"from typing import Any, Callable\n\n"
|
|
143
|
+
+ "\n".join(sorted(set(import_lines)))
|
|
144
|
+
+ "\n\n\n"
|
|
145
|
+
+ "\n\n".join(namespace_blocks)
|
|
146
|
+
+ "\n"
|
|
147
|
+
)
|
|
148
|
+
CLIENT_GENERATED_PATH.write_text(generated)
|
|
149
|
+
|
|
150
|
+
print(f"Generated {len(tools)} tool model pairs across {len(by_category)} categories.")
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
if __name__ == "__main__":
|
|
154
|
+
main()
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
from .client import MemoryClient
|
|
2
|
+
from .errors import MemoryApiError
|
|
3
|
+
from .mcp_client import McpToolsClient, McpToolError
|
|
4
|
+
from ._mcp_generated_client import MCP_TOOL_BINDINGS, MCP_TOOL_COUNT
|
|
5
|
+
|
|
6
|
+
__all__ = [
|
|
7
|
+
"MemoryClient", "MemoryApiError", "McpToolsClient", "McpToolError",
|
|
8
|
+
"MCP_TOOL_BINDINGS", "MCP_TOOL_COUNT",
|
|
9
|
+
]
|