458,343 tools. Updated 2026-08-16 20:21
"AWS Amplify" matching MCP tools:
- BATCH INSPECTION: run up to 32 AWS inspect probes in one call. ⚠️ **PREREQUISITE**: Same as awsinspect — deploy attempt required. Check convostatus for hasDeployAttempt=true before calling. Use this when you need to check more than ~3 resources. The backend fetches Oracle credentials ONCE per batch and fans out probes against a single AWS config — for a 12-resource health check this is ~5–8× faster and 12× fewer Oracle round-trips than calling awsinspect 12 times. BUDGETS: - Up to 32 sub-probes per call (subs array length). - 30s per-sub timeout; 60s total batch wall-clock. - Concurrency cap 8 — sub-probes run in parallel but never saturate AWS. - 512 KB response cap: subs past the cap keep their envelope (index/service/action/ok) but have result replaced with truncated=true. PARTIAL FAILURE IS EXPECTED. The response is an ordered results array; each entry has {index, service, action, ok, result, error}. Inspect each result — do NOT abort on the first error. A credential fetch failure leaves cred-less probes (list-actions, list-metrics) succeeding anyway. REQUIRES: session_id from convoopen response (format: sess_v2_...). Supported services: account, acm, alb, apigateway, apprunner, backup, bedrock, cloudfront, cloudwatchlogs, cognito, cost-explorer, dynamodb, ebs, ec2, ecs, eks, elasticache, kms, lambda, msk, opensearch, rds, route53, s3, sagemaker, secretsmanager, sqs, vpc, waf For a specific service's actions, use awsinspect (singular) with action="list-actions" — batch is not the place for discovery. Batch responses are always summarized (no detail/raw per-sub); use singular awsinspect when you need full metadata or raw API output for one resource. EXAMPLES: - awsinspect_batch(session_id=..., subs=[ {"service":"ec2","action":"describe-instances"}, {"service":"rds","action":"describe-db-instances"}, {"service":"vpc","action":"describe-vpcs"}, {"service":"s3","action":"list-buckets"}]) - awsinspect_batch(session_id=..., subs=[ {"service":"ec2","action":"get-metrics","filters":"{\"hours\":6}"}, {"service":"rds","action":"get-metrics","filters":"{\"hours\":6}"}])Connector
- AWS docs search. Each result's `context` is verbatim page text -- a real chunk of the actual page, not a short snippet -- and usually already contains the answer, so answer directly from it. Use `read_documentation` only when the chunks genuinely lack the needed detail. Pick ONE topic. Add a 2nd ONLY if query genuinely spans domains. Extra topics dilute ranking. - reference_documentation -- API/SDK/CLI specs, config params - current_awareness -- new/released/announced - troubleshooting -- errors, "how to fix" (NOT for conceptual/feature questions) - amplify_docs -- Amplify (+ language) - cdk_docs -- CDK concepts/guides - cdk_constructs -- CDK code samples, L3 - cloudformation -- CFN/SAM templates - strands_docs -- Strands Agents SDK (its Skills/agents concepts go here, NOT agent_skills) - agent_skills -- this tool's guided skills (load via `retrieve_skill`) - general (default) -- architecture, best practices, tutorials, feature behavior Results: rank_order (lower=better), url, title, context (verbatim page chunk -- answer directly from it).Connector
- Search 3.9B+ GBIF occurrence records with Darwin Core filters. Use taxonKey from gbif_match_species for reliable results — it resolves synonyms automatically. Accepts country (uppercase ISO 3166-1 alpha-2, where the record was observed), publishingCountry (the publishing organization's country — a different question), stateProvince, bounding box (decimalLatitude/decimalLongitude ranges), WKT polygon geometry, year range, month, basis of record, coordinate filter, and dataset key. Returns sightings only by default — GBIF also indexes absence records (surveys that looked and found nothing), and occurrenceStatus controls whether they are included. Pagination is capped at offset+limit=100,001 and GBIF offers no cursor or scroll, so a larger result set is covered only by partitioning it — facet it by DATASET_KEY with gbif_occurrence_facets and search each datasetKey separately. This server cannot download a result set in bulk; that needs the GBIF Download API with a GBIF.org account, or the GBIF snapshot on AWS Open Data.Connector
- Create a proactive monitoring subscription to a live-data event stream. Returns the new subscription id. Requires a Pipeworx OAuth account (anonymous + BYO cannot persist subscriptions). Supported types: "sec_8k" (8-K filings matching ticker + item codes — e.g. items:["5.02"] = officer change), "polymarket_edge" (Polymarket↔Kalshi cross-venue mispricings — params:{topic:"fed"}), "fred_series" (new FRED observations — params:{series_id:"UNRATE"}). Delivery channels: feed (always on — pull via recent_alerts or GET registry.pipeworx.io/alerts.json), and optionally email (set delivery:{email:"you@x.com"}) or sms (delivery:{sms:"+15551234567"} — phone must be verified at /account first; 10/day cap).Connector
- Start a cloud cost / FinOps scan of a linked account and return a job_id. Use this when the user wants to find idle, unused or underutilized cloud resources, review cloud spend, or estimate savings. The provider comes from the connection, and **AWS is the only provider supported today** (see `list_connections`). Other clouds will appear on this same tool as connections for them become linkable; nothing else about the call changes. READ-ONLY against your cloud: it reads resource metadata and monitoring metrics and reports; it never changes, stops or deletes anything. (It does create a scan job here and consume that account's scan quota, which is why this tool is not marked read-only.) On AWS it covers EC2 instances, EBS volumes and snapshots, RDS instances, Elastic IPs, NAT Gateways, load balancers, VPCs and VPC endpoints, site-to-site VPN and Transit Gateway attachments, Client VPN endpoints, Secrets Manager secrets, CloudFront distributions and WAF web ACLs. Resource kinds outside that list are not inspected, so a clean scan is not a claim that the whole bill is optimized. `connection_id` picks which linked AWS account to scan (see `list_connections`). Omit it to run against sample data — useful for showing the user what the output looks like before any account is linked. The scan runs asynchronously: poll `get_job(job_id)` roughly every 10 seconds until status is COMPLETED (typically 1-3 minutes), then call `list_cost_findings(job_id)`. Do NOT start another scan while one is running — each scan consumes the account's monthly quota. Pass `idempotency_key` (any unique string you choose) if you may retry on a network error: a retry with the same key returns the original job instead of starting a second scan.Connector
- MINIMUM VALID CALL: { "queries": [{ "type": "cost", "name": "a", "metricId": "cost", "currency": "USD" }], "datePreset": "MTD", "aggBy": "Day" } Required per series: type (cost|metric|usage|formula|budget|externalMetric) and name. Put labels in alias. Unified query tool for cost data, custom metrics, usage metrics, external (live integration) metrics, period comparisons, formulas, and budgets. QUERY NAMING: set type and name (prefer short ids like a/b/c for formulas); put human labels in alias (e.g. "Cost by environment") — never in name. Example: { type: "cost", name: "a", alias: "Cost by environment", groupBy: "cos_environment", ... }. For costs: metricId (cost column, default "cost") and currency (default "USD"). Use costMetricId and currency from get when aligning with a budget. For custom business metrics: use [{ type: "metric", metricId: "..." }] — get IDs from list_metrics. For infra usage metrics (e.g. CPU hours, network bytes): use [{ type: "usage", metricId: "..." }] — call suggest_usage_metrics first to discover valid metricIds for your scope. For live external metrics (not saved as Costory metrics): use [{ type: "externalMetric", provider: "...", integrationId: "...", metricName: "...", aggregator: "SUM", groupByFields: [], conditions: "..." }] — discover provider, integrationId, and metricName via list_metrics with includeExternal: true and a specific search term. Tsuga: metricName is the provider metric name; groupByFields are provider metric attributes; conditions is an optional provider filter string. Datadog: same shape as Tsuga — metricName is the Datadog metric name (e.g. system.cpu.user), groupByFields are tag keys (e.g. host, service), conditions is an optional Datadog tag filter (e.g. env:prod). CloudWatch: set provider: "cloudwatch"; metricName is Namespace/MetricName (e.g. AWS/EC2/CPUUtilization); groupByFields are CloudWatch dimension names (e.g. InstanceId); conditions is an optional dimension filter. BigQuery: set provider: "bigquery"; metricName is the fully-qualified table id (project.dataset.table); dateColumn, metricColumn, and gapFillingMethod are required; groupByFields are string column names (not CEL). S3: set provider: "s3"; identical field shape to bigquery — metricName is the fully-qualified table id returned by list_metrics (a Costory-managed external table over the customer's mirrored Parquet); dateColumn, metricColumn, and gapFillingMethod are required; groupByFields are string column names. Use externalMetric for exploration when no saved metric matches; prefer saved { type: "metric" } when one exists. PERIOD: prefer `datePreset` (same DatePreset enum as dashboards/reports, e.g. MTD, LAST_MONTH, TRAILING_30_DAYS, LAST_3_MONTHS, YTD) over hand-computed from/to whenever a preset matches — mutually exclusive with from/to. Response includes the resolved period dates. For comparison: add compare: {} (or compare: { from, to }) — omit compare dates to auto-derive the preceding period (preset-aware, e.g. LAST_MONTH → previous calendar month). For formulas: add { type: "formula", formula: "a / b" } referencing other queries by name. For budgets: use [{ type: "budget", budgetId: "..." }] — despite the field name, this must be the budget version ID (same value as budgetVersionId from get); search returns the parent budget id only, so call get with that id to obtain budgetVersionId before querying. Optional chartType on each query: BAR, LINE, AREA, WATERFALL, or TABLE (defaults to LINE). groupBy is the SPLIT dimension, filterCel is the SCOPE (CEL). Before guessing CEL field names, call search with type: ["dimensions"] — empty query lists all fields; a keyword narrows to matching values. Costory label dimensions use a cos_ prefix (e.g. cos_service_name). Unlabelled resources have null on label dimensions; use filterCel with == null / != null (not is_null or string "null"). Custom virtual dimensions: use immutable `bqName` from list/get VDIM tools as `groupBy` / `filterCel` (not display `name`). Poll `computeStatus` until `COMPLETED` after publish. Optional limit (integer 1–1000): max groups/rows per series. Do NOT set limit unless you need a different cap — when omitted, results default to 100 groups. Set limit above 100 (e.g. 250 or 500) when the user asks for a long tail or full breakdown list. OPTIONAL: After receiving results, consider calling "list_events" for the same date range to correlate cost changes with events, and "suggest_actions" to present follow-up options to the user. EXAMPLES: • "What are my total costs this month?" → { queries: [{ type: "cost", name: "a", metricId: "cost", currency: "USD" }], datePreset: "MTD", aggBy: "Day" } • "Break down AWS costs by service over the last 90 days" → { queries: [{ type: "cost", name: "a", alias: "AWS by service", metricId: "cost", currency: "USD", groupBy: "cos_service_name", filterCel: "cos_provider in [\"AWS\"]" }], datePreset: "TRAILING_90_DAYS", aggBy: "Week" } • "Show costs for resources without an environment label" → { queries: [{ type: "cost", name: "a", metricId: "cost", currency: "USD", filterCel: "cos_environment == null" }], datePreset: "TRAILING_30_DAYS", aggBy: "Day" } • "How did our costs change vs last month?" → { queries: [{ type: "cost", name: "a", metricId: "cost", currency: "USD" }], datePreset: "LAST_MONTH", compare: {} } • "Show CPU hours alongside compute costs" (call suggest_usage_metrics first to get valid metricIds) → { queries: [{ type: "cost", name: "a", metricId: "cost", currency: "USD" }, { type: "usage", name: "b", metricId: "k8s_cpu_hours" }], datePreset: "TRAILING_30_DAYS", aggBy: "Week" } • "What is our cost per request?" → { queries: [{ type: "cost", name: "a", metricId: "cost", currency: "USD" }, { type: "metric", name: "b", metricId: "<metric-id>" }, { type: "formula", name: "c", formula: "a / b" }], datePreset: "TRAILING_30_DAYS" } • "Cost per request volume" (after list_metrics with includeExternal: true and search: "request") → { queries: [{ type: "cost", name: "a", metricId: "cost", currency: "USD" }, { type: "externalMetric", name: "b", provider: "tsuga", integrationId: "<integration-id>", metricName: "<metric-name>", aggregator: "SUM" }, { type: "formula", name: "c", formula: "a / b" }], datePreset: "TRAILING_30_DAYS", aggBy: "Week" } • "Cost per BigQuery revenue table" (after list_metrics with includeExternal: true and search: "revenue") → { queries: [{ type: "cost", name: "a", metricId: "cost", currency: "USD" }, { type: "externalMetric", name: "b", provider: "bigquery", integrationId: "<integration-id>", metricName: "my-project.analytics.revenue", dateColumn: "event_date", metricColumn: "amount", gapFillingMethod: "ZERO", aggregator: "SUM" }, { type: "formula", name: "c", formula: "a / b" }], datePreset: "TRAILING_30_DAYS", aggBy: "Week" } • "Cost per CPU usage from Datadog" (after list_metrics with includeExternal: true and search: "cpu") → { queries: [{ type: "cost", name: "a", metricId: "cost", currency: "USD" }, { type: "externalMetric", name: "b", provider: "datadog", integrationId: "<integration-id>", metricName: "system.cpu.user", aggregator: "AVG", groupByFields: ["host"] }, { type: "formula", name: "c", formula: "a / b" }], datePreset: "TRAILING_30_DAYS", aggBy: "Week" } • "Cost per EC2 CPU from CloudWatch" (after list_metrics with includeExternal: true and search: "CPUUtilization") → { queries: [{ type: "cost", name: "a", metricId: "cost", currency: "USD" }, { type: "externalMetric", name: "b", provider: "cloudwatch", integrationId: "<integration-id>", metricName: "AWS/EC2/CPUUtilization", aggregator: "AVG", groupByFields: ["InstanceId"] }, { type: "formula", name: "c", formula: "a / b" }], datePreset: "TRAILING_30_DAYS", aggBy: "Week" } • "Budget per calendar month" → { queries: [{ type: "budget", name: "a", budgetId: "<budgetVersionId>" }], datePreset: "LAST_3_MONTHS", aggBy: "Month" } (budgetVersionId from get, not the parent id from search) • "Budget month-to-date by day (cumulative within each month — which day did we reach the budget?)" → { queries: [{ type: "budget", name: "a", budgetId: "<budgetVersionId>", rollingAggregation: { aggregator: "SUM", window: { preset: "MONTH" } } }], datePreset: "MTD", aggBy: "Day" } • "Formula: month-to-date cost vs month-to-date budget (both rolling SUM per month, e.g. utilization a/b)" → { queries: [{ type: "cost", name: "a", metricId: "cost", currency: "USD", rollingAggregation: { aggregator: "SUM", window: { preset: "MONTH" } } }, { type: "budget", name: "b", budgetId: "<budgetVersionId>", rollingAggregation: { aggregator: "SUM", window: { preset: "MONTH" } } }, { type: "formula", name: "c", formula: "a / b" }], datePreset: "MTD", aggBy: "Day" } • Custom one-off range → { queries: [{ type: "cost", name: "a", metricId: "cost", currency: "USD" }], from: "2026-01-15", to: "2026-02-12", aggBy: "Day" }Connector
Matching MCP Servers
- Alicense-qualityDmaintenanceEnables searching AWS Amplify documentation using natural language queries with advanced search syntax, smart ranking, and generation selection.71ISC
- Alicense-qualityDmaintenanceAn MCP server that provides comprehensive access to AWS Amplify Gen 2 Next.js documentation, enabling AI assistants to provide accurate, up-to-date guidance on building applications with Amplify.4MIT
Matching MCP Connectors
The AWS Knowledge MCP server is a fully managed remote Model Context Protocol server that provides real-time access to official AWS content in an LLM-compatible format. It offers structured access to AWS documentation, code samples, blog posts, What's New announcements, Well-Architected best practices, and regional availability information for AWS APIs and CloudFormation resources. Key capabilities include searching and reading documentation in markdown format, getting content recommendations, listing AWS regions, and checking regional availability for services and features.
Is this product recalled in the EU? 46,506 official Safety Gate alerts by GTIN, brand or name.
- Update an existing dashboard's shared `dashboardContext`, widgets, tags, and/or team. Call get_skill with skillId: "dashboards" first — see skill for inheritance rules. Look up the dashboard id via search. Pass `dashboardContext` as a partial patch to edit the global filter (`conditionsCel`), period, groupBy, metricId, currency, or scopeId without recreating the dashboard — omit fields you want to keep; empty `conditionsCel` clears the filter. The legacy `context` alias is temporarily accepted but deprecated; never send both. Pass `operations` to add/replace/remove widgets. Pass `tags` to replace the full tag list (existing IDs from list_tags and/or `{ name, color? }` for new tags; `[]` clears). Pass `teamId` (from list_teams) to assign a team, or `teamId: null` to detach. At least one of `dashboardContext`, `operations`, `tags`, or `teamId` is required. Response includes `inheritedContext` so new chart widgets can omit fields matching the dashboard. Chart widgets inherit metricId, groupBy, currency, period, and conditionsCel by default — only pass per-widget overrides. Text widgets: `{ type: "text", title, textContent }`. Do not repeat from/to, datePreset, or groupBy when they match the dashboard context. Set `extendDashboardConditions: false` only when a chart widget must ignore the dashboard filter. Optional grid fields on add: `x`/`y`/`w`/`h` (from get). Returns a URL — you MUST include it in your response. EXAMPLES: see skill dashboards Workflow B (widgets) and Workflow D (context / global filter). • "Tag the AWS dashboard as infrastructure" (after list_tags returned tag id "tag_abc") → { dashboardId: "clx9aws", tags: ["tag_abc"] } • "Move the K8s dashboard to the infra team" (after list_teams returned id "team_xyz") → { dashboardId: "clx9k8s", teamId: "team_xyz" } • "Remove the dashboard from its team" → { dashboardId: "clx9k8s", teamId: null }Connector
- Create a cost alert that monitors one or more queries and notifies when a condition fires. MCP is create-only — there is no update_alert; edit in the UI via the returned URL. Accepts the same query config as query (prefer `datePreset` over hand-computed from/to). The firing rule is a single `condition` boolean expression over the query `name`s, e.g. `a > 1000`, `rollingSum(a, 7, DAY) > 50000`, or `(a - timeShift(a, 1, DAY)) / timeShift(a, 1, DAY) > 0.2`. Window math (rollingSum/weekToDateSum/monthToDateSum/timeShift) is evaluated daily in BigQuery, so you do NOT pick an evaluation period — instead set `dedup` to control re-notification frequency (CALENDAR once per WEEK/MONTH, or ROLLING once every N days). The period (`datePreset` or `from`/`to`) defines the preview/look-back window for the underlying queries. Use list_available_destinations for SLACK/TEAMS channel IDs. Returns a URL that you MUST include in your response so the user can view/edit the alert. EXAMPLE: "Alert me on Slack if our production AWS spend exceeds $50k over any 7 days, at most once a week" → { name: "Prod AWS weekly alert", queries: [{ type: "cost", name: "a", metricId: "cost", currency: "USD", filterCel: "cos_provider in [\"AWS\"] && cos_environment in [\"prod\"]" }], datePreset: "TRAILING_90_DAYS", condition: "rollingSum(a, 7, DAY) > 50000", dedup: { kind: "CALENDAR", calendarUnit: "WEEK" }, notificationChannel: "SLACK", slackChannelId: "C01ABC" }Connector
- Create a demo cloud simulation from a list of resources and connections (max 2 per session, up to 10 resources; demo simulations are temporary and are cleaned up after roughly 30 minutes or when the session ends). If you don't have an architecture in mind, call `scenario.list` first — its `resources` and `connections` arrays can be passed directly here. Use it to start any simulation workflow — either with resources from scenario.list or your own architecture. Do not use it to modify an existing simulation (use simulation.inject_traffic to change load). To give a resource an explicit capacity, set characteristics.capacityRps — the literal per-node RPS ceiling at which CPU reaches ~95%; do not use maxThroughput for this (it is a legacy internal scaling parameter with different semantics). To bound the autoscaled fleet size, set the top-level maxInstances / minInstances parameters. If you do not set maxInstances, the engine uses the provider default — AWS 50, GCP 15, Azure/OCI/DigitalOcean 10 — which may be much larger than your intended fleet size. The response includes effectiveMaxInstances / effectiveMinInstances so you can confirm the bounds that will be enforced. Responses are compact by default: id, name, status, traffic, and a per-resource summary (id, name, status, cpuPercent). Pass responseMode: 'full' to get the complete simulation object instead. No prerequisites. Returns the created simulation's id, which every other simulation.* tool consumes; the new simulation also becomes this session's current simulation, so subsequent per-simulation tools may omit simulationId. The likely next tool is simulation.step to advance time. Do not call api.spec to learn the simulation workflow — the tool descriptions in this session contain everything needed. Authenticate with an API key for unlimited persistent simulations.Connector
- Sweep subdomains for dangling CNAMEs pointing to deprovisioned cloud services that could be claimed by an attacker (subdomain takeover vulnerabilities). Detects 16 provider families (AWS S3/CloudFront, Azure Front Door/CDN/Blob/App Service, GCP Cloud Storage, Heroku, GitHub Pages, Vercel, Firebase, Shopify, etc.). Use when asked if subdomains are pointing to deprovisioned cloud services. Pair with discover_subdomains to widen the candidate set — note that returns a CT sample, not a full inventory.Connector
- Fetch full AWS doc pages as markdown. `search_documentation` already returns verbatim page chunks, so don't re-read a URL whose chunk you already have to "confirm" or "round out" an answer -- the chunk is the real page text; treat it as authoritative. Reading the full page is justified ONLY when the chunks genuinely lack the content: - an enumeration or aggregation ("list all X", "how many X") needs the complete set and the chunks show only part of it; - no search result is on-topic after refining the query, and a known doc URL would have the answer. Otherwise, answer from the chunks. Use exact URLs from `search_documentation`; don't guess slugs. Input: `requests: [{url, max_length?, start_index?}]`. Batch 2-5. - `max_length` default 10000. - `start_index` default 0; use prior `end_index` to continue, TOC offset to jump. Allow-listed prefixes: docs.aws.amazon.com; aws.amazon.com (not /marketplace); repost.aws/knowledge-center; docs.amplify.aws; ui.docs.amplify.aws; github.com/{aws-cloudformation/aws-cloudformation-templates, aws-samples/{aws-cdk-examples, generative-ai-cdk-constructs-samples, serverless-patterns}, awsdocs/aws-cdk-guide, awslabs/aws-solutions-constructs, cdklabs/cdk-nag} (README on `main`); constructs.dev/packages/{@aws-cdk-containers, @aws-cdk, @cdk-cloudformation, aws-analytics-reference-architecture, aws-cdk-lib, cdk-amazon-chime-resources, cdk-aws-lambda-powertools-layer, cdk-ecr-deployment, cdk-lambda-powertools-python-layer, cdk-serverless-clamscan, cdk8s, cdk8s-plus-33}; strandsagents.com/latest/documentation/docs/; karpenter.sh/docs/. Output: SUCCESS -- markdown + `total_length, start_index, end_index, truncated, redirected_url?` (truncated includes TOC with char ranges). ERROR -- `error_code` in {not_found, invalid_url, throttled, downstream_error, validation_error}.Connector
- AWS resource availability per region. - Max 10 regions; multi-region needs `filters`; single-region supports `next_token`. - Status: isAvailableIn | isNotAvailableIn | isPlannedIn | Not Found. - Response key: products | service_apis | cfn_resources. Not for region counts/docs/vague queries -- use `search_documentation` / `list_regions`. Filter values must EXACTLY match AWS's catalog names; guessed, partial, or pluralized names are rejected ("values in filter parameter do not exist"). If unsure of the exact name, first call once for a single region with resource_type set and NO filters to list all valid names, then re-call filtering on the exact match.Connector
- Use when a user asks "what is being built / announced / permitted" in a market or by an operator — the forward-looking construction pipeline. Example: "What data centers are under construction in Northern Virginia and when do they come online?" — get_pipeline country=US status=construction (there is no `market` parameter — filter by country/operator, or use search_facilities for a named market). Params: status one of "announced" | "permitted" | "construction" | "operational"; operator (e.g. "Equinix", "Digital Realty", "AWS"); country (ISO-2, e.g. "US", "DE"); min_capacity_mw (e.g. 50 to filter hyperscale); expected_completion_before (ISO date, e.g. "2027-01-01"); limit/offset for pagination. Returns: {projects:[{name, operator, capacity_mw, status, expected_commissioning, market_slug, country, lat, lon}], total, generated_at}. Do NOT use for already-operational facilities (use search_facilities) or for the M&A deal flow (use list_transactions).Connector
- WORKFLOW: Step 1 of 4 - Start infrastructure design conversation Open an InsideOut V2 session and receive the assistant's intro message. The response contains a clean message from Riley (the infrastructure advisor) - display it to the user. ⚠️ Riley will ask questions - forward these to the user, DO NOT answer on their behalf. CRITICAL: This tool returns a session_id in the response metadata. You MUST use this session_id for ALL subsequent tool calls (convoreply, tfgenerate, tfdeploy, etc.). ⚠️ The session_id includes a ?token=... suffix (format: sess_v2_xxx?token=yyy) which is part of the session credential — without it, downstream tools fall back to a tokenless connect URL that 401s. Always pass session_id verbatim to subsequent tools and to the user; do NOT shorten, paraphrase, or strip the ?token= portion when summarizing the session in chat or in your own scratch notes. Use when the user mentions keywords like: 'setup my cloud infra', 'provision infrastructure', 'deploy infra', 'start insideout', 'use insideout', or similar intent to begin infra setup. OPTIONAL: project_context (string) - General tech stack summary so Riley can skip discovery questions and jump to recommendations. The agent should confirm this with the user before sending. Include whichever apply: language/framework, databases/services, container usage, existing IaC, CI/CD platform, cloud provider, Kubernetes usage, what the project does. Example: 'Next.js 14 + TypeScript, PostgreSQL, Redis, Docker Compose, deployed to AWS ECS, GitHub Actions CI/CD, ~50k MAU'. NEVER include credentials, secrets, API keys, PII, source code, or internal URLs/IPs -- only general metadata summaries useful to a cloud architect agent. IMPORTANT: source (string) - You MUST set this to identify which IDE/tool you are. Auto-detect from your environment: 'claude-code', 'codex', 'antigravity', 'kiro', 'vscode', 'web', 'mcp'. If unsure, use the name of your IDE/tool in lowercase. Do NOT omit this — it controls the 'Open {IDE}' button on the credential connect screen. OPTIONAL: github_username (string) - GitHub username for deploy commit attribution. Pre-populates the GitHub username field on the connect page. 💡 TIP: Examine workflow.usage prompt for more context on how to properly use these tools.Connector
- Define a concept/term from a domain's glossary (e.g. 'stir', 'crop-factor', 'roughness'). Routes to each domain's lookup_concept; pass `domain` to target one, omit to fan out. For entities/records use `search`. Abstains on a miss, which is logged as a gap (the demand signal) — there is no report_gap verb. For COMPUTED quantities (molar mass, date math, unit conversions) a miss will point you to the right compute verb — follow it via `describe`/`call` rather than re-searching. Mounted corpora: acupuncture, cocktail, camera, law, copyright, trademark, music-theory, supplements, writing-style, minecraft-dungeons, spanish, medical-denials, languages, behavioral-econ, baseball, agent-practices, pokemon, mcp, readability, citations, relay, models, self-oracle, recall-traps, units, tax, physics, logic, astronomy, biology, geography, medicine, chemistry, calendar, math, eurorack, building-codes, cooking, personal-finance, stardew, coffee, electronics, physiology, diving, decibels, gearing, colorimetry, subnetting, textile-gauge, first-aid, statistics, chess-endgames, woodworking, rating-systems, tuning, check-digits, paper-sizes, wire-gauge, preferred-numbers, swe-claim-denial, psychology, roman-numerals, minecraft-mods, encodings, strength-training, hardiness-zones, terraria, unix-permissions, aspect-ratio, number-bases, resistor-color-code, cognitive-psychology, braille, semver, cron, unicode, timezones, metar, incoterms, soundex, glob, ieee754, http-status, zigbee, uuid, base-encodings, percent-encoding, dms-coordinates, gray-code, hashing, classical-ciphers, hamming-code, geohash, mac-address, poker-hands, capacitor-codes, iso, dice-probability, scrabble-score, wind-chill, mach-number, saffir-simpson, dataviz, patents, chords, dtmf, shoe-size, crc, base58, bech32, base85, reed-solomon, theoretical-ecology, string-similarity, checksums, compression, prng, bloom-filter, computus, hyperloglog, peppers, search-heuristics, tomatoes, solar-times, blood-alcohol, maidenhead-locator, brewing, celestial-navigation, electrochemistry, fluid-mechanics, information-theory, structural-mechanics, regex, combinatorics, graph-algorithms, linear-algebra, psychrometrics, photographic-exposure, photometry, rf-link, screen-resolution, algorithm-complexity, color-names, type-sizes, vin, drill-bit-sizing, itu, mime-types, coding-theory, finite-automata, fourier-analysis, numerical-methods, ac-circuits, heat-transfer, markov-chains, orbital-mechanics, currency-codes, elliptic-curves, queueing-theory, totp-hotp, computational-geometry, crockford-base32, html-named-character-references, iana, thermodynamics, acoustics, magnetism, hydrostatics, gas-laws, blackbody-radiation, antenna-gain, bcp47, dimensionless-numbers, dns-record-types, midi-messages, kinematics, geometric-optics, digital-logic, convex-optimization, clothing-sizes, knitting-needle-gauge, pipe-size, winemaking-math, ansi-escape-codes, radiation-dosimetry, transmission-lines, nuclear-decay, cribbage-scoring, running-pace, dnd-math, bowling-scoring, tire-size, abn-acn, sedol-cusip, damm-verhoeff, fresnel-equations, hydrogen-spectrum, material-elasticity, pump-affinity, control-theory, em-plane-waves, ordinary-differential-equations, myrcene, posix-signals-reference, quaternions-reference, origami-flat-foldability-theorems, trailer-hitch-ball-coupler-classes, bayesian-inference, issn-check, ean-barcode, aquarium-chemistry, 3d-printing, arrow-spine, knitting-needle-sizes, bearing-sizes, camera-film-formats, horology, mechanical-vibrations, rocket-propulsion, fiber-optics, rolling-element-bearing-life, beaufort-scale, iec-60320, sae-viscosity, hat-sizes, darts-scoring, complex-numbers, boolean-algebra, game-theory, lambda-calculus, combustion-stoichiometry, bolts-screws, ham-radio-bands, miniature-scale, fracture-mechanics, torsion, catenary, standard-atmosphere, open-channel-hydraulics, gaussian-beam-optics, capillary-action, lei, fen-pgn, nmea-0183, phonetic-algorithms, lumber-grades-dimensions, film-speed-iso, telescope-optics, tabletop-rpg-probability, tcr-therapy, software-licenses, z-transform, generating-functions, terzaghi-bearing-capacity, icao, imei-reference, gs1-ai, ulid, postal-barcodes, photographic-paper-sizes, gauge-systems-industrial, fishing-line-ratings, sorting-algorithms, candle-making, pool-billiards-geometry, sourdough-ratios, electromagnetic-induction, ring-sizes, probability-distributions, isentropic-flow, fatigue-life, three-phase-power, http-headers, ghs-hazard, abrasive-grit-sizes, cycling-power-zones, group-theory, dynamic-programming-recurrences, molecular-diffusion, smtp-reply-codes, un, chain-pitch, string-gauges, sewing-pattern-grading, tabletop-wargaming-probability, aquaculture-stocking-density, polynomial-arithmetic, matrix-decompositions, nhs-number, diode-junction, elastic-collisions, pressure-vessel, reverberation-time, count-min-sketch, ieee-ethertypes, http-methods, tls-alerts, bwt-mtf, bicycle-wheel-sizing, silk-thread-nm-denier, soapmaking-lye, context-free-grammars, dc-motor-equations, usb-class-codes, punycode, film-frame-rates, aperture-f-stop-series, golf-handicap, hydroponics-nutrients, sewing-fabric-math, resin-mixing-ratios, pdf-structure, piping-water-hammer, hertzian-contact-stress, photovoltaic-cell-performance, iata-airport-delay-codes, faa, sieve-mesh-sizing, disc-golf-flight-numbers, beekeeping-hive-math, vinyl-record-cutting-specs, houseplant-light-and-watering-calc, cellular-automata-rules, error-correcting-codes-beyond-block, climbing-rope-and-anchor-ratings, knot-invariants, photovoltaic-cell-model, fiber-dispersion, osmotic-pressure-solutions, naics-sic-classification, orcid-checksum, swift-bic-format, isni-checksum, shotgun-gauge-and-choke, rope-cordage-strength-and-diameter, screen-mesh-count-and-particle-sizing, battery-cell-form-factor-codes, xor-filter, kite-line-and-wind-window, clothing-glove-size-standards, wasm-module-header, protobuf-wire-format, rankine-cycle-efficiency, projectile-ballistics-drag-corrected, aes-fips-block-parameters, voronoi-delaunay, iso15459-license-plate, np-completeness-reductions, hidden-markov-viterbi, png-ihdr-fields, mbr-partition-table, fuzzywuzzy-rapidfuzz-string-similarity-api-reference, v-belt-sprocket-sizing, go-baduk-scoring, zip-central-directory-header, curling-scoring, mahjong-hand-scoring, sudoku-difficulty-rating, dominoes-scoring, base45, typography, tides, pbkdf2, ndc, epsg, hkdf, hvac-duct-sizing, hts, elevator-rope-crane-wire-rope-classification, board-game-elo-scoring, ecfr, tide-and-moon-phase-almanac, regular-expression-derivatives, obd2-pids, emission-designators, runway-designators, qr-code, iban-structure, sewing-needle, experiment-design, scientific-method, mtg-rules, crystallography, png-chunk-type, wind-turbine-aerodynamics, rf-noise-and-link-budget, icd-10-cm, world-heritage-list-criteria, german-tax-id-checksum, cas-registry-checksum, hydraulic-hose-fitting-sizing, spectacle-frame-and-lens-sizing, beer-lambert-spectrophotometry, induction-motor-slip-torque, corrosion-rate-faraday, seebeck-thermoelectric-generation, viscosity-shear-rheology, imo-ship-number, international-code-of-signals, alcohol-proof-abv, code128-code39-barcode-checksum, usp-suture-sizing, garden-perennials, precious-metal-fineness, hop-alpha-acid-ibu, guitar-fret-spacing, juggling-siteswap, knots, leathercraft-stitch-and-skiving, data-structure-complexity, usb-device-descriptor, ipv4-tcp-header-bitfields, compost, cologne-phonetic-and-match-rating, needleman-wunsch-smith-waterman-alignment, billiards-collision-physics, flag-semaphore, naismith-trail, statistical-mechanics, population-genetics, electrical-transformer-turns-ratio, unicode-script-property-values, sd-card-speed-class, shipping-container-iso-6346-sizing, beer-styles, rebar-sizing-astm-a615, pool-spa-water-chemistry, home-canning-process-times, ceramics-glaze-chemistry, seismic-magnitude, battery-peukert-discharge, ac-skin-effect-transformer-losses, cpf-cnpj-nif-national-id-checksums, grib2-wmo-bitstream-header, aamva-drivers-license-barcode-pdf417, ntp-timestamp-format-and-leap-indicator, o-ring-sizes, npt-pipe-thread, saami-ammunition-caliber, linear-programming-simplex, clausius-clapeyron-vapor-pressure, fips, usda, orifice-venturi-flow-meter, compost-cn-ratio, beer-style-specs, archimedes-buoyancy-and-flotation, doppler-effect, compton-scattering, ipa-phonetic-alphabet, library-of-congress-classification-outline, nail-size-penny-system, book-format-folio-quarto-octavo, wine-bottle-nomenclature-volumes, garden-hose-thread-ght, wheel-bolt-pattern-pcd, stable-matching-gale-shapley, bezier-de-casteljau-splines, hall-effect, gyroscopic-precession, photoelectric-effect, combinatorial-game-theory-nim-sprague-grundy, hvac-filter-merv-rating, paper-basis-weight-system, sun-safety, flag-semaphore-encoding, uv-index-calc, watch-movement-ligne-sizing, model-rocket-motor-classification, cornhole-scoring, market-identifier-codes, skin-cancer-epidemiology, horseshoe-pitching-scoring, chaos-theory-fractal-dimension, voting-theory-social-choice, thermal-expansion-coefficients, agma-gear-tooth-bending-stress, bolt-preload-torque-tension, magnetic-circuit-reluctance, merchant-category-codes, ashrae-refrigerant-designations, upu-s10-tracking-number, isrc, isil, cfi, rubiks-cube-notation-and-metrics, food-additive-e-numbers, multihash-cid, perfume-concentration-and-dilution, axe-throwing-scoring, voting-tally-methods, cheesemaking-recipe-math, canine-caloric-requirements, maritime-mid-ship-station, wcag-success-criteria, fire-hose-thread-sizing, ski-binding-din-release-setting, zipper-tooth-gauge-sizing, racket-stringing-tension-and-pattern, arrhenius-equation, larmor-radiated-power, iec-60529-ip-rating-codes, pencil-graphite-hardness-grading, npsh-cavitation-margin, centrifugal-fan-laws, magnus-effect, pop-rivet-sizing, michaelis-menten-enzyme-kinetics, iarc-carcinogen-classification-registry, larmor-precession, voltage-drop-conductor-sizing, grounding-electrode-resistance, chimney-stack-effect-draft, concrete-water-cement-ratio-strength, hornbostel-sachs-instrument-classification, helmholtz-resonator-port-tuning, ethernet-cable-category-ratings, propeller-pitch-slip-thrust, pencil-lead-diameter-and-hardness-scale, hydraulic-jump-open-channel-flow, epa-air-quality-index-breakpoints, concrete-maturity-method, wet-bulb-globe-temperature-wbgt, chemical-compound-physical-properties, capstan-belt-friction-equation, iala-maritime-buoyage, iau-constellation-codes, egg-size-grading, respirator-filter-class-rating, tippet-x-rating, resin-identification-codes, nfpa-fire-extinguisher-classification, iucn-red-list-categories, enhanced-fujita-scale, proquint-encoding, electrical-conduit-trade-size, fishing-hook-size, weir-flow-discharge, baume-specific-gravity-converter, who, kalman-filter-and-state-estimation, coriolis-effect-deflection, schwarzschild-radius, coulombs-law-electrostatic-force, stokes-law-terminal-velocity, helical-compression-spring-rate, iata-icao-airline-designators, hl7v2-message-type-registry, clothing-pattern-drop-and-suit-size-system, bowling-ball-drilling-layout, tippet-x-diameter-calculator, curie-weiss-magnetic-susceptibility, penman-monteith-reference-evapotranspiration, camera-lens-filter-thread-and-step-ring-sizing, amateur-radio-contest-scoring, optimal-stopping-theory, cherenkov-radiation-angle, zeeman-effect-splitting, josephson-junction-relation, nfpa-704-fire-diamond, dea-controlled-substance-schedules, thermal-expansion, koppen-climate-classification, modified-mercalli-intensity, ansi-a13-1-pipe-marking, malus-law-polarization, hazen-williams-pipe-flow, extended-surface-fin-heat-transfer, fillet-weld-strength, volcanic-explosivity-index, isan-check-character, iswc-check-digit, rifle-scope-moa-mrad-conversion, digit-lottery, cvss-scoring, dicom-tag-dictionary, rayleigh-scattering-intensity, rutherford-scattering-cross-section, ais-navigation-status-message-types, nema, rfc5322-email-address-grammar, grounded-retrieval, asme-y14-5-gdt-symbols, automotive-blade-fuse-sizing, tor-v3-onion-address, railway-signal-aspects-and-block-rules, uic-wagon-number-check-digit, asl-fingerspelling-manual-alphabet, retrieval-metrics, vehicle-stopping-distance, vcard-property-registry, nato-stanag-military-rank-codes, bip39-mnemonic-checksum, larson-miller-creep-rupture-parameter, figure-skating-scoring, ioc-noc-codes, icd-10-pcs, aiga-dot-symbol-signs, universal-dependencies-relations, lsh-minhash, string-matching-algorithms, icao-wake-turbulence-separation-calculator, contract-bridge-hand-evaluation, gymnastics-code-of-points, archery-target-scoring, simple-machines-mechanical-advantage, led-photodiode-responsivity-and-quantum-efficiency, wind-load-structures, seawater-sound-speed, messier-catalog, grpc-status-codes, sysexits-posix-exit-codes, marc21-code-lists, fix-protocol-tag-dictionary, mutcd-traffic-sign-codes, cwe-weakness-taxonomy, isbn-registration-group-ranges, nordic-personal-id-checksum, table-tennis-scoring, flywheel-kinetic-energy-storage, iec-60529-ip-code-structure, radiation-pressure, gravitational-lensing-deflection, wmo-cloud-atlas, wind-speed-averaging-conversion, FCC-NWS-SAME-event-codes-EAS, cites-appendices, transponder-squawk-codes, icd-10-pcs-code-decoder, richardson-dushman-thermionic-emission, posix-errno-codes, win32-hresult-facility-codes, basel-conv-hazard-codes, sql-sqlstate-codes, badminton-scoring, dewey-decimal-classification, mohs-hardness-scale, glasgow-coma-scale, torino-impact-hazard-scale, bortle-dark-sky-scale, textile-care-symbols-iso3758, backgammon-pip-count-and-cube, union-find-disjoint-set, quadratic-residues-jacobi-symbol, cigar-ring-gauge, surfboard-volume-calculator, seawater-sound-speed-equations, french-gauge-medical-tubing, duplicate-bridge-matchpoint-scoring, blackjack-basic-strategy-ev, climbing-grade-conversion-scales, rack-units, eip-55-checksum-address, iccid-sim-card-checksum, welding-rod-electrode-classification-aws, fire-sprinkler-k-factor-sizing, pinewood-derby-physics, golay-code-23-12, vexillology-flag-construction-proportions, pagerank-power-iteration, raft-consensus-safety-properties, rohs-weee-marking-symbols, ssh-key-fingerprint, woodturning-lathe-speed, table-of-consanguinity-relationship-calculator, apgar-score, mil-std-810-environmental-test-methods, colregs-navigation-rules, osha-permissible-exposure-limits, ada-2010-accessible-design-standards, turntable-tonearm-alignment-geometry, roller-derby-jam-scoring, cdc-acip-immunization-schedule, gemstone-carat-weight-from-dimensions, coin-melt-value, computability-turing-machines, public-key-crypto-arithmetic, real-time-scheduling-theory, order-theory-lattices, ipv6-header-bitfields, baking-pan-volume-substitution, bicycle-spoke-length-calculation, freediving-depth-pressure-tables, croquet-and-bocce-scoring-and-legality, skip-list-probabilistic-height, merkle-tree-proof-verification, pickleball-scoring-and-rules, ipcc-climate-findings, sound-transmission-mass-law, rfc2119-bcp14-requirement-keywords, montreal-protocol-controlled-substance-annexes, hl7-fhir-r4-resource-type-registry, roller-chain-sizing, home-roasting-coffee-first-crack-development, elf-header-fields, pcap-global-header-fields, dns-header-bitfields, sec-edgar-filing-rules, falconry-jess-and-weight-management, systemd, pottery-throwing-and-clay-shrinkage, esrb-pegi-content-rating-systems, wine-appellation-classification-systems, consumer-product-recalls-policy, antitrust-merger-guidelines, rubber-plastic-shore-durometer-hardness, epidemiology-surveillance, tea-brewing-parameters, rowing-ergometer-pace-power, fabric-gsm-areal-density-conversion, kombucha-fermentation-math, fdi-dental-tooth-numbering, precious-metal-hallmark-purity-marks, eu-vat-number-checksum, z-base-32-codec, solar-panel-tilt-poa-irradiance, specific-heat-sensible-latent-load, rxnorm-normalized-drug-names, lockpicking-pin-tumbler-tolerance, scientometrics, loinc-observation-codes, fpv-drone-motor-prop-math, kayak-canoe-hull-speed, radar-range-equation, aci-318-reinforced-concrete-flexural-capacity, food-recalls, supreme-court-holdings, consensus-quorum-arithmetic, tcg-deck-draw-probability, iso6709, wmo-present-weather-code, usps-pub28-abbreviations, adts-aac-frame-header, fermi-dirac-statistics, us-place-gazetteer, pickleball-equipment-specs, fmcsa-hours-of-service-limits, gdpr-administrative-fine-tiers, fmla-employee-eligibility-thresholds, butterworth-chebyshev-filter-design, hash-table-load-factor-and-collision-math, munsell-color-notation, geologic-time-scale-ics, douglas-sea-scale, palermo-impact-hazard-scale, eyring-transition-state-theory, debye-huckel-activity-coefficient, sausage-casing-diameter-standards, economic-inequality-indices, tournament-tiebreak-systems, uspstf-screening-grades, ada-diabetes-diagnostic-criteria, flsa-overtime-exemption-thresholds, cpsc-childrens-product-lead-limits, fda, fatf-aml-cft-recommendations, ramsar-wetland-designation-criteria, bluetooth-company-identifiers, spirits-standards-of-identity, eeoc-charge-filing-deadlines, salometer-brine-salinity, national-register-historic-places-criteria, codex-alimentarius-food-standards, nist-cybersecurity-framework, geneva-conventions-ihl-articles, source-registry, diagnostic-ultrasound-safety-indices, tiff-image-file-directory, knowledge-organization, max-msp, ultrasound-imaging, modular-synthesis, fx-conversion, market-structure, finite-fields, sparkfun-boards, intellijel, 2hp, make-noise, mutable-instruments, 4ms, alm-busy-circuits, bastl-instruments, fujifilm, sigma, music-thing-modular, cwejman, doepfer, befaco, 1010-music, joranalogue-audio-design, addac-system, instruo, ai-synthesis. If your user's topic isn't in that list, issue the query anyway rather than declining from the roster — an unrouted miss that grounds nowhere is the demand signal for what the corpus should cover next.Connector
- Semantic search INSIDE a fetched record. Pass the text you already pulled (e.g. a SEC 10-K body, an article, a long tool result) plus a natural-language query; get back the top-N passages with character offsets and similarity scores. Use when the record is too big to cram into the prompt — search_within saves context, returns only the passages that matter, and every passage carries an offset so the agent can verify a verbatim quote. Pairs with ask_pipeworx_grounded: fetch with the gateway, ground over the relevant passages instead of the whole document. BGE-base-en embeddings + cosine over 500-char overlapping windows; cap is 200K chars (longer inputs are truncated and flagged).Connector
- "Compare X and Y" / "X vs Y" / "X versus Y" / "which is bigger / better / larger / more profitable" / "rank these companies" / "head to head" — side-by-side comparison of 2–5 companies or drugs in ONE parallel call. ALWAYS PREFER over sequential single-pack lookups when comparing entities. type="company" pulls LATEST 10-K revenue + net income + cash + long-term debt from SEC EDGAR/XBRL (off-calendar fiscal years handled correctly — AAPL Sep, NVDA Jan, etc.). type="drug" pulls FAERS adverse-event counts, FDA approval counts, active trial counts. Results sorted by primary metric so "largest" / "most" / "biggest" reads off the top of the response. Returns paired data + pipeworx:// citation URIs per entity. Replaces 8–15 sequential lookups.Connector
- [pqc_signature] 使用 ML-DSA 私钥对消息签名(FIPS 204)。 【双模式】sign_mode 支持 RAW(默认)和 EXTERNAL_MU 两种模式。 - RAW 模式:直接签名原始消息(liboqs,最大 256 字节) - EXTERNAL_MU 模式:先计算 mu = SHAKE-256(tr||M', 64),再通过 OpenSSL 3.5+ mu 模式签名(最大 2048 字节),与 AWS KMS ML-DSA EXTERNAL_MU 语义等价 【消息长度策略】 - RAW:最大 256 字节,空消息合法 - EXTERNAL_MU:最大 2048 字节,空消息合法 - > 256 且 <= 2048 字节:使用 EXTERNAL_MU - > 2048 字节:拒绝 【算法】algorithm 支持 ML-DSA-44 / ML-DSA-65(默认)/ ML-DSA-87。 【参数】 - private_key_in_hex:ml_dsa_keygen 返回的私钥 hex - public_key_spki_in_hex:EXTERNAL_MU 模式必填,ml_dsa_keygen 返回的公钥 hex(SPKI DER) - message_in_hex:待签消息 hex - context_in_hex:可选上下文 hex(最大 255 字节) - sign_mode:RAW 或 EXTERNAL_MU(默认 RAW) 【输出】signature_in_hex、signature_in_base64、algorithm、message_bytes、signature_bytes。Connector
- Search Costory knowledge base and product docs (Mintlify) in parallel. Returns KB articles (title, summary, full markdown) and Mintlify matches (titles, snippets, and full docs URLs (`Url: https://docs.costory.io/...`)). Optional limit (1–10, default 5) applies to KB. For a full Mintlify page, use get_documentation_page. When citing a page in chat, use the full `Url:` value verbatim as the markdown href — do not convert to a relative app path. EXAMPLES: • "How do I create a budget alert?" → { query: "budget alert" } • "Why do costs differ from AWS Cost Explorer?" → { query: "AWS Cost Explorer discrepancy", limit: 3 }Connector
- List saved Costory business metrics and, optionally, matching live external metrics from connected integrations (e.g. Tsuga, BigQuery, Datadog, CloudWatch). Saved metrics return id/name/type for { type: "metric", metricId: "..." } in query. Set includeExternal: true with a specific search term to return externalMetrics with provider, integrationId, integrationName, metricName, unit, capabilities, and attributes — enough to build { type: "externalMetric", provider, integrationId, metricName, aggregator, groupByFields, conditions } for Tsuga or Datadog (same shape — for Datadog, attributes are tag keys and metricName is the Datadog metric name), or CloudWatch (same shape — for CloudWatch, metricName is Namespace/MetricName such as AWS/EC2/CPUUtilization and attributes are dimension names), or { type: "externalMetric", provider: "bigquery", integrationId, metricName (table id), dateColumn, metricColumn, gapFillingMethod, aggregator, groupByFields } for BigQuery. Do not call includeExternal without search; external catalogs can be large, and the tool will ask for a search term instead of listing everything. externalLimit (default 50, max 50) caps matching external results. Pass `datasourceId` to instead get a usage-metric datasource's available **groupBy dimension(s)** (`groupByDimensions`) for building a virtual-dimension **`telemetry`** (split-by-usage-metric) allocation. Then call `query` (`type: "metric"`, `metricId`, `groupBy`) to inspect the values for a dimension, and use those values as keys of the allocation's `mappingParams.mapping`, each mapped to a vdim bucket label; unmapped values fall through to the leftover rule. The `datasourceId` is the same `metricsDatasource` id this tool returns as a saved-metric `id` (strip any `::metricName` suffix). Does **not** return values (use `query`) and does **not** cover live external-metric integrations (e.g. Tsuga, BigQuery, Datadog, CloudWatch) — those cannot back a `telemetry` allocation. EXAMPLES: • "What business metrics do we have?" → {} • "Find Tsuga metrics about requests" → { includeExternal: true, search: "request" } • "Find BigQuery tables about revenue" → { includeExternal: true, search: "revenue" } • "Find Datadog metrics about CPU" → { includeExternal: true, search: "cpu" } • "Find CloudWatch metrics about CPU" → { includeExternal: true, search: "CPUUtilization" } • "What can I reallocate shared cost by?" → {} (each saved-metric id is a telemetry.datasource) • "What can I split the Datadog CPU metric by?" → { datasourceId: "clx…" }Connector