Integration

StackAI integration

StackAI is an enterprise platform for building and running AI agent workflows. Start, poll, resume and cancel runs of a saved project and read its input and output contract; create knowledge bases, upload files, sync and search them; browse integration providers and connections and run provider actions; manage evaluation datasets, evaluators, experiments, production monitors and run scores; read and delete skills; and list, create and delete webhook subscriptions. Not exposed: the superseded v1 knowledge-base routes, the legacy inference and analytics routes (organization keys, streaming answers), SCIM provisioning, and skill publishing (multipart bundles with repeated file parts). Authentication is a personal API key (starts with sk_) sent as a Bearer token; the key's scopes and its owner's live permissions both apply.

Ask it in chat

Say what should happen.
The workflow builds itself.

When this happens, do that in StackAI.Built from the 75 StackAI tools below, on the connection you add once.

What you can do with StackAI

Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.

Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.

Row, 6 operations

  • add_eval_dataset_rowsAdd eval dataset rowsPOSTAppends 1 to 100 rows to a dataset, each with inputs keyed like the dataset contract and an optional expected_output. Needs evals.update.
  • delete_eval_dataset_rowDelete eval dataset rowDELETEDeletes one row from a dataset. Needs evals.delete.
  • get_eval_dataset_rowGet eval dataset rowGETReturns one dataset row (inputs and expected output). The row must belong to the dataset given. Needs evals.read.
  • list_eval_dataset_rowsList eval dataset rowsGETLists a dataset's rows in position order, with offset and limit paging. Needs evals.read.
  • list_eval_experiment_rowsList eval experiment rowsGETLists an experiment's rows with generated output, status, error and nested scores, with offset and limit paging. Needs evals.read.
  • update_eval_dataset_rowUpdate eval dataset rowPATCHUpdates a dataset row's inputs or expected_output. Leave a field out to keep it; send expected_output null to clear it. Needs evals.update.

Dataset, 5 operations

  • create_eval_datasetCreate eval datasetPOSTCreates an evaluation dataset for a project with its node_contract (one input key, one output node from get_project_io_schema). Then add rows or import run traces. Needs evals.create.
  • delete_eval_datasetDelete eval datasetDELETEDeletes an evaluation dataset together with its rows and experiments. Needs evals.delete.
  • get_eval_datasetGet eval datasetGETReturns one evaluation dataset with its contract and current contract-drift warnings against the project. Needs evals.read.
  • list_eval_datasetsList eval datasetsGETLists a project's evaluation datasets, optionally by name search or by the input/output contract they can feed. Needs evals.read.
  • update_eval_datasetUpdate eval datasetPATCHUpdates a dataset's name, description or node_contract; a new contract can re-key stored rows. Leave a field out to keep it. Needs evals.update.

Evaluator, 5 operations

  • create_evaluatorCreate evaluatorPOSTCreates an evaluator (llm_judge or builtin_rule) for a project with its config and node_contract; start from list_evaluator_templates and check with preview_evaluator. Needs evals.create.
  • delete_evaluatorDelete evaluatorDELETESoft-deletes an evaluator so it can no longer be selected; its historical scores remain. Needs evals.delete.
  • get_evaluatorGet evaluatorGETReturns an evaluator with its current configuration version, including whether it uses expected output. Needs evals.read.
  • list_evaluatorsList evaluatorsGETLists a project's evaluators, filterable by dataset or experiment compatibility, excluded ids and whether they need expected output. Monitors and run scoring need reference-free ones. Needs evals.read.
  • update_evaluatorUpdate evaluatorPATCHUpdates an evaluator's metadata or configuration; a material config change creates a new immutable version. Leave a field out to keep it. Needs evals.update.

Experiment, 5 operations

  • create_eval_experimentCreate eval experimentPOSTCreates an experiment: a snapshot of a dataset with a project version and evaluators. Nothing runs until create_eval_experiment_job. Needs evals.create.
  • delete_eval_experimentDelete eval experimentDELETEDeletes an experiment with its row snapshots and scores. Needs evals.delete.
  • get_eval_experimentGet eval experimentGETReturns an experiment's metadata, progress, evaluator summaries and aggregate cards. Aggregates can hide row failures; read list_eval_experiment_rows too. Needs evals.read.
  • list_eval_experimentsList eval experimentsGETLists a project's experiments with their aggregate scores, optionally for one dataset or by name search. Needs evals.read.
  • update_eval_experimentUpdate eval experimentPATCHUpdates an experiment's name or notes; leave a field out to keep it, send notes null to clear them. Needs evals.update.

Knowledge base, 5 operations

  • create_knowledge_baseCreate knowledge basePOSTCreates a knowledge base, optionally fed by an existing connection's sources or website pages, and returns its knowledge_base_id. Then upload files or sync it. Needs kbs.create.
  • delete_knowledge_baseDelete knowledge baseDELETEDeletes a knowledge base and its content. Workflows that search it stop finding results. Needs kbs.delete.
  • get_knowledge_baseGet knowledge baseGETReturns a knowledge base's configuration and indexing totals (files, indexed, errors, last sync). Existence does not mean every file is indexed. Needs kbs.read.
  • list_knowledge_basesList knowledge basesGETLists the knowledge bases available to you, newest first, with indexing totals. Follow next_cursor for more. Needs kbs.read.
  • update_knowledge_baseUpdate knowledge basePATCHUpdates a knowledge base; send only the fields to change. Source or indexing changes may need a sync_knowledge_base and reindexing. Needs kbs.update.

Monitor, 5 operations

  • create_eval_monitorCreate eval monitorPOSTCreates a production monitor that scores a sample of a project's runs with one reference-free evaluator, within the limits of get_eval_monitor_limits. Scoring consumes judge resources. Needs evals.create.
  • delete_eval_monitorDelete eval monitorDELETEDeletes a monitor; scores already recorded in run history are kept. Needs evals.delete.
  • get_eval_monitorGet eval monitorGETReturns one monitor's configuration (evaluator, sampling rate, daily cap) and enabled state. Needs evals.read.
  • list_eval_monitorsList eval monitorsGETLists a project's production monitors with their seven-day score and alert rollups. Needs evals.read.
  • update_eval_monitorUpdate eval monitorPATCHUpdates a monitor's name, description, enabled state, sampling rate or daily cap; leave a field out to keep it. Needs evals.update.

Resource, 4 operations

  • delete_knowledge_base_fileDelete knowledge base fileDELETEDeletes one file from a knowledge base, so retrieval no longer returns it. Needs kbs.delete.
  • get_knowledge_base_fileGet knowledge base fileGETReturns one knowledge-base file with its status: indexed means searchable, error needs a look, pending_delete or deleted are not search content. Needs kbs.read.
  • list_knowledge_base_filesList knowledge base filesGETLists the files of a knowledge base (flat) with their processing status. A pending or parsed file is not yet indexed. Follow next_cursor for more. Needs kbs.read.
  • upload_knowledge_base_fileUpload knowledge base filePOSTUploads one file to a knowledge base and starts indexing; returns its resource_id. Check get_knowledge_base_file until status is indexed or error; do not re-upload meanwhile. Needs kbs.index.

Run, 4 operations

  • get_runGet runGETReturns one run with its status, error, input, output and, for a paused run, pending_input (question, choices, resume_token). A 200 can describe a failed run. Needs analytics.read.
  • list_runsList runsGETLists runs in projects you can access, newest first, filterable by project, status, run type, starter and creation time. Follow next_cursor with the same filters. Needs analytics.read.
  • run_provider_actionRun provider actionPOSTRuns a provider action now through one of your connections and returns its outputs. It can change the third-party system (send, create, delete); do not repeat an ambiguous call. Needs connections.use.
  • start_runStart runPOSTStarts a run of a saved project (paused: answer with resume_run). Needs projects.run and analytics.read. If the wait fails, check list_runs before starting it again. Waits for the job and returns the finished result; gives up after 10 minutes.

Score, 3 operations

  • create_eval_run_scoreCreate eval run scorePOSTScores one existing run with a reference-free evaluator and appends the score (a retry adds another). Consumes judge resources. Needs evals.run and analytics.read.
  • get_eval_run_scoreGet eval run scoreGETReturns one recorded run score by its score_id, with evaluator, score, choice label and feedback. Needs evals.read and analytics.read.
  • list_eval_run_scoresList eval run scoresGETLists a run's score history, oldest first. Follow next_cursor for more. Needs evals.read and analytics.read.

Skill, 3 operations

  • delete_skillDelete skillDELETEDeletes a skill and all its versions. Only its owner, or an organization admin for an organization skill, may do it. Needs skills.delete.
  • get_skillGet skillGETReturns the latest published version of a skill with its instructions and file manifest. Needs skills.read.
  • list_skillsList skillsGETLists visible skills, built-in ones first, then your organization's. Needs skills.read.

Subscription, 3 operations

  • create_webhook_subscriptionCreate webhook subscriptionPOSTRegisters an HTTPS URL for run events. A subscription alone does not turn on delivery (follow a run with get_run). The signing secret is not passed through, so deliveries cannot be verified. Needs org.webhooks.manage.
  • delete_webhook_subscriptionDelete webhook subscriptionDELETEDeletes a webhook subscription; deliveries stop and it leaves the list. There is no update: create a replacement instead. Needs org.webhooks.manage.
  • list_webhook_subscriptionsList webhook subscriptionsGETLists the organization's active webhook subscriptions, oldest first (signing secrets are not returned). Needs org.webhooks.manage (an administrator's unscoped key).

Action, 2 operations

  • get_provider_actionGet provider actionGETReturns a provider action with its input parameters (required flags, options, defaults) and output parameters, used to build run_provider_action inputs. Needs connections.read.
  • list_provider_actionsList provider actionsGETLists a provider's actions for discovery; call get_provider_action for an action's input and output parameters before run_provider_action. Needs connections.read.

Alert, 2 operations

  • get_eval_monitor_alertGet eval monitor alertGETReturns a monitor's stored alert settings, current severity (unknown, ok, warning, alert) and the resolved effective and default values. Needs evals.read.
  • update_eval_monitor_alertUpdate eval monitor alertPATCHTunes a monitor's alert settings. Leave a setting out to keep it; send null to reset it to the server default. Read get_eval_monitor_alert afterwards. Needs evals.update.

Job, 2 operations

  • create_eval_experiment_jobCreate eval experiment jobPOSTQueues a job on an experiment (generate outputs, or score existing ones) and returns its job_id; poll get_eval_experiment_job. Only one job may be active per experiment (409). Needs evals.run.
  • get_eval_experiment_jobGet eval experiment jobGETReturns one experiment job. Poll it until status is completed, completed_with_failures, failed or cancelled; on a 503 retry the same call. Needs evals.read.

Provider, 2 operations

  • get_providerGet providerGETReturns one integration provider's descriptor from the catalog. Needs connections.read.
  • list_providersList providersGETLists the integration providers in StackAI's catalog with their action and trigger counts. Use the returned provider_id values; page with offset and limit. Needs connections.read.

Trigger, 2 operations

  • get_provider_triggerGet provider triggerGETReturns a provider trigger's descriptor with its input and output parameters (read only). Needs connections.read.
  • list_provider_triggersList provider triggersGETLists a provider's triggers (event sources). Listing does not register or activate anything. Needs connections.read.

Version, 2 operations

  • get_skill_versionGet skill versionGETReturns one published version of a skill (1-based number) with its instructions and file manifest. Needs skills.read.
  • list_skill_versionsList skill versionsGETLists a skill's versions, newest first, with offset and limit paging. Needs skills.read.

Cancel, 1 operation

  • cancel_runCancel runPOSTRequests cancellation of a run started by the same key or user. Acceptance does not mean execution has stopped, and side effects already done are not undone; check with get_run. Needs projects.run.

Connection, 1 operation

  • list_connectionsList connectionsGETLists the integration connections you can see in your organization, optionally for one provider. A status of needs_reconnection means the connection must be repaired in StackAI. Needs connections.read.

Download, 1 operation

  • get_knowledge_base_file_download_urlGet knowledge base file download urlGETReturns a temporary signed URL to download the original file of a knowledge-base resource. Treat the URL as sensitive and short-lived. Needs kbs.read.

Evaluator preview, 1 operation

  • preview_evaluatorPreview evaluatorPOSTScores 1 to 3 samples with an evaluator configuration without saving anything. A preview may still consume judge model resources. Needs evals.run.

Evaluator template, 1 operation

  • list_evaluator_templatesList evaluator templatesGETReturns the built-in starting configurations for evaluators, to adapt instead of guessing config fields. Needs evals.read.

Import, 1 operation

  • import_eval_dataset_rowsImport eval dataset rowsPOSTImports 1 to 100 finished runs of the dataset's project as rows, taking inputs and expected output from each run trace. One unusable trace rejects the batch. Needs evals.update and analytics.read.

Io schema, 1 operation

  • get_project_io_schemaGet project io schemaGETDescribes the input keys and output nodes of a project version (latest, draft or a saved number). Call it before start_run or before building an evaluation node_contract. Needs projects.read.

Metadata schema, 1 operation

  • get_knowledge_base_metadata_schemasGet knowledge base metadata schemasGETReturns the user and dataloader metadata schemas of a knowledge base, used to interpret file metadata (not a content search). Needs kbs.read.

Monitor limit, 1 operation

  • get_eval_monitor_limitsGet eval monitor limitsGETReturns the server-enforced sampling rate and daily run limits and the defaults for monitors. Read it before create_eval_monitor. Needs evals.read.

Query, 1 operation

  • search_knowledge_baseSearch knowledge basePOSTSearches an indexed knowledge base and returns the most relevant chunks, pages or documents (retrieval results, not a generated answer). Strategy semantic, keyword or hybrid. Needs kbs.query.

Resume, 1 operation

  • resume_runResume runPOSTAnswers a paused ask-human step of a run with the resume_token from get_run's pending_input, then the run continues; check it with get_run. Needs projects.run.

Sampled run, 1 operation

  • list_eval_monitor_sampled_runsList eval monitor sampled runsGETLists the runs a monitor sampled, with input and output snapshots and the latest scores. Follow next_cursor with the same window. Needs evals.read and analytics.read.

Score stats, 1 operation

  • get_eval_monitor_score_statsGet eval monitor score statsGETReturns a monitor's score trends over a window (24h, 7d, 30d or all) and its queue counters. Needs evals.read.

Status, 1 operation

  • get_eval_experiment_statusGet eval experiment statusGETReturns an experiment's latest job and its current result counts and aggregates. To follow one job, use get_eval_experiment_job. Needs evals.read.

Sync, 1 operation

  • sync_knowledge_baseSync knowledge basePOSTStarts a one-shot synchronization of a knowledge base from its sources. Acceptance does not mean every file is indexed; check get_knowledge_base. Needs kbs.sync.

Use StackAI from Claude Code, Cursor or Codex

Connect StackAI in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its StackAI operations become tools the client can call, next to every other integration you connected.

Claude Code
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"
Codex (~/.codex/config.toml)
[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"

[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"
Cursor, Claude Desktop and other JSON configs
{
  "mcpServers": {
    "livecontext": {
      "type": "http",
      "url": "https://livecontext.ai/mcp",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Set up the MCP server step by step

How to connect StackAI

  1. Create your workspace

    Sign up free. Nothing to install.

  2. Connect StackAI once

    Add your StackAI connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.

  3. Describe the job in chat

    The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.

StackAI integration FAQ

What can you do with the StackAI integration?

LiveContext exposes 75 operations on StackAI, covering row, dataset, evaluator and experiment.

Popular integrations

Browse the whole catalog