mirror of
https://github.com/hanzoai/insights.git
synced 2026-10-30 16:15:31 +00:00
drop_closure exists to refuse a drop that is really a refactor: if code we keep still imports a product, deleting it is a ModuleNotFoundError waiting for the next boot. It only ever read Python, so half the dependency graph was invisible to it and five products whose TypeScript the core still imports were dropped anyway — 21 files left importing 25 specifiers that resolve to nothing, including lib/api.ts, which 760 files import, and seven lazy scene imports in productScenes.tsx. Django booted past it and the bundle did not, which is why the Python-only rule looked like it was working. The closure now reads both module systems through one table of (extensions, pattern) pairs, so a third one is a row rather than a branch. The TypeScript pattern is anchored on the import keyword rather than on the path, because jest's testPathIgnorePatterns and oxlint's ignore list quote a product path precisely because it is NOT built; matching those would hold desktop, the 4,797-file product the drop is mostly for. integrations, wizard, platform_features, visual_review and ai_gateway come back with their Django apps and workspace entries, since the closure now spares them. desktop, field_notes, ingestion and support stay dropped.
222 lines
9.4 KiB
YAML
222 lines
9.4 KiB
YAML
# MCP tool definition — tool entries are scaffolded from the OpenAPI schema.
|
|
# The tool list and operation IDs are kept in sync automatically:
|
|
# pnpm --filter=@hanzo/mcp run scaffold-yaml -- --sync-all
|
|
#
|
|
# To enable a tool, set enabled: true and add required scopes + annotations.
|
|
# All other fields (title, description, enrich_url, etc.) are yours to configure.
|
|
category: Integrations
|
|
feature: integrations
|
|
url_prefix: /settings/environment-integrations
|
|
ui_apps: {}
|
|
tools:
|
|
integration-delete:
|
|
operation: integrations_destroy
|
|
enabled: true
|
|
scopes:
|
|
- integration:write
|
|
annotations:
|
|
readOnly: false
|
|
destructive: true
|
|
idempotent: true
|
|
title: Delete integration
|
|
description: >
|
|
Permanently delete an integration by ID. This removes the connection to the third-party service. Any
|
|
features relying on this integration (alerts, workflow destinations, etc.) will stop working.
|
|
integration-get:
|
|
operation: integrations_retrieve
|
|
enabled: true
|
|
scopes:
|
|
- integration:read
|
|
annotations:
|
|
readOnly: true
|
|
destructive: false
|
|
idempotent: true
|
|
title: Get integration
|
|
description: >
|
|
Get a specific integration by ID. Returns full integration details including kind, display name, error
|
|
status, and creation metadata. Does not expose sensitive credentials or raw configuration.
|
|
response:
|
|
include:
|
|
- id
|
|
- kind
|
|
- display_name
|
|
- errors
|
|
- created_at
|
|
- created_by
|
|
integrations-anthropic-managed-agent-envs-retrieve:
|
|
operation: integrations_anthropic_managed_agent_envs_retrieve
|
|
enabled: false
|
|
integrations-anthropic-managed-agent-vaults-retrieve:
|
|
operation: integrations_anthropic_managed_agent_vaults_retrieve
|
|
enabled: false
|
|
integrations-anthropic-managed-agents-retrieve:
|
|
operation: integrations_anthropic_managed_agents_retrieve
|
|
enabled: false
|
|
integrations-authorize-retrieve:
|
|
operation: integrations_authorize_retrieve
|
|
enabled: false
|
|
integrations-channels-retrieve:
|
|
operation: integrations_channels_retrieve
|
|
enabled: true
|
|
scopes:
|
|
- integration:read
|
|
annotations:
|
|
readOnly: true
|
|
destructive: false
|
|
idempotent: true
|
|
title: List integration channels
|
|
description: >
|
|
List the Slack channels available for a Slack integration. Slack-only — non-Slack integration ids return an
|
|
error (400 if the integration is otherwise visible, 404 if it isn't). Returns each channel's id, name,
|
|
is_private, is_member, is_ext_shared, and is_private_without_access flags; use is_member to avoid picking
|
|
channels the bot can't post to. Results are cached for 1 hour (no force-refresh exposed via MCP). Use this
|
|
to find a channel_id when wiring up Slack delivery for an alert — pass the channel id into the
|
|
cdp-functions-create inputs.channel.value field. Requires the Slack integration's id; use integrations-list
|
|
(filter by kind=slack) to find it.
|
|
integrations-clickup-lists-retrieve:
|
|
operation: integrations_clickup_lists_retrieve
|
|
enabled: false
|
|
integrations-clickup-spaces-retrieve:
|
|
operation: integrations_clickup_spaces_retrieve
|
|
enabled: false
|
|
integrations-clickup-workspaces-retrieve:
|
|
operation: integrations_clickup_workspaces_retrieve
|
|
enabled: false
|
|
integrations-create:
|
|
operation: integrations_create
|
|
enabled: false
|
|
integrations-domain-connect-apply-url-create:
|
|
operation: integrations_domain_connect_apply_url_create
|
|
enabled: false
|
|
integrations-domain-connect-check-retrieve:
|
|
operation: integrations_domain_connect_check_retrieve
|
|
enabled: false
|
|
integrations-email-partial-update:
|
|
operation: integrations_email_partial_update
|
|
enabled: false
|
|
integrations-email-verify-create:
|
|
operation: integrations_email_verify_create
|
|
enabled: false
|
|
integrations-environment-mapping-partial-update:
|
|
operation: integrations_environment_mapping_partial_update
|
|
enabled: false
|
|
integrations-github-available-installations-retrieve:
|
|
operation: integrations_github_available_installations_retrieve
|
|
enabled: false
|
|
integrations-github-branches-retrieve:
|
|
operation: integrations_github_branches_retrieve
|
|
enabled: false
|
|
integrations-github-link-existing-create:
|
|
operation: integrations_github_link_existing_create
|
|
enabled: false
|
|
integrations-github-oauth-authorize-create:
|
|
operation: integrations_github_oauth_authorize_create
|
|
enabled: false
|
|
integrations-github-prepare-callback-create:
|
|
operation: integrations_github_prepare_callback_create
|
|
enabled: false
|
|
integrations-github-repos-refresh-create:
|
|
operation: integrations_github_repos_refresh_create
|
|
enabled: false
|
|
integrations-github-repos-retrieve:
|
|
operation: integrations_github_repos_retrieve
|
|
enabled: true
|
|
scopes:
|
|
- integration:read
|
|
annotations:
|
|
readOnly: true
|
|
destructive: false
|
|
idempotent: true
|
|
title: List GitHub integration repositories
|
|
description: >
|
|
List the repositories accessible to a GitHub integration (by integration ID). Serves the cached repository
|
|
list from the GitHub App installation. Supports `search` (case-insensitive name match), `limit` (default
|
|
100, max 500), and `offset` query parameters. Returns repository id, name, and full_name (owner/repo) plus a
|
|
has_more flag. Use this to validate that a repository is accessible to the integration before referencing it
|
|
(e.g. when creating a GitHub data warehouse source).
|
|
integrations-github-teams-retrieve:
|
|
operation: integrations_github_teams_retrieve
|
|
enabled: false
|
|
integrations-google-accessible-accounts-retrieve:
|
|
operation: integrations_google_accessible_accounts_retrieve
|
|
enabled: false
|
|
integrations-google-conversion-actions-retrieve:
|
|
operation: integrations_google_conversion_actions_retrieve
|
|
enabled: false
|
|
integrations-jira-projects-retrieve:
|
|
operation: integrations_jira_projects_retrieve
|
|
enabled: true
|
|
scopes:
|
|
- integration:read
|
|
annotations:
|
|
readOnly: true
|
|
destructive: false
|
|
idempotent: true
|
|
title: List Jira projects
|
|
description: >
|
|
List Jira projects available through a connected Jira integration. Use integrations-list with kind=jira
|
|
first to find the integration id, then pass a returned project key as `config.project_key` when creating an
|
|
error tracking external reference.
|
|
integrations-linear-teams-retrieve:
|
|
operation: integrations_linear_teams_retrieve
|
|
enabled: true
|
|
scopes:
|
|
- integration:read
|
|
annotations:
|
|
readOnly: true
|
|
destructive: false
|
|
idempotent: true
|
|
title: List Linear teams
|
|
description: >
|
|
List Linear teams available through a connected Linear integration. Use integrations-list with kind=linear
|
|
first to find the integration id, then pass a returned team id as `config.team_id` when creating an error
|
|
tracking external reference.
|
|
integrations-linkedin-ads-accounts-retrieve:
|
|
operation: integrations_linkedin_ads_accounts_retrieve
|
|
enabled: false
|
|
integrations-linkedin-ads-conversion-rules-retrieve:
|
|
operation: integrations_linkedin_ads_conversion_rules_retrieve
|
|
enabled: false
|
|
integrations-list:
|
|
operation: integrations_list
|
|
enabled: true
|
|
scopes:
|
|
- integration:read
|
|
annotations:
|
|
readOnly: true
|
|
destructive: false
|
|
idempotent: true
|
|
list: true
|
|
title: List integrations
|
|
description: >
|
|
List all third-party integrations configured in the current project. Returns each integration's type (kind),
|
|
display name, non-sensitive configuration, error status, and creation metadata. Common kinds include slack,
|
|
github, hubspot, salesforce, and various ad platforms. Sensitive credentials (access tokens, secrets) are
|
|
never serialized.
|
|
response:
|
|
include:
|
|
- id
|
|
- kind
|
|
- display_name
|
|
- errors
|
|
- created_at
|
|
- created_by
|
|
integrations-request-access-create:
|
|
operation: integrations_request_access_create
|
|
enabled: false
|
|
integrations-twilio-phone-numbers-retrieve:
|
|
operation: integrations_twilio_phone_numbers_retrieve
|
|
enabled: false
|
|
role-external-references-create:
|
|
operation: role_external_references_create
|
|
enabled: false
|
|
role-external-references-destroy:
|
|
operation: role_external_references_destroy
|
|
enabled: false
|
|
role-external-references-list:
|
|
operation: role_external_references_list
|
|
enabled: false
|
|
role-external-references-lookup-retrieve:
|
|
operation: role_external_references_lookup_retrieve
|
|
enabled: false
|