Skip to main content
Glama
457,863 tools. Updated 2026-08-14 18:31

"AWS Lambda" 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
  • 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
  • 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

Matching MCP Servers

  • A
    license
    -
    quality
    D
    maintenance
    Bridges MCP clients and AWS Lambda functions, enabling generative AI models to invoke Lambda functions as tools without code changes.
    Apache 2.0
  • F
    license
    A
    quality
    B
    maintenance
    A local MCP server for read-only querying of AWS resources (Lambda, S3) via Boto3, currently exposing a health check tool with planned tools for listing resources and checking free tier.
    7

Matching MCP Connectors

  • Is this product recalled in the EU? 46,506 official Safety Gate alerts by GTIN, brand or name.

  • Read GPU instances, types, images, filesystems and firewall rules; launch and terminate instances.

  • 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
  • [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
  • Create a dashboard with one or more widgets. Call get_skill with skillId: "dashboards" first — see skill for context-first workflow and inheritance rules. Put shared settings in `dashboardContext` (period required when chart widgets are present: prefer datePreset when possible, otherwise startDate/endDate; text-only dashboards may omit period; plus metricId, common groupBy, currency, optional conditionsCel). Chart widgets inherit by default and should only specify overrides: do not repeat from/to, datePreset, groupBy, metricId, currency, or conditionsCel when they match dashboardContext. The legacy `context` alias is temporarily accepted but deprecated; never send both. Text widgets use `{ type: "text", title, textContent }` — no queries or period. Comparison widgets add compare: omit its from/to to compare against the preceding period automatically (preset-aware), and set compare.chartType to WATERFALL (default), TABLE, or KPI_BREAKDOWN. Returns a URL — you MUST include it in your response. EXAMPLE: "AWS overview dashboard" → see skill dashboards Workflow A.
    Connector
  • [cost: external_io (DNS via Cloudflare + Google; TLS handshake + a SIP OPTIONS keepalive to public targets when applicable) | read-only | rate-limited per IP: 10/min, 200/day] Walk DNS the same way a SIP UA does (RFC 3263 §4.1): NAPTR → SRV → A/AAAA. Given a SIP URI ("sip:example.com"), bare hostname ("example.com"), or "host:port" string, return the records that exist and the resolution ladder a UA would try. When the queried target uses TLS (`sips:` URI, `transport=tls/wss`, or any `_sips._tcp` SRV record), the tool also performs a TLS handshake against each resolved sips target and reports the negotiated TLS version + cipher, the leaf certificate's subject / issuer / SANs / validity, the chain length and whether it validates against Node's default trust store, plus two cert-domain checks: RFC 5922 §7.2 strict (cert must cover the original SIP domain) and a lenient SAN match against the SRV target hostname. SIP liveness: DNS resolving and a TLS handshake succeeding do NOT prove the endpoint actually speaks SIP - a load-balanced node can accept TCP/TLS yet black-hole SIP. So the tool ALSO sends a real SIP OPTIONS keepalive to each resolved public IP across the relevant transports (UDP/TCP on 5060, TLS on 5061 / SRV port) and reports per-IP answered / timeout / refused. Any SIP response (even 405/403/404) proves the stack is alive on that IP. When a name resolves to multiple IPs it is treated as a load-balancer fan-out and each IP is probed individually, with a warning about the known failure modes of fronting stateful SIP/RTP with a cloud L4 LB (AWS NLB/ALB etc.): cross-zone-off targets that black-hole, the ~120s UDP idle timeout, and per-5-tuple hashing splitting signaling from media. Egress safety: - Per-IP rate limited. - Hostnames that resolve only to RFC 1918 / loopback / link-local / documentation / multicast space are refused (SSRF guard). - Walk depth capped to prevent runaway NAPTR / CNAME chains. - TLS probes capped at 6 (host, port, ip) tuples per call, 5 s handshake timeout each, public-IP only (we connect to the resolved IP, not the hostname, so the system resolver cannot redirect us into private space). - SIP OPTIONS probes capped at 6 (ip, transport) tuples per call, 3 s timeout each, public-IP only; the request carries no SDP/body and an unroutable Via, and only the response status line is captured. Use to diagnose: - "carrier doesn't answer" / "wrong port" / "TLS instead of UDP" routing puzzles - "DNS looks healthy but calls fail" - per-IP SIP OPTIONS surfaces nodes that resolve and accept the transport but never answer SIP (the decisive step for load-balanced / multi-IP targets) - "carrier rejects our target because no SRV is published" - when A/AAAA resolves but SRV is missing the tool synthesises a copy-pasteable suggested zone-record block pointing at the resolved canonical hostname - "TLS handshake works but cert isn't valid for the SIP domain" - RFC 5922 §7.2 compliance is checked separately from generic chain validation, since the SAN must cover the *original* SIP domain (not the SRV-redirected target) ACL caveat: a SIP OPTIONS timeout can also mean the target authorizes inbound SIP by source IP whitelist on the trunk (Twilio, Telnyx, Bandwidth, …; see https://www.twilio.com/docs/sip-trunking/api/ipaccesscontrollist-resource) and is dropping our probe because our egress IP is not on the ACL. An `answered` result is conclusive (the node speaks SIP); a `timeout` is suggestive, not proof of a dead node - confirm reachability from the SBC itself. Pair with: `troubleshoot_response_code` when 503 / 408 / 480 are involved; `search_sip_docs(vendor=...)` for carrier-specific routing docs.
    Connector
  • "Tell me about X" / "research Acme" / "brief me on Tesla" / "what does Apple do" / "company profile for Microsoft" / "give me the rundown on NVDA" / "everything you know about $TICKER" — full cross-source profile of a US public company in ONE parallel call. ALWAYS PREFER over chaining single-pack SEC/XBRL/news lookups when the user asks for a holistic view. Fans out across SEC EDGAR, XBRL, USPTO, news, GLEIF and returns: cik + company_name; recent_filings (up to 5 with pipeworx://edgar/company/{cik}/filings/{accession} URIs); fundamentals (LATEST 10-K Revenues + NetIncomeLoss + Cash, sorted period_end DESC); patents (USPTO PatentsView API sunset May 2025 — soft-fails until reactivated); recent news mentions via GDELT→GNews fallback; LEI via GLEIF. Pass ticker "AAPL" or zero-padded CIK "0000320193" — names not supported (use resolve_entity first if you only have a name).
    Connector