Skip to main content
Glama

Server Details

Hosted MCP runtime where your agent publishes its own tools by tool call and keeps working.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 38 days
Last Tested
Transport
Streamable HTTP ยท MCP 2025-11-25
URL
Repository
j0yen/mcphost
GitHub Stars
0
Server Listing
mcphost

TDQS

A3.7/5.0

Scored across 12 tools

Disambiguation4/5

Most tools target distinct resources (state.get/list/set, tool_publish/share/test/call), and the descriptions clarify the key boundaries. The closest pair, host.tool_call vs host.tool_test, is explicitly differentiated (metered real call vs dry-run). Minor overlap remains between signup and host.redeem and between host.quickstart and host.tool_publish, but each is distinguishable.

Naming Consistency3/5

The host.* family follows a consistent dotted namespace plus verb_noun pattern (host.state.get, host.tool_publish). However, top-level tools break the pattern: signup is a bare verb with no namespace while billing.plans uses a dotted resource-style name, and there is no host.* prefix on either. Readable overall but conventions are mixed.

Tool Count5/5

Twelve tools is well within the ideal range and each maps to a distinct capability (identity, billing, state, publishing, sharing, testing, invoking, onboarding). No filler or redundant entries are apparent.

Completeness3/5

State supports get/list/set but has no delete, and there is no tool to list, unpublish, or delete published tools, nor a tool_history surface. Several tools reference companion operations (host.runs.get/wait, host.tool_history) that are not themselves exposed, creating dead ends for async runs and version pinning.

Available Tools

14 tools
billing.plansInspect

The plan catalog (price and quotas per plan) and whether Stripe billing is configured on this host. Anonymous callers get the same answer as tenants.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_keyNoThe key `signup` returned. Optional on the connection that ran signup (or host.redeem): that connection is already bound to the tenant it created, so later calls on it need no tenant_key. On a connection with no Authorization: Bearer header and no prior signup, omitting it implicitly signs that connection up as a brand-new tenant and runs this call as it -- see host.whoami's source field. When both a header and this argument are present, the header wins.

Output Schema

ParametersJSON Schema
NameRequiredDescription
plansYes
billing_modeYes
host.feedback.listInspect

List your own feedback (newest first, status received). Anonymous callers get [].

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows, up to 100; default 20.
tenant_keyNoThe key `signup` returned. Optional on the connection that ran signup (or host.redeem): that connection is already bound to the tenant it created, so later calls on it need no tenant_key. On a connection with no Authorization: Bearer header and no prior signup, omitting it implicitly signs that connection up as a brand-new tenant and runs this call as it -- see host.whoami's source field. When both a header and this argument are present, the header wins.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
countYes
feedbackYes
host.feedback.sendInspect

Tell the host's humans what you needed: kind, up to 2048 bytes of text, optional context. Works before signup. Returns feedback_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYesWhat you are telling the host.
textYesWhat you needed or saw; 1 to 2048 bytes after trim.
contextNoOptional, at most 1 KB: tool, error_code, free.
tenant_keyNoThe key `signup` returned. Optional on the connection that ran signup (or host.redeem): that connection is already bound to the tenant it created, so later calls on it need no tenant_key. On a connection with no Authorization: Bearer header and no prior signup, omitting it implicitly signs that connection up as a brand-new tenant and runs this call as it -- see host.whoami's source field. When both a header and this argument are present, the header wins.

Output Schema

ParametersJSON Schema
NameRequiredDescription
kindYes
feedback_idYes
host.quickstartInspect

Return the shortest ordered sequence of calls to a working tool of kind, with your namespace and a filled-in example already substituted in, plus the current limits and a try_before_call table naming the one dry-run tool for each case. Read-only -- this call alone never creates a tenant. Call this before host.tool_publish if you're not sure what a spec should look like. Unauthenticated callers get a worked example with no tenant data; any other host./billing. call creates a tenant on first use, no signup required.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoWhich registered kind to return a worked example for, e.g. echo, http, python -- or a job-word alias (webhook, event, cron, ...) for its recipe. Omit to see every kind, alias and recipe name.
tenant_keyNoThe key `signup` returned. Optional on the connection that ran signup (or host.redeem): that connection is already bound to the tenant it created, so later calls on it need no tenant_key. On a connection with no Authorization: Bearer header and no prior signup, omitting it implicitly signs that connection up as a brand-new tenant and runs this call as it -- see host.whoami's source field. When both a header and this argument are present, the header wins.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNo
kindNo
nextNo
kindsNo
stepsNo
verbsNo
limitsNo
recipeNo
aliasesNo
exampleNo
outcomeNo
recipesNo
verdictNo
endpointNo
triggersNo
namespaceNo
sandbox_apiNo
alt_endpointNo
reachabilityNo
starter_toolNo
welcome_backNo
authenticatedNo
install_linksNo
resolved_fromNo
bridge_returnsNo
recipes_nearbyNo
install_doc_urlNo
try_before_callNo
host_steps_allowedNo
host.redeemInspect

Exchange a signup(handoff: true) handoff_token for the tenant key it was issued for. Single-use: a second redemption fails with handoff_token_redeemed; past its expiry it fails with handoff_token_expired. Unauthenticated -- the token itself is the proof.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_keyNoThe key `signup` returned. Optional on the connection that ran signup (or host.redeem): that connection is already bound to the tenant it created, so later calls on it need no tenant_key. On a connection with no Authorization: Bearer header and no prior signup, omitting it implicitly signs that connection up as a brand-new tenant and runs this call as it -- see host.whoami's source field. When both a header and this argument are present, the header wins.
handoff_tokenYesThe handoff_token signup(handoff: true) returned.

Output Schema

ParametersJSON Schema
NameRequiredDescription
keyYes
nextYes
usageYes
session_boundYes
host.state.getInspect

Read one key from this tenant's key-value state namespace. Returns found: false (not an error) if the key was never set.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesKey to read from this tenant's key-value state namespace.
end_userNo"self" for the caller's own verified end-user identity, an explicit subject (only when this call carries no end-user identity of its own), or omit/null for the tenant-wide value.
tenant_keyNoThe key `signup` returned. Optional on the connection that ran signup (or host.redeem): that connection is already bound to the tenant it created, so later calls on it need no tenant_key. On a connection with no Authorization: Bearer header and no prior signup, omitting it implicitly signs that connection up as a brand-new tenant and runs this call as it -- see host.whoami's source field. When both a header and this argument are present, the header wins.

Output Schema

ParametersJSON Schema
NameRequiredDescription
keyYes
foundYes
valueYes
impersonatedNo
updated_unixNo
host.state.listInspect

List keys (with their current values) in this tenant's key-value state namespace, optionally filtered by prefix.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax keys to return; default 100.
prefixNoOnly list keys starting with this prefix; default: all keys.
end_userNo"self" for the caller's own verified end-user identity, an explicit subject (only when this call carries no end-user identity of its own), or omit/null for the tenant-wide value.
tenant_keyNoThe key `signup` returned. Optional on the connection that ran signup (or host.redeem): that connection is already bound to the tenant it created, so later calls on it need no tenant_key. On a connection with no Authorization: Bearer header and no prior signup, omitting it implicitly signs that connection up as a brand-new tenant and runs this call as it -- see host.whoami's source field. When both a header and this argument are present, the header wins.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
keysYes
host.state.setInspect

Write one key in this tenant's key-value state namespace; value may be any JSON value. Overrun of the plan's state_bytes_max quota fails with state_quota_exceeded and writes nothing.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesKey to write in this tenant's key-value state namespace.
valueYesAny JSON value to store under key.
dry_runNoreturn the diff this call would make and commit nothing
end_userNo"self" for the caller's own verified end-user identity, an explicit subject (only when this call carries no end-user identity of its own), or omit/null for the tenant-wide value.
tenant_keyNoThe key `signup` returned. Optional on the connection that ran signup (or host.redeem): that connection is already bound to the tenant it created, so later calls on it need no tenant_key. On a connection with no Authorization: Bearer header and no prior signup, omitting it implicitly signs that connection up as a brand-new tenant and runs this call as it -- see host.whoami's source field. When both a header and this argument are present, the header wins.

Output Schema

ParametersJSON Schema
NameRequiredDescription
keyYes
setYes
bytes_deltaYes
impersonatedNo
host.tool_callInspect

Invoke a tool this tenant has already published, by its local name -- the same real, metered call as calling it directly by its namespaced name (.), for a session that has no way to see its own namespaced tool name yet. Unlike host.tool_test, this counts toward host.usage and appears in host.tool_logs. Pass async: true for a tool that needs more than the call deadline: returns {run_id, status: "queued"} immediately instead of running inline -- see host.runs.get/wait. Pass version to pin the call to one of host.tool_history's versions instead of whichever is current.

ParametersJSON Schema
NameRequiredDescriptionDefault
argsYesArguments to pass, validated against the tool's own args_schema.
nameYesLocal name of the tool to invoke.
asyncNoRun as a job instead of inline: returns {run_id, status} within ~50ms under the plan's job_max_s deadline; default false.
budgetNoLowers this call's budget below the plan default: any subset of max_child_calls, max_est_tokens, max_tool_latency_ms, max_wall_ms. A value above the plan's own ceiling is a validation error naming it; see host.runs.get's progress.budget.
dry_runNoAsk instead of call: runs every admission check the real call runs, dispatches nothing, writes no call row, and returns {fits, units, remaining, refusal}; same as host.estimate. Default false.
versionNoPin the call to this version instead of whichever is current; see host.tool_history. An unknown version is an argument error.
tenant_keyNoThe key `signup` returned. Optional on the connection that ran signup (or host.redeem): that connection is already bound to the tenant it created, so later calls on it need no tenant_key. On a connection with no Authorization: Bearer header and no prior signup, omitting it implicitly signs that connection up as a brand-new tenant and runs this call as it -- see host.whoami's source field. When both a header and this argument are present, the header wins.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
okNo
tzNo
v1No
msgNo
urlNo
argsNo
bodyNo
kindNo
nameNo
nextNo
rowsNo
textNo
toolNo
countNo
stepsNo
presetNo
resultNo
run_idNo
statusNo
verifyNo
changedNo
columnsNo
createdNo
doubledNo
enabledNo
headersNo
payloadNo
scheduleNo
next_unixNo
checked_atNo
onboardingNo
unverifiedNo
client_toolNo
https_proxyNo
last_run_idNo
last_statusNo
created_unixNo
failed_stepsNo
forwarded_toNo
welcome_backNo
dedupe_headerNo
last_fired_unixNo
host.tool_publishInspect

Publish a tool of a registered kind (e.g. python, http or echo; the kind argument's enum lists them all) under this tenant's namespace. Call host.quickstart(kind) first for a filled-in example spec and the full publish-to-call sequence. Python's sandbox API: import mcphost (mcphost.table, mcphost.state, mcphost.docs). Name must match ^[a-z][a-z0-9_]{1,40}$; a rejection names the failing field and a corrected example. Try host.tool_test before a real call.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYesWhich registered kind to publish under: one of this field's `enum` (host.quickstart with no kind lists every kind, alias and recipe). A job-word alias in the enum also resolves here -- webhook-style words for an inbound webhook, cron-style words for a timed run -- both resolve to kind http and the descriptor comes back with resolved_from naming the alias you asked for.
nameYesLocal name for the new tool; must match ^[a-z][a-z0-9_]{1,40}$.
specYesThe kind-specific spec object; see host.quickstart(kind) for a filled-in example. For python's network field: "none" (every plan), "public" (requires the pro plan), "egress" (requires the pro plan) -- a tool's own code reaches this tenant's data with `import mcphost` (mcphost.table, mcphost.state, mcphost.docs, mcphost.lineage) even when network is "none".
scopesNoOAuth scopes a token must carry (directly, or via mcp) to reach this tool: catalogued names from host.oauth.scopes, or the built-ins read/write. At most 8. Omit (or [] ) to require only mcp -- unaffected by any catalog.
dry_runNoreturn the diff this call would make and commit nothing
tenant_keyNoThe key `signup` returned. Optional on the connection that ran signup (or host.redeem): that connection is already bound to the tenant it created, so later calls on it need no tenant_key. On a connection with no Authorization: Bearer header and no prior signup, omitting it implicitly signs that connection up as a brand-new tenant and runs this call as it -- see host.whoami's source field. When both a header and this argument are present, the header wins.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNo
hintNo
kindNo
lockNo
nameNo
nextNo
gatesNo
stepsNo
reasonNo
verdictNo
versionNoThe tool's version after this publish (1 for a first publish).
evidenceNo
failuresNo
call_lineNoA ready-to-paste call for the published tool. Optional: declared so a typed client reserves the field; absent from responses that do not carry one.
onboardingNo
deprecationsNo
welcome_backNo
resolved_fromNo
host.tool_shareInspect

Share one of this tenant's published tools with everyone (visibility: "public") or with a named group this tenant owns (visibility: "group", group: ). The tool keeps running in this tenant's own sandbox with this tenant's own secrets; a caller reaches it as <this tenant's namespace>..

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesLocal name of the tool to share.
groupNoRequired when visibility is "group"; must already exist (host.group.create).
tenant_keyNoThe key `signup` returned. Optional on the connection that ran signup (or host.redeem): that connection is already bound to the tenant it created, so later calls on it need no tenant_key. On a connection with no Authorization: Bearer header and no prior signup, omitting it implicitly signs that connection up as a brand-new tenant and runs this call as it -- see host.whoami's source field. When both a header and this argument are present, the header wins.
visibilityYes"public" or "group".
descriptionNoCatalog-facing blurb; shown by host.catalog.search/get.
expose_specNoDefault false. When true, any tenant this tool is shared with may call host.tool_spec_shared to read its (redacted) spec.

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlNo
nameYes
nextNo
groupYes
visibilityYes
descriptionYes
expose_specYes
welcome_backNo
host.tool_testInspect

Dry-run a published tool by name: verdict (pass/will_fail/unverifiable), writes rolled back (dry_run); see host.quickstart.

ParametersJSON Schema
NameRequiredDescriptionDefault
argsYesArguments to pass, same shape as a real call.
nameYesLocal name of the already-published tool to dry-run.
fixturesNoChain tools only: {"<step number or tool name>": <recorded result>}. A fixtured step executes nothing (no upstream call); later mappings resolve against it. host.runs.get(run_id, as_fixtures=true) exports a real run in this shape.
tenant_keyNoThe key `signup` returned. Optional on the connection that ran signup (or host.redeem): that connection is already bound to the tenant it created, so later calls on it need no tenant_key. On a connection with no Authorization: Bearer header and no prior signup, omitting it implicitly signs that connection up as a brand-new tenant and runs this call as it -- see host.whoami's source field. When both a header and this argument are present, the header wins.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
okNo
tzNo
msgNo
argsNo
kindNo
lineNo
nameNo
nextNo
toolNo
errorNo
outerNo
stateNo
stepsNo
detailNo
reasonNo
resultNo
schemaNo
changedNo
createdNo
dry_runYes
enabledNo
payloadNo
requestNo
verdictNo
envelopeNo
evidenceNo
failuresNo
responseNo
scheduleNo
warningsNo
next_unixNo
environmentNo
last_run_idNo
last_statusNo
source_lineNo
created_unixNo
forwarded_toNo
welcome_backNo
chain_dry_runNo
exception_classNo
inputs_requiredNo
last_fired_unixNo
host.whoamiInspect

Return the calling tenant's identity, including key_age_s and key_rotated_at for auditing credential hygiene.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_keyNoThe key `signup` returned. Optional on the connection that ran signup (or host.redeem): that connection is already bound to the tenant it created, so later calls on it need no tenant_key. On a connection with no Authorization: Bearer header and no prior signup, omitting it implicitly signs that connection up as a brand-new tenant and runs this call as it -- see host.whoami's source field. When both a header and this argument are present, the header wins.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nextNo
planNo
adminNo
linksNo
ownerNo
sourceNo
tenantNo
subjectNo
disabledNo
resourceNo
claim_urlNo
key_age_sNo
namespaceNo
created_atNo
invite_urlNo
onboardingNo
plan_sinceNo
auth_methodNo
client_nameNo
contract_shaYes
display_nameNo
metadata_urlNo
shared_toolsNo
source_classNo
welcome_backNo
client_versionNo
key_rotated_atNo
owner_verifiedNo
session_tenantNo
naming_rule_urlNo
contract_versionYes
admin_schema_versionNo
signupAInspect

Explicit signup, for a client that cannot keep a session across calls: create a tenant and receive a bearer key and namespace. Unauthenticated. Most clients never need this -- any other host./billing. call from a fresh connection creates a tenant implicitly and returns its own /u//mcp URL in the response's onboarding field. Recommended here: pass handoff: true to receive a short-lived, single-use handoff_token instead of the raw key -- redeem it once with host.redeem to get the key, so a transcript of this call and the redeem call, if it leaks, carries a dead credential. The raw-key path (handoff omitted) stays fully supported.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesdisplay name
handoffNoRecommended: true to receive a handoff_token (redeem via host.redeem) instead of the raw key. Default false (raw key, unchanged).

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses that the call is unauthenticated, explains the handoff_token security model (short-lived, single-use, transcript leakage yields a dead credential), and confirms the raw-key path remains supported. It omits edge-case behavior such as name collisions, idempotency of repeat signups, or rate limits, so it falls short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core purpose and audience in the first clause, then layers the alternative path and the handoff recommendation. Four dense sentences with no filler, though the handoff security rationale could be tightened slightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description names the salient returns (bearer key, namespace, handoff_token, onboarding URL). It is sufficient for a 2-parameter tool, but it does not clarify response field names or the namespace's role, leaving a small gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% so the baseline is 3, but the description adds meaningful semantics for handoff beyond the schema: it is recommended, yields a short-lived single-use token redeemable once via host.redeem, and its purpose is leak containment. The name parameter gets no additional description, but the handoff elaboration lifts this above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and outcome: create a tenant and receive a bearer key and namespace, explicitly framed as an 'explicit signup' for sessionless clients. It distinguishes itself from the implicit tenant creation performed by other host.*/billing.* calls and from host.redeem, so an agent can route correctly without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says most clients never need this and names the alternative path (any fresh host.*/billing.* call creates a tenant implicitly, returning an onboarding URL). It also gives the selecting condition ('a client that cannot keep a session across calls') and recommends a specific parameter value.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedhost.tool_publish1 field changed
      • changedInput schema / allOf
        Previous value: -[
        -  {
        -    "if": {
        -      "properties": {
        -        "kind": {
        -          "const": "chain"
        -        }
        -      },
        -      "required": [
        -        "kind"
        -      ]
        -    },
        -    "then": {
        -      "properties": {
        -        "spec": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "reads": {},
        -            "steps": {}
        -          },
        -          "required": [
        -            "steps"
        -          ],
        -          "type": "object"
        -        }
        -      }
        -    }
        -  },
        -  {
        -    "if": {
        -      "properties": {
        -        "kind": {
        -          "const": "echo"
        -        }
        -      },
        -      "required": [
        -        "kind"
        -      ]
        -    },
        -    "then": {
        -      "properties": {
        -        "spec": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "reads": {},
        -            "schema": {}
        -          },
        -          "required": [
        -            "schema"
        -          ],
        -          "type": "object"
        -        }
        -      }
        -    }
        -  },
        -  {
        -    "if": {
        -      "properties": {
        -        "kind": {
        -          "const": "http"
        -        }
        -      },
        -      "required": [
        -        "kind"
        -      ]
        -    },
        -    "then": {
        -      "properties": {
        -        "spec": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "args_schema": {},
        -            "body": {},
        -            "description": {},
        -            "headers": {},
        -            "method": {},
        -            "outputs": {},
        -            "query": {},
        -            "reads": {},
        -            "response": {},
        -            "timeout_s": {},
        -            "upstream": {},
        -            "upstream_provider": {},
        -            "url": {}
        -          },
        -          "type": "object"
        -        }
        -      }
        -    }
        -  },
        -  {
        -    "if": {
        -      "properties": {
        -        "kind": {
        -          "const": "python"
        -        }
        -      },
        -      "required": [
        -        "kind"
        -      ]
        -    },
        -    "then": {
        -      "properties": {
        -        "spec": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "args_schema": {
        -              "description": "a JSON Schema object"
        -            },
        -            "description": {
        -              "description": "a string"
        -            },
        -            "env": {
        -              "description": "a map of name to string value; names must match ^[A-Z][A-Z0-9_]{0,63}$"
        -            },
        -            "memory_mb": {
        -              "description": "a positive integer number of megabytes"
        -            },
        -            "network": {
        -              "description": "\"none\" (every plan), \"public\" (requires the pro plan), \"egress\" (requires the pro plan) -- a tool's own code reaches this tenant's data with `import mcphost` (mcphost.table, mcphost.state, mcphost.docs, mcphost.lineage) even when network is \"none\""
        -            },
        -            "outputs": {
        -              "description": "a list of field names or an object mapping field names to path strings"
        -            },
        -            "reads": {},
        -            "requirements": {
        -              "description": "a list of strings"
        -            },
        -            "secrets": {
        -              "description": "a list of strings"
        -            },
        -            "source": {
        -              "description": "a string"
        -            },
        -            "timeout_s": {
        -              "description": "a positive integer number of seconds"
        -            }
        -          },
        -          "required": [
        -            "source"
        -          ],
        -          "type": "object"
        -        }
        -      }
        -    }
        -  },
        -  {
        -    "if": {
        -      "properties": {
        -        "kind": {
        -          "const": "wasm"
        -        }
        -      },
        -      "required": [
        -        "kind"
        -      ]
        -    },
        -    "then": {
        -      "properties": {
        -        "spec": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "args_schema": {},
        -            "component": {},
        -            "memory_mb": {},
        -            "outputs": {},
        -            "reads": {},
        -            "timeout_s": {}
        -          },
        -          "required": [
        -            "component"
        -          ],
        -          "type": "object"
        -        }
        -      }
        -    }
        -  }
        -]New value: +[
        +  {
        +    "if": {
        +      "properties": {
        +        "kind": {
        +          "const": "chain"
        +        }
        +      },
        +      "required": [
        +        "kind"
        +      ]
        +    },
        +    "then": {
        +      "properties": {
        +        "spec": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "reads": {},
        +            "steps": {},
        +            "ui": {
        +              "additionalProperties": false,
        +              "description": "Optional presentation hints. `form: true` gives a url-shared tool a /f/ page where a person fills in the arguments and the submission lands in your inbox.",
        +              "properties": {
        +                "form": {
        +                  "type": "boolean"
        +                },
        +                "submit_label": {
        +                  "maxLength": 40,
        +                  "type": "string"
        +                },
        +                "success_text": {
        +                  "maxLength": 200,
        +                  "type": "string"
        +                }
        +              },
        +              "type": "object"
        +            }
        +          },
        +          "required": [
        +            "steps"
        +          ],
        +          "type": "object"
        +        }
        +      }
        +    }
        +  },
        +  {
        +    "if": {
        +      "properties": {
        +        "kind": {
        +          "const": "echo"
        +        }
        +      },
        +      "required": [
        +        "kind"
        +      ]
        +    },
        +    "then": {
        +      "properties": {
        +        "spec": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "reads": {},
        +            "schema": {},
        +            "ui": {
        +              "additionalProperties": false,
        +              "description": "Optional presentation hints. `form: true` gives a url-shared tool a /f/ page where a person fills in the arguments and the submission lands in your inbox.",
        +              "properties": {
        +                "form": {
        +                  "type": "boolean"
        +                },
        +                "submit_label": {
        +                  "maxLength": 40,
        +                  "type": "string"
        +                },
        +                "success_text": {
        +                  "maxLength": 200,
        +                  "type": "string"
        +                }
        +              },
        +              "type": "object"
        +            }
        +          },
        +          "required": [
        +            "schema"
        +          ],
        +          "type": "object"
        +        }
        +      }
        +    }
        +  },
        +  {
        +    "if": {
        +      "properties": {
        +        "kind": {
        +          "const": "http"
        +        }
        +      },
        +      "required": [
        +        "kind"
        +      ]
        +    },
        +    "then": {
        +      "properties": {
        +        "spec": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "args_schema": {},
        +            "body": {},
        +            "description": {},
        +            "headers": {},
        +            "method": {},
        +            "outputs": {},
        +            "query": {},
        +            "reads": {},
        +            "response": {},
        +            "timeout_s": {},
        +            "ui": {
        +              "additionalProperties": false,
        +              "description": "Optional presentation hints. `form: true` gives a url-shared tool a /f/ page where a person fills in the arguments and the submission lands in your inbox.",
        +              "properties": {
        +                "form": {
        +                  "type": "boolean"
        +                },
        +                "submit_label": {
        +                  "maxLength": 40,
        +                  "type": "string"
        +                },
        +                "success_text": {
        +                  "maxLength": 200,
        +                  "type": "string"
        +                }
        +              },
        +              "type": "object"
        +            },
        +            "upstream": {},
        +            "upstream_provider": {},
        +            "url": {}
        +          },
        +          "type": "object"
        +        }
        +      }
        +    }
        +  },
        +  {
        +    "if": {
        +      "properties": {
        +        "kind": {
        +          "const": "python"
        +        }
        +      },
        +      "required": [
        +        "kind"
        +      ]
        +    },
        +    "then": {
        +      "properties": {
        +        "spec": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "args_schema": {
        +              "description": "a JSON Schema object"
        +            },
        +            "description": {
        +              "description": "a string"
        +            },
        +            "env": {
        +              "description": "a map of name to string value; names must match ^[A-Z][A-Z0-9_]{0,63}$"
        +            },
        +            "memory_mb": {
        +              "description": "a positive integer number of megabytes"
        +            },
        +            "network": {
        +              "description": "\"none\" (every plan), \"public\" (requires the pro plan), \"egress\" (requires the pro plan) -- a tool's own code reaches this tenant's data with `import mcphost` (mcphost.table, mcphost.state, mcphost.docs, mcphost.lineage) even when network is \"none\""
        +            },
        +            "outputs": {
        +              "description": "a list of field names or an object mapping field names to path strings"
        +            },
        +            "reads": {},
        +            "requirements": {
        +              "description": "a list of strings"
        +            },
        +            "secrets": {
        +              "description": "a list of strings"
        +            },
        +            "source": {
        +              "description": "a string"
        +            },
        +            "timeout_s": {
        +              "description": "a positive integer number of seconds"
        +            },
        +            "ui": {
        +              "additionalProperties": false,
        +              "description": "Optional presentation hints. `form: true` gives a url-shared tool a /f/ page where a person fills in the arguments and the submission lands in your inbox.",
        +              "properties": {
        +                "form": {
        +                  "type": "boolean"
        +                },
        +                "submit_label": {
        +                  "maxLength": 40,
        +                  "type": "string"
        +                },
        +                "success_text": {
        +                  "maxLength": 200,
        +                  "type": "string"
        +                }
        +              },
        +              "type": "object"
        +            }
        +          },
        +          "required": [
        +            "source"
        +          ],
        +          "type": "object"
        +        }
        +      }
        +    }
        +  },
        +  {
        +    "if": {
        +      "properties": {
        +        "kind": {
        +          "const": "wasm"
        +        }
        +      },
        +      "required": [
        +        "kind"
        +      ]
        +    },
        +    "then": {
        +      "properties": {
        +        "spec": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "args_schema": {},
        +            "component": {},
        +            "memory_mb": {},
        +            "outputs": {},
        +            "reads": {},
        +            "timeout_s": {},
        +            "ui": {
        +              "additionalProperties": false,
        +              "description": "Optional presentation hints. `form: true` gives a url-shared tool a /f/ page where a person fills in the arguments and the submission lands in your inbox.",
        +              "properties": {
        +                "form": {
        +                  "type": "boolean"
        +                },
        +                "submit_label": {
        +                  "maxLength": 40,
        +                  "type": "string"
        +                },
        +                "success_text": {
        +                  "maxLength": 200,
        +                  "type": "string"
        +                }
        +              },
        +              "type": "object"
        +            }
        +          },
        +          "required": [
        +            "component"
        +          ],
        +          "type": "object"
        +        }
        +      }
        +    }
        +  }
        +]
  2. 13 tool updates
    • Changedbilling.plans1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "billing_mode": {
        +      "type": "string"
        +    },
        +    "plans": {
        +      "items": {
        +        "properties": {
        +          "calls_per_day": {
        +            "type": "integer"
        +          },
        +          "description": {
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "price_usd_month": {
        +            "type": "integer"
        +          },
        +          "secrets_max": {
        +            "type": "integer"
        +          },
        +          "tools_max": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "billing_mode",
        +    "plans"
        +  ],
        +  "type": "object"
        +}
    • Changedhost.feedback.list1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "count": {
        +      "type": "integer"
        +    },
        +    "feedback": {
        +      "items": {
        +        "properties": {
        +          "context": {
        +            "type": "null"
        +          },
        +          "created_unix": {
        +            "type": "integer"
        +          },
        +          "feedback_id": {
        +            "type": "string"
        +          },
        +          "kind": {
        +            "type": "string"
        +          },
        +          "last_call_ids": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "status": {
        +            "type": "string"
        +          },
        +          "text": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "context",
        +          "created_unix",
        +          "feedback_id",
        +          "kind",
        +          "last_call_ids",
        +          "status",
        +          "text"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "count",
        +    "feedback"
        +  ],
        +  "type": "object"
        +}
    • Changedhost.feedback.send1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "feedback_id": {
        +      "type": "string"
        +    },
        +    "kind": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "feedback_id",
        +    "kind"
        +  ],
        +  "type": "object"
        +}
    • Changedhost.quickstart1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "aliases": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "alt_endpoint": {
        +      "type": "string"
        +    },
        +    "authenticated": {
        +      "type": "boolean"
        +    },
        +    "bridge_returns": {
        +      "properties": {
        +        "mcphost.call": {
        +          "type": "string"
        +        },
        +        "mcphost.channel.post": {
        +          "properties": {
        +            "channel_id": {
        +              "type": "string"
        +            },
        +            "created_at": {
        +              "type": "string"
        +            },
        +            "from_address": {
        +              "type": "string"
        +            },
        +            "post_id": {
        +              "type": "string"
        +            },
        +            "seq": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "mcphost.channel.read": {
        +          "properties": {
        +            "posts": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "mcphost.docs.get": {
        +          "type": "string"
        +        },
        +        "mcphost.docs.search": {
        +          "properties": {
        +            "index": {
        +              "type": "string"
        +            },
        +            "results": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "mcphost.drift.reviews": {
        +          "properties": {
        +            "reviews": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "mcphost.lineage.blast_radius": {
        +          "properties": {
        +            "impacted": {
        +              "type": "string"
        +            },
        +            "truncated": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "mcphost.lineage.trace": {
        +          "properties": {
        +            "downstream": {
        +              "type": "string"
        +            },
        +            "downstream_count": {
        +              "type": "string"
        +            },
        +            "id": {
        +              "type": "string"
        +            },
        +            "kind": {
        +              "type": "string"
        +            },
        +            "label": {
        +              "type": "string"
        +            },
        +            "orphaned": {
        +              "type": "string"
        +            },
        +            "upstream": {
        +              "type": "string"
        +            },
        +            "uses": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "mcphost.msg.inbox": {
        +          "properties": {
        +            "messages": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "mcphost.msg.send": {
        +          "properties": {
        +            "delivered_to": {
        +              "type": "string"
        +            },
        +            "message_id": {
        +              "type": "string"
        +            },
        +            "refused": {
        +              "type": "string"
        +            },
        +            "seq": {
        +              "type": "string"
        +            },
        +            "thread_id": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "mcphost.progress": {
        +          "type": "string"
        +        },
        +        "mcphost.state.delete": {
        +          "properties": {
        +            "bytes_delta": {
        +              "type": "string"
        +            },
        +            "deleted": {
        +              "type": "string"
        +            },
        +            "key": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "mcphost.state.delete_rows": {
        +          "properties": {
        +            "bytes_delta": {
        +              "type": "string"
        +            },
        +            "deleted": {
        +              "type": "string"
        +            },
        +            "table": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "mcphost.state.get": {
        +          "type": "string"
        +        },
        +        "mcphost.state.insert": {
        +          "properties": {
        +            "bytes_delta": {
        +              "type": "string"
        +            },
        +            "ids": {
        +              "type": "string"
        +            },
        +            "inserted": {
        +              "type": "string"
        +            },
        +            "table": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "mcphost.state.list": {
        +          "properties": {
        +            "keys": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "mcphost.state.query": {
        +          "properties": {
        +            "rows": {
        +              "type": "string"
        +            },
        +            "table": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "mcphost.state.set": {
        +          "properties": {
        +            "bytes_delta": {
        +              "type": "string"
        +            },
        +            "key": {
        +              "type": "string"
        +            },
        +            "set": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "mcphost.state.table_create": {
        +          "properties": {
        +            "bytes_delta": {
        +              "type": "string"
        +            },
        +            "created": {
        +              "type": "string"
        +            },
        +            "name": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "mcphost.state.table_drop": {
        +          "properties": {
        +            "bytes_delta": {
        +              "type": "string"
        +            },
        +            "dropped": {
        +              "type": "string"
        +            },
        +            "name": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "mcphost.table.append": {
        +          "properties": {
        +            "appended": {
        +              "type": "string"
        +            },
        +            "ids": {
        +              "type": "string"
        +            },
        +            "table": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "mcphost.table.chart": {
        +          "properties": {
        +            "caption": {
        +              "type": "string"
        +            },
        +            "profile": {
        +              "type": "string"
        +            },
        +            "recommendation": {
        +              "type": "string"
        +            },
        +            "row_count": {
        +              "type": "string"
        +            },
        +            "schema": {
        +              "type": "string"
        +            },
        +            "title": {
        +              "type": "string"
        +            },
        +            "vega_lite": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "mcphost.table.create": {
        +          "properties": {
        +            "created": {
        +              "type": "string"
        +            },
        +            "name": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "mcphost.table.drop": {
        +          "properties": {
        +            "dropped": {
        +              "type": "string"
        +            },
        +            "name": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "mcphost.table.list": {
        +          "properties": {
        +            "bytes_used": {
        +              "type": "string"
        +            },
        +            "tables": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "mcphost.table.query": {
        +          "properties": {
        +            "rows": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "mcphost.table.query(handle=True)": {
        +          "properties": {
        +            "bytes": {
        +              "type": "string"
        +            },
        +            "columns": {
        +              "type": "string"
        +            },
        +            "derived_from": {
        +              "type": "string"
        +            },
        +            "expires_unix": {
        +              "type": "string"
        +            },
        +            "handle": {
        +              "type": "string"
        +            },
        +            "row_count": {
        +              "type": "string"
        +            },
        +            "sample": {
        +              "type": "string"
        +            },
        +            "sample_cap": {
        +              "type": "string"
        +            },
        +            "stats": {
        +              "type": "string"
        +            },
        +            "table": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "mcphost.table.schema": {
        +          "properties": {
        +            "bytes_used": {
        +              "type": "string"
        +            },
        +            "columns": {
        +              "type": "string"
        +            },
        +            "rows": {
        +              "type": "string"
        +            },
        +            "table": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "endpoint": {
        +      "type": "string"
        +    },
        +    "example": {
        +      "properties": {
        +        "args": {
        +          "type": "object"
        +        },
        +        "tool": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "hint": {
        +      "type": "string"
        +    },
        +    "host_steps_allowed": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "install_doc_url": {
        +      "type": "string"
        +    },
        +    "install_links": {
        +      "properties": {
        +        "claude_ai_steps": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "claude_code_command": {
        +          "type": "string"
        +        },
        +        "cursor": {
        +          "type": "string"
        +        },
        +        "mcp_url": {
        +          "type": "string"
        +        },
        +        "surfaces": {
        +          "items": {
        +            "properties": {
        +              "artefact": {
        +                "type": "string"
        +              },
        +              "checked": {
        +                "type": "string"
        +              },
        +              "doc_url": {
        +                "type": "string"
        +              },
        +              "id": {
        +                "type": "string"
        +              },
        +              "kind": {
        +                "type": "string"
        +              },
        +              "label": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "vscode": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "kind": {
        +      "type": "string"
        +    },
        +    "kinds": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "limits": {
        +      "properties": {
        +        "call_timeout_default_s": {
        +          "type": "integer"
        +        },
        +        "call_timeout_max_s": {
        +          "type": "integer"
        +        },
        +        "concurrent_calls_host": {
        +          "type": "integer"
        +        },
        +        "concurrent_calls_per_tenant": {
        +          "type": "integer"
        +        },
        +        "forwarding": {
        +          "type": "boolean"
        +        },
        +        "max_spec_bytes": {
        +          "type": "integer"
        +        },
        +        "max_tools_per_tenant": {
        +          "type": "integer"
        +        },
        +        "name_pattern": {
        +          "type": "string"
        +        },
        +        "output_bytes_max": {
        +          "type": "integer"
        +        },
        +        "plan": {
        +          "type": "object"
        +        },
        +        "request_body_bytes_max": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "namespace": {
        +      "type": "string"
        +    },
        +    "next": {
        +      "items": {
        +        "properties": {
        +          "alternative_arguments": {
        +            "properties": {
        +              "args": {
        +                "type": "object"
        +              },
        +              "name": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "alternative_call": {
        +            "type": "string"
        +          },
        +          "arguments": {
        +            "type": "object"
        +          },
        +          "call": {
        +            "type": "string"
        +          },
        +          "note": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "outcome": {
        +      "type": "string"
        +    },
        +    "reachability": {
        +      "type": "string"
        +    },
        +    "recipe": {
        +      "properties": {
        +        "docs": {
        +          "type": "string"
        +        },
        +        "name": {
        +          "type": "string"
        +        },
        +        "steps": {
        +          "items": {
        +            "properties": {
        +              "args_example": {
        +                "type": "object"
        +              },
        +              "note": {
        +                "type": "string"
        +              },
        +              "tool": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "type": [
        +        "object",
        +        "string"
        +      ]
        +    },
        +    "recipes": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "recipes_nearby": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "resolved_from": {
        +      "type": "string"
        +    },
        +    "sandbox_api": {
        +      "properties": {
        +        "attrs": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "import": {
        +          "type": "string"
        +        },
        +        "modules": {
        +          "properties": {
        +            "mcphost.channel": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "type": "array"
        +            },
        +            "mcphost.docs": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "type": "array"
        +            },
        +            "mcphost.drift": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "type": "array"
        +            },
        +            "mcphost.lineage": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "type": "array"
        +            },
        +            "mcphost.msg": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "type": "array"
        +            },
        +            "mcphost.state": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "type": "array"
        +            },
        +            "mcphost.table": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "type": "array"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "not_a_module": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "starter_tool": {
        +      "properties": {
        +        "kind": {
        +          "type": "string"
        +        },
        +        "name": {
        +          "type": "string"
        +        },
        +        "publish_call": {
        +          "properties": {
        +            "arguments": {
        +              "type": "object"
        +            },
        +            "call": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "spec": {
        +          "properties": {
        +            "method": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            },
        +            "url": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "test_call": {
        +          "properties": {
        +            "arguments": {
        +              "type": "object"
        +            },
        +            "call": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "steps": {
        +      "items": {
        +        "properties": {
        +          "alternative_arguments": {
        +            "properties": {
        +              "args": {
        +                "type": "object"
        +              },
        +              "name": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "alternative_call": {
        +            "type": "string"
        +          },
        +          "arguments": {
        +            "type": "object"
        +          },
        +          "call": {
        +            "type": "string"
        +          },
        +          "note": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "triggers": {
        +      "type": "string"
        +    },
        +    "try_before_call": {
        +      "items": {
        +        "properties": {
        +          "arguments": {
        +            "type": "object"
        +          },
        +          "call": {
        +            "type": "string"
        +          },
        +          "case": {
        +            "type": "string"
        +          },
        +          "note": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "verbs": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    },
        +    "welcome_back": {
        +      "properties": {
        +        "last_note": {
        +          "type": "null"
        +        },
        +        "last_seen": {
        +          "type": "string"
        +        },
        +        "notes": {
        +          "type": "integer"
        +        },
        +        "since_you_left": {
        +          "properties": {
        +            "calls": {
        +              "type": "integer"
        +            },
        +            "days": {
        +              "type": "integer"
        +            },
        +            "inbox": {
        +              "type": "integer"
        +            },
        +            "runs": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedhost.redeem1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "key": {
        +      "type": "string"
        +    },
        +    "next": {
        +      "type": "string"
        +    },
        +    "session_bound": {
        +      "type": "boolean"
        +    },
        +    "usage": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "key",
        +    "next",
        +    "session_bound",
        +    "usage"
        +  ],
        +  "type": "object"
        +}
    • Changedhost.state.get1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "found": {
        +      "type": "boolean"
        +    },
        +    "impersonated": {
        +      "type": "boolean"
        +    },
        +    "key": {
        +      "type": "string"
        +    },
        +    "updated_unix": {
        +      "type": "integer"
        +    },
        +    "value": {
        +      "properties": {
        +        "at": {
        +          "type": "integer"
        +        },
        +        "n": {
        +          "type": "integer"
        +        },
        +        "source": {
        +          "type": "string"
        +        },
        +        "text": {
        +          "type": "string"
        +        },
        +        "who": {
        +          "type": "string"
        +        }
        +      },
        +      "type": [
        +        "object",
        +        "string",
        +        "integer",
        +        "null"
        +      ]
        +    }
        +  },
        +  "required": [
        +    "found",
        +    "key",
        +    "value"
        +  ],
        +  "type": "object"
        +}
    • Changedhost.state.list1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "data": {
        +      "properties": {
        +        "quota": {
        +          "properties": {
        +            "state_bytes_max": {
        +              "properties": {
        +                "limit": {
        +                  "type": "integer"
        +                },
        +                "remaining": {
        +                  "type": "integer"
        +                },
        +                "used": {
        +                  "type": "integer"
        +                }
        +              },
        +              "required": [
        +                "limit",
        +                "remaining",
        +                "used"
        +              ],
        +              "type": "object"
        +            },
        +            "state_ops_per_call_max": {
        +              "properties": {
        +                "limit": {
        +                  "type": "integer"
        +                },
        +                "remaining": {
        +                  "type": "null"
        +                },
        +                "used": {
        +                  "type": "null"
        +                }
        +              },
        +              "required": [
        +                "limit",
        +                "remaining",
        +                "used"
        +              ],
        +              "type": "object"
        +            },
        +            "state_rows_max": {
        +              "properties": {
        +                "limit": {
        +                  "type": "integer"
        +                },
        +                "remaining": {
        +                  "type": "integer"
        +                },
        +                "used": {
        +                  "type": "integer"
        +                }
        +              },
        +              "required": [
        +                "limit",
        +                "remaining",
        +                "used"
        +              ],
        +              "type": "object"
        +            }
        +          },
        +          "required": [
        +            "state_bytes_max",
        +            "state_ops_per_call_max",
        +            "state_rows_max"
        +          ],
        +          "type": "object"
        +        }
        +      },
        +      "required": [
        +        "quota"
        +      ],
        +      "type": "object"
        +    },
        +    "keys": {
        +      "items": {
        +        "properties": {
        +          "key": {
        +            "type": "string"
        +          },
        +          "updated_unix": {
        +            "type": "integer"
        +          },
        +          "value": {
        +            "properties": {
        +              "download_url": {
        +                "type": "string"
        +              },
        +              "entries_done": {
        +                "type": "integer"
        +              },
        +              "entries_total": {
        +                "type": "integer"
        +              },
        +              "expires_unix": {
        +                "type": "integer"
        +              },
        +              "imported": {
        +                "properties": {
        +                  "docs": {
        +                    "type": "integer"
        +                  },
        +                  "models": {
        +                    "type": "integer"
        +                  },
        +                  "rows": {
        +                    "type": "integer"
        +                  },
        +                  "state": {
        +                    "type": "integer"
        +                  },
        +                  "tables": {
        +                    "type": "integer"
        +                  },
        +                  "tools": {
        +                    "type": "integer"
        +                  }
        +                },
        +                "required": [
        +                  "docs",
        +                  "models",
        +                  "rows",
        +                  "state",
        +                  "tables",
        +                  "tools"
        +                ],
        +                "type": "object"
        +              },
        +              "manifest": {
        +                "items": {
        +                  "properties": {
        +                    "kind": {
        +                      "type": "string"
        +                    },
        +                    "name": {
        +                      "type": "string"
        +                    },
        +                    "spec": {
        +                      "properties": {
        +                        "schema": {
        +                          "properties": {
        +                            "type": {
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "type"
        +                          ],
        +                          "type": "object"
        +                        }
        +                      },
        +                      "required": [
        +                        "schema"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  },
        +                  "required": [
        +                    "kind",
        +                    "name",
        +                    "spec"
        +                  ],
        +                  "type": "object"
        +                },
        +                "type": "array"
        +              },
        +              "n": {
        +                "type": "integer"
        +              },
        +              "secrets_to_set": {
        +                "items": {
        +                  "type": "string"
        +                },
        +                "type": "array"
        +              },
        +              "size_bytes": {
        +                "type": "integer"
        +              },
        +              "skipped": {
        +                "type": "array"
        +              },
        +              "unrecognised_paths": {
        +                "type": "array"
        +              }
        +            },
        +            "required": [],
        +            "type": [
        +              "integer",
        +              "object",
        +              "string"
        +            ]
        +          }
        +        },
        +        "required": [],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "keys"
        +  ],
        +  "type": "object"
        +}
    • Changedhost.state.set1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "bytes_delta": {
        +      "type": "integer"
        +    },
        +    "impersonated": {
        +      "type": "boolean"
        +    },
        +    "key": {
        +      "type": "string"
        +    },
        +    "set": {
        +      "type": "boolean"
        +    }
        +  },
        +  "required": [
        +    "bytes_delta",
        +    "key",
        +    "set"
        +  ],
        +  "type": "object"
        +}
    • Changedhost.tool_call1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "args": {
        +      "properties": {},
        +      "type": "object"
        +    },
        +    "body": {
        +      "properties": {
        +        "ok": {
        +          "type": "boolean"
        +        },
        +        "pong": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "changed": {
        +      "type": "array"
        +    },
        +    "checked_at": {
        +      "type": "integer"
        +    },
        +    "client_tool": {
        +      "type": "string"
        +    },
        +    "columns": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "count": {
        +      "type": "integer"
        +    },
        +    "created": {
        +      "type": "boolean"
        +    },
        +    "created_unix": {
        +      "type": "integer"
        +    },
        +    "dedupe_header": {
        +      "type": "null"
        +    },
        +    "doubled": {
        +      "type": "integer"
        +    },
        +    "enabled": {
        +      "type": "boolean"
        +    },
        +    "failed_steps": {
        +      "type": "array"
        +    },
        +    "forwarded_to": {
        +      "type": "string"
        +    },
        +    "headers": {
        +      "properties": {
        +        "content-type": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "https_proxy": {
        +      "type": "string"
        +    },
        +    "id": {
        +      "type": "string"
        +    },
        +    "kind": {
        +      "type": "string"
        +    },
        +    "last_fired_unix": {
        +      "type": "null"
        +    },
        +    "last_run_id": {
        +      "type": "null"
        +    },
        +    "last_status": {
        +      "type": "null"
        +    },
        +    "msg": {
        +      "type": "string"
        +    },
        +    "name": {
        +      "type": "string"
        +    },
        +    "next": {
        +      "properties": {
        +        "tool": {
        +          "type": "string"
        +        },
        +        "why": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "next_unix": {
        +      "type": "integer"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "onboarding": {
        +      "properties": {
        +        "claim_url": {
        +          "type": "string"
        +        },
        +        "invited_by": {
        +          "type": "string"
        +        },
        +        "shared_tools": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "tenant": {
        +          "type": "string"
        +        },
        +        "url": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "payload": {
        +      "properties": {
        +        "ok": {
        +          "type": "boolean"
        +        },
        +        "pong": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "preset": {
        +      "type": "null"
        +    },
        +    "result": {
        +      "properties": {
        +        "region": {
        +          "type": "string"
        +        },
        +        "rows": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "rows": {
        +      "items": {
        +        "properties": {
        +          "body": {
        +            "properties": {
        +              "id": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "checked_at": {
        +            "type": "integer"
        +          },
        +          "delivery_id": {
        +            "type": "null"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "latency_ms": {
        +            "type": "integer"
        +          },
        +          "ok": {
        +            "type": "boolean"
        +          },
        +          "received_at": {
        +            "type": "integer"
        +          },
        +          "status": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "run_id": {
        +      "type": "string"
        +    },
        +    "schedule": {
        +      "type": "string"
        +    },
        +    "status": {
        +      "type": [
        +        "string",
        +        "integer"
        +      ]
        +    },
        +    "steps": {
        +      "items": {
        +        "properties": {
        +          "result": {
        +            "properties": {
        +              "region": {
        +                "type": "string"
        +              },
        +              "rows": {
        +                "type": "string"
        +              },
        +              "url": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "status": {
        +            "type": "string"
        +          },
        +          "step": {
        +            "type": "integer"
        +          },
        +          "tool": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "text": {
        +      "type": "string"
        +    },
        +    "tool": {
        +      "type": "string"
        +    },
        +    "tz": {
        +      "type": "null"
        +    },
        +    "unverified": {
        +      "type": "boolean"
        +    },
        +    "url": {
        +      "type": "string"
        +    },
        +    "v1": {
        +      "type": "string"
        +    },
        +    "verify": {
        +      "properties": {
        +        "allow_unverified": {
        +          "type": "boolean"
        +        },
        +        "scheme": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "welcome_back": {
        +      "properties": {
        +        "last_note": {
        +          "type": "null"
        +        },
        +        "last_seen": {
        +          "type": "string"
        +        },
        +        "notes": {
        +          "type": "integer"
        +        },
        +        "since_you_left": {
        +          "properties": {
        +            "calls": {
        +              "type": "integer"
        +            },
        +            "days": {
        +              "type": "integer"
        +            },
        +            "inbox": {
        +              "type": "integer"
        +            },
        +            "runs": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedhost.tool_publish1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "call_line": {
        +      "description": "A ready-to-paste call for the published tool. Optional: declared so a typed client reserves the field; absent from responses that do not carry one.",
        +      "type": "string"
        +    },
        +    "deprecations": {
        +      "items": {
        +        "properties": {
        +          "path": {
        +            "type": "string"
        +          },
        +          "replacement": {
        +            "type": "string"
        +          },
        +          "since": {
        +            "type": "string"
        +          },
        +          "sunset": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "evidence": {
        +      "items": {
        +        "properties": {
        +          "available": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "did_you_mean": {
        +            "type": "string"
        +          },
        +          "path": {
        +            "type": "string"
        +          },
        +          "predecessor_keys": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "step": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "failures": {
        +      "items": {
        +        "properties": {
        +          "available": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "did_you_mean": {
        +            "type": "string"
        +          },
        +          "path": {
        +            "type": "string"
        +          },
        +          "predecessor_keys": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "step": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "gates": {
        +      "items": {
        +        "properties": {
        +          "evidence": {
        +            "items": {
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "failures": {
        +            "items": {
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "fix": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "gate": {
        +            "type": "string"
        +          },
        +          "message": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "ok": {
        +            "type": "boolean"
        +          },
        +          "verdict": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "hint": {
        +      "type": "string"
        +    },
        +    "kind": {
        +      "type": "string"
        +    },
        +    "lock": {
        +      "properties": {
        +        "hashes": {
        +          "type": "boolean"
        +        },
        +        "packages": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "name": {
        +      "type": "string"
        +    },
        +    "next": {
        +      "properties": {
        +        "tool": {
        +          "type": "string"
        +        },
        +        "why": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "onboarding": {
        +      "properties": {
        +        "claim_url": {
        +          "type": "string"
        +        },
        +        "memory_hint": {
        +          "type": "string"
        +        },
        +        "memory_line": {
        +          "type": "string"
        +        },
        +        "note": {
        +          "type": "string"
        +        },
        +        "tenant": {
        +          "type": "string"
        +        },
        +        "url": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "reason": {
        +      "type": "string"
        +    },
        +    "resolved_from": {
        +      "type": "string"
        +    },
        +    "steps": {
        +      "items": {
        +        "properties": {
        +          "hint": {
        +            "type": "string"
        +          },
        +          "prev_fields": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": [
        +              "array",
        +              "null"
        +            ]
        +          },
        +          "prev_fields_source": {
        +            "type": "string"
        +          },
        +          "step": {
        +            "type": "integer"
        +          },
        +          "tool": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    },
        +    "version": {
        +      "description": "The tool's version after this publish (1 for a first publish).",
        +      "type": "integer"
        +    },
        +    "welcome_back": {
        +      "properties": {
        +        "last_note": {
        +          "type": "null"
        +        },
        +        "last_seen": {
        +          "type": "string"
        +        },
        +        "notes": {
        +          "type": "integer"
        +        },
        +        "since_you_left": {
        +          "properties": {
        +            "calls": {
        +              "type": "integer"
        +            },
        +            "days": {
        +              "type": "integer"
        +            },
        +            "inbox": {
        +              "type": "integer"
        +            },
        +            "runs": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedhost.tool_share1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "description": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "expose_spec": {
        +      "type": "boolean"
        +    },
        +    "group": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "name": {
        +      "type": "string"
        +    },
        +    "next": {
        +      "properties": {
        +        "tool": {
        +          "type": "string"
        +        },
        +        "why": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "url": {
        +      "type": "string"
        +    },
        +    "visibility": {
        +      "type": "string"
        +    },
        +    "welcome_back": {
        +      "properties": {
        +        "last_note": {
        +          "type": "null"
        +        },
        +        "last_seen": {
        +          "type": "string"
        +        },
        +        "notes": {
        +          "type": "integer"
        +        },
        +        "since_you_left": {
        +          "properties": {
        +            "calls": {
        +              "type": "integer"
        +            },
        +            "days": {
        +              "type": "integer"
        +            },
        +            "inbox": {
        +              "type": "integer"
        +            },
        +            "runs": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "description",
        +    "expose_spec",
        +    "group",
        +    "name",
        +    "visibility"
        +  ],
        +  "type": "object"
        +}
    • Changedhost.tool_test1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "args": {
        +      "properties": {},
        +      "type": "object"
        +    },
        +    "chain_dry_run": {
        +      "type": "boolean"
        +    },
        +    "changed": {
        +      "type": "array"
        +    },
        +    "created": {
        +      "type": "boolean"
        +    },
        +    "created_unix": {
        +      "type": "integer"
        +    },
        +    "detail": {
        +      "type": "string"
        +    },
        +    "dry_run": {
        +      "properties": {
        +        "delivered": {
        +          "type": "boolean"
        +        },
        +        "rolled_back": {
        +          "type": "boolean"
        +        },
        +        "writes": {
        +          "items": {
        +            "properties": {
        +              "channel": {
        +                "type": "string"
        +              },
        +              "key": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "op": {
        +                "type": "string"
        +              },
        +              "rows": {
        +                "type": "integer"
        +              },
        +              "store": {
        +                "type": "string"
        +              },
        +              "table": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "enabled": {
        +      "type": "boolean"
        +    },
        +    "envelope": {
        +      "properties": {
        +        "declared": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "found_at_contract_path": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "green": {
        +          "type": "boolean"
        +        },
        +        "missing": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "missing_detail": {
        +          "items": {
        +            "properties": {
        +              "name": {
        +                "type": "string"
        +              },
        +              "path": {
        +                "type": "string"
        +              },
        +              "seen_at": {
        +                "type": "array"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "environment": {
        +      "items": {
        +        "properties": {
        +          "kind": {
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "value": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "error": {
        +      "type": "string"
        +    },
        +    "evidence": {
        +      "items": {
        +        "properties": {
        +          "available": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "did_you_mean": {
        +            "type": "string"
        +          },
        +          "path": {
        +            "type": "string"
        +          },
        +          "predecessor_keys": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "step": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "exception_class": {
        +      "type": "string"
        +    },
        +    "failures": {
        +      "items": {
        +        "properties": {
        +          "available": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "did_you_mean": {
        +            "type": "string"
        +          },
        +          "path": {
        +            "type": "string"
        +          },
        +          "predecessor_keys": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "step": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "forwarded_to": {
        +      "type": "string"
        +    },
        +    "id": {
        +      "type": "string"
        +    },
        +    "inputs_required": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "kind": {
        +      "type": "string"
        +    },
        +    "last_fired_unix": {
        +      "type": "null"
        +    },
        +    "last_run_id": {
        +      "type": "null"
        +    },
        +    "last_status": {
        +      "type": "null"
        +    },
        +    "line": {
        +      "type": "integer"
        +    },
        +    "msg": {
        +      "type": "string"
        +    },
        +    "name": {
        +      "type": "string"
        +    },
        +    "next": {
        +      "properties": {
        +        "tool": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "next_unix": {
        +      "type": "integer"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "outer": {
        +      "properties": {
        +        "tenant_key": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "payload": {
        +      "properties": {
        +        "msg": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "reason": {
        +      "type": "string"
        +    },
        +    "request": {
        +      "properties": {
        +        "body": {
        +          "type": "null"
        +        },
        +        "headers": {
        +          "properties": {
        +            "x-api-key": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "method": {
        +          "type": "string"
        +        },
        +        "query": {
        +          "properties": {},
        +          "type": "object"
        +        },
        +        "url": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "response": {
        +      "properties": {
        +        "body": {
        +          "properties": {
        +            "blocking_tool": {
        +              "type": "string"
        +            },
        +            "fact": {
        +              "type": "string"
        +            },
        +            "json": {
        +              "properties": {
        +                "bridge_status": {
        +                  "type": "string"
        +                },
        +                "ingestion_status": {
        +                  "type": "string"
        +                }
        +              },
        +              "type": "object"
        +            },
        +            "length": {
        +              "type": "integer"
        +            },
        +            "ok": {
        +              "type": "boolean"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "headers": {
        +          "properties": {
        +            "content-type": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "payload": {
        +          "properties": {
        +            "blocking_tool": {
        +              "type": "string"
        +            },
        +            "fact": {
        +              "type": "string"
        +            },
        +            "json": {
        +              "properties": {
        +                "bridge_status": {
        +                  "type": "string"
        +                },
        +                "ingestion_status": {
        +                  "type": "string"
        +                }
        +              },
        +              "type": "object"
        +            },
        +            "length": {
        +              "type": "integer"
        +            },
        +            "ok": {
        +              "type": "boolean"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "status": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "result": {
        +      "properties": {
        +        "a": {
        +          "type": "null"
        +        },
        +        "appended": {
        +          "type": "integer"
        +        },
        +        "b": {
        +          "type": "null"
        +        },
        +        "city": {
        +          "type": "string"
        +        },
        +        "data": {
        +          "properties": {
        +            "status": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "delivered": {
        +          "type": "boolean"
        +        },
        +        "n": {
        +          "type": "integer"
        +        },
        +        "ok": {
        +          "type": "boolean"
        +        },
        +        "payload": {
        +          "properties": {
        +            "data": {
        +              "properties": {
        +                "status": {
        +                  "type": "string"
        +                }
        +              },
        +              "type": "object"
        +            },
        +            "ingestion_status": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "table": {
        +          "type": "string"
        +        },
        +        "total": {
        +          "type": "integer"
        +        },
        +        "would_post": {
        +          "properties": {
        +            "body": {
        +              "type": "string"
        +            },
        +            "channel": {
        +              "type": "string"
        +            },
        +            "data": {
        +              "properties": {
        +                "n": {
        +                  "type": "integer"
        +                }
        +              },
        +              "type": "object"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "schedule": {
        +      "type": "string"
        +    },
        +    "schema": {
        +      "properties": {
        +        "properties": {
        +          "properties": {
        +            "cid": {
        +              "properties": {},
        +              "type": "object"
        +            },
        +            "city": {
        +              "properties": {},
        +              "type": "object"
        +            },
        +            "note": {
        +              "properties": {
        +                "default": {
        +                  "type": "string"
        +                },
        +                "type": {
        +                  "type": "string"
        +                }
        +              },
        +              "type": "object"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "required": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "type": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "source_line": {
        +      "type": "string"
        +    },
        +    "state": {
        +      "properties": {
        +        "keys": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "reads": {
        +          "type": "integer"
        +        },
        +        "tables": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "writes": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "steps": {
        +      "items": {
        +        "properties": {
        +          "dispatched": {
        +            "type": "boolean"
        +          },
        +          "error": {
        +            "type": "string"
        +          },
        +          "prev_fields": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "resolved": {
        +            "type": "string"
        +          },
        +          "resolved_args": {
        +            "type": "object"
        +          },
        +          "result": {
        +            "properties": {
        +              "a": {
        +                "type": "integer"
        +              },
        +              "appended": {
        +                "type": "integer"
        +              },
        +              "ids": {
        +                "type": "array"
        +              },
        +              "leads": {
        +                "type": "array"
        +              },
        +              "owner": {
        +                "type": "string"
        +              },
        +              "rows": {
        +                "type": "array"
        +              },
        +              "table": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "side_effects": {
        +            "type": "boolean"
        +          },
        +          "step": {
        +            "type": "integer"
        +          },
        +          "tool": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "tool": {
        +      "type": "string"
        +    },
        +    "tz": {
        +      "type": "null"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    },
        +    "warnings": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "welcome_back": {
        +      "properties": {
        +        "last_note": {
        +          "type": "null"
        +        },
        +        "last_seen": {
        +          "type": "string"
        +        },
        +        "notes": {
        +          "type": "integer"
        +        },
        +        "since_you_left": {
        +          "properties": {
        +            "calls": {
        +              "type": "integer"
        +            },
        +            "days": {
        +              "type": "integer"
        +            },
        +            "inbox": {
        +              "type": "integer"
        +            },
        +            "runs": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "dry_run"
        +  ],
        +  "type": "object"
        +}
    • Changedhost.whoami1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "admin": {
        +      "type": "boolean"
        +    },
        +    "admin_schema_version": {
        +      "type": "integer"
        +    },
        +    "auth_method": {
        +      "type": "string"
        +    },
        +    "claim_url": {
        +      "type": "string"
        +    },
        +    "client_name": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "client_version": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "contract_sha": {
        +      "type": "string"
        +    },
        +    "contract_version": {
        +      "type": "string"
        +    },
        +    "created_at": {
        +      "type": "string"
        +    },
        +    "disabled": {
        +      "type": "boolean"
        +    },
        +    "display_name": {
        +      "type": "string"
        +    },
        +    "invite_url": {
        +      "type": "string"
        +    },
        +    "key_age_s": {
        +      "type": "integer"
        +    },
        +    "key_rotated_at": {
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "links": {
        +      "properties": {
        +        "help": {
        +          "type": "string"
        +        },
        +        "plans": {
        +          "type": "string"
        +        },
        +        "status": {
        +          "type": "string"
        +        },
        +        "support": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "metadata_url": {
        +      "type": "string"
        +    },
        +    "namespace": {
        +      "type": "string"
        +    },
        +    "naming_rule_url": {
        +      "type": "string"
        +    },
        +    "next": {
        +      "properties": {
        +        "tool": {
        +          "type": "string"
        +        },
        +        "why": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "onboarding": {
        +      "properties": {
        +        "claim_url": {
        +          "type": "string"
        +        },
        +        "invite_url": {
        +          "type": "string"
        +        },
        +        "invited_by": {
        +          "type": "string"
        +        },
        +        "memory_hint": {
        +          "type": "string"
        +        },
        +        "memory_line": {
        +          "type": "string"
        +        },
        +        "note": {
        +          "type": "string"
        +        },
        +        "shared_tools": {
        +          "type": "array"
        +        },
        +        "tenant": {
        +          "type": "string"
        +        },
        +        "url": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "owner": {
        +      "properties": {
        +        "verified_at": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "owner_verified": {
        +      "type": "boolean"
        +    },
        +    "plan": {
        +      "type": "string"
        +    },
        +    "plan_since": {
        +      "type": "null"
        +    },
        +    "resource": {
        +      "type": "string"
        +    },
        +    "session_tenant": {
        +      "type": "string"
        +    },
        +    "shared_tools": {
        +      "items": {
        +        "properties": {
        +          "name": {
        +            "type": "string"
        +          },
        +          "owner": {
        +            "type": "string"
        +          },
        +          "via": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "source": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "source_class": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "subject": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "tenant": {
        +      "type": "string"
        +    },
        +    "welcome_back": {
        +      "properties": {
        +        "last_note": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "last_seen": {
        +          "type": "string"
        +        },
        +        "notes": {
        +          "type": "integer"
        +        },
        +        "since_you_left": {
        +          "properties": {
        +            "calls": {
        +              "type": "integer"
        +            },
        +            "days": {
        +              "type": "integer"
        +            },
        +            "inbox": {
        +              "type": "integer"
        +            },
        +            "runs": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "contract_sha",
        +    "contract_version"
        +  ],
        +  "type": "object"
        +}
  3. 2 tool updates
    • Addedhost.feedback.list
    • Addedhost.feedback.send

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.