# StewAI (remote · api.stewai.com)

Discover, run, inspect, build, test, and privately reuse AI workflows.

- Trust score: 74/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-26

## Components

- remote · `api.stewai.com`: 74/100 (this document), [markdown](https://verifymcp.io/servers/com-stewai-stewai/api.md), [page](https://verifymcp.io/servers/com-stewai-stewai/api)

## Channel facts

- Endpoint: `https://api.stewai.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.1.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-26.

- **Endpoint Security**: 63/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (commit_recipe_build).
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 59/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 2248 tokens (~160/item across 14 items; 14 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 90/100
  - Stability observed for 27 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 75/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 13% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 14 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 15 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the StewAI MCP server?

StewAI is a hosted endpoint at https://api.stewai.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http com-stewai-stewai 'https://api.stewai.com/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "com-stewai-stewai": {
      "url": "https://api.stewai.com/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-stewai-stewai": {
      "type": "http",
      "url": "https://api.stewai.com/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.com-stewai-stewai]
url = "https://api.stewai.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-stewai-stewai": {
      "type": "remote",
      "url": "https://api.stewai.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-stewai-stewai --url 'https://api.stewai.com/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-stewai-stewai:
    url: "https://api.stewai.com/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "com-stewai-stewai": {
      "Transport": "http",
      "Url": "https://api.stewai.com/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-stewai-stewai -t streamable-http -u 'https://api.stewai.com/mcp'
```

### Other

```json
{
  "mcpServers": {
    "com-stewai-stewai": {
      "type": "http",
      "url": "https://api.stewai.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-25 (score 74, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-09-23 (score 73, 0)

- [functional] Server version: 0.3.124 → 0.3.130

### 2026-09-22 (score 73, +1)

- [functional] Server version: 0.3.123 → 0.3.124

### 2026-09-21 (score 72, 0)

- [functional] Server version: 0.3.122 → 0.3.123

### 2026-09-20 (score 72, +1)

- [functional] Server version: 0.3.121 → 0.3.122

### 2026-09-19 (score 71, 0)

- [security] Tool “update_recipe_build” rewrote its description, which is the text the model reads
- [functional] Server version: 0.3.117 → 0.3.121

### 2026-09-18 (score 71, 0)

- [security] Tool “get_recipe_preview” rewrote its description, which is the text the model reads
- [security] Tool “get_results” rewrote its description, which is the text the model reads
- [security] Tool “get_run” rewrote its description, which is the text the model reads
- [security] Tool “run_recipe” rewrote its description, which is the text the model reads
- [security] Tool “search_recipes” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 133 → 157
- [functional] Server version: 0.3.114 → 0.3.117
- [cosmetic] “get_results” added an optional parameter “detail”
- [cosmetic] “get_results” reworded the description of “limit”

### 2026-09-17 (score 71, +1)

No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (14)

### `check_recipe_build` (~67 tokens)

Check a StewAI Recipe Build

Run free deterministic lint, render, policy, and compiler checks. Omit fixtures for the normal structural check; a supplied fixture probe must also provide every referenced upstream dependency value.

Input parameters:

- `build_ref` (string, required)
- `fixtures` (object)
- `render_only` (boolean)

### `commit_recipe_build` (~69 tokens)

Commit a StewAI Recipe Build

Preflight and privately publish only the exact fully qualified recipe revision.

Input parameters:

- `build_ref` (string, required)
- `commit_capability` (string): Required for commit; omit for preflight.
- `idempotency_key` (string, required)
- `mode` (required)
- `revision` (string, required)

### `discover_stewai` (~43 tokens)

Discover and Connect to StewAI

Learn how any MCP agent can authenticate, discover, preview, run, author, qualify, commit, inspect, and recover StewAI recipes. Call this first.

Output parameters:

- `account` (object)
- `authenticated` (boolean)
- `authoring_available` (boolean)
- `authoring_journey` (array)
- `capabilities` (array)
- `connection` (object)
- `consumer_journey` (array)
- `gateway_contract_version` (string)
- `granted_scopes` (array)
- `rules` (array)
- `scope_groups` (object)

### `get_recipe_build` (~221 tokens)

Inspect a StewAI Recipe Build

List or inspect only the authenticated creator's private recipe builds. To list builds omit both build_ref and view; limit/cursor paginate that list. With or without build_ref, use view='authoring_schema' and schema_name='update_recipe_build', 'acceptance_suite', or 'start_recipe_build' to read the complete executable JSON Schema when a client hides nested operation or assertion fields. Large acceptance_plan reads return data.suite_page JSON fragments: append content in offset order, pass data.next_cursor as cursor until null, then parse the complete suite and verify its sha256. Small plans retain data.suite. Use view='capabilities' to discover the complete 24-handler authoring and automatic-acceptance capability catalog.

Input parameters:

- `build_ref` (string)
- `cursor` (string)
- `include_archived` (boolean)
- `limit` (integer)
- `model_id` (string)
- `node_id` (string)
- `node_type` (string)
- `schema_name`
- `view`

### `get_recipe_build_activity` (~44 tokens)

Get recipe build activity

Poll a review or acceptance batch through a bounded, disclosure-safe view.

Input parameters:

- `activity_ref` (string, required)
- `cursor` (string)
- `section`

### `get_recipe_preview` (~96 tokens)

Preview a StewAI Recipe

Inspect a safe summary with bounded method and limitations excerpts, output-contract state, and evidence context. For complete authorized published details and executable contracts, use view=details. Concatenate content fragments in offset order per section; decode JSON sections after completion. Use next_cursor with the same recipe_ref until null. Opaque internals remain withheld.

Input parameters:

- `cursor` (string)
- `recipe_ref` (string, required)
- `view`

### `get_results` (~227 tokens)

Get StewAI Run Results

Read declared outputs or a sanitized per-step trace from an owned run, including signed chunks for oversized steps. view=steps returns compact summaries, 10 per page by default and at most 20 (limit 1-20); follow next_cursor until it is null, pass detail=full for whole steps, or use view=step with step_id for one full step. Step reads are provisional until get_run reports a finished status. If outputs is empty, read view=steps; for a failed run, read the failed step and let the user decide.

Input parameters:

- `chunk_ref` (string)
- `cursor` (string)
- `detail`: For view=steps: summary (default) lists each step's id, title, kind, status, timing and result type; full returns parameters, rendered input and result. view=step always returns the full step.
- `limit` (integer): Steps per page for view=steps: default 10, at most 20.
- `run_id` (string, required)
- `step_id` (string)
- `view`

### `get_run` (~119 tokens)

Get StewAI Run Status

Read an owned run, view=history to resume normal runs (recipe_ref/status/cursor/limit), or view=diagnostics for its settled UI receipt. Default status requires run_id and includes live progress: updated_at is the run record time, progress.last_step_activity_at is the latest step activity. A blocked run paused for credits reports credit_pause.

Input parameters:

- `cursor` (string)
- `limit` (integer)
- `recipe_ref` (string)
- `run_id` (string)
- `status`
- `view`

### `review_recipe_build` (~54 tokens)

Review recipe build

Quote or run a bounded semantic quality review of the exact private draft revision.

Input parameters:

- `build_ref` (string, required)
- `idempotency_key` (string, required)
- `mode` (required)
- `revision` (string, required)

### `run_recipe` (~115 tokens)

Run a StewAI Recipe

Estimate or run a previewed public or account-authorized published recipe. dry_run returns history (credits charged by past runs of this recipe), fees, your balance, and estimated_credits, a theoretical worst case. If credits run out during a run, it pauses and can be resumed after adding credits. On recipe_ref_expired, search or preview again and retry.

Input parameters:

- `dry_run` (boolean)
- `idempotency_key` (string, required)
- `inputs` (object, required)
- `recipe_ref` (string, required)

### `run_recipe_acceptance` (~171 tokens)

Run recipe acceptance

Quote or run selected or complete behavioral acceptance cases for an exact private draft revision. Quotes explain enforced input bounds, output caps and retry allowances in acceptance_cost. Preserve representative fixtures and assertions; remove unnecessary model stages rather than weakening tests to lower a quote. Paid work requires an approved budget. A full run that needs user approval returns supervised_required before any case, reservation, or external effect; first bind every returned required resource with update_recipe_build bind_resource, then open action_url for user approval, and finally resume the same activity with update_recipe_build resume_activity.

Input parameters:

- `build_ref` (string, required)
- `case_ids` (array): Required for selected_cases, optional for quote, forbidden for full.
- `idempotency_key` (string, required)
- `mode` (required)
- `revision` (string, required)

### `search_recipes` (~259 tokens)

Search StewAI Recipes

Find safe public recipes and published recipes available to the current account. results are direct fits (exact or strong); related_results are adjacent recipes, not direct fits. Each row states its output contract, past-run cost history and, for reviewed public recipes, that safety review is not output-quality validation. required_inputs and required_outputs match exact handles or normalized labels, never meanings. When paging.has_more is true, repeat the identical call with cursor=next_cursor.

Input parameters:

- `cursor` (string): next_cursor from the previous page of the identical query and filters. Omit for the first page.
- `query` (string, required): At least 3 non-padding characters, up to 2000. Name the task in a few words; add constraints as required_inputs or required_outputs; follow next_cursor when results are cut.
- `required_inputs` (array): Exact normalized handle/label matching, not semantic meaning; inspect filter_diagnostics for available labels.
- `required_outputs` (array): Exact normalized handle/label matching, not semantic meaning; filters are never weakened automatically.
- `runnable_only` (boolean)
- `sources` (array): When omitted, search public recipes and any library lanes authorized by this connection. Explicit private lanes require recipes:read permission.

### `start_recipe_build` (~194 tokens)

Start a StewAI Recipe Build

Create a private recipe build from a bounded intent and declared contract. Recipe inputs are strings: use type:string, positive maxLength, and only minLength:1 on required inputs. Richer input constraints must be handled in recipe logic and tested, not claimed as enforced by the input node. The response returns the stored contracts when they fit the bounded result; the archetype bundle is optional guidance, not the build contract. Optionally provide source_recipe_ref to adapt an owned recipe or a fully viewable public-open recipe into a new private draft.

Input parameters:

- `capabilities` (array, required)
- `idempotency_key` (string, required)
- `input_contract` (object, required)
- `intent` (string, required)
- `name` (string, required)
- `output_contract` (object, required)
- `quality_profile` (required)
- `research_policy` (required)
- `risk_domains` (array, required)
- `source_recipe_ref` (string)

### `update_recipe_build` (~515 tokens)

Update a StewAI Recipe Build

Apply bounded optimistic changes to an owned private recipe build. After an uncertain response, inspect the build and replay the identical request with the same idempotency key; a new key duplicates the work. Use only the exact op names and payload keys in inputSchema: set_metadata takes metadata, upsert_schema takes schema_id and schema, and acceptance uses set_acceptance_cases with suite. Never invent set_schema or set_acceptance_suite. If an op appears unknown, read get_recipe_build view='authoring_schema', schema_name='update_recipe_build'; read schema_name='acceptance_suite' for the complete suite shape and every assertion operator with its required, allowed and forbidden fields. Do not guess them. Use set_contracts to replace the declared executable input and output contracts; this changes the revision and invalidates qualification. For a supervised acceptance handoff, use bind_resource only to approve an exact selector already frozen in the draft, then resume_activity or cancel_activity with the returned opaque handoff and activity references. Each handoff control operation must be the only op in its request. An acceptance suite is {version:1,cases:[{case_id,label,kind,fixtures,assertions}]}. Each fixture is {target,content_type,value}. A minimal assertion is {assertion_id:'result_exists',type:'scalar',operator:'exists',path:'/result'}. JSON Pointer paths start with '/'. A metamorphic case also requires pair_with naming another case. Use a paired assertion such as {assertion_id:'stable',type:'paired',operator:'fields_unchanged',path:'',pair_case_id:'base',fields:['/summary']}; pair_case_id is not valid on a scalar assertion. Client transport recommendation, not a server limit: keep serialized tool arguments below 32 KiB including JSON escaping and the request envelope. For larger spec, suite, or research content use begin_chunk, ordered append_chunk (seq starts at 0), then commit_chunk. Keep each complete append request below 12 KiB; split text further after…

Input parameters:

- `build_ref` (string, required)
- `idempotency_key` (string, required)
- `ops` (array, required)
- `revision` (string, required)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-stewai-stewai/api#diagnostics

## Score history

- 2026-09-26: 74
- 2026-09-25: 74
- 2026-09-24: 73
- 2026-09-23: 73
- 2026-09-22: 73
- 2026-09-21: 72
- 2026-09-20: 72
- 2026-09-19: 71
- 2026-09-18: 71
- 2026-09-17: 71
- 2026-09-16: 70
- 2026-09-15: 70
- 2026-09-14: 69
- 2026-09-13: 69
- 2026-09-12: 68
- 2026-09-11: 68
- 2026-09-10: 67
- 2026-09-09: 67
- 2026-09-08: 66
- 2026-09-07: 66
- 2026-09-06: 66
- 2026-09-05: 64
- 2026-09-04: 65
- 2026-09-03: 65
- 2026-09-02: 64
- 2026-09-01: 64
- 2026-08-31: 63
- 2026-08-30: 63

## Common questions

### What is the StewAI MCP server?

StewAI is an MCP server listed in the public MCP registry as com.stewai/stewai. Discover, run, inspect, build, test, and privately reuse AI workflows. This page covers its hosted endpoint (https://api.stewai.com/mcp).

### Is the StewAI MCP server safe to use?

StewAI scores 74 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the StewAI MCP server expose?

StewAI exposes 14 tools: check_recipe_build, commit_recipe_build, discover_stewai, get_recipe_build, get_recipe_build_activity, and 9 more. Their descriptions and schemas cost roughly 2,194 tokens of context every time the server is loaded.

### Does the StewAI MCP server require authentication?

No. We connected to StewAI without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the StewAI MCP server still maintained?

StewAI is still listed as active in the MCP registry. We last reached this channel on 26 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://api.stewai.com/mcp
- Website: https://stewai.com/
- Changelog RSS feed: https://verifymcp.io/servers/com-stewai-stewai/api.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-stewai-stewai/api.json
- HTML version of this page: https://verifymcp.io/servers/com-stewai-stewai/api
