changedInput schema / allOf
Previous value: -[
- {
- "if": {
- "properties": {
- "kind": {
- "const": "chain"
- }
- },
- "required": [
- "kind"
- ]
- },
- "then": {
- "properties": {
- "spec": {
- "additionalProperties": false,
- "properties": {
- "description": {
- "description": "the tool's description in `tools/list` (every kind)"
- },
- "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": {
- "description": {
- "description": "the tool's description in `tools/list` (every kind)"
- },
- "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": {
- "description": "the tool's description in `tools/list` (every kind)"
- },
- "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": {},
- "description": {
- "description": "the tool's description in `tools/list` (every kind)"
- },
- "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": {
+ "description": {
+ "description": "the tool's description in `tools/list` (every kind)"
+ },
+ "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": {
+ "description": {
+ "description": "the tool's description in `tools/list` (every kind)"
+ },
+ "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": {
+ "description": "the tool's description in `tools/list` (every kind)"
+ },
+ "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": "jq"
+ }
+ },
+ "required": [
+ "kind"
+ ]
+ },
+ "then": {
+ "properties": {
+ "spec": {
+ "additionalProperties": false,
+ "properties": {
+ "args_schema": {},
+ "description": {
+ "description": "the tool's description in `tools/list` (every kind)"
+ },
+ "max_output_bytes": {},
+ "outputs": {
+ "description": "fields a caller can rely on in `result.payload`, optionally with a `$.a.b` path each (every kind)"
+ },
+ "program": {},
+ "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": [
+ "program"
+ ],
+ "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": {},
+ "description": {
+ "description": "the tool's description in `tools/list` (every kind)"
+ },
+ "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"
+ }
+ }
+ }
+ }
+]
changedInput schema / properties / kind / enum
Previous 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"
-]New value: +[
+ "chain",
+ "echo",
+ "http",
+ "jq",
+ "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"
+]