mcphost
Server Details
Hosted MCP runtime where your agent publishes its own tools by tool call and keeps working.
- Status
- Healthy
- Uptime
- 100.0% over 41 days
- Last Tested
- Transport
- Streamable HTTP ยท MCP 2025-11-25
- URL
- Repository
- j0yen/mcphost
- GitHub Stars
- 0
- Server Listing
- mcphost
TDQS
Scored across 12 tools
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.
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.
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.
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
16 toolsbilling.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.
| Name | Required | Description | Default |
|---|---|---|---|
| tenant_key | No | The 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
| Name | Required | Description |
|---|---|---|
| plans | Yes | |
| billing_mode | Yes |
host.feedback.listAInspect
List your own feedback (newest first, status received). Anonymous callers get [].
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows, up to 100; default 20. | |
| tenant_key | No | The 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
| Name | Required | Description |
|---|---|---|
| note | No | |
| count | Yes | |
| feedback | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose ordering (newest first), an implicit status filter (received), and the anonymous-caller result ([]), which is real behavioral value. It omits auth/permission requirements and rate limits, so a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence, front-loaded with the verb and resource and parenthesized with ordering/filter qualifiers. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return format need not be explained. The description covers scope, ordering, filter, and the anonymous edge case, leaving only minor details like pagination semantics to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both optional parameters including the tenant_key fallback behavior. The description adds no parameter detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (your own feedback), plus scoping ('your own') that implicitly separates it from host.feedback.send. It does not explicitly name a sibling alternative, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Anonymous callers get []' clause gives a when-not condition, which is useful. However, there is no explicit when-to-use framing or named alternative (e.g., host.feedback.send), so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
host.feedback.sendAInspect
Tell the host's humans what you needed: kind, up to 2048 bytes of text, optional context. Works before signup. Returns feedback_id.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | What you are telling the host. | |
| text | Yes | What you needed or saw; 1 to 2048 bytes after trim. | |
| context | No | Optional, at most 1 KB: tool, error_code, free. | |
| tenant_key | No | The 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
| Name | Required | Description |
|---|---|---|
| kind | Yes | |
| feedback_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool is auth-independent ('works before signup') and returns a feedback_id, which is useful. It does not cover the significant implicit behavior documented in the schema (omitting tenant_key on an unauthenticated connection silently signs up a new tenant), leaving that to structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with the payload and the key behavioral fact (pre-signup availability) front-loaded; every clause carries information and nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter tool with a full output schema, the description covers purpose, payload, availability, and return value. The remaining complexity (tenant_key/implicit signup) is handled by the very detailed schema and need not be repeated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents kind, text, context, and the nuanced tenant_key semantics. The description only restates the 2048-byte limit and the optionality of context, adding essentially nothing beyond structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action and resource: sending feedback to the host's humans, with the payload shape (kind, text, context) named up front. It implicitly distinguishes itself from host.feedback.list via 'Tell ... what you needed', though it does not name any sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Works before signup' is a real usage qualifier that tells the agent this call is available pre-auth. However, it gives no guidance on when to send feedback versus reaching for host.help.search or host.feedback.list, and no explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
host.help.getAInspect
Return the documentation section an anchor points at: its text (at most 4 KB) and its first fenced example. Pass an anchor exactly as an error, hint or help entry printed it, e.g. a rate_limited error's anchor. Read-only, anonymous, no tenant data. An unknown anchor is anchor_not_found with the nearest anchors in did_you_mean.
| Name | Required | Description | Default |
|---|---|---|---|
| anchor | Yes | A `<path>#<slug>` anchor, e.g. README.md#call-limits, as printed by an error's `anchor` field or a `host.help.search` hit. | |
| tenant_key | No | The 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
| Name | Required | Description |
|---|---|---|
| line | Yes | |
| path | Yes | |
| text | Yes | |
| title | Yes | |
| anchor | Yes | |
| example | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so: read-only, anonymous, no tenant data, text capped at 4 KB, returns the first fenced example, and unknown anchors yield anchor_not_found with nearest anchors in did_you_mean. That is a rich behavioral profile an annotations-only definition could not supply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the return contract, followed by input guidance and error behavior. No sentence is redundant and nothing is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, yet the description still characterizes the payload (text cap, first example) and the failure mode. Combined with 100% schema coverage, an agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the anchor's `<path>#<slug>` format and example are already documented in the schema, and tenant_key's binding semantics are fully described there. The description only reinforces the anchor must be passed verbatim, adding marginal value over the structured field.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource: return the documentation section an anchor points at, plus its text and first fenced example. It also implicitly separates itself from the sibling host.help.search by referring to an anchor as printed by a search hit, so an agent can tell lookup-by-anchor apart from search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains when to invoke it: pass an anchor exactly as an error, hint or help entry printed it, and it cites the rate_limited error's anchor field as a concrete trigger. It stops short of explicitly naming host.help.search as the fallback when no anchor is known, so the alternative is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
host.help.searchAInspect
Search this host's own documentation and tool descriptions. Returns up to k hits (default 3, response under 2 KB), each with a snippet, the nearest runnable example and an anchor. Read-only, anonymous, no tenant data -- call it with the error text or import line you are stuck on before reading any docs file.
| Name | Required | Description | Default |
|---|---|---|---|
| k | No | How many hits to return (default 3). | |
| q | Yes | What you are stuck on: a tool name, an error code or message, an import line. | |
| kind | No | Only search the page of this registered kind (docs/kinds/<kind>.md). | |
| tenant_key | No | The 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
| Name | Required | Description |
|---|---|---|
| hint | No | |
| hits | Yes | |
| total | Yes | |
| index_version | Yes |
TDQS
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 declares the safety/auth profile ("Read-only, anonymous, no tenant data") and bounds the response ("up to k hits (default 3, response under 2 KB)"). It does not mention rate limits, latency, or what happens on zero hits, so it stops short of exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences: purpose and return shape first, then the auth/usage constraint. Every clause carries information (scope, sizing, read-only status, calling guidance) with no filler or restatement of the tool title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, yet the description still notes the response is under 2 KB. All four parameters are fully documented in the schema and the behavioral profile is covered, leaving nothing an agent needs in order to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% across all four parameters, including detailed tenant_key binding and header-precedence semantics, so the schema does the heavy lifting. The description only restates the default k and the q input hint that the schema already contains, adding essentially no new parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Search") and a specific resource ("this host's own documentation and tool descriptions"), which an agent can immediately distinguish from host.help.get (reading a docs file). The return-shape clause ("snippet, the nearest runnable example and an anchor") further pins down what kind of search this is.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to call it ("call it with the error text or import line you are stuck on") and routes the agent relative to an alternative ("before reading any docs file"), which is the sibling host.help.get. The routing decision is fully specified, not left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Which 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_key | No | The 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
| Name | Required | Description |
|---|---|---|
| hint | No | |
| kind | No | |
| next | No | |
| kinds | No | |
| steps | No | |
| verbs | No | |
| limits | No | |
| recipe | No | |
| aliases | No | |
| example | No | |
| outcome | No | |
| recipes | No | |
| verdict | No | |
| contract | No | The asked kind's KindContract summary: the error families its failures carry and whether they carry data.source_line. |
| endpoint | No | |
| triggers | No | |
| namespace | No | |
| sandbox_api | No | |
| alt_endpoint | No | |
| reachability | No | |
| starter_tool | No | |
| welcome_back | No | |
| authenticated | No | |
| install_links | No | |
| resolved_from | No | |
| bridge_returns | No | |
| recipes_nearby | No | |
| install_doc_url | No | |
| try_before_call | No | |
| host_steps_allowed | No |
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tenant_key | No | The 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_token | Yes | The handoff_token signup(handoff: true) returned. |
Output Schema
| Name | Required | Description |
|---|---|---|
| key | Yes | |
| next | Yes | |
| usage | Yes | |
| session_bound | Yes |
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.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Key to read from this tenant's key-value state namespace. | |
| end_user | No | "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_key | No | The 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
| Name | Required | Description |
|---|---|---|
| key | Yes | |
| found | Yes | |
| value | Yes | |
| impersonated | No | |
| updated_unix | No |
host.state.listInspect
List keys (with their current values) in this tenant's key-value state namespace, optionally filtered by prefix.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max keys to return; default 100. | |
| prefix | No | Only list keys starting with this prefix; default: all keys. | |
| end_user | No | "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_key | No | The 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
| Name | Required | Description |
|---|---|---|
| data | No | |
| keys | Yes |
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.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Key to write in this tenant's key-value state namespace. | |
| value | Yes | Any JSON value to store under key. | |
| dry_run | No | return the diff this call would make and commit nothing | |
| end_user | No | "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_key | No | The 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
| Name | Required | Description |
|---|---|---|
| key | Yes | |
| set | Yes | |
| bytes_delta | Yes | |
| impersonated | No |
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.
| Name | Required | Description | Default |
|---|---|---|---|
| args | Yes | Arguments to pass, validated against the tool's own args_schema. | |
| name | Yes | Local name of the tool to invoke. | |
| async | No | Run as a job instead of inline: returns {run_id, status} within ~50ms under the plan's job_max_s deadline; default false. | |
| budget | No | Lowers 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_run | No | Ask 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. | |
| version | No | Pin the call to this version instead of whichever is current; see host.tool_history. An unknown version is an argument error. | |
| tenant_key | No | The 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
| Name | Required | Description |
|---|---|---|
| id | No | |
| ok | No | |
| tz | No | |
| v1 | No | |
| msg | No | |
| url | No | |
| args | No | |
| body | No | |
| kind | No | |
| name | No | |
| next | No | |
| rows | No | |
| text | No | |
| tool | No | |
| count | No | |
| steps | No | |
| preset | No | |
| result | No | |
| run_id | No | |
| status | No | |
| verify | No | |
| changed | No | |
| columns | No | |
| created | No | |
| doubled | No | |
| enabled | No | |
| headers | No | |
| payload | No | |
| schedule | No | |
| next_unix | No | |
| checked_at | No | |
| onboarding | No | |
| unverified | No | |
| client_tool | No | |
| https_proxy | No | |
| last_run_id | No | |
| last_status | No | |
| created_unix | No | |
| failed_steps | No | |
| forwarded_to | No | |
| welcome_back | No | |
| dedupe_header | No | |
| last_fired_unix | No |
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.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | Which 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. Error contract per kind: chain (families: compose, tool_state; source_line: no); echo (families: none; source_line: no); http (families: upstream; source_line: no); js (families: tool_code, tool_limit, upstream, compose, tool_state; source_line: yes); python (families: tool_code, tool_limit, upstream, compose, tool_state; source_line: yes); wasm (families: tool_code, tool_limit; source_line: no). | |
| name | Yes | Local name for the new tool; must match ^[a-z][a-z0-9_]{1,40}$. | |
| spec | Yes | The 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". | |
| scopes | No | OAuth 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_run | No | return the diff this call would make and commit nothing | |
| tenant_key | No | The 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
| Name | Required | Description |
|---|---|---|
| ok | No | |
| hint | No | |
| kind | No | |
| lock | No | |
| name | No | |
| next | No | |
| gates | No | |
| steps | No | |
| reason | No | |
| verdict | No | |
| version | No | The tool's version after this publish (1 for a first publish). |
| evidence | No | |
| failures | No | |
| call_line | No | 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. |
| tool_lint | No | Advisory publish-time lint findings for a python tool ([] when clean); a finding never blocks the publish. |
| onboarding | No | |
| deprecations | No | |
| welcome_back | No | |
| resolved_from | No |
host.tool_testInspect
Dry-run a published tool by name: verdict (pass/will_fail/unverifiable), writes rolled back (dry_run); see host.quickstart.
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | Arguments to pass, same shape as a real call. Omit to run one example generated from the tool's args_schema; the response then carries example_args (what ran) and untyped (keys the schema gave no type for). | |
| name | Yes | Local name of the already-published tool to dry-run. | |
| fixtures | No | Chain 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_key | No | The 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
| Name | Required | Description |
|---|---|---|
| id | No | |
| ok | No | |
| tz | No | |
| msg | No | |
| args | No | |
| kind | No | |
| line | No | |
| name | No | |
| next | No | |
| tool | No | |
| error | No | |
| outer | No | |
| state | No | |
| steps | No | |
| detail | No | |
| reason | No | |
| result | No | |
| schema | No | |
| changed | No | |
| created | No | |
| dry_run | Yes | |
| enabled | No | |
| payload | No | |
| request | No | |
| verdict | No | |
| envelope | No | |
| evidence | No | |
| failures | No | |
| response | No | |
| schedule | No | |
| warnings | No | |
| next_unix | No | |
| environment | No | |
| last_run_id | No | |
| last_status | No | |
| source_line | No | |
| created_unix | No | |
| forwarded_to | No | |
| welcome_back | No | |
| chain_dry_run | No | |
| exception_class | No | |
| inputs_required | No | |
| last_fired_unix | No |
host.whoamiInspect
Return the calling tenant's identity, including key_age_s and key_rotated_at for auditing credential hygiene.
| Name | Required | Description | Default |
|---|---|---|---|
| tenant_key | No | The 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
| Name | Required | Description |
|---|---|---|
| key | No | |
| next | No | |
| plan | No | |
| admin | No | |
| links | No | |
| owner | No | |
| source | No | |
| tenant | No | |
| subject | No | |
| disabled | No | |
| resource | No | |
| claim_url | No | |
| key_age_s | No | |
| namespace | No | |
| activation | No | |
| created_at | No | |
| invite_url | No | |
| onboarding | No | |
| plan_since | No | |
| auth_method | No | |
| client_name | No | |
| contract_sha | Yes | |
| display_name | No | |
| metadata_url | No | |
| shared_tools | No | |
| source_class | No | |
| welcome_back | No | |
| client_version | No | |
| key_rotated_at | No | |
| owner_verified | No | |
| session_tenant | No | |
| naming_rule_url | No | |
| contract_version | Yes | |
| admin_schema_version | No |
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | display name | |
| handoff | No | Recommended: true to receive a handoff_token (redeem via host.redeem) instead of the raw key. Default false (raw key, unchanged). |
TDQS
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.
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.
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.
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.
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.
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 tool update
- Changed
billing.plans2 fields changed- added
Output schema / properties / plans / items / properties / calls_included_monthAdded value: +{ + "type": [ + "integer", + "null" + ] +} - added
Output schema / properties / plans / items / properties / overage_usd_per_1000_callsAdded value: +{ + "type": [ + "integer", + "null" + ] +}
2 tool updates
- Changed
host.help.search1 field changed- changed
Input schema / properties / kind / enumPrevious value: -[ - "chain", - "echo", - "http", - "python", - "wasm" -]New value: +[ + "chain", + "echo", + "http", + "js", + "python", + "wasm" +]
- Changed
host.tool_publish3 fields changed- changed
Input schema / allOfPrevious value: -[ - { - "if": { - "properties": { - "kind": { - "const": "chain" - } - }, - "required": [ - "kind" - ] - }, - "then": { - "properties": { - "spec": { - "additionalProperties": false, - "properties": { - "outputs": { - "description": "fields a caller can rely on in `result.payload`, optionally with a `$.a.b` path each (every kind)" - }, - "reads": { - "description": "tables this tool reads, recorded for lineage and blast-radius reports" - }, - "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": { - "outputs": { - "description": "fields a caller can rely on in `result.payload`, optionally with a `$.a.b` path each (every kind)" - }, - "reads": { - "description": "tables this tool reads, recorded for lineage and blast-radius reports" - }, - "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": { - "description": "fields a caller can rely on in `result.payload`, optionally with a `$.a.b` path each (every kind)" - }, - "query": {}, - "reads": { - "description": "tables this tool reads, recorded for lineage and blast-radius reports" - }, - "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": { - "description": "tables this tool reads, recorded for lineage and blast-radius reports" - }, - "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": { - "description": "fields a caller can rely on in `result.payload`, optionally with a `$.a.b` path each (every kind)" - }, - "reads": { - "description": "tables this tool reads, recorded for lineage and blast-radius reports" - }, - "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" - } - } - } - } -]New value: +[ + { + "if": { + "properties": { + "kind": { + "const": "chain" + } + }, + "required": [ + "kind" + ] + }, + "then": { + "properties": { + "spec": { + "additionalProperties": false, + "properties": { + "outputs": { + "description": "fields a caller can rely on in `result.payload`, optionally with a `$.a.b` path each (every kind)" + }, + "reads": { + "description": "tables this tool reads, recorded for lineage and blast-radius reports" + }, + "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": { + "outputs": { + "description": "fields a caller can rely on in `result.payload`, optionally with a `$.a.b` path each (every kind)" + }, + "reads": { + "description": "tables this tool reads, recorded for lineage and blast-radius reports" + }, + "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": { + "description": "fields a caller can rely on in `result.payload`, optionally with a `$.a.b` path each (every kind)" + }, + "query": {}, + "reads": { + "description": "tables this tool reads, recorded for lineage and blast-radius reports" + }, + "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": "js" + } + }, + "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": { + "description": "tables this tool reads, recorded for lineage and blast-radius reports" + }, + "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": "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": { + "description": "tables this tool reads, recorded for lineage and blast-radius reports" + }, + "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": { + "description": "fields a caller can rely on in `result.payload`, optionally with a `$.a.b` path each (every kind)" + }, + "reads": { + "description": "tables this tool reads, recorded for lineage and blast-radius reports" + }, + "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" + } + } + } + } +] - changed
Input schema / properties / kind / descriptionPrevious value: -"Which 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. Error contract per kind: chain (families: compose, tool_state; source_line: no); echo (families: none; source_line: no); http (families: upstream; source_line: no); python (families: tool_code, tool_limit, upstream, compose, tool_state; source_line: yes); wasm (families: tool_code, tool_limit; source_line: no)."New value: +"Which 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. Error contract per kind: chain (families: compose, tool_state; source_line: no); echo (families: none; source_line: no); http (families: upstream; source_line: no); js (families: tool_code, tool_limit, upstream, compose, tool_state; source_line: yes); python (families: tool_code, tool_limit, upstream, compose, tool_state; source_line: yes); wasm (families: tool_code, tool_limit; source_line: no)." - changed
Input schema / properties / kind / enumPrevious value: -[ - "chain", - "echo", - "http", - "python", - "wasm", - "event", - "events", - "webhook", - "webhooks", - "inbound", - "trigger", - "inbox", - "cron", - "schedule", - "scheduled", - "doc", - "docs", - "document", - "documents", - "message", - "messages", - "msg", - "database", - "db", - "table", - "tables", - "csv", - "sql", - "schedules", - "uptime", - "probe", - "probes", - "memory", - "memories" -]New value: +[ + "chain", + "echo", + "http", + "js", + "python", + "wasm", + "event", + "events", + "webhook", + "webhooks", + "inbound", + "trigger", + "inbox", + "cron", + "schedule", + "scheduled", + "doc", + "docs", + "document", + "documents", + "message", + "messages", + "msg", + "database", + "db", + "table", + "tables", + "csv", + "sql", + "schedules", + "uptime", + "probe", + "probes", + "memory", + "memories" +]
2 tool updates
- Changed
host.quickstart1 field changed- added
Output schema / properties / contractAdded value: +{ + "description": "The asked kind's KindContract summary: the error families its failures carry and whether they carry data.source_line.", + "properties": { + "families": { + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "source_line": { + "type": [ + "boolean", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] +}
- Changed
host.tool_publish1 field changed- changed
Input schema / properties / kind / descriptionPrevious value: -"Which 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."New value: +"Which 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. Error contract per kind: chain (families: compose, tool_state; source_line: no); echo (families: none; source_line: no); http (families: upstream; source_line: no); python (families: tool_code, tool_limit, upstream, compose, tool_state; source_line: yes); wasm (families: tool_code, tool_limit; source_line: no)."
13 tool updates
- Changed
billing.plans6 fields changed- changed
Output schema / properties / plans / items / properties / calls_per_day / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / plans / items / properties / description / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / plans / items / properties / name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / plans / items / properties / price_usd_month / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / plans / items / properties / secrets_max / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / plans / items / properties / tools_max / typePrevious value: -"integer"New value: +[ + "integer", + "null" +]
- Changed
host.feedback.list2 fields changed- removed
Output schema / properties / feedback / items / properties / context / typeRemoved value: -"null" - changed
Output schema / properties / note / typePrevious value: -"string"New value: +[ + "string", + "null" +]
- Changed
host.help.get1 field changed- changed
Output schema / properties / example / typePrevious value: -"object"New value: +[ + "object", + "null" +]
- Changed
host.help.search4 fields changed- changed
Output schema / properties / hint / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / hits / items / properties / example / properties / truncated / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / hits / items / properties / example / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / hits / items / properties / next_tool / typePrevious value: -"string"New value: +[ + "string", + "null" +]
- Changed
host.quickstart215 fields changed- changed
Output schema / properties / aliases / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / alt_endpoint / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / authenticated / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.call / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.channel.post / properties / channel_id / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.channel.post / properties / created_at / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.channel.post / properties / from_address / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.channel.post / properties / post_id / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.channel.post / properties / seq / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.channel.post / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.channel.read / properties / posts / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.channel.read / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.docs.get / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.docs.search / properties / index / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.docs.search / properties / results / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.docs.search / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.drift.reviews / properties / reviews / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.drift.reviews / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.lineage.blast_radius / properties / impacted / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.lineage.blast_radius / properties / truncated / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.lineage.blast_radius / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.lineage.trace / properties / downstream / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.lineage.trace / properties / downstream_count / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.lineage.trace / properties / id / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.lineage.trace / properties / kind / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.lineage.trace / properties / label / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.lineage.trace / properties / orphaned / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.lineage.trace / properties / upstream / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.lineage.trace / properties / uses / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.lineage.trace / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.msg.inbox / properties / messages / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.msg.inbox / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.msg.send / properties / delivered_to / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.msg.send / properties / message_id / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.msg.send / properties / refused / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.msg.send / properties / seq / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.msg.send / properties / thread_id / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.msg.send / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.progress / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.state.delete / properties / bytes_delta / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.state.delete / properties / deleted / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.state.delete / properties / key / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.state.delete / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.state.delete_rows / properties / bytes_delta / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.state.delete_rows / properties / deleted / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.state.delete_rows / properties / table / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.state.delete_rows / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.state.get / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.state.insert / properties / bytes_delta / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.state.insert / properties / ids / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.state.insert / properties / inserted / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.state.insert / properties / table / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.state.insert / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.state.list / properties / keys / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.state.list / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.state.query / properties / rows / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.state.query / properties / table / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.state.query / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.state.set / properties / bytes_delta / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.state.set / properties / key / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.state.set / properties / set / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.state.set / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.state.table_create / properties / bytes_delta / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.state.table_create / properties / created / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.state.table_create / properties / name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.state.table_create / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.state.table_drop / properties / bytes_delta / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.state.table_drop / properties / dropped / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.state.table_drop / properties / name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.state.table_drop / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.append / properties / appended / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.append / properties / ids / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.append / properties / table / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.append / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.chart / properties / caption / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.chart / properties / profile / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.chart / properties / recommendation / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.chart / properties / row_count / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.chart / properties / schema / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.chart / properties / title / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.chart / properties / vega_lite / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.chart / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.create / properties / created / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.create / properties / name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.create / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.drop / properties / dropped / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.drop / properties / name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.drop / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.list / properties / bytes_used / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.list / properties / tables / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.list / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.query / properties / rows / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.query / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.query(handle=True) / properties / bytes / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.query(handle=True) / properties / columns / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.query(handle=True) / properties / derived_from / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.query(handle=True) / properties / expires_unix / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.query(handle=True) / properties / handle / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.query(handle=True) / properties / row_count / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.query(handle=True) / properties / sample / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.query(handle=True) / properties / sample_cap / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.query(handle=True) / properties / stats / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.query(handle=True) / properties / table / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.query(handle=True) / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.schema / properties / bytes_used / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.schema / properties / columns / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.schema / properties / rows / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.schema / properties / table / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / bridge_returns / properties / mcphost.table.schema / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / bridge_returns / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / endpoint / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / example / properties / args / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / example / properties / tool / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / example / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / hint / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / host_steps_allowed / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / install_doc_url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / install_links / properties / claude_ai_steps / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / install_links / properties / claude_code_command / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / install_links / properties / cursor / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / install_links / properties / mcp_url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / install_links / properties / surfaces / items / properties / artefact / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / install_links / properties / surfaces / items / properties / checked / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / install_links / properties / surfaces / items / properties / doc_url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / install_links / properties / surfaces / items / properties / id / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / install_links / properties / surfaces / items / properties / kind / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / install_links / properties / surfaces / items / properties / label / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / install_links / properties / surfaces / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / install_links / properties / vscode / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / install_links / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / kind / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / kinds / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / limits / properties / call_timeout_default_s / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / limits / properties / call_timeout_max_s / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / limits / properties / concurrent_calls_host / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / limits / properties / concurrent_calls_per_tenant / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / limits / properties / forwarding / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / limits / properties / max_spec_bytes / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / limits / properties / max_tools_per_tenant / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / limits / properties / name_pattern / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / limits / properties / output_bytes_max / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / limits / properties / plan / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / limits / properties / request_body_bytes_max / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / limits / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / namespace / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / next / items / properties / alternative_arguments / properties / args / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / next / items / properties / alternative_arguments / properties / name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / next / items / properties / alternative_arguments / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / next / items / properties / alternative_call / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / next / items / properties / arguments / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / next / items / properties / call / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / next / items / properties / note / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / next / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / outcome / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / reachability / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / recipe / properties / docs / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / recipe / properties / name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / recipe / properties / steps / items / properties / args_example / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / recipe / properties / steps / items / properties / note / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / recipe / properties / steps / items / properties / tool / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / recipe / properties / steps / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / recipe / typePrevious value: -[ - "object", - "string" -]New value: +[ + "object", + "string", + "null" +] - changed
Output schema / properties / recipes / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / recipes_nearby / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / resolved_from / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / sandbox_api / properties / attrs / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / sandbox_api / properties / import / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / sandbox_api / properties / modules / properties / mcphost.channel / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / sandbox_api / properties / modules / properties / mcphost.docs / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / sandbox_api / properties / modules / properties / mcphost.drift / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / sandbox_api / properties / modules / properties / mcphost.lineage / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / sandbox_api / properties / modules / properties / mcphost.msg / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / sandbox_api / properties / modules / properties / mcphost.state / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / sandbox_api / properties / modules / properties / mcphost.table / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / sandbox_api / properties / modules / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / sandbox_api / properties / not_a_module / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / sandbox_api / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / starter_tool / properties / kind / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / starter_tool / properties / name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / starter_tool / properties / publish_call / properties / arguments / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / starter_tool / properties / publish_call / properties / call / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / starter_tool / properties / publish_call / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / starter_tool / properties / spec / properties / method / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / starter_tool / properties / spec / properties / source / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / starter_tool / properties / spec / properties / url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / starter_tool / properties / spec / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / starter_tool / properties / test_call / properties / arguments / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / starter_tool / properties / test_call / properties / call / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / starter_tool / properties / test_call / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / starter_tool / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / steps / items / properties / alternative_arguments / properties / args / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / steps / items / properties / alternative_arguments / properties / name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / steps / items / properties / alternative_arguments / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / steps / items / properties / alternative_call / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / steps / items / properties / arguments / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / steps / items / properties / call / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / steps / items / properties / note / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / steps / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / triggers / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / try_before_call / items / properties / arguments / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / try_before_call / items / properties / call / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / try_before_call / items / properties / case / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / try_before_call / items / properties / note / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / try_before_call / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / verbs / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / verdict / typePrevious value: -"string"New value: +[ + "string", + "null" +] - removed
Output schema / properties / welcome_back / properties / last_note / typeRemoved value: -"null" - changed
Output schema / properties / welcome_back / properties / last_seen / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / welcome_back / properties / notes / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / welcome_back / properties / since_you_left / properties / calls / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / welcome_back / properties / since_you_left / properties / days / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / welcome_back / properties / since_you_left / properties / inbox / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / welcome_back / properties / since_you_left / properties / runs / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / welcome_back / properties / since_you_left / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / welcome_back / typePrevious value: -"object"New value: +[ + "object", + "null" +]
- Changed
host.state.get7 fields changed- changed
Output schema / properties / impersonated / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / updated_unix / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / value / properties / at / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / value / properties / n / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / value / properties / source / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / value / properties / text / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / value / properties / who / typePrevious value: -"string"New value: +[ + "string", + "null" +]
- Changed
host.state.list17 fields changed- removed
Output schema / properties / data / properties / quota / properties / state_ops_per_call_max / properties / remaining / typeRemoved value: -"null" - removed
Output schema / properties / data / properties / quota / properties / state_ops_per_call_max / properties / used / typeRemoved value: -"null" - changed
Output schema / properties / data / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / keys / items / properties / key / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / keys / items / properties / updated_unix / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / keys / items / properties / value / properties / download_url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / keys / items / properties / value / properties / entries_done / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / keys / items / properties / value / properties / entries_total / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / keys / items / properties / value / properties / expires_unix / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / keys / items / properties / value / properties / imported / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / keys / items / properties / value / properties / manifest / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / keys / items / properties / value / properties / n / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / keys / items / properties / value / properties / secrets_to_set / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / keys / items / properties / value / properties / size_bytes / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / keys / items / properties / value / properties / skipped / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / keys / items / properties / value / properties / unrecognised_paths / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / keys / items / properties / value / typePrevious value: -[ - "integer", - "object", - "string" -]New value: +[ + "integer", + "object", + "string", + "null" +]
- Changed
host.state.set1 field changed- changed
Output schema / properties / impersonated / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +]
- Changed
host.tool_call84 fields changed- changed
Output schema / properties / args / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / body / properties / ok / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / body / properties / pong / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / body / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / changed / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / checked_at / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / client_tool / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / columns / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / count / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / created / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / created_unix / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - removed
Output schema / properties / dedupe_header / typeRemoved value: -"null" - changed
Output schema / properties / doubled / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / enabled / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / failed_steps / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / forwarded_to / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / headers / properties / content-type / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / headers / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / https_proxy / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / id / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / kind / typePrevious value: -"string"New value: +[ + "string", + "null" +] - removed
Output schema / properties / last_fired_unix / typeRemoved value: -"null" - removed
Output schema / properties / last_run_id / typeRemoved value: -"null" - removed
Output schema / properties / last_status / typeRemoved value: -"null" - changed
Output schema / properties / msg / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / next / properties / tool / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / next / properties / why / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / next / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / next_unix / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / ok / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / onboarding / properties / claim_url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / onboarding / properties / invited_by / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / onboarding / properties / shared_tools / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / onboarding / properties / tenant / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / onboarding / properties / url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / onboarding / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / payload / properties / ok / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / payload / properties / pong / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / payload / typePrevious value: -"object"New value: +[ + "object", + "null" +] - removed
Output schema / properties / preset / typeRemoved value: -"null" - changed
Output schema / properties / result / properties / region / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / result / properties / rows / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / result / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / rows / items / properties / body / properties / id / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / rows / items / properties / body / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / rows / items / properties / checked_at / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - removed
Output schema / properties / rows / items / properties / delivery_id / typeRemoved value: -"null" - changed
Output schema / properties / rows / items / properties / id / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / rows / items / properties / latency_ms / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / rows / items / properties / ok / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / rows / items / properties / received_at / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / rows / items / properties / status / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / rows / items / properties / url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / rows / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / run_id / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / schedule / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / status / typePrevious value: -[ - "string", - "integer" -]New value: +[ + "string", + "integer", + "null" +] - changed
Output schema / properties / steps / items / properties / result / properties / region / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / steps / items / properties / result / properties / rows / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / steps / items / properties / result / properties / url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / steps / items / properties / result / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / steps / items / properties / status / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / steps / items / properties / step / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / steps / items / properties / tool / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / steps / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / text / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / tool / typePrevious value: -"string"New value: +[ + "string", + "null" +] - removed
Output schema / properties / tz / typeRemoved value: -"null" - changed
Output schema / properties / unverified / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / v1 / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / verify / properties / allow_unverified / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / verify / properties / scheme / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / verify / typePrevious value: -"object"New value: +[ + "object", + "null" +] - removed
Output schema / properties / welcome_back / properties / last_note / typeRemoved value: -"null" - changed
Output schema / properties / welcome_back / properties / last_seen / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / welcome_back / properties / notes / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / welcome_back / properties / since_you_left / properties / calls / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / welcome_back / properties / since_you_left / properties / days / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / welcome_back / properties / since_you_left / properties / inbox / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / welcome_back / properties / since_you_left / properties / runs / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / welcome_back / properties / since_you_left / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / welcome_back / typePrevious value: -"object"New value: +[ + "object", + "null" +]
- Changed
host.tool_publish66 fields changed- changed
Input schema / allOfPrevious 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" - } - } - } - } -]New value: +[ + { + "if": { + "properties": { + "kind": { + "const": "chain" + } + }, + "required": [ + "kind" + ] + }, + "then": { + "properties": { + "spec": { + "additionalProperties": false, + "properties": { + "outputs": { + "description": "fields a caller can rely on in `result.payload`, optionally with a `$.a.b` path each (every kind)" + }, + "reads": { + "description": "tables this tool reads, recorded for lineage and blast-radius reports" + }, + "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": { + "outputs": { + "description": "fields a caller can rely on in `result.payload`, optionally with a `$.a.b` path each (every kind)" + }, + "reads": { + "description": "tables this tool reads, recorded for lineage and blast-radius reports" + }, + "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": { + "description": "fields a caller can rely on in `result.payload`, optionally with a `$.a.b` path each (every kind)" + }, + "query": {}, + "reads": { + "description": "tables this tool reads, recorded for lineage and blast-radius reports" + }, + "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": { + "description": "tables this tool reads, recorded for lineage and blast-radius reports" + }, + "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": { + "description": "fields a caller can rely on in `result.payload`, optionally with a `$.a.b` path each (every kind)" + }, + "reads": { + "description": "tables this tool reads, recorded for lineage and blast-radius reports" + }, + "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" + } + } + } + } +] - changed
Output schema / properties / call_line / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / deprecations / items / properties / path / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / deprecations / items / properties / replacement / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / deprecations / items / properties / since / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / deprecations / items / properties / sunset / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / deprecations / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / evidence / items / properties / available / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / evidence / items / properties / did_you_mean / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / evidence / items / properties / path / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / evidence / items / properties / predecessor_keys / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / evidence / items / properties / step / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / evidence / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / failures / items / properties / available / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / failures / items / properties / did_you_mean / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / failures / items / properties / path / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / failures / items / properties / predecessor_keys / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / failures / items / properties / step / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / failures / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / gates / items / properties / evidence / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / gates / items / properties / failures / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / gates / items / properties / gate / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / gates / items / properties / ok / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / gates / items / properties / verdict / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / gates / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / hint / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / kind / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / lock / properties / hashes / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / lock / properties / packages / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / lock / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / next / properties / tool / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / next / properties / why / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / next / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / ok / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / onboarding / properties / claim_url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / onboarding / properties / memory_hint / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / onboarding / properties / memory_line / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / onboarding / properties / note / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / onboarding / properties / tenant / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / onboarding / properties / url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / onboarding / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / reason / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / resolved_from / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / steps / items / properties / hint / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / steps / items / properties / prev_fields_source / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / steps / items / properties / step / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / steps / items / properties / tool / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / steps / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / tool_lint / items / properties / fix / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / tool_lint / items / properties / line / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / tool_lint / items / properties / message / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / tool_lint / items / properties / rule / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / tool_lint / items / properties / source_line / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / tool_lint / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / verdict / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / version / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - removed
Output schema / properties / welcome_back / properties / last_note / typeRemoved value: -"null" - changed
Output schema / properties / welcome_back / properties / last_seen / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / welcome_back / properties / notes / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / welcome_back / properties / since_you_left / properties / calls / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / welcome_back / properties / since_you_left / properties / days / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / welcome_back / properties / since_you_left / properties / inbox / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / welcome_back / properties / since_you_left / properties / runs / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / welcome_back / properties / since_you_left / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / welcome_back / typePrevious value: -"object"New value: +[ + "object", + "null" +]
- Changed
host.tool_share13 fields changed- changed
Output schema / properties / next / properties / tool / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / next / properties / why / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / next / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - removed
Output schema / properties / welcome_back / properties / last_note / typeRemoved value: -"null" - changed
Output schema / properties / welcome_back / properties / last_seen / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / welcome_back / properties / notes / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / welcome_back / properties / since_you_left / properties / calls / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / welcome_back / properties / since_you_left / properties / days / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / welcome_back / properties / since_you_left / properties / inbox / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / welcome_back / properties / since_you_left / properties / runs / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / welcome_back / properties / since_you_left / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / welcome_back / typePrevious value: -"object"New value: +[ + "object", + "null" +]
- Changed
host.tool_test154 fields changed- changed
Output schema / properties / args / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / chain_dry_run / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / changed / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / created / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / created_unix / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / detail / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / dry_run / properties / delivered / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / dry_run / properties / rolled_back / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / dry_run / properties / writes / items / properties / channel / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / dry_run / properties / writes / items / properties / op / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / dry_run / properties / writes / items / properties / rows / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / dry_run / properties / writes / items / properties / store / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / dry_run / properties / writes / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / enabled / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / envelope / properties / declared / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / envelope / properties / found_at_contract_path / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / envelope / properties / green / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / envelope / properties / missing / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / envelope / properties / missing_detail / items / properties / name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / envelope / properties / missing_detail / items / properties / path / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / envelope / properties / missing_detail / items / properties / seen_at / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / envelope / properties / missing_detail / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / envelope / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / environment / items / properties / kind / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / environment / items / properties / name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / environment / items / properties / value / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / environment / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / error / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / evidence / items / properties / available / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / evidence / items / properties / did_you_mean / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / evidence / items / properties / path / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / evidence / items / properties / predecessor_keys / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / evidence / items / properties / step / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / evidence / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / exception_class / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / failures / items / properties / available / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / failures / items / properties / did_you_mean / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / failures / items / properties / path / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / failures / items / properties / predecessor_keys / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / failures / items / properties / step / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / failures / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / forwarded_to / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / id / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / inputs_required / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / kind / typePrevious value: -"string"New value: +[ + "string", + "null" +] - removed
Output schema / properties / last_fired_unix / typeRemoved value: -"null" - removed
Output schema / properties / last_run_id / typeRemoved value: -"null" - removed
Output schema / properties / last_status / typeRemoved value: -"null" - changed
Output schema / properties / line / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / msg / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / next / properties / tool / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / next / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / next_unix / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / ok / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / outer / properties / tenant_key / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / outer / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / payload / properties / msg / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / payload / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / reason / typePrevious value: -"string"New value: +[ + "string", + "null" +] - removed
Output schema / properties / request / properties / body / typeRemoved value: -"null" - changed
Output schema / properties / request / properties / headers / properties / x-api-key / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / request / properties / headers / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / request / properties / method / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / request / properties / query / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / request / properties / url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / request / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / response / properties / body / properties / blocking_tool / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / response / properties / body / properties / fact / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / response / properties / body / properties / json / properties / bridge_status / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / response / properties / body / properties / json / properties / ingestion_status / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / response / properties / body / properties / json / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / response / properties / body / properties / length / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / response / properties / body / properties / ok / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / response / properties / body / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / response / properties / headers / properties / content-type / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / response / properties / headers / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / response / properties / payload / properties / blocking_tool / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / response / properties / payload / properties / fact / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / response / properties / payload / properties / json / properties / bridge_status / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / response / properties / payload / properties / json / properties / ingestion_status / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / response / properties / payload / properties / json / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / response / properties / payload / properties / length / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / response / properties / payload / properties / ok / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / response / properties / payload / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / response / properties / status / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / response / typePrevious value: -"object"New value: +[ + "object", + "null" +] - removed
Output schema / properties / result / properties / a / typeRemoved value: -"null" - changed
Output schema / properties / result / properties / appended / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - removed
Output schema / properties / result / properties / b / typeRemoved value: -"null" - changed
Output schema / properties / result / properties / city / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / result / properties / data / properties / status / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / result / properties / data / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / result / properties / delivered / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / result / properties / n / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / result / properties / ok / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / result / properties / payload / properties / data / properties / status / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / result / properties / payload / properties / data / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / result / properties / payload / properties / ingestion_status / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / result / properties / payload / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / result / properties / table / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / result / properties / total / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / result / properties / would_post / properties / body / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / result / properties / would_post / properties / channel / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / result / properties / would_post / properties / data / properties / n / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / result / properties / would_post / properties / data / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / result / properties / would_post / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / result / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / schedule / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / schema / properties / properties / properties / cid / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / schema / properties / properties / properties / city / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / schema / properties / properties / properties / note / properties / default / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / schema / properties / properties / properties / note / properties / type / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / schema / properties / properties / properties / note / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / schema / properties / properties / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / schema / properties / required / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / schema / properties / type / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / schema / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / source_line / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / state / properties / keys / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / state / properties / reads / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / state / properties / tables / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / state / properties / writes / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / state / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / steps / items / properties / dispatched / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / steps / items / properties / error / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / steps / items / properties / prev_fields / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / steps / items / properties / resolved / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / steps / items / properties / resolved_args / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / steps / items / properties / result / properties / a / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / steps / items / properties / result / properties / appended / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / steps / items / properties / result / properties / ids / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / steps / items / properties / result / properties / leads / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / steps / items / properties / result / properties / owner / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / steps / items / properties / result / properties / rows / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / steps / items / properties / result / properties / table / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / steps / items / properties / result / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / steps / items / properties / side_effects / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / steps / items / properties / step / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / steps / items / properties / tool / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / steps / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / tool / typePrevious value: -"string"New value: +[ + "string", + "null" +] - removed
Output schema / properties / tz / typeRemoved value: -"null" - changed
Output schema / properties / verdict / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / warnings / typePrevious value: -"array"New value: +[ + "array", + "null" +] - removed
Output schema / properties / welcome_back / properties / last_note / typeRemoved value: -"null" - changed
Output schema / properties / welcome_back / properties / last_seen / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / welcome_back / properties / notes / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / welcome_back / properties / since_you_left / properties / calls / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / welcome_back / properties / since_you_left / properties / days / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / welcome_back / properties / since_you_left / properties / inbox / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / welcome_back / properties / since_you_left / properties / runs / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / welcome_back / properties / since_you_left / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / welcome_back / typePrevious value: -"object"New value: +[ + "object", + "null" +]
- Changed
host.whoami52 fields changed- changed
Output schema / properties / activation / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / admin / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / admin_schema_version / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / auth_method / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / claim_url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / created_at / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / disabled / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / display_name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / invite_url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / keyAdded value: +{ + "properties": { + "can_delegate": { + "type": [ + "boolean", + "null" + ] + }, + "depth": { + "type": [ + "integer", + "null" + ] + }, + "kind": { + "type": [ + "string", + "null" + ] + }, + "label": { + "type": [ + "string", + "null" + ] + }, + "parent": { + "type": [ + "string", + "null" + ] + }, + "scopes": { + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] +} - changed
Output schema / properties / key_age_s / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / links / properties / help / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / links / properties / plans / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / links / properties / status / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / links / properties / support / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / links / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / metadata_url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / namespace / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / naming_rule_url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / next / properties / tool / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / next / properties / why / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / next / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / onboarding / properties / claim_url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / onboarding / properties / invite_url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / onboarding / properties / invited_by / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / onboarding / properties / memory_hint / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / onboarding / properties / memory_line / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / onboarding / properties / note / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / onboarding / properties / shared_tools / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / onboarding / properties / tenant / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / onboarding / properties / url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / onboarding / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / owner / properties / verified_at / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / owner / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / owner_verified / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / plan / typePrevious value: -"string"New value: +[ + "string", + "null" +] - removed
Output schema / properties / plan_since / typeRemoved value: -"null" - changed
Output schema / properties / resource / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / session_tenant / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / shared_tools / items / properties / name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / shared_tools / items / properties / owner / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / shared_tools / items / properties / via / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / shared_tools / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / tenant / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / welcome_back / properties / last_seen / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / welcome_back / properties / notes / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / welcome_back / properties / since_you_left / properties / calls / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / welcome_back / properties / since_you_left / properties / days / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / welcome_back / properties / since_you_left / properties / inbox / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / welcome_back / properties / since_you_left / properties / runs / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / welcome_back / properties / since_you_left / typePrevious value: -"object"New value: +[ + "object", + "null" +] - changed
Output schema / properties / welcome_back / typePrevious value: -"object"New value: +[ + "object", + "null" +]
Related MCP Connectors
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Hosted MCP memory and agent control plane for durable conversations, jobs, and operations.
Hosted MCP with 91 agent tools: X, domains, SEO, Maps, Trends, Search, YouTube, TikTok, and more.
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA production-grade MCP server designed for multi-tenant, authenticated, and observable AI agent systems, enabling secure tool execution across heterogeneous data sources.66MIT
- FlicenseNot gradedqualityDmaintenanceA runtime for inspectable agent workflows that provides MCP tools, bounded Python execution, session memory, and deterministic evaluation.-
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to expose and control local and self-hosted tools via MCP, with isolated workers, long-running task management, persisted state, and modular integrations for reverse engineering and development workflows.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to securely discover, invoke, and manage tools through a hardened MCP endpoint with protections like injection detection, circuit breakers, retry backoff, response caching, context-window limiting, and state snapshots.15 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.