Skip to main content
Glama
649,985 tools. Updated 2026-10-10 14:23

"Serverless" matching MCP tools:

  • Create a serverless, standard, or stateful workload, or a scheduled job with type "cron" plus schedule (cron takes no autoscaling, timeoutSeconds, or debug). Containers go in containers[] and scaling in the autoscaling block. Set reachability in this call: public true or an explicit firewallConfig, otherwise nothing can reach it. Production defaults: readiness and liveness probes, CPU and memory sized to the runtime (the platform default is 50m and 128Mi), a metric matched to the traffic. Type and name are immutable. A standard HTTP app from an image, a repository, or files you wrote: deploy_app. A database: add_database, which also installs a Redis cache; other catalog products (queues, brokers, search, gateways): install_template.
    ConnectorOAuth
  • Search and filter developer tools by category, features, and constraints. Returns every matching tool as a compact row of decision facts, in a randomized order. Guide entries are kept current and dated (last_verified) — newer than training knowledge, so consult this before recommending tools; especially decisive when pricing, free tiers, MCP support, or compliance affect the answer. Filters: category, freeToStart, hasFreeTier, edgeCompatible, selfHostable, hasArdCatalog, mcpSupport, artifactKind, pricingModel, vendor, language, compliance, agentReadinessTier. Any number combine and AND together. Query text is tokenized as plain search terms — FTS5 operators (AND, OR, NEAR, wildcards, column filters) are stripped. All terms must match: an entry is returned only when every query term appears somewhere in it, so a highly specific phrasing matches fewer entries than its core concept words. Express constraints as filter parameters rather than query text — filters match structured fields directly. Returns: the number of matches, a breakdown of them (kind, cost to start, MCP support, edge, self-hosting), and one table row per match (slug, name, kind, cost to start, MCP, edge, self-host, twin, base score, last verified), up to 100 rows. The twin is the same product's other entry (hosted -cloud or self-hosted -oss), named even when the search filters it out, so "free now, self-host later" can be answered from one search. Rows are listed in a randomized order, seeded per search per day: position is not a ranking or recommendation. Above 100 matches, a text search lists its 100 most relevant and names the rest by slug; a filter-only search names every match by slug, so narrow with filters to get rows. Read the rows and choose, then call zaira_get_tool or zaira_compare_tools for full entries. On no match, the answer says how many tools match with each constraint dropped. Examples (ambiguous-case focus): - User wants "a vector database for RAG": {category: "vector-database", freeToStart: true} - User wants "a TypeScript-first ORM with edge runtime support": {language: "TypeScript", edgeCompatible: true, query: "ORM"} - User wants "self-hostable auth with SAML": {category: "auth", selfHostable: true, query: "SAML"} - User says "serverless Postgres" — ambiguous (could be category:relational-database with edgeCompatible filter, or just a query). Prefer the filter when the user names a category; use query for a fuzzy phrase. - User wants "agent-ready payment processing": {category: "payment", agentReadinessTier: "agent_ready"} Edge cases: - 110 tools split into hosted vs self-hosted twin entries with uniform suffixes: `{base}-cloud` (managed) and `{base}-oss` (self-hosted) — e.g. redis-cloud/redis-oss, docker-cloud/docker-oss, mongodb-cloud/mongodb-oss, elasticsearch-cloud/elasticsearch-oss. Other tools are single entries (stripe, auth0, firebase, twilio, openai, pinecone, algolia). Filter by `selfHostable` or `artifactKind` to land on the right variant. - "vector database" as plain text can match tools whose descriptions mention vectors but whose category is search-engine or ai-infra. Use the `category` filter when the user wants a strict match. - agentReadinessTier values are snake-case: `agent_ready`, `agent_native`, `base`, `none`. Display labels (`Agent Ready`) will not match. `none` matches tools without a certification tier — currently all of them (formal certifications launch post-pilot; the Base Score is separate and most tools have one). - artifactKind has only two values: `open_source` and `managed_service`. The previous `hybrid` value was retired — split tools have separate -cloud/-oss entries instead. - "Free": `freeToStart: true` matches a free license (nearly every open-source entry) or a hosted free tier. `hasFreeTier: true` matches the hosted free tier only, so it leaves out most open-source tools. Open source is free to use, not free to run. Risk: read-only, closed-world, idempotent — no state change possible.
    ConnectorNo auth
  • VDD Phase 8: Validate the full chain — bidirectional traceability matrix, drift detection, orphan detection, uncovered vision goals, impact metrics vs targets, and 28 S&T assumption checks across 7 gates. Writes vdd/impact-report.generated.md and never overwrites a hand-authored vdd/impact-report.md. Run after implementation is complete; for the traceability matrix or per-feature spec metrics use vdd_inspect. Parameter relationships: feature narrows the check to one spec; artifactFiles maps artifact path to content for serverless runs and is omitted when resolving against a local projectRoot. On the hosted (stateless) endpoint, pass artifactFiles (the vdd/ artifacts) so the tool can run drift/orphan/substance checks; without it the tool returns a delegation envelope.
    ConnectorNo auth
  • Store a sealed OAuth2 authorization code. Called by the serverless callback function after the browser redirect. The ``state`` carries BOTH the patron npub (the lookup/retrieve key) and the operator npub (the PUBLIC key the code is sealed to) — see the SDK's ``pack_oauth_state``. The code is sealed with NIP-44 to the operator so only that operator's nsec can open it; the Neon row is keyed by the patron npub, so retrieval (``retrieve_code(state=patron_npub)``) is unchanged.
    ConnectorNo auth
  • 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/; Amazon Braket: {amazon-braket-sdk-python, amazon-braket-schemas-python, amazon-braket-default-simulator-python, amazon-braket-pennylane-plugin-python, amazon-braket-algorithm-library, qiskit-braket-provider, autoqasm, qirtoqasm}.readthedocs.io and github.com/amazon-braket/* (blob/tree/raw). 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}.
    ConnectorNo auth
  • Build and deploy an HTTP app in one resumable call. Builds the app files stored with write_app_files (the default), or repoUrl, or skips the build for image. Without gvc it uses the GVC a job made for apps, asks about any other, or creates the first one once the user picks a location. Creates a standard workload (stateful with per-replica storage) or updates one it created, with production defaults (HTTP readiness and liveness checks, 2 replicas so deploys cause no downtime, exposure set now), grants access to secrets its env references, waits up to 40 seconds, and returns the status, the public URL once ready, and the exact next call. Files that must survive restarts: storage. Serverless, several containers, cron, or other protocols: create_workload.
    Connector
    Destructive
    OAuth

Matching MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A serverless implementation of the Model Context Protocol that provides AWS Cost Explorer tools, enabling users to query, analyze, and forecast AWS costs through natural language interactions.
    7 npm
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides a serverless implementation of the Model Context Protocol for registering and managing tools, enabling in-memory client-server connections and credential transmission via request context.
    61 npm
    1
    MIT

Matching MCP Connectors

  • A high-performance, edge-native Data Refinery Engine built on Cloudflare's serverless AI stack (Workers, Workers AI, D1, KV, Vectorize) designed to continuously ingest unstructured data, refine it into pristine machine-readable structured intelligence, compute semantic diffs, and serve it directly to AI agents via the Model Context Protocol (MCP) and REST APIs.

  • Connect AI assistants to AppAmbit — the command center for your mobile & desktop apps. Query real-time analytics, sessions, and crash reports; read and push remote config; send push notifications, provision and query managed per-app SQLite databases, deploy serverless Cloud Code functions; and manage a headless CMS. Also generates SDK setup snippets and runs integration diagnostics. Supports .NET MAUI, Swift, Objective-C, Android and more. Built for indie devs, mobile teams, and agencies.

  • Somewhere to put the file your agent just made — Get a signed upload URL and a retrieval URL for one file, in one call. Your agent PUTs the bytes straight to storage — they never pass through this API, so there is no size ceiling imposed by a serverless runtime and no proxy in the middle. Declare bytes= and the size is signed into the URL. Up to 25 MB, retention 1-30 days, unguessable key. The step every agent hits the moment it produces a report, chart, CSV or build and has nowhere to put it. Required input: bytes. Priced $0.005 per call over x402 on Base; send a prepaid x-credit-token header for unlimited calls, or get 1 free call/day per tool. No wallet or API key required.
    ConnectorNo auth
  • Price every shape that delivers a capability, and say where they cross over. This is the tool for "should we move to serverless", "is Lambda cheaper than EC2", "what would containers cost instead". Answer with the crossover, not a verdict: one shape is cheaper below some level of traffic and dearer above it, and the number where that flips is the thing the user can act on. `capability` is an id from `list_cost_building_blocks` (for example `serve-http`). `drivers` are the workload's measurements, and EVERY driver the capability declares must be given, for every shape. That is enforced rather than defaulted: giving one architecture a favourable assumption the other does not get is the single easiest way to produce a comparison that looks rigorous and is not. `over` names the driver to sweep, usually the one the user is unsure about (`requests_per_month` is the common one). Pass it to get `break_even`: a priced curve for each shape and the crossing points between them. `low` and `high` bound the sweep; omit them for the driver's typical range. Read `crossings` carefully. Each one carries the band around it where the two shapes are indistinguishable given the uncertainty in the inputs. Inside that band the honest answer is "it does not matter, pick on other grounds", and saying "X is cheaper" there is a claim the numbers do not support. An EMPTY `crossings` list is not "there is no break-even". Read `no_crossing`, which says which window was swept and what happened inside it. Usually it means one shape won at every point in that range, and that the answer is being decided by one of the drivers you held fixed rather than by the one you swept. Sweeping a different driver is what finds the flip. Do not report "they never cross" from a single sweep. Cost is one input and rarely the deciding one. Request time limits, long-lived connections, operational effort and what the team already knows all decide this more often than price does. The reply carries each shape's characteristics for exactly that reason; pass them on rather than reducing the answer to a total.
    ConnectorNo auth
  • What agents actually searched this directory for, for an agent deciding which x402 service to build or list. Returns the aggregate demand feed: the terms asked most persistently (ranked by how many distinct days a term was asked, not by volume — volume is trivially faked and we proved it on ourselves), and the category filters they used. It reports what was ASKED, not what is missing: before calling a need unmet, read the term's catalogue_top (the listings our own search returns for it) and, where it is null, call find_paid_service with the term; whether the listings already serving a term are adequate competition is a seller's judgement, not ours, and we grade those listings. Exclusions are applied and published rather than hidden: queries under 5 characters (catalogue enumeration, once the top ten terms were the single letters a-j), searches from clients that also edit listings here (sellers checking their own rank — one accounted for 196 of 205 searches of the top term), and a floor: a term appears once at least 1 distinct non-seller client IP asked it (terms naming a URL, host, wallet or email are never published, whoever asked). Client IPs are a ceiling on independent demand, never a count of buyers: one serverless caller presented eight IPs in a second. The window is complete but closed — it ends a week behind live while the paid tier is on sale (a day when it is not; delay_hours and window_ends_at in the response say which). This is a small market and the numbers are small; they are reported as they are so you can judge whether they are enough to act on. Lookups of a named listing (a listed service's own name, searched almost only by clients that searched nothing else) are listed apart in named_listing_lookups, not ranked in top_needs; so are terms asked by many addresses almost all of which searched only once (one caller rotating IPs), in scripted_rotation. Every term is published; a reply holds one page of them (limit, default 100; offset; next_offset says where the next page starts). A current version is sold at GET https://api.nohumans.directory/v1/demand/clusters ($0.25 USDC on Base via x402): the last 30 days, rebuilt every 15 minutes rather than a week behind, searches grouped by meaning, with example phrasings and how many results each need got. This free feed is enough to judge whether the demand is worth acting on; buy the current one when you need the current window.
    ConnectorNo auth
  • Generate text using open-source LLM models hosted on Groq (ultra-fast) or HuggingFace Inference (serverless). No API key required — the server provides its own keys. Supported models: Qwen3 32B, Gemma 4 27B, Gemma 3 27B, Llama 3.3 70B, Llama 4 Scout, DeepSeek R1, Mistral Small 24B, and more. Use list_llm_models to see the full catalog. Rate-limited to prevent abuse.
    ConnectorNo auth
  • Any web page → clean, agent-ready text — Pass a URL and get the page as clean text — furniture (nav, scripts, ads, footers) stripped, paragraphs preserved — plus its title, description and site name. The step every agent needs before it can reason about a page, and the one most agents can't do themselves: serverless runtimes and MCP clients have no browser and no HTML parser. Follows redirects safely, refuses non-text content, caps at 2 MB. Nothing crypto about it. Required input: url. Priced $0.002 per call over x402 on Base; send a prepaid x-credit-token header for unlimited calls, or get 1 free call/day per tool. No wallet or API key required.
    ConnectorNo auth
  • List the most recent posts on the Radixia blog (AI, serverless, open source, cloud). Returns title, slug, date, tags and excerpt for each.
    ConnectorNo auth
  • Deploy a Scalix Function — serverless, per-request billed, running in isolated microVMs — from a container image. Invoke it with scalix_fn_invoke once deployed.
    ConnectorNo auth
  • How an agent gets a Postgres database, static site, serverless functions, storage and email on run402 with no signup — paid per-use with x402 USDC on Base. Returns the 60-second start, key URLs, and the free-testnet path.
    ConnectorNo auth
  • [COST: $0.50] Provisions an isolated Neon Serverless Postgres branch for an external agent. This routes through our mcp-server-neon connection to generate secure DB credentials on the fly.
    ConnectorNo auth
  • Create a temporary anonymous demo cloud simulation from a list of resources and connections (max 2 active simulations per client, up to 10 resources; the returned simulationId is a short-lived unguessable capability that survives MCP transport teardown, but it is cleaned up when the demo lifetime expires or the simulation is deleted). No API key required for this temporary anonymous demo operation. Built-in scenario workflow: call `scenario.list` and pass a returned card's `id` as `scenarioId` to `simulation.create` for server-side graph expansion. For full control, call `scenario.get` and pass its hydrated `resources` and `connections` arrays instead. These are two alternatives — do not send `scenarioId` with `resources` or `connections`. When copying a scenario graph that returns `autoscalingConfig`, pass that config to `simulation.create` too so its thresholds and cooldown are preserved. For the catalog EKS Spot Interruption Migration scenario, you may set `scenarioOverrides: { eksSpotInterruption: { startupSeconds } }` with an integer startupSeconds from 0 through 3600 to test a different readiness deadline without copying the graph; this override requires scenarioId and is mutually exclusive with resources and connections. For the Web App Autoscaling scenario, create with `scenarioId: "web-autoscaling"` and `scenarioOverrides: { webAutoscaling: { includeTrafficRecovery: true } }` to activate the optional Traffic Recovery ramp and observe scale-in. `includeTrafficRecovery` is optional and defaults to false, leaving the phase inactive. Opt in before the first simulation.step because replay identity is finalized when stepping starts. This override also requires scenarioId and is mutually exclusive with resources and connections. `scenario.list` returns graph-free cards with bounded active/optional traffic-phase and retry-workload summaries; it is not a source of resource, connection, traffic-pattern, or failure-injection graphs. Scenario traffic and failure presets are not applied automatically. Use resilienceConfig.externalMetrics for deterministic sampled recommendations: no_ready_endpoints is successful zero only when its trigger sets noReadyEndpointsAsZero:true; discovery_error and fetch_error always remain errors. This is not a KEDA/provider actuator and does not change resource counts. Use it to start any simulation workflow — either with hydrated resources and connections from scenario.get or your own architecture. Do not use it to modify an existing simulation (use simulation.inject_traffic to change load). For the exact owned typical fit, set appWeight:'typical', location.regionKey:'us-east-2' on all four AWS nodes, one ALB with serviceFamily:'alb' and loadBalancerScheme:'internal', two m5.large compute apps with workload:'crud-typical', appRuntime:'node', appWorkerCount:2, appDbPoolSize:250, one db.r5.large MySQL with workloadDatabaseEngine:'mysql', workloadDatabaseVersion:'8.0', maxConnections:500, ALB→each app→DB connections, minInstances=maxInstances=2, autoscaling:false, traffic 20–300 RPS. Only typical-fit-20, typical-fit-100 and typical-fit-200 tuned the typical-v1-20260927c/6aa574d7ff9d3080b88b221bcd59f7d218ae37f0 fit; 300 is an independent holdout and 500 is diagnostic only. Other typical workloads are modeled, not owned. P99 has distinct per-percentile provenance: latencyP99Basis identifies the owned in-VPC internal-ALB fit, a scaled-from-fit estimate (not directly measured), or an uncalibrated generic model. On the exact healthy lean owned graph at 10–1,000 offered target RPS, P99=max(final P95, 7.021919127633514 + 0.00027013891327780484*T) ms; only 10/100/500 RPS were fit, 1,000 RPS was held out. Lean M5 scaling is not a new measurement; typical/heavy and active failures retain uncalibrated P99. predictionEvidence.latencyP99 has measured 0.65–1.35×, scaled 0.50–1.50× (beyond 1,000: 0.25–2×), or uncalibrated 0.50–2× (beyond: 0.25–3×) assumption bounds centered on final P99. These are not confidence intervals or provider measurements. Historical evidence may omit P99. latencyBasis describes the general modeled latency path; use latencyP99Basis specifically for P99. P99 is diagnostic, not scored. For compute, set characteristics.capacityRps for an explicit per-node RPS ceiling at which CPU reaches ~95%; do not use maxThroughput for that compute contract. Kubernetes rejects capacityRps: set maxThroughput for the total cluster RPS ceiling, or nodePools[].maxThroughput for per-node pool capacity. Omitted compute capacityRps uses the selected catalog tier and can intentionally produce a stressed baseline (for example, the AWS m5.large catalog denominator is 2,000 RPS); for a healthy, capacity-bounded compute experiment, declare an explicit per-node capacity such as 500 RPS. That value is an experiment control, not a universal hardware fact. For OCI flexible compute shapes, pass the documented positive integer characteristics.ocpus explicitly; VM.Standard.E4.Flex accepts 1–64 OCPUs and each OCPU maps to 2 vCPUs. OCPU count establishes capacity dimensions only, not provider-specific performance, throughput, or price. An uncounted flexible shape remains an unverified generic estimate. Check GET /api/prediction/generic-shapes for the catalog-derived generic fallback inventory. New prediction-only GCP standard capacity entries include e2-standard-2/4/8/16/32, n1-standard-1/2/4/8/16/32/64/96, and n2-standard-16/32/48/64/80/96/128; provider specifications establish vCPU/memory dimensions, not CWM performance or pricing. Version 1 predictionEvidence explicitly reports legacyGeneric at the top level and on every appCpuByResource item; its note identifies each generic resource's shape and fallback reason. For generic fixed compute, characteristics.instanceCount accepts integer 1–100 represented VMs; capacity aggregates and CPU is per VM. Do not combine it with autoscaling:true, minInstances, or maxInstances. Aurora Serverless v2 remains limited to 1 with multiAz:false or 2 with multiAz:true. For Aurora Serverless ACU limits, use characteristics.config.minCapacity/maxCapacity or flat characteristics.minCapacity/maxCapacity. The exact AWS database shape with serviceFamily: 'aurora-serverless' and size: 'db.serverless' also accepts flat characteristics.minAcu/maxAcu; those aliases are rejected elsewhere, including at the resource root or inside config. For that shape, multiAz:true with instanceCount:2 creates a separately billable reader (<writer-id>-reader) in another AZ. Inspect returned resources and metrics before using simulation.step to observe modeled failover; no AWS timing guarantee is implied. For database connection budgets, set characteristics.connectionDemand on a database: {mode:'declared',declaredConnections:240} uses that plan-time demand without RPS; {mode:'max',declaredConnections:240,idlePoolFloor:200} takes the maximum of load-derived demand and the declared/floor values; omitted configuration preserves load-derived behavior. declaredConnections and idlePoolFloor are ASSUMPTIONS / plan-time budgets (for example, replicas × per-pod pool size), not observed live DB connections. Set maxConnections to the usable limit you intend to test. Per-database metrics report connectionDemandMode, loadDerivedConnections, declaredConnections/idlePoolFloor, and modeledConnections; cost and DB CPU/latency remain based on existing load-driven behavior. Demand above the usable limit adds a bounded, rule-based pool-saturation error signal; it is not a provider-calibrated rate. Capacity, node-bound, SKU, and autoscaling values supplied through this MCP tool are recorded as agent-supplied in the immutable normalizationReceipt; request responseMode: 'full' to inspect it. Generic GKE telemetry and recovery apply only to worker nodes; the control-plane management fee is cost-only, with no modeled control-plane CPU, API throttling, or cooldown. 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. For a targeted CPU HPA scale-out threshold, send the canonical autoscalingTargetCpu field in this create call (for example, autoscalingTargetCpu: 70 for GKE). The compatible aliases scaleOutCpuThreshold, scaleOutCpuPercent, and autoscaleTargetCpuPercent are also accepted; if more than one is sent, their values must agree. Every create response includes hpaAudit with the supplied field, persisted thresholds, and any provider default. For ECS Fargate CPU-only target tracking, set ecsCpuTargetTracking: true, autoscalingTargetCpu, minInstances/maxInstances, and optional scaleOutCooldownSeconds/scaleInCooldownSeconds with simulationSecondsPerStep (default 1). Inspect autoscalingConfig in the compact response or applicationAutoscalingPolicy in the full response. Latency and throughput do not trigger ECS scaling in this mode. These four TOP-LEVEL fields are simulation-wide — the engine applies one CPU threshold identically to every resource's scale decision by default. To make ONE resource scale at a different CPU target than the rest of the simulation (e.g. a GKE cluster scaling out at 60% while an EC2 fleet in the same simulation scales out at 80%), set characteristics.scaleOutCpuThreshold and/or characteristics.scaleInCpuThreshold on that specific resource instead — the per-resource value wins over the simulation-wide default for that resource only. A misnamed near-miss field nested under characteristics (e.g. targetCPUUtilizationPercentage) is rejected with a 400 explaining the correct field name — it is never silently dropped and defaulted. Responses are compact by default: id, name, status, traffic, and a per-resource summary (id, name, status, cpuPercent, routedRps, availabilityState, isRoutable, and recoveryBlockedReason when provided). Pass responseMode: 'full' to get the complete simulation object instead. During a failure workflow, lower traffic to serviceable levels before calling simulation.recover_resource, then use simulation.step until the recovered resource is healthy. Recovery progress is included when applicable: recoveryProgress.state is parked, cooling_down, or healthy, and its parkWindow/cooldown objects report totalSteps, completedSteps, remainingSteps, target, and requiredSteps. Poll simulation.step until state is healthy, then use simulation.metrics to inspect the resulting state and metrics. 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.
    ConnectorNo auth
  • Upload media and get back a reusable media_id. Four modes: (1) pass `url` to upload from a publicly accessible URL, (2) pass `data` (base64-encoded file bytes) plus `mime_type` for small files (3MB cap), (3) for a file on the user's machine when you can run shell commands (Claude Code, Cowork, Codex, Cursor), pass `size_bytes` plus `mime_type` and `name` with no `url` or `data`: you get a media_id and a presigned `upload_url`, then PUT the raw file to it yourself (curl command included in the result, valid 2 hours, up to 500MB, no 3MB cap). Use mode 3 for any local video. (4) In ChatGPT, pass a file from the conversation (one the user attached, or an image you generated) as `file`: ChatGPT supplies its download link and the file goes straight into the media library, no size cap beyond 500MB and no manual upload. Supports images (PNG/JPEG), videos (MP4/MOV), and PDFs (application/pdf). A PDF returns a document-kind media_id — pass it to create_post on a LinkedIn account to publish a native LinkedIn document post (PDF carousel); set platform_configurations.linkedin.document_title to control the title. Use the returned media_id with the `media` param on create_post/update_post. A media_id stays available until the last post that uses it has published, then the file is deleted: reusing it across posts that are all scheduled is fine, but for a post created after those have gone out, upload the file again. HEIC/HEIF images are not supported — convert to JPEG or PNG first. Direct `data` uploads are capped at 3MB raw because of serverless request-body limits — for larger local files use mode 3 if you can run commands, otherwise request_upload_link.
    ConnectorOAuth