specstream-mcp-stdio 1.2.0__tar.gz → 1.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {specstream_mcp_stdio-1.2.0 → specstream_mcp_stdio-1.2.2}/PKG-INFO +3 -3
- {specstream_mcp_stdio-1.2.0 → specstream_mcp_stdio-1.2.2}/pyproject.toml +6 -2
- {specstream_mcp_stdio-1.2.0 → specstream_mcp_stdio-1.2.2}/specstream_mcp_stdio/proxy.py +2 -2
- specstream_mcp_stdio-1.2.2/specstream_mcp_stdio/tools.json +1 -0
- specstream_mcp_stdio-1.2.0/specstream_mcp_stdio/tools.json +0 -1
- {specstream_mcp_stdio-1.2.0 → specstream_mcp_stdio-1.2.2}/.gitignore +0 -0
- {specstream_mcp_stdio-1.2.0 → specstream_mcp_stdio-1.2.2}/LICENSE +0 -0
- {specstream_mcp_stdio-1.2.0 → specstream_mcp_stdio-1.2.2}/README.md +0 -0
- {specstream_mcp_stdio-1.2.0 → specstream_mcp_stdio-1.2.2}/specstream_mcp_stdio/__init__.py +0 -0
- {specstream_mcp_stdio-1.2.0 → specstream_mcp_stdio-1.2.2}/specstream_mcp_stdio/__main__.py +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: specstream-mcp-stdio
|
|
3
|
-
Version: 1.2.
|
|
4
|
-
Summary: Stdio
|
|
3
|
+
Version: 1.2.2
|
|
4
|
+
Summary: Stdio bridge to SpecStream's MCP server: lead lists, company lists and grants from the live web for your agent.
|
|
5
5
|
Project-URL: Homepage, https://specstream.ai
|
|
6
6
|
Project-URL: Documentation, https://specstream.ai/docs/mcp
|
|
7
7
|
Project-URL: Repository, https://github.com/Specstreamai/specstream-tools
|
|
@@ -9,7 +9,7 @@ Project-URL: Issues, https://github.com/Specstreamai/specstream-tools/issues
|
|
|
9
9
|
Author-email: SpecStream <support@specstream.ai>
|
|
10
10
|
License-Expression: MIT
|
|
11
11
|
License-File: LICENSE
|
|
12
|
-
Keywords: ai-agents,mcp,model-context-protocol,proxy,specstream,stdio,web-data
|
|
12
|
+
Keywords: ai-agents,company-list,grants,lead-generation,lead-list,mcp,model-context-protocol,proxy,specstream,stdio,web-data
|
|
13
13
|
Classifier: Development Status :: 5 - Production/Stable
|
|
14
14
|
Classifier: Environment :: Console
|
|
15
15
|
Classifier: Intended Audience :: Developers
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "specstream-mcp-stdio"
|
|
3
|
-
version = "1.2.
|
|
4
|
-
description = "Stdio
|
|
3
|
+
version = "1.2.2"
|
|
4
|
+
description = "Stdio bridge to SpecStream's MCP server: lead lists, company lists and grants from the live web for your agent."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.12"
|
|
7
7
|
license = "MIT"
|
|
@@ -15,6 +15,10 @@ keywords = [
|
|
|
15
15
|
"proxy",
|
|
16
16
|
"ai-agents",
|
|
17
17
|
"web-data",
|
|
18
|
+
"lead-generation",
|
|
19
|
+
"lead-list",
|
|
20
|
+
"company-list",
|
|
21
|
+
"grants",
|
|
18
22
|
]
|
|
19
23
|
classifiers = [
|
|
20
24
|
"Development Status :: 5 - Production/Stable",
|
|
@@ -38,7 +38,7 @@ TOOLS_FILE = Path(__file__).with_name("tools.json")
|
|
|
38
38
|
SERVER_INFO = {
|
|
39
39
|
"name": "specstream",
|
|
40
40
|
"title": "SpecStream",
|
|
41
|
-
"version": "1.2.
|
|
41
|
+
"version": "1.2.2",
|
|
42
42
|
"websiteUrl": "https://specstream.ai",
|
|
43
43
|
}
|
|
44
44
|
|
|
@@ -152,7 +152,7 @@ def _post_json(
|
|
|
152
152
|
request.add_header("MCP-Session-Id", session_id)
|
|
153
153
|
try:
|
|
154
154
|
opener = urllib.request.build_opener(urllib.request.ProxyHandler({}), _NoRedirect())
|
|
155
|
-
with opener.open(request, timeout=
|
|
155
|
+
with opener.open(request, timeout=150) as response:
|
|
156
156
|
status = int(response.status)
|
|
157
157
|
headers = {key.lower(): value for key, value in response.headers.items()}
|
|
158
158
|
raw = response.read().decode("utf-8")
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"name": "compile", "title": "Understand a request", "description": "Read a request for a list, written in everyday words in any language: companies and local businesses, products and stores, jobs, papers, clinical trials, grants, tenders, datasets, repositories and packages, apps, books or podcasts. Return how SpecStream understood it: what to find, the conditions every result must meet, the facts to bring back (required or optional), how many, and in what order, with the ast_hash that identifies this reading. To add facts to, extend or refresh a list you have, name it with its parent_find_id and the operation: what it finds and its conditions stay as they are, and only the new facts to bring back or the new count are read. The caller must be allowed to read that list. Nothing runs and nothing is charged.", "annotations": {"title": "Understand a request", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"$defs": {"RetainedRequest": {"additionalProperties": false, "description": "An explicit dependency on an authorized, immutable prior research request.\n\nThe label is display text only. It never selects records or changes the target.\nThe server loads the actual Spec; callers cannot provide a replacement base.", "properties": {"parent_find_id": {"maxLength": 128, "minLength": 1, "title": "Parent Find Id", "type": "string"}, "operation": {"enum": ["extend", "add-facts", "refresh"], "title": "Operation", "type": "string"}, "label": {"anyOf": [{"maxLength": 16000, "type": "string"}, {"type": "null"}], "default": null, "title": "Label"}, "ast_hash": {"anyOf": [{"pattern": "^[0-9a-f]{64}$", "type": "string"}, {"type": "null"}], "default": null, "title": "Ast Hash"}}, "required": ["parent_find_id", "operation"], "title": "RetainedRequest", "type": "object"}}, "additionalProperties": false, "properties": {"retained": {"anyOf": [{"$ref": "#/$defs/RetainedRequest"}, {"type": "null"}], "default": null}, "q": {"maxLength": 16000, "minLength": 1, "title": "Q", "type": "string"}, "locale": {"default": "en-US", "pattern": "^[a-z]{2}-[A-Z]{2}$", "title": "Locale", "type": "string"}}, "required": ["q"], "title": "McpCompileArgs", "type": "object"}}, {"name": "edit_spec", "title": "Change what to find or bring back", "description": "Change a condition or a fact to bring back without rewording the request. Send the revised reading as ast with the edit operations, and get back a checked reading with a new ast_hash for the next quote. Results that already ran stay as they were.", "annotations": {"title": "Change what to find or bring back", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"$defs": {"ChipOp": {"enum": ["set", "remove"], "title": "ChipOp", "type": "string"}, "ChipOperation": {"additionalProperties": false, "properties": {"op": {"$ref": "#/$defs/ChipOp"}, "chip_id": {"minLength": 1, "title": "Chip Id", "type": "string"}, "value": {"anyOf": [{"type": "boolean"}, {"type": "integer"}, {"type": "number"}, {"type": "string"}, {"items": {"type": "string"}, "type": "array"}, {"$ref": "#/$defs/CountMatches"}, {"type": "null"}], "default": null, "title": "Value"}}, "required": ["op", "chip_id"], "title": "ChipOperation", "type": "object"}, "CountComparison": {"additionalProperties": false, "properties": {"op": {"enum": ["gte", "gt", "lte", "lt", "eq", "ne"], "title": "Op", "type": "string"}, "value": {"minimum": 0, "title": "Value", "type": "integer"}}, "required": ["op", "value"], "title": "CountComparison", "type": "object"}, "CountMatches": {"additionalProperties": false, "properties": {"condition": {"anyOf": [{"$ref": "#/$defs/MemberExpression"}, {"$ref": "#/$defs/MemberPredicate"}, {"type": "null"}], "default": null, "title": "Condition"}, "count": {"$ref": "#/$defs/CountComparison"}}, "required": ["count"], "title": "CountMatches", "type": "object"}, "Discovery": {"additionalProperties": false, "properties": {"geography_scope": {"anyOf": [{"const": "worldwide.v1", "type": "string"}, {"type": "null"}], "default": null, "title": "Geography Scope"}, "term": {"maxLength": 2000, "minLength": 1, "title": "Term", "type": "string"}, "platforms": {"items": {"pattern": "^[a-z][a-z0-9_]{0,47}$", "type": "string"}, "maxItems": 16, "title": "Platforms", "type": "array", "uniqueItems": true}, "searches": {"items": {"maxLength": 120, "minLength": 1, "type": "string"}, "maxItems": 4, "title": "Searches", "type": "array"}, "role_phrases": {"items": {"maxLength": 60, "minLength": 1, "type": "string"}, "maxItems": 8, "title": "Role Phrases", "type": "array"}, "seed_identifiers": {"additionalProperties": {"type": "string"}, "maxProperties": 8, "title": "Seed Identifiers", "type": "object"}}, "required": ["term"], "title": "Discovery", "type": "object"}, "EntityKind": {"enum": ["place", "creator", "organization", "storefront_product", "app_listing", "job_posting", "scholarly_work", "tender", "grant", "software_repository", "software_package", "dataset", "clinical_trial", "regulatory_document", "vulnerability", "book", "podcast", "web_page", "knowledge_entity", "person"], "title": "EntityKind", "type": "string"}, "EntityType": {"enum": ["local_business", "creator", "organization", "organization", "storefront_product", "app_listing", "job_posting", "scholarly_work", "tender", "grant", "software_repository", "software_package", "dataset", "clinical_trial", "regulatory_document", "vulnerability", "book", "podcast", "web_page", "knowledge_entity", "person"], "title": "EntityType", "type": "string"}, "Geo": {"additionalProperties": false, "properties": {"kind": {"$ref": "#/$defs/GeoKind"}, "query_label": {"minLength": 1, "title": "Query Label", "type": "string"}, "country_code": {"anyOf": [{"pattern": "^[A-Z]{2}$", "type": "string"}, {"type": "null"}], "default": null, "title": "Country Code"}, "admin1_code": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Admin1 Code"}, "locality": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Locality"}, "postal_code": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Postal Code"}, "status": {"$ref": "#/$defs/GeoStatus"}, "source": {"$ref": "#/$defs/GeoSource"}, "geoname_id": {"anyOf": [{"minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Geoname Id"}, "near": {"anyOf": [{"$ref": "#/$defs/Near"}, {"type": "null"}], "default": null}}, "required": ["kind", "query_label", "admin1_code", "locality", "postal_code", "status", "source"], "title": "Geo", "type": "object"}, "GeoKind": {"enum": ["country", "locality", "admin1"], "title": "GeoKind", "type": "string"}, "GeoSource": {"enum": ["gazetteer", "catalog", "alias", "well_formed"], "title": "GeoSource", "type": "string"}, "GeoStatus": {"enum": ["qualified", "ambiguous", "unqualified"], "title": "GeoStatus", "type": "string"}, "InferredClause": {"additionalProperties": false, "properties": {"field_id": {"minLength": 1, "title": "Field Id", "type": "string"}, "reason": {"minLength": 1, "title": "Reason", "type": "string"}}, "required": ["field_id", "reason"], "title": "InferredClause", "type": "object"}, "MatchExpression": {"additionalProperties": false, "description": "Explicit logical scope; leaves remain ordinary source-verifiable predicates.", "properties": {"op": {"enum": ["all", "any", "not"], "title": "Op", "type": "string"}, "clauses": {"items": {"anyOf": [{"$ref": "#/$defs/Predicate"}, {"$ref": "#/$defs/MatchExpression"}]}, "maxItems": 128, "minItems": 1, "title": "Clauses", "type": "array"}}, "required": ["op", "clauses"], "title": "MatchExpression", "type": "object"}, "MemberExpression": {"additionalProperties": false, "properties": {"op": {"enum": ["all", "any", "not"], "title": "Op", "type": "string"}, "clauses": {"items": {"anyOf": [{"$ref": "#/$defs/MemberPredicate"}, {"$ref": "#/$defs/MemberExpression"}]}, "maxItems": 32, "minItems": 1, "title": "Clauses", "type": "array"}}, "required": ["op", "clauses"], "title": "MemberExpression", "type": "object"}, "MemberPredicate": {"additionalProperties": false, "properties": {"field_id": {"pattern": "^[a-z][a-z0-9_]{0,63}$", "title": "Field Id", "type": "string"}, "op": {"$ref": "#/$defs/PredicateOp"}, "value": {"anyOf": [{"type": "boolean"}, {"type": "integer"}, {"type": "number"}, {"type": "string"}, {"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Value"}}, "required": ["field_id", "op", "value"], "title": "MemberPredicate", "type": "object"}, "Near": {"additionalProperties": false, "description": "A distance from a point: \"within 65 miles of 1417 E Fedora Ave, Fresno\".", "properties": {"point": {"maxLength": 300, "minLength": 1, "title": "Point", "type": "string"}, "latitude": {"maximum": 90, "minimum": -90, "title": "Latitude", "type": "number"}, "longitude": {"maximum": 180, "minimum": -180, "title": "Longitude", "type": "number"}, "radius_km": {"exclusiveMinimum": 0, "maximum": 1000, "title": "Radius Km", "type": "number"}}, "required": ["point", "latitude", "longitude", "radius_km"], "title": "Near", "type": "object"}, "OutputField": {"additionalProperties": false, "description": "A fact selected for delivery, independent from result-set membership.", "properties": {"field_id": {"minLength": 1, "title": "Field Id", "type": "string"}, "required": {"default": false, "title": "Required", "type": "boolean"}}, "required": ["field_id"], "title": "OutputField", "type": "object"}, "Predicate": {"additionalProperties": false, "properties": {"field_id": {"minLength": 1, "title": "Field Id", "type": "string"}, "op": {"$ref": "#/$defs/PredicateOp"}, "value": {"anyOf": [{"type": "boolean"}, {"type": "integer"}, {"type": "number"}, {"type": "string"}, {"items": {"type": "string"}, "type": "array"}, {"$ref": "#/$defs/CountMatches"}, {"type": "null"}], "title": "Value"}}, "required": ["field_id", "op", "value"], "title": "Predicate", "type": "object"}, "PredicateOp": {"enum": ["count_matches", "contains", "not_contains", "has_any", "has_all", "has_none", "before", "after", "on_or_before", "on_or_after", "gt", "lt", "ne", "not_in", "gte", "lte", "eq", "exists", "class_in", "in"], "title": "PredicateOp", "type": "string"}, "QueryAst": {"additionalProperties": false, "properties": {"target_requirement": {"anyOf": [{"$ref": "#/$defs/TargetRequirement"}, {"type": "null"}], "default": null}, "semantic_binding": {"anyOf": [{"$ref": "#/$defs/SemanticBinding"}, {"type": "null"}], "default": null}, "spec_version": {"const": "query_ast.v1", "default": "query_ast.v1", "title": "Spec Version", "type": "string"}, "entity_type": {"$ref": "#/$defs/EntityType"}, "limit": {"$ref": "#/$defs/QueryLimit"}, "discovery": {"$ref": "#/$defs/Discovery"}, "geo": {"anyOf": [{"$ref": "#/$defs/Geo"}, {"type": "null"}], "default": null}, "where": {"items": {"$ref": "#/$defs/Predicate"}, "maxItems": 128, "title": "Where", "type": "array"}, "match_expression": {"anyOf": [{"$ref": "#/$defs/MatchExpression"}, {"type": "null"}], "default": null}, "output_fields": {"items": {"$ref": "#/$defs/OutputField"}, "maxItems": 24, "title": "Output Fields", "type": "array"}, "worded_conditions": {"items": {"$ref": "#/$defs/WordedCondition"}, "maxItems": 12, "title": "Worded Conditions", "type": "array"}, "worded_outputs": {"items": {"$ref": "#/$defs/WordedOutput"}, "maxItems": 12, "title": "Worded Outputs", "type": "array"}, "sort": {"items": {"$ref": "#/$defs/SortKey"}, "title": "Sort", "type": "array"}, "locale": {"pattern": "^[a-z]{2}-[A-Z]{2}$", "title": "Locale", "type": "string"}, "inferred": {"items": {"$ref": "#/$defs/InferredClause"}, "title": "Inferred", "type": "array"}, "unsupported": {"items": {"$ref": "#/$defs/UnsupportedClause"}, "title": "Unsupported", "type": "array"}}, "required": ["entity_type", "limit", "discovery", "where", "sort", "locale", "inferred", "unsupported"], "title": "QueryAst", "type": "object"}, "QueryLimit": {"additionalProperties": false, "properties": {"max": {"default": 25, "maximum": 2147483647, "minimum": 1, "title": "Max", "type": "integer"}, "inferred": {"default": false, "title": "Inferred", "type": "boolean"}}, "title": "QueryLimit", "type": "object"}, "SemanticBinding": {"additionalProperties": false, "properties": {"spec_version": {"const": "semantic_binding.v1", "default": "semantic_binding.v1", "title": "Spec Version", "type": "string"}, "catalog_sha256": {"pattern": "^[0-9a-f]{64}$", "title": "Catalog Sha256", "type": "string"}, "target_id": {"pattern": "^[a-z][a-z0-9_.-]{1,127}$", "title": "Target Id", "type": "string"}, "footprint_id": {"anyOf": [{"pattern": "^[a-z][a-z0-9_.-]{1,127}$", "type": "string"}, {"type": "null"}], "default": null, "title": "Footprint Id"}}, "required": ["catalog_sha256", "target_id"], "title": "SemanticBinding", "type": "object"}, "SortDirection": {"enum": ["asc", "desc"], "title": "SortDirection", "type": "string"}, "SortKey": {"additionalProperties": false, "properties": {"field_id": {"minLength": 1, "title": "Field Id", "type": "string"}, "direction": {"$ref": "#/$defs/SortDirection"}}, "required": ["field_id", "direction"], "title": "SortKey", "type": "object"}, "TargetRequirement": {"additionalProperties": false, "properties": {"contract": {"const": "target-source-assertion.v1", "default": "target-source-assertion.v1", "title": "Contract", "type": "string"}, "entity_kind": {"$ref": "#/$defs/EntityKind"}, "text": {"maxLength": 2000, "minLength": 1, "title": "Text", "type": "string"}, "reading_policy_sha256": {"pattern": "^[0-9a-f]{64}$", "title": "Reading Policy Sha256", "type": "string"}, "max_candidates": {"default": 128, "maximum": 256, "minimum": 1, "title": "Max Candidates", "type": "integer"}, "max_passages": {"default": 12, "maximum": 16, "minimum": 1, "title": "Max Passages", "type": "integer"}, "max_context_chars": {"default": 7500, "maximum": 12000, "minimum": 500, "title": "Max Context Chars", "type": "integer"}, "max_source_chars": {"default": 262144, "maximum": 262144, "minimum": 1000, "title": "Max Source Chars", "type": "integer"}, "timeout_ms": {"default": 3000, "maximum": 5000, "minimum": 1, "title": "Timeout Ms", "type": "integer"}, "evidence_meaning": {"const": "interpreted_published_assertion", "default": "interpreted_published_assertion", "title": "Evidence Meaning", "type": "string"}, "prior_knowledge_authority": {"const": false, "default": false, "title": "Prior Knowledge Authority", "type": "boolean"}, "modifies_typed_predicates": {"const": false, "default": false, "title": "Modifies Typed Predicates", "type": "boolean"}}, "required": ["entity_kind", "text", "reading_policy_sha256"], "title": "TargetRequirement", "type": "object"}, "UnsupportedClause": {"additionalProperties": false, "properties": {"field_id": {"minLength": 1, "title": "Field Id", "type": "string"}, "op": {"anyOf": [{"$ref": "#/$defs/PredicateOp"}, {"type": "null"}]}, "value": {"anyOf": [{"type": "boolean"}, {"type": "integer"}, {"type": "number"}, {"type": "string"}, {"items": {"type": "string"}, "type": "array"}, {"$ref": "#/$defs/CountMatches"}, {"type": "null"}], "title": "Value"}, "reason": {"minLength": 1, "title": "Reason", "type": "string"}}, "required": ["field_id", "op", "value", "reason"], "title": "UnsupportedClause", "type": "object"}, "WordedCondition": {"additionalProperties": false, "description": "A requirement no catalog field expresses, kept in the person's own words.\n\nSchema is acceleration, never permission: each result's own pages are read\nfor this statement (yes / no / unsure). A yes needs a quote the code finds in\nthe result's own source; a quoted no removes the result; an unconfirmed line\nis delivered marked.", "properties": {"condition_id": {"pattern": "^[wt][0-9]{1,2}$", "title": "Condition Id", "type": "string"}, "words": {"maxLength": 300, "minLength": 1, "title": "Words", "type": "string"}, "statement": {"maxLength": 400, "minLength": 1, "title": "Statement", "type": "string"}, "search_words": {"default": "", "maxLength": 120, "title": "Search Words", "type": "string"}}, "required": ["condition_id", "words", "statement"], "title": "WordedCondition", "type": "object"}, "WordedOutput": {"additionalProperties": false, "description": "A detail to return that no output field expresses, read from each result's pages.", "properties": {"detail_id": {"pattern": "^d[0-9]{1,2}$", "title": "Detail Id", "type": "string"}, "words": {"maxLength": 300, "minLength": 1, "title": "Words", "type": "string"}, "description": {"maxLength": 300, "minLength": 1, "title": "Description", "type": "string"}, "value_type": {"default": "text", "enum": ["text", "number", "date", "url", "email", "phone", "yes_no"], "title": "Value Type", "type": "string"}, "required": {"default": false, "title": "Required", "type": "boolean"}}, "required": ["detail_id", "words", "description"], "title": "WordedOutput", "type": "object"}}, "additionalProperties": false, "description": "Edit the same typed Spec through the canonical chip operation contract.", "properties": {"ast": {"type": "object", "$ref": "#/$defs/QueryAst"}, "operations": {"items": {"$ref": "#/$defs/ChipOperation"}, "title": "Operations", "type": "array"}}, "required": ["ast", "operations"], "title": "McpEditSpecArgs", "type": "object"}}, {"name": "list_find_rows", "title": "Read the results", "description": "Read the results that met every condition, with the source behind each check, a page at a time; next_cursor is null on the last page. The separate possible list holds candidates with open conditions, which are not results and were not charged.", "annotations": {"title": "Read the results", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"find_id": {"title": "Find Id", "type": "string"}, "cursor": {"anyOf": [{"maxLength": 2048, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Cursor"}, "limit": {"default": 100, "maximum": 100, "minimum": 1, "title": "Limit", "type": "integer"}}, "required": ["find_id"], "title": "McpListFindRowsArgs", "type": "object"}}, {"name": "get_find", "title": "Check on a run", "description": "Read a run's request, progress, and what it has cost so far. After the user approves a quote, check it until the run finishes.", "annotations": {"title": "Check on a run", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"find_id": {"minLength": 1, "title": "Find Id", "type": "string"}}, "required": ["find_id"], "title": "McpGetFindArgs", "type": "object"}}, {"name": "get_revisit", "title": "Read what a recheck found", "description": "Read one page of the records a recheck looked at: what still holds, what changed, and what it couldn't reach. Pass next_after as after until it is null.", "annotations": {"title": "Read what a recheck found", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"find_id": {"minLength": 1, "title": "Find Id", "type": "string"}, "after": {"default": "", "maxLength": 256, "title": "After", "type": "string"}, "limit": {"default": 100, "maximum": 200, "minimum": 1, "title": "Limit", "type": "integer"}}, "required": ["find_id"], "title": "McpRevisitArgs", "type": "object"}}, {"name": "create_spec", "title": "Save a request", "description": "Save a reviewed request as its first version so it can be rerun, shared or changed.", "annotations": {"title": "Save a request", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"$defs": {"CountComparison": {"additionalProperties": false, "properties": {"op": {"enum": ["gte", "gt", "lte", "lt", "eq", "ne"], "title": "Op", "type": "string"}, "value": {"minimum": 0, "title": "Value", "type": "integer"}}, "required": ["op", "value"], "title": "CountComparison", "type": "object"}, "CountMatches": {"additionalProperties": false, "properties": {"condition": {"anyOf": [{"$ref": "#/$defs/MemberExpression"}, {"$ref": "#/$defs/MemberPredicate"}, {"type": "null"}], "default": null, "title": "Condition"}, "count": {"$ref": "#/$defs/CountComparison"}}, "required": ["count"], "title": "CountMatches", "type": "object"}, "Discovery": {"additionalProperties": false, "properties": {"geography_scope": {"anyOf": [{"const": "worldwide.v1", "type": "string"}, {"type": "null"}], "default": null, "title": "Geography Scope"}, "term": {"maxLength": 2000, "minLength": 1, "title": "Term", "type": "string"}, "platforms": {"items": {"pattern": "^[a-z][a-z0-9_]{0,47}$", "type": "string"}, "maxItems": 16, "title": "Platforms", "type": "array", "uniqueItems": true}, "searches": {"items": {"maxLength": 120, "minLength": 1, "type": "string"}, "maxItems": 4, "title": "Searches", "type": "array"}, "role_phrases": {"items": {"maxLength": 60, "minLength": 1, "type": "string"}, "maxItems": 8, "title": "Role Phrases", "type": "array"}, "seed_identifiers": {"additionalProperties": {"type": "string"}, "maxProperties": 8, "title": "Seed Identifiers", "type": "object"}}, "required": ["term"], "title": "Discovery", "type": "object"}, "EntityKind": {"enum": ["place", "creator", "organization", "storefront_product", "app_listing", "job_posting", "scholarly_work", "tender", "grant", "software_repository", "software_package", "dataset", "clinical_trial", "regulatory_document", "vulnerability", "book", "podcast", "web_page", "knowledge_entity", "person"], "title": "EntityKind", "type": "string"}, "EntityType": {"enum": ["local_business", "creator", "organization", "organization", "storefront_product", "app_listing", "job_posting", "scholarly_work", "tender", "grant", "software_repository", "software_package", "dataset", "clinical_trial", "regulatory_document", "vulnerability", "book", "podcast", "web_page", "knowledge_entity", "person"], "title": "EntityType", "type": "string"}, "Geo": {"additionalProperties": false, "properties": {"kind": {"$ref": "#/$defs/GeoKind"}, "query_label": {"minLength": 1, "title": "Query Label", "type": "string"}, "country_code": {"anyOf": [{"pattern": "^[A-Z]{2}$", "type": "string"}, {"type": "null"}], "default": null, "title": "Country Code"}, "admin1_code": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Admin1 Code"}, "locality": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Locality"}, "postal_code": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Postal Code"}, "status": {"$ref": "#/$defs/GeoStatus"}, "source": {"$ref": "#/$defs/GeoSource"}, "geoname_id": {"anyOf": [{"minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Geoname Id"}, "near": {"anyOf": [{"$ref": "#/$defs/Near"}, {"type": "null"}], "default": null}}, "required": ["kind", "query_label", "admin1_code", "locality", "postal_code", "status", "source"], "title": "Geo", "type": "object"}, "GeoKind": {"enum": ["country", "locality", "admin1"], "title": "GeoKind", "type": "string"}, "GeoSource": {"enum": ["gazetteer", "catalog", "alias", "well_formed"], "title": "GeoSource", "type": "string"}, "GeoStatus": {"enum": ["qualified", "ambiguous", "unqualified"], "title": "GeoStatus", "type": "string"}, "InferredClause": {"additionalProperties": false, "properties": {"field_id": {"minLength": 1, "title": "Field Id", "type": "string"}, "reason": {"minLength": 1, "title": "Reason", "type": "string"}}, "required": ["field_id", "reason"], "title": "InferredClause", "type": "object"}, "MatchExpression": {"additionalProperties": false, "description": "Explicit logical scope; leaves remain ordinary source-verifiable predicates.", "properties": {"op": {"enum": ["all", "any", "not"], "title": "Op", "type": "string"}, "clauses": {"items": {"anyOf": [{"$ref": "#/$defs/Predicate"}, {"$ref": "#/$defs/MatchExpression"}]}, "maxItems": 128, "minItems": 1, "title": "Clauses", "type": "array"}}, "required": ["op", "clauses"], "title": "MatchExpression", "type": "object"}, "MemberExpression": {"additionalProperties": false, "properties": {"op": {"enum": ["all", "any", "not"], "title": "Op", "type": "string"}, "clauses": {"items": {"anyOf": [{"$ref": "#/$defs/MemberPredicate"}, {"$ref": "#/$defs/MemberExpression"}]}, "maxItems": 32, "minItems": 1, "title": "Clauses", "type": "array"}}, "required": ["op", "clauses"], "title": "MemberExpression", "type": "object"}, "MemberPredicate": {"additionalProperties": false, "properties": {"field_id": {"pattern": "^[a-z][a-z0-9_]{0,63}$", "title": "Field Id", "type": "string"}, "op": {"$ref": "#/$defs/PredicateOp"}, "value": {"anyOf": [{"type": "boolean"}, {"type": "integer"}, {"type": "number"}, {"type": "string"}, {"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Value"}}, "required": ["field_id", "op", "value"], "title": "MemberPredicate", "type": "object"}, "Near": {"additionalProperties": false, "description": "A distance from a point: \"within 65 miles of 1417 E Fedora Ave, Fresno\".", "properties": {"point": {"maxLength": 300, "minLength": 1, "title": "Point", "type": "string"}, "latitude": {"maximum": 90, "minimum": -90, "title": "Latitude", "type": "number"}, "longitude": {"maximum": 180, "minimum": -180, "title": "Longitude", "type": "number"}, "radius_km": {"exclusiveMinimum": 0, "maximum": 1000, "title": "Radius Km", "type": "number"}}, "required": ["point", "latitude", "longitude", "radius_km"], "title": "Near", "type": "object"}, "OutputField": {"additionalProperties": false, "description": "A fact selected for delivery, independent from result-set membership.", "properties": {"field_id": {"minLength": 1, "title": "Field Id", "type": "string"}, "required": {"default": false, "title": "Required", "type": "boolean"}}, "required": ["field_id"], "title": "OutputField", "type": "object"}, "Predicate": {"additionalProperties": false, "properties": {"field_id": {"minLength": 1, "title": "Field Id", "type": "string"}, "op": {"$ref": "#/$defs/PredicateOp"}, "value": {"anyOf": [{"type": "boolean"}, {"type": "integer"}, {"type": "number"}, {"type": "string"}, {"items": {"type": "string"}, "type": "array"}, {"$ref": "#/$defs/CountMatches"}, {"type": "null"}], "title": "Value"}}, "required": ["field_id", "op", "value"], "title": "Predicate", "type": "object"}, "PredicateOp": {"enum": ["count_matches", "contains", "not_contains", "has_any", "has_all", "has_none", "before", "after", "on_or_before", "on_or_after", "gt", "lt", "ne", "not_in", "gte", "lte", "eq", "exists", "class_in", "in"], "title": "PredicateOp", "type": "string"}, "QueryAst": {"additionalProperties": false, "properties": {"target_requirement": {"anyOf": [{"$ref": "#/$defs/TargetRequirement"}, {"type": "null"}], "default": null}, "semantic_binding": {"anyOf": [{"$ref": "#/$defs/SemanticBinding"}, {"type": "null"}], "default": null}, "spec_version": {"const": "query_ast.v1", "default": "query_ast.v1", "title": "Spec Version", "type": "string"}, "entity_type": {"$ref": "#/$defs/EntityType"}, "limit": {"$ref": "#/$defs/QueryLimit"}, "discovery": {"$ref": "#/$defs/Discovery"}, "geo": {"anyOf": [{"$ref": "#/$defs/Geo"}, {"type": "null"}], "default": null}, "where": {"items": {"$ref": "#/$defs/Predicate"}, "maxItems": 128, "title": "Where", "type": "array"}, "match_expression": {"anyOf": [{"$ref": "#/$defs/MatchExpression"}, {"type": "null"}], "default": null}, "output_fields": {"items": {"$ref": "#/$defs/OutputField"}, "maxItems": 24, "title": "Output Fields", "type": "array"}, "worded_conditions": {"items": {"$ref": "#/$defs/WordedCondition"}, "maxItems": 12, "title": "Worded Conditions", "type": "array"}, "worded_outputs": {"items": {"$ref": "#/$defs/WordedOutput"}, "maxItems": 12, "title": "Worded Outputs", "type": "array"}, "sort": {"items": {"$ref": "#/$defs/SortKey"}, "title": "Sort", "type": "array"}, "locale": {"pattern": "^[a-z]{2}-[A-Z]{2}$", "title": "Locale", "type": "string"}, "inferred": {"items": {"$ref": "#/$defs/InferredClause"}, "title": "Inferred", "type": "array"}, "unsupported": {"items": {"$ref": "#/$defs/UnsupportedClause"}, "title": "Unsupported", "type": "array"}}, "required": ["entity_type", "limit", "discovery", "where", "sort", "locale", "inferred", "unsupported"], "title": "QueryAst", "type": "object"}, "QueryLimit": {"additionalProperties": false, "properties": {"max": {"default": 25, "maximum": 2147483647, "minimum": 1, "title": "Max", "type": "integer"}, "inferred": {"default": false, "title": "Inferred", "type": "boolean"}}, "title": "QueryLimit", "type": "object"}, "SemanticBinding": {"additionalProperties": false, "properties": {"spec_version": {"const": "semantic_binding.v1", "default": "semantic_binding.v1", "title": "Spec Version", "type": "string"}, "catalog_sha256": {"pattern": "^[0-9a-f]{64}$", "title": "Catalog Sha256", "type": "string"}, "target_id": {"pattern": "^[a-z][a-z0-9_.-]{1,127}$", "title": "Target Id", "type": "string"}, "footprint_id": {"anyOf": [{"pattern": "^[a-z][a-z0-9_.-]{1,127}$", "type": "string"}, {"type": "null"}], "default": null, "title": "Footprint Id"}}, "required": ["catalog_sha256", "target_id"], "title": "SemanticBinding", "type": "object"}, "SortDirection": {"enum": ["asc", "desc"], "title": "SortDirection", "type": "string"}, "SortKey": {"additionalProperties": false, "properties": {"field_id": {"minLength": 1, "title": "Field Id", "type": "string"}, "direction": {"$ref": "#/$defs/SortDirection"}}, "required": ["field_id", "direction"], "title": "SortKey", "type": "object"}, "TargetRequirement": {"additionalProperties": false, "properties": {"contract": {"const": "target-source-assertion.v1", "default": "target-source-assertion.v1", "title": "Contract", "type": "string"}, "entity_kind": {"$ref": "#/$defs/EntityKind"}, "text": {"maxLength": 2000, "minLength": 1, "title": "Text", "type": "string"}, "reading_policy_sha256": {"pattern": "^[0-9a-f]{64}$", "title": "Reading Policy Sha256", "type": "string"}, "max_candidates": {"default": 128, "maximum": 256, "minimum": 1, "title": "Max Candidates", "type": "integer"}, "max_passages": {"default": 12, "maximum": 16, "minimum": 1, "title": "Max Passages", "type": "integer"}, "max_context_chars": {"default": 7500, "maximum": 12000, "minimum": 500, "title": "Max Context Chars", "type": "integer"}, "max_source_chars": {"default": 262144, "maximum": 262144, "minimum": 1000, "title": "Max Source Chars", "type": "integer"}, "timeout_ms": {"default": 3000, "maximum": 5000, "minimum": 1, "title": "Timeout Ms", "type": "integer"}, "evidence_meaning": {"const": "interpreted_published_assertion", "default": "interpreted_published_assertion", "title": "Evidence Meaning", "type": "string"}, "prior_knowledge_authority": {"const": false, "default": false, "title": "Prior Knowledge Authority", "type": "boolean"}, "modifies_typed_predicates": {"const": false, "default": false, "title": "Modifies Typed Predicates", "type": "boolean"}}, "required": ["entity_kind", "text", "reading_policy_sha256"], "title": "TargetRequirement", "type": "object"}, "UnsupportedClause": {"additionalProperties": false, "properties": {"field_id": {"minLength": 1, "title": "Field Id", "type": "string"}, "op": {"anyOf": [{"$ref": "#/$defs/PredicateOp"}, {"type": "null"}]}, "value": {"anyOf": [{"type": "boolean"}, {"type": "integer"}, {"type": "number"}, {"type": "string"}, {"items": {"type": "string"}, "type": "array"}, {"$ref": "#/$defs/CountMatches"}, {"type": "null"}], "title": "Value"}, "reason": {"minLength": 1, "title": "Reason", "type": "string"}}, "required": ["field_id", "op", "value", "reason"], "title": "UnsupportedClause", "type": "object"}, "WordedCondition": {"additionalProperties": false, "description": "A requirement no catalog field expresses, kept in the person's own words.\n\nSchema is acceleration, never permission: each result's own pages are read\nfor this statement (yes / no / unsure). A yes needs a quote the code finds in\nthe result's own source; a quoted no removes the result; an unconfirmed line\nis delivered marked.", "properties": {"condition_id": {"pattern": "^[wt][0-9]{1,2}$", "title": "Condition Id", "type": "string"}, "words": {"maxLength": 300, "minLength": 1, "title": "Words", "type": "string"}, "statement": {"maxLength": 400, "minLength": 1, "title": "Statement", "type": "string"}, "search_words": {"default": "", "maxLength": 120, "title": "Search Words", "type": "string"}}, "required": ["condition_id", "words", "statement"], "title": "WordedCondition", "type": "object"}, "WordedOutput": {"additionalProperties": false, "description": "A detail to return that no output field expresses, read from each result's pages.", "properties": {"detail_id": {"pattern": "^d[0-9]{1,2}$", "title": "Detail Id", "type": "string"}, "words": {"maxLength": 300, "minLength": 1, "title": "Words", "type": "string"}, "description": {"maxLength": 300, "minLength": 1, "title": "Description", "type": "string"}, "value_type": {"default": "text", "enum": ["text", "number", "date", "url", "email", "phone", "yes_no"], "title": "Value Type", "type": "string"}, "required": {"default": false, "title": "Required", "type": "boolean"}}, "required": ["detail_id", "words", "description"], "title": "WordedOutput", "type": "object"}}, "additionalProperties": false, "oneOf": [{"properties": {"ast": {"not": {"type": "null"}}, "source_find_id": {"type": "null"}}, "required": ["ast"]}, {"properties": {"source_find_id": {"type": "string"}, "ast": {"type": "null"}}, "required": ["source_find_id"]}], "properties": {"name": {"maxLength": 120, "minLength": 1, "title": "Name", "type": "string"}, "ast": {"anyOf": [{"$ref": "#/$defs/QueryAst"}, {"type": "null"}], "default": null}, "source_find_id": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Source Find Id"}, "project_id": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}, "context": {"default": "", "maxLength": 4000, "title": "Context", "type": "string"}}, "required": ["name"], "title": "McpCreateSpecArgs", "type": "object"}}, {"name": "list_specs", "title": "List saved requests", "description": "List the saved requests you can open.", "annotations": {"title": "List saved requests", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"limit": {"anyOf": [{"maximum": 100, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Limit"}, "cursor": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Cursor"}, "project_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}, "archived": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "title": "Archived"}}, "title": "McpListSpecsArgs", "type": "object"}}, {"name": "get_spec", "title": "Open a saved request", "description": "Read a saved request and its current version.", "annotations": {"title": "Open a saved request", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"spec_id": {"minLength": 1, "title": "Spec Id", "type": "string"}}, "required": ["spec_id"], "title": "McpGetSpecArgs", "type": "object"}}, {"name": "create_spec_link", "title": "Share a request as a link", "description": "Create a link to the wording and conditions of a saved request. It never shares results or the balance.", "annotations": {"title": "Share a request as a link", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"revision_id": {"maxLength": 160, "minLength": 1, "title": "Revision Id", "type": "string"}, "expected_ast_hash": {"pattern": "^[0-9a-f]{64}$", "title": "Expected Ast Hash", "type": "string"}, "include_context": {"default": false, "title": "Include Context", "type": "boolean"}, "expires_seconds": {"default": 2592000, "maximum": 2592000, "minimum": 3600, "title": "Expires Seconds", "type": "integer"}, "spec_id": {"minLength": 1, "title": "Spec Id", "type": "string"}}, "required": ["revision_id", "expected_ast_hash", "spec_id"], "title": "McpCreateSpecLinkArgs", "type": "object"}}, {"name": "get_shared_spec", "title": "Open a shared request", "description": "Read a request someone shared, while their link is still on.", "annotations": {"title": "Open a shared request", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"token": {"minLength": 1, "title": "Token", "type": "string"}}, "required": ["token"], "title": "McpGetSharedSpecArgs", "type": "object"}}, {"name": "revoke_spec_link", "title": "Turn off a request link", "description": "Turn off a shared request link. The request and its results stay.", "annotations": {"title": "Turn off a request link", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"spec_id": {"minLength": 1, "title": "Spec Id", "type": "string"}, "link_id": {"minLength": 1, "title": "Link Id", "type": "string"}}, "required": ["spec_id", "link_id"], "title": "McpRevokeSpecLinkArgs", "type": "object"}}, {"name": "revise_spec", "title": "Save a new version", "description": "Save a change to a saved request as a new version, only if nobody changed it since you read it.", "annotations": {"title": "Save a new version", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"$defs": {"CountComparison": {"additionalProperties": false, "properties": {"op": {"enum": ["gte", "gt", "lte", "lt", "eq", "ne"], "title": "Op", "type": "string"}, "value": {"minimum": 0, "title": "Value", "type": "integer"}}, "required": ["op", "value"], "title": "CountComparison", "type": "object"}, "CountMatches": {"additionalProperties": false, "properties": {"condition": {"anyOf": [{"$ref": "#/$defs/MemberExpression"}, {"$ref": "#/$defs/MemberPredicate"}, {"type": "null"}], "default": null, "title": "Condition"}, "count": {"$ref": "#/$defs/CountComparison"}}, "required": ["count"], "title": "CountMatches", "type": "object"}, "Discovery": {"additionalProperties": false, "properties": {"geography_scope": {"anyOf": [{"const": "worldwide.v1", "type": "string"}, {"type": "null"}], "default": null, "title": "Geography Scope"}, "term": {"maxLength": 2000, "minLength": 1, "title": "Term", "type": "string"}, "platforms": {"items": {"pattern": "^[a-z][a-z0-9_]{0,47}$", "type": "string"}, "maxItems": 16, "title": "Platforms", "type": "array", "uniqueItems": true}, "searches": {"items": {"maxLength": 120, "minLength": 1, "type": "string"}, "maxItems": 4, "title": "Searches", "type": "array"}, "role_phrases": {"items": {"maxLength": 60, "minLength": 1, "type": "string"}, "maxItems": 8, "title": "Role Phrases", "type": "array"}, "seed_identifiers": {"additionalProperties": {"type": "string"}, "maxProperties": 8, "title": "Seed Identifiers", "type": "object"}}, "required": ["term"], "title": "Discovery", "type": "object"}, "EntityKind": {"enum": ["place", "creator", "organization", "storefront_product", "app_listing", "job_posting", "scholarly_work", "tender", "grant", "software_repository", "software_package", "dataset", "clinical_trial", "regulatory_document", "vulnerability", "book", "podcast", "web_page", "knowledge_entity", "person"], "title": "EntityKind", "type": "string"}, "EntityType": {"enum": ["local_business", "creator", "organization", "organization", "storefront_product", "app_listing", "job_posting", "scholarly_work", "tender", "grant", "software_repository", "software_package", "dataset", "clinical_trial", "regulatory_document", "vulnerability", "book", "podcast", "web_page", "knowledge_entity", "person"], "title": "EntityType", "type": "string"}, "Geo": {"additionalProperties": false, "properties": {"kind": {"$ref": "#/$defs/GeoKind"}, "query_label": {"minLength": 1, "title": "Query Label", "type": "string"}, "country_code": {"anyOf": [{"pattern": "^[A-Z]{2}$", "type": "string"}, {"type": "null"}], "default": null, "title": "Country Code"}, "admin1_code": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Admin1 Code"}, "locality": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Locality"}, "postal_code": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Postal Code"}, "status": {"$ref": "#/$defs/GeoStatus"}, "source": {"$ref": "#/$defs/GeoSource"}, "geoname_id": {"anyOf": [{"minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Geoname Id"}, "near": {"anyOf": [{"$ref": "#/$defs/Near"}, {"type": "null"}], "default": null}}, "required": ["kind", "query_label", "admin1_code", "locality", "postal_code", "status", "source"], "title": "Geo", "type": "object"}, "GeoKind": {"enum": ["country", "locality", "admin1"], "title": "GeoKind", "type": "string"}, "GeoSource": {"enum": ["gazetteer", "catalog", "alias", "well_formed"], "title": "GeoSource", "type": "string"}, "GeoStatus": {"enum": ["qualified", "ambiguous", "unqualified"], "title": "GeoStatus", "type": "string"}, "InferredClause": {"additionalProperties": false, "properties": {"field_id": {"minLength": 1, "title": "Field Id", "type": "string"}, "reason": {"minLength": 1, "title": "Reason", "type": "string"}}, "required": ["field_id", "reason"], "title": "InferredClause", "type": "object"}, "MatchExpression": {"additionalProperties": false, "description": "Explicit logical scope; leaves remain ordinary source-verifiable predicates.", "properties": {"op": {"enum": ["all", "any", "not"], "title": "Op", "type": "string"}, "clauses": {"items": {"anyOf": [{"$ref": "#/$defs/Predicate"}, {"$ref": "#/$defs/MatchExpression"}]}, "maxItems": 128, "minItems": 1, "title": "Clauses", "type": "array"}}, "required": ["op", "clauses"], "title": "MatchExpression", "type": "object"}, "MemberExpression": {"additionalProperties": false, "properties": {"op": {"enum": ["all", "any", "not"], "title": "Op", "type": "string"}, "clauses": {"items": {"anyOf": [{"$ref": "#/$defs/MemberPredicate"}, {"$ref": "#/$defs/MemberExpression"}]}, "maxItems": 32, "minItems": 1, "title": "Clauses", "type": "array"}}, "required": ["op", "clauses"], "title": "MemberExpression", "type": "object"}, "MemberPredicate": {"additionalProperties": false, "properties": {"field_id": {"pattern": "^[a-z][a-z0-9_]{0,63}$", "title": "Field Id", "type": "string"}, "op": {"$ref": "#/$defs/PredicateOp"}, "value": {"anyOf": [{"type": "boolean"}, {"type": "integer"}, {"type": "number"}, {"type": "string"}, {"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Value"}}, "required": ["field_id", "op", "value"], "title": "MemberPredicate", "type": "object"}, "Near": {"additionalProperties": false, "description": "A distance from a point: \"within 65 miles of 1417 E Fedora Ave, Fresno\".", "properties": {"point": {"maxLength": 300, "minLength": 1, "title": "Point", "type": "string"}, "latitude": {"maximum": 90, "minimum": -90, "title": "Latitude", "type": "number"}, "longitude": {"maximum": 180, "minimum": -180, "title": "Longitude", "type": "number"}, "radius_km": {"exclusiveMinimum": 0, "maximum": 1000, "title": "Radius Km", "type": "number"}}, "required": ["point", "latitude", "longitude", "radius_km"], "title": "Near", "type": "object"}, "OutputField": {"additionalProperties": false, "description": "A fact selected for delivery, independent from result-set membership.", "properties": {"field_id": {"minLength": 1, "title": "Field Id", "type": "string"}, "required": {"default": false, "title": "Required", "type": "boolean"}}, "required": ["field_id"], "title": "OutputField", "type": "object"}, "Predicate": {"additionalProperties": false, "properties": {"field_id": {"minLength": 1, "title": "Field Id", "type": "string"}, "op": {"$ref": "#/$defs/PredicateOp"}, "value": {"anyOf": [{"type": "boolean"}, {"type": "integer"}, {"type": "number"}, {"type": "string"}, {"items": {"type": "string"}, "type": "array"}, {"$ref": "#/$defs/CountMatches"}, {"type": "null"}], "title": "Value"}}, "required": ["field_id", "op", "value"], "title": "Predicate", "type": "object"}, "PredicateOp": {"enum": ["count_matches", "contains", "not_contains", "has_any", "has_all", "has_none", "before", "after", "on_or_before", "on_or_after", "gt", "lt", "ne", "not_in", "gte", "lte", "eq", "exists", "class_in", "in"], "title": "PredicateOp", "type": "string"}, "QueryAst": {"additionalProperties": false, "properties": {"target_requirement": {"anyOf": [{"$ref": "#/$defs/TargetRequirement"}, {"type": "null"}], "default": null}, "semantic_binding": {"anyOf": [{"$ref": "#/$defs/SemanticBinding"}, {"type": "null"}], "default": null}, "spec_version": {"const": "query_ast.v1", "default": "query_ast.v1", "title": "Spec Version", "type": "string"}, "entity_type": {"$ref": "#/$defs/EntityType"}, "limit": {"$ref": "#/$defs/QueryLimit"}, "discovery": {"$ref": "#/$defs/Discovery"}, "geo": {"anyOf": [{"$ref": "#/$defs/Geo"}, {"type": "null"}], "default": null}, "where": {"items": {"$ref": "#/$defs/Predicate"}, "maxItems": 128, "title": "Where", "type": "array"}, "match_expression": {"anyOf": [{"$ref": "#/$defs/MatchExpression"}, {"type": "null"}], "default": null}, "output_fields": {"items": {"$ref": "#/$defs/OutputField"}, "maxItems": 24, "title": "Output Fields", "type": "array"}, "worded_conditions": {"items": {"$ref": "#/$defs/WordedCondition"}, "maxItems": 12, "title": "Worded Conditions", "type": "array"}, "worded_outputs": {"items": {"$ref": "#/$defs/WordedOutput"}, "maxItems": 12, "title": "Worded Outputs", "type": "array"}, "sort": {"items": {"$ref": "#/$defs/SortKey"}, "title": "Sort", "type": "array"}, "locale": {"pattern": "^[a-z]{2}-[A-Z]{2}$", "title": "Locale", "type": "string"}, "inferred": {"items": {"$ref": "#/$defs/InferredClause"}, "title": "Inferred", "type": "array"}, "unsupported": {"items": {"$ref": "#/$defs/UnsupportedClause"}, "title": "Unsupported", "type": "array"}}, "required": ["entity_type", "limit", "discovery", "where", "sort", "locale", "inferred", "unsupported"], "title": "QueryAst", "type": "object"}, "QueryLimit": {"additionalProperties": false, "properties": {"max": {"default": 25, "maximum": 2147483647, "minimum": 1, "title": "Max", "type": "integer"}, "inferred": {"default": false, "title": "Inferred", "type": "boolean"}}, "title": "QueryLimit", "type": "object"}, "SemanticBinding": {"additionalProperties": false, "properties": {"spec_version": {"const": "semantic_binding.v1", "default": "semantic_binding.v1", "title": "Spec Version", "type": "string"}, "catalog_sha256": {"pattern": "^[0-9a-f]{64}$", "title": "Catalog Sha256", "type": "string"}, "target_id": {"pattern": "^[a-z][a-z0-9_.-]{1,127}$", "title": "Target Id", "type": "string"}, "footprint_id": {"anyOf": [{"pattern": "^[a-z][a-z0-9_.-]{1,127}$", "type": "string"}, {"type": "null"}], "default": null, "title": "Footprint Id"}}, "required": ["catalog_sha256", "target_id"], "title": "SemanticBinding", "type": "object"}, "SortDirection": {"enum": ["asc", "desc"], "title": "SortDirection", "type": "string"}, "SortKey": {"additionalProperties": false, "properties": {"field_id": {"minLength": 1, "title": "Field Id", "type": "string"}, "direction": {"$ref": "#/$defs/SortDirection"}}, "required": ["field_id", "direction"], "title": "SortKey", "type": "object"}, "TargetRequirement": {"additionalProperties": false, "properties": {"contract": {"const": "target-source-assertion.v1", "default": "target-source-assertion.v1", "title": "Contract", "type": "string"}, "entity_kind": {"$ref": "#/$defs/EntityKind"}, "text": {"maxLength": 2000, "minLength": 1, "title": "Text", "type": "string"}, "reading_policy_sha256": {"pattern": "^[0-9a-f]{64}$", "title": "Reading Policy Sha256", "type": "string"}, "max_candidates": {"default": 128, "maximum": 256, "minimum": 1, "title": "Max Candidates", "type": "integer"}, "max_passages": {"default": 12, "maximum": 16, "minimum": 1, "title": "Max Passages", "type": "integer"}, "max_context_chars": {"default": 7500, "maximum": 12000, "minimum": 500, "title": "Max Context Chars", "type": "integer"}, "max_source_chars": {"default": 262144, "maximum": 262144, "minimum": 1000, "title": "Max Source Chars", "type": "integer"}, "timeout_ms": {"default": 3000, "maximum": 5000, "minimum": 1, "title": "Timeout Ms", "type": "integer"}, "evidence_meaning": {"const": "interpreted_published_assertion", "default": "interpreted_published_assertion", "title": "Evidence Meaning", "type": "string"}, "prior_knowledge_authority": {"const": false, "default": false, "title": "Prior Knowledge Authority", "type": "boolean"}, "modifies_typed_predicates": {"const": false, "default": false, "title": "Modifies Typed Predicates", "type": "boolean"}}, "required": ["entity_kind", "text", "reading_policy_sha256"], "title": "TargetRequirement", "type": "object"}, "UnsupportedClause": {"additionalProperties": false, "properties": {"field_id": {"minLength": 1, "title": "Field Id", "type": "string"}, "op": {"anyOf": [{"$ref": "#/$defs/PredicateOp"}, {"type": "null"}]}, "value": {"anyOf": [{"type": "boolean"}, {"type": "integer"}, {"type": "number"}, {"type": "string"}, {"items": {"type": "string"}, "type": "array"}, {"$ref": "#/$defs/CountMatches"}, {"type": "null"}], "title": "Value"}, "reason": {"minLength": 1, "title": "Reason", "type": "string"}}, "required": ["field_id", "op", "value", "reason"], "title": "UnsupportedClause", "type": "object"}, "WordedCondition": {"additionalProperties": false, "description": "A requirement no catalog field expresses, kept in the person's own words.\n\nSchema is acceleration, never permission: each result's own pages are read\nfor this statement (yes / no / unsure). A yes needs a quote the code finds in\nthe result's own source; a quoted no removes the result; an unconfirmed line\nis delivered marked.", "properties": {"condition_id": {"pattern": "^[wt][0-9]{1,2}$", "title": "Condition Id", "type": "string"}, "words": {"maxLength": 300, "minLength": 1, "title": "Words", "type": "string"}, "statement": {"maxLength": 400, "minLength": 1, "title": "Statement", "type": "string"}, "search_words": {"default": "", "maxLength": 120, "title": "Search Words", "type": "string"}}, "required": ["condition_id", "words", "statement"], "title": "WordedCondition", "type": "object"}, "WordedOutput": {"additionalProperties": false, "description": "A detail to return that no output field expresses, read from each result's pages.", "properties": {"detail_id": {"pattern": "^d[0-9]{1,2}$", "title": "Detail Id", "type": "string"}, "words": {"maxLength": 300, "minLength": 1, "title": "Words", "type": "string"}, "description": {"maxLength": 300, "minLength": 1, "title": "Description", "type": "string"}, "value_type": {"default": "text", "enum": ["text", "number", "date", "url", "email", "phone", "yes_no"], "title": "Value Type", "type": "string"}, "required": {"default": false, "title": "Required", "type": "boolean"}}, "required": ["detail_id", "words", "description"], "title": "WordedOutput", "type": "object"}}, "additionalProperties": false, "properties": {"expected_revision_id": {"title": "Expected Revision Id", "type": "string"}, "parent_revision_id": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Branch from this revision of the same request. Leave it out to branch from the current head. expected_revision_id still protects the current head against concurrent edits.", "title": "Parent Revision Id"}, "ast": {"type": "object", "$ref": "#/$defs/QueryAst"}, "name": {"anyOf": [{"maxLength": 120, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Name"}, "context": {"anyOf": [{"maxLength": 4000, "type": "string"}, {"type": "null"}], "default": null, "title": "Context"}, "spec_id": {"minLength": 1, "title": "Spec Id", "type": "string"}}, "required": ["expected_revision_id", "ast", "spec_id"], "title": "McpReviseSpecArgs", "type": "object"}}, {"name": "list_spec_revisions", "title": "Read a request's history", "description": "List every saved version of a request.", "annotations": {"title": "Read a request's history", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"spec_id": {"minLength": 1, "title": "Spec Id", "type": "string"}, "limit": {"anyOf": [{"maximum": 100, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Limit"}, "cursor": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Cursor"}}, "required": ["spec_id"], "title": "McpListSpecRevisionsArgs", "type": "object"}}, {"name": "get_spec_revision", "title": "Open one version", "description": "Read one earlier version of a saved request, unchanged.", "annotations": {"title": "Open one version", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"spec_id": {"minLength": 1, "title": "Spec Id", "type": "string"}, "revision_id": {"minLength": 1, "title": "Revision Id", "type": "string"}}, "required": ["spec_id", "revision_id"], "title": "McpGetSpecRevisionArgs", "type": "object"}}, {"name": "archive_spec", "title": "Archive or restore a request", "description": "Put a saved request away, or bring it back. Its results stay.", "annotations": {"title": "Archive or restore a request", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"expected_revision_id": {"title": "Expected Revision Id", "type": "string"}, "archived": {"default": true, "title": "Archived", "type": "boolean"}, "spec_id": {"minLength": 1, "title": "Spec Id", "type": "string"}}, "required": ["expected_revision_id", "spec_id"], "title": "McpArchiveSpecArgs", "type": "object"}}, {"name": "list_spec_finds", "title": "See every run of a request", "description": "List the runs each version of a saved request did.", "annotations": {"title": "See every run of a request", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"spec_id": {"minLength": 1, "title": "Spec Id", "type": "string"}, "limit": {"anyOf": [{"maximum": 100, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Limit"}, "cursor": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Cursor"}}, "required": ["spec_id"], "title": "McpListSpecFindsArgs", "type": "object"}}, {"name": "get_find_lineage", "title": "See where a run came from", "description": "Read which version of a request a run used, and the earlier run it continued.", "annotations": {"title": "See where a run came from", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"find_id": {"minLength": 1, "title": "Find Id", "type": "string"}}, "required": ["find_id"], "title": "McpGetFindLineageArgs", "type": "object"}}, {"name": "create_project", "title": "Create a project", "description": "Start a project with its own spending limit.", "annotations": {"title": "Create a project", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"name": {"maxLength": 120, "minLength": 1, "title": "Name", "type": "string"}, "monthly_spend_cap_cents": {"default": 0, "maximum": 100000000, "minimum": 0, "title": "Monthly Spend Cap Cents", "type": "integer"}}, "required": ["name"], "title": "McpCreateProjectArgs", "type": "object"}}, {"name": "list_projects", "title": "List projects", "description": "List the projects you can open, with your role in each.", "annotations": {"title": "List projects", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"limit": {"anyOf": [{"maximum": 100, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Limit"}, "cursor": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Cursor"}}, "title": "McpListProjectsArgs", "type": "object"}}, {"name": "get_project", "title": "Open a project", "description": "Read a project, its members, their roles and their spending limits.", "annotations": {"title": "Open a project", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"project_id": {"minLength": 1, "title": "Project Id", "type": "string"}}, "required": ["project_id"], "title": "McpGetProjectArgs", "type": "object"}}, {"name": "update_project", "title": "Update a project", "description": "Change a project's details, only if nobody changed them since you read them.", "annotations": {"title": "Update a project", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"expected_version": {"minimum": 1, "title": "Expected Version", "type": "integer"}, "name": {"anyOf": [{"maxLength": 120, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Name"}, "monthly_spend_cap_cents": {"anyOf": [{"maximum": 100000000, "minimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "title": "Monthly Spend Cap Cents"}, "project_id": {"minLength": 1, "title": "Project Id", "type": "string"}}, "required": ["expected_version", "project_id"], "title": "McpUpdateProjectArgs", "type": "object"}}, {"name": "put_project_member", "title": "Set a member's role and limit", "description": "Make someone an editor or viewer of a project, with their own monthly spending limit.", "annotations": {"title": "Set a member's role and limit", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"account_id": {"title": "Account Id", "type": "string"}, "role": {"enum": ["editor", "viewer"], "title": "Role", "type": "string"}, "monthly_spend_cap_cents": {"default": 0, "maximum": 100000000, "minimum": 0, "title": "Monthly Spend Cap Cents", "type": "integer"}, "project_id": {"minLength": 1, "title": "Project Id", "type": "string"}}, "required": ["account_id", "role", "project_id"], "title": "McpPutProjectMemberArgs", "type": "object"}}, {"name": "list_project_members", "title": "List project members", "description": "List who is in a project and their roles.", "annotations": {"title": "List project members", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"project_id": {"minLength": 1, "title": "Project Id", "type": "string"}, "limit": {"anyOf": [{"maximum": 100, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Limit"}, "cursor": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Cursor"}}, "required": ["project_id"], "title": "McpListProjectMembersArgs", "type": "object"}}, {"name": "revoke_project_member", "title": "Remove a project member", "description": "End someone's access to a project. Their work stays.", "annotations": {"title": "Remove a project member", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"project_id": {"minLength": 1, "title": "Project Id", "type": "string"}, "account_id": {"minLength": 1, "title": "Account Id", "type": "string"}}, "required": ["project_id", "account_id"], "title": "McpRevokeProjectMemberArgs", "type": "object"}}, {"name": "get_delivery", "title": "Open delivered results", "description": "Read a run's finished results with the request version and sources behind them.", "annotations": {"title": "Open delivered results", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"find_id": {"minLength": 1, "title": "Find Id", "type": "string"}}, "required": ["find_id"], "title": "McpGetDeliveryArgs", "type": "object"}}, {"name": "get_find_decisions", "title": "See why each result qualified", "description": "Read each condition check on a run's results: yes, no or unsure, the value seen, and its source.", "annotations": {"title": "See why each result qualified", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"find_id": {"minLength": 1, "title": "Find Id", "type": "string"}, "limit": {"anyOf": [{"maximum": 100, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Limit"}, "cursor": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Cursor"}}, "required": ["find_id"], "title": "McpGetFindDecisionsArgs", "type": "object"}}, {"name": "replay_find_decisions", "title": "Replay the checks", "description": "Reproduce a run's saved checks from the recorded evidence. No new search and no new charge.", "annotations": {"title": "Replay the checks", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"find_id": {"minLength": 1, "title": "Find Id", "type": "string"}}, "required": ["find_id"], "title": "McpReplayFindDecisionsArgs", "type": "object"}}, {"name": "get_me", "title": "Check spending limits", "description": "Read the spending limit for this connection and how much of it is left.", "annotations": {"title": "Check spending limits", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {}, "title": "McpGetMeArgs", "type": "object"}}, {"name": "search_workspace", "title": "Search your work", "description": "Find records, lists, requests, projects, people, notes and monitors by name or text.", "annotations": {"title": "Search your work", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"q": {"maxLength": 200, "minLength": 1, "title": "Q", "type": "string"}, "limit": {"anyOf": [{"maximum": 100, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Limit"}, "cursor": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Cursor"}}, "required": ["q"], "title": "McpWorkspaceSearchArgs", "type": "object"}}, {"name": "list_notifications", "title": "Read notifications", "description": "Read mentions, finished work and blocked monitors.", "annotations": {"title": "Read notifications", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"tab": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Tab"}, "limit": {"anyOf": [{"maximum": 100, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Limit"}, "cursor": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Cursor"}}, "title": "McpWorkspaceListNotificationsArgs", "type": "object"}}, {"name": "list_audit_events", "title": "Read the audit log", "description": "Read sign-ins, new keys, approved spending, exports, monitors and imports from the last 12 months.", "annotations": {"title": "Read the audit log", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"project_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}, "actor_account_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Actor Account Id"}, "cursor": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Cursor"}, "kind": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Kind"}, "limit": {"anyOf": [{"maximum": 100, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Limit"}}, "title": "McpWorkspaceListAuditEventsArgs", "type": "object"}}, {"name": "get_account", "title": "Read the account", "description": "Read the account and its payment history.", "annotations": {"title": "Read the account", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {}, "title": "McpGetAccountArgs", "type": "object"}}, {"name": "spec_options", "title": "See what you can ask for", "description": "List the conditions and facts SpecStream can check for one kind of record.", "annotations": {"title": "See what you can ask for", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"target": {"minLength": 1, "title": "Target", "type": "string"}}, "required": ["target"], "title": "McpGetSpecOptionsArgs", "type": "object"}}, {"name": "get_find_commerce", "title": "Check a run's payment", "description": "Read what a run was charged, what it delivered, and who can open it.", "annotations": {"title": "Check a run's payment", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"find_id": {"minLength": 1, "title": "Find Id", "type": "string"}}, "required": ["find_id"], "title": "McpGetFindCommerceArgs", "type": "object"}}, {"name": "reconcile_find_commerce", "title": "Recover a payment", "description": "Find a payment that already happened for a run instead of running the work again.", "annotations": {"title": "Recover a payment", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"find_id": {"minLength": 1, "title": "Find Id", "type": "string"}}, "required": ["find_id"], "title": "McpReconcileFindCommerceArgs", "type": "object"}}, {"name": "cancel_find", "title": "Stop a run", "description": "Ask a run in progress to stop. It keeps what it already found.", "annotations": {"title": "Stop a run", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"find_id": {"minLength": 1, "title": "Find Id", "type": "string"}}, "required": ["find_id"], "title": "McpCancelFindArgs", "type": "object"}}, {"name": "export_find", "title": "Download the results", "description": "Create a download link for a run's results as CSV, Excel, JSON or HTML, or KML and GeoJSON for records with places. The link works for 24 hours.", "annotations": {"title": "Download the results", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"$defs": {"ExportFormat": {"description": "Owned Delivery export formats, including maps from supplied coordinates.", "enum": ["xlsx", "csv", "json", "html", "kml", "geojson"], "title": "ExportFormat", "type": "string"}}, "additionalProperties": false, "properties": {"format": {"type": "string", "$ref": "#/$defs/ExportFormat"}, "find_id": {"minLength": 1, "title": "Find Id", "type": "string"}}, "required": ["format", "find_id"], "title": "McpExportFindArgs", "type": "object"}}, {"name": "share_find", "title": "Share results", "description": "Create a link to a fixed copy of a run's results that anyone with the link can open.", "annotations": {"title": "Share results", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"include_contacts": {"default": true, "title": "Include Contacts", "type": "boolean"}, "find_id": {"minLength": 1, "title": "Find Id", "type": "string"}}, "required": ["find_id"], "title": "McpShareFindArgs", "type": "object"}}, {"name": "revoke_share", "title": "Stop sharing results", "description": "Turn off a shared results link.", "annotations": {"title": "Stop sharing results", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"share_id": {"minLength": 1, "title": "Share Id", "type": "string"}}, "required": ["share_id"], "title": "McpRevokeShareArgs", "type": "object"}}, {"name": "get_capacity_catalog", "title": "Read prices", "description": "Read the plans, per-result rates and top-up options.", "annotations": {"title": "Read prices", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {}, "title": "McpGetCapacityCatalogArgs", "type": "object"}}, {"name": "get_capacity_balance", "title": "Check the balance", "description": "Read the balance available for work. A balance is not permission to spend: paid work still needs the user's approval of a quote.", "annotations": {"title": "Check the balance", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"project_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}}, "title": "McpGetCapacityBalanceArgs", "type": "object"}}, {"name": "get_capacity_entitlements", "title": "Check what the plan includes", "description": "Read the account's plan, what it includes, such as schedules, CRM sync and single sign-on, and how many members it has. A feature the plan doesn't include returns plan_required with the plan that includes it.", "annotations": {"title": "Check what the plan includes", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"project_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}}, "title": "McpGetCapacityEntitlementsArgs", "type": "object"}}, {"name": "claim_free_capacity", "title": "Claim the free start", "description": "Claim the one-time free balance for an eligible, verified account.", "annotations": {"title": "Claim the free start", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {}, "title": "McpClaimFreeCapacityArgs", "type": "object"}}, {"name": "quote_capacity_work", "title": "Get a quote", "description": "Price the reading identified by ast_hash before anything runs. Operation find prices a new request, extend more results, add_facts more facts on results the user has, and refresh a recheck of them; the last three take parent_find_id. For an imported list, find with source_import_id and its source_row_ids fills in details or checks each row. The quote shows the most the work can cost. Nothing is spent.", "annotations": {"title": "Get a quote", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"ast_hash": {"pattern": "^[0-9a-f]{64}$", "title": "Ast Hash", "type": "string"}, "operation": {"default": "find", "enum": ["find", "extend", "add_facts", "refresh", "retained"], "title": "Operation", "type": "string"}, "parent_find_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Parent Find Id"}, "revision_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Revision Id"}, "project_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}, "source_import_id": {"anyOf": [{"maxLength": 128, "minLength": 8, "type": "string"}, {"type": "null"}], "default": null, "title": "Source Import Id"}, "source_row_ids": {"items": {"type": "string"}, "maxItems": 2000, "title": "Source Row Ids", "type": "array"}, "requested_units": {"default": 25, "maximum": 10000, "minimum": 1, "title": "Requested Units", "type": "integer"}, "minimum_units": {"anyOf": [{"maximum": 10000, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Minimum Units"}, "selected_entity_ids": {"anyOf": [{"items": {"type": "string"}, "maxItems": 10000, "minItems": 1, "type": "array"}, {"type": "null"}], "default": null, "title": "Selected Entity Ids"}}, "required": ["ast_hash"], "title": "McpQuoteCapacityWorkArgs", "type": "object"}}, {"name": "get_capacity_quote", "title": "Reopen a quote", "description": "Read a quote and any work already approved from it.", "annotations": {"title": "Reopen a quote", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"quote_id": {"minLength": 1, "title": "Quote Id", "type": "string"}}, "required": ["quote_id"], "title": "McpGetCapacityQuoteArgs", "type": "object"}}, {"name": "authorize_capacity_work", "title": "Approve a quote", "description": "Start the work on an approved quote: its quote_id and quote_hash, the ceiling the user approved in cents as confirm_max_cents, and a stable idempotency_key. SpecStream then reads the live web and charges only for delivered results, never more than the ceiling.", "annotations": {"title": "Approve a quote", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"quote_id": {"title": "Quote Id", "type": "string"}, "quote_hash": {"pattern": "^[0-9a-f]{64}$", "title": "Quote Hash", "type": "string"}, "idempotency_key": {"maxLength": 128, "minLength": 8, "title": "Idempotency Key", "type": "string"}, "confirm_max_cents": {"minimum": 0, "title": "Confirm Max Cents", "type": "integer"}, "authority_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Authority Id"}}, "required": ["quote_id", "quote_hash", "idempotency_key", "confirm_max_cents"], "title": "McpAuthorizeCapacityWorkArgs", "type": "object"}}, {"name": "get_capacity_request", "title": "Find work already started", "description": "Return the work started with an idempotency_key, so a retry doesn't start it twice.", "annotations": {"title": "Find work already started", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"request_key": {"minLength": 1, "title": "Request Key", "type": "string"}, "project_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}}, "required": ["request_key"], "title": "McpGetCapacityRequestArgs", "type": "object"}}, {"name": "get_capacity_execution", "title": "Read what a run cost", "description": "Read the finished work, what it cost, and your access to its results.", "annotations": {"title": "Read what a run cost", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"find_id": {"minLength": 1, "title": "Find Id", "type": "string"}}, "required": ["find_id"], "title": "McpGetCapacityExecutionArgs", "type": "object"}}, {"name": "create_capacity_schedule", "title": "Create a monitor", "description": "Run a request on a schedule, hourly to yearly, within a limit per run and per period. Each run reads the live web. Rechecks cost half.", "annotations": {"title": "Create a monitor", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": true}, "inputSchema": {"$defs": {"CalendarSchedule": {"additionalProperties": false, "properties": {"startAt": {"format": "date", "title": "Startat", "type": "string"}, "hour": {"maximum": 23, "minimum": 0, "title": "Hour", "type": "integer"}, "minute": {"default": 0, "maximum": 59, "minimum": 0, "title": "Minute", "type": "integer"}, "timezone": {"maxLength": 100, "minLength": 1, "title": "Timezone", "type": "string"}, "type": {"enum": ["hours", "days", "weeks", "months", "years"], "title": "Type", "type": "string"}, "interval": {"maximum": 1000, "minimum": 1, "title": "Interval", "type": "integer"}, "daysOfWeek": {"default": [], "items": {"maximum": 6, "minimum": 0, "type": "integer"}, "title": "Daysofweek", "type": "array"}}, "required": ["startAt", "hour", "timezone", "type", "interval"], "title": "CalendarSchedule", "type": "object"}, "CapacityQuoteRequest": {"additionalProperties": false, "properties": {"ast_hash": {"pattern": "^[0-9a-f]{64}$", "title": "Ast Hash", "type": "string"}, "operation": {"default": "find", "enum": ["find", "extend", "add_facts", "refresh", "retained"], "title": "Operation", "type": "string"}, "parent_find_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Parent Find Id"}, "revision_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Revision Id"}, "project_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}, "source_import_id": {"anyOf": [{"maxLength": 128, "minLength": 8, "type": "string"}, {"type": "null"}], "default": null, "title": "Source Import Id"}, "source_row_ids": {"items": {"type": "string"}, "maxItems": 2000, "title": "Source Row Ids", "type": "array"}, "requested_units": {"default": 25, "maximum": 10000, "minimum": 1, "title": "Requested Units", "type": "integer"}, "minimum_units": {"anyOf": [{"maximum": 10000, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Minimum Units"}, "selected_entity_ids": {"anyOf": [{"items": {"type": "string"}, "maxItems": 10000, "minItems": 1, "type": "array"}, {"type": "null"}], "default": null, "title": "Selected Entity Ids"}}, "required": ["ast_hash"], "title": "CapacityQuoteRequest", "type": "object"}}, "additionalProperties": false, "properties": {"idempotency_key": {"maxLength": 128, "minLength": 8, "title": "Idempotency Key", "type": "string"}, "scope": {"type": "object", "$ref": "#/$defs/CapacityQuoteRequest"}, "cadence_seconds": {"minimum": 3600, "title": "Cadence Seconds", "type": "integer"}, "first_due_at": {"format": "date-time", "title": "First Due At", "type": "string"}, "per_run_cents": {"exclusiveMinimum": 0, "title": "Per Run Cents", "type": "integer"}, "period_cents": {"exclusiveMinimum": 0, "title": "Period Cents", "type": "integer"}, "calendar_schedule": {"anyOf": [{"$ref": "#/$defs/CalendarSchedule"}, {"type": "null"}], "default": null}, "valid_until": {"format": "date-time", "title": "Valid Until", "type": "string"}}, "required": ["idempotency_key", "scope", "cadence_seconds", "first_due_at", "per_run_cents", "period_cents", "valid_until"], "title": "McpCreateCapacityScheduleArgs", "type": "object"}}, {"name": "list_capacity_schedules", "title": "List monitors", "description": "Read your monitors and whether each is running or paused.", "annotations": {"title": "List monitors", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"project_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}, "after": {"anyOf": [{"maxLength": 160, "type": "string"}, {"type": "null"}], "default": null, "title": "After"}, "limit": {"anyOf": [{"maximum": 100, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Limit"}}, "title": "McpListCapacitySchedulesArgs", "type": "object"}}, {"name": "update_capacity_schedule", "title": "Pause, resume or delete a monitor", "description": "Pause, resume or delete a monitor. Missed runs are never bought later.", "annotations": {"title": "Pause, resume or delete a monitor", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"expected_version": {"minimum": 1, "title": "Expected Version", "type": "integer"}, "state": {"enum": ["active", "paused", "deleted"], "title": "State", "type": "string"}, "schedule_id": {"minLength": 1, "title": "Schedule Id", "type": "string"}}, "required": ["expected_version", "state", "schedule_id"], "title": "McpUpdateCapacityScheduleArgs", "type": "object"}}, {"name": "list_capacity_occurrences", "title": "See each monitor run", "description": "Read a monitor's completed, blocked and missed runs, with the reason.", "annotations": {"title": "See each monitor run", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"schedule_id": {"minLength": 1, "title": "Schedule Id", "type": "string"}, "before": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Before"}, "limit": {"anyOf": [{"maximum": 100, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Limit"}}, "required": ["schedule_id"], "title": "McpListCapacityOccurrencesArgs", "type": "object"}}, {"name": "create_capacity_refund_claim", "title": "Report a wrong result", "description": "Send charged results that don't meet the request's conditions for review and a refund.", "annotations": {"title": "Report a wrong result", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"reservation_id": {"title": "Reservation Id", "type": "string"}, "unit_ids": {"items": {"type": "string"}, "maxItems": 10000, "minItems": 1, "title": "Unit Ids", "type": "array"}, "reason": {"maxLength": 2000, "minLength": 1, "title": "Reason", "type": "string"}, "idempotency_key": {"maxLength": 128, "minLength": 8, "title": "Idempotency Key", "type": "string"}}, "required": ["reservation_id", "unit_ids", "reason", "idempotency_key"], "title": "McpCreateCapacityRefundClaimArgs", "type": "object"}}, {"name": "get_capacity_refund_claim", "title": "Check a report", "description": "Read the status of a reported wrong result.", "annotations": {"title": "Check a report", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"claim_id": {"minLength": 1, "title": "Claim Id", "type": "string"}}, "required": ["claim_id"], "title": "McpGetCapacityRefundClaimArgs", "type": "object"}}, {"name": "create_api_key", "title": "Create an API key", "description": "Create an API key with permissions, an expiry date and a spending limit. Ask the account owner first.", "annotations": {"title": "Create an API key", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"name": {"default": "key", "maxLength": 120, "minLength": 1, "title": "Name", "type": "string"}, "scopes": {"items": {"enum": ["specs:read", "specs:write", "finds:read", "finds:write", "finds:spend", "projects:read", "projects:manage", "account:read"], "type": "string"}, "maxItems": 8, "title": "Scopes", "type": "array"}, "project_id": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}, "spend_cap_cents": {"default": 0, "maximum": 100000000, "minimum": 0, "title": "Spend Cap Cents", "type": "integer"}, "expires_in_days": {"default": 90, "maximum": 365, "minimum": 1, "title": "Expires In Days", "type": "integer"}}, "title": "McpCreateAccountKeyArgs", "type": "object"}}, {"name": "create_webhook", "title": "Add a webhook", "description": "Send a signed event to your URL when a run finishes, a monitor finds something new, or records are added. The signing secret is shown once.", "annotations": {"title": "Add a webhook", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"url": {"title": "Url", "type": "string"}, "event_name": {"default": "find.completed", "enum": ["find.completed", "monitor.found", "collection.records_added"], "title": "Event Name", "type": "string"}, "events": {"anyOf": [{"items": {"enum": ["find.completed", "monitor.found", "collection.records_added"], "type": "string"}, "maxItems": 3, "minItems": 1, "type": "array"}, {"type": "null"}], "default": null, "title": "Events"}}, "required": ["url"], "title": "McpCreateCustomerWebhookArgs", "type": "object"}}, {"name": "delegate_access", "title": "Delegate a budget", "description": "Let a key or project run specific work within a per-run and monthly limit.", "annotations": {"title": "Delegate a budget", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"actor_key": {"title": "Actor Key", "type": "string"}, "project_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}, "operations": {"items": {"enum": ["find", "extend", "add_facts", "refresh", "retained"], "type": "string"}, "minItems": 1, "title": "Operations", "type": "array"}, "scope_hash": {"anyOf": [{"pattern": "^[0-9a-f]{64}$", "type": "string"}, {"type": "null"}], "default": null, "title": "Scope Hash"}, "quote_id": {"anyOf": [{"maxLength": 128, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Quote Id"}, "per_run_cents": {"exclusiveMinimum": 0, "title": "Per Run Cents", "type": "integer"}, "period_cents": {"exclusiveMinimum": 0, "title": "Period Cents", "type": "integer"}, "valid_until": {"format": "date-time", "title": "Valid Until", "type": "string"}}, "required": ["actor_key", "operations", "per_run_cents", "period_cents", "valid_until"], "title": "McpCreateCapacityAuthorityArgs", "type": "object"}}, {"name": "request_account_deletion", "title": "Close the account", "description": "Close the account. Access ends at once and the data is erased seven days later.", "annotations": {"title": "Close the account", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {}, "title": "McpDeleteAccountArgs", "type": "object"}}, {"name": "invite_project_member", "title": "Invite someone to a project", "description": "Email a project invitation with a role, a spending limit and an expiry date.", "annotations": {"title": "Invite someone to a project", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"request_id": {"maxLength": 128, "minLength": 8, "title": "Request Id", "type": "string"}, "project_id": {"maxLength": 128, "minLength": 1, "title": "Project Id", "type": "string"}, "email": {"maxLength": 320, "minLength": 3, "title": "Email", "type": "string"}, "role": {"default": "editor", "enum": ["editor", "viewer"], "title": "Role", "type": "string"}, "monthly_spend_cap_cents": {"default": 0, "maximum": 100000000, "minimum": 0, "title": "Monthly Spend Cap Cents", "type": "integer"}, "expires_in_days": {"default": 7, "enum": [1, 7, 30], "title": "Expires In Days", "type": "integer"}}, "required": ["request_id", "project_id", "email"], "title": "McpWorkspaceInviteMemberArgs", "type": "object"}}, {"name": "filter_by_area", "title": "Filter by map area", "description": "Narrow a collection to the records inside an area on the map.", "annotations": {"title": "Filter by map area", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"record_ids": {"anyOf": [{"items": {"type": "string"}, "maxItems": 2000, "type": "array"}, {"type": "null"}], "default": null, "title": "Record Ids"}, "source_collection_ids": {"anyOf": [{"items": {"type": "string"}, "maxItems": 20, "type": "array"}, {"type": "null"}], "default": null, "title": "Source Collection Ids"}, "bbox": {"anyOf": [{"maxItems": 4, "minItems": 4, "prefixItems": [{"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}], "type": "array"}, {"type": "null"}], "default": null, "title": "Bbox"}, "collection_id": {"minLength": 1, "title": "Collection Id", "type": "string"}}, "required": ["collection_id"], "title": "McpWorkspaceFilterCollectionArgs", "type": "object"}}, {"name": "get_input_research", "title": "Review imported research", "description": "Read each original input row, the source-backed identity decision, unresolved namesakes and its delivered record. Name and location are search hints, not verified facts. Use this after researching an imported list; a missing identity must not be guessed or called a Match. No charge or new research.", "annotations": {"title": "Review imported research", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"find_id": {"minLength": 1, "title": "Find Id", "type": "string"}}, "required": ["find_id"], "title": "McpWorkspaceResearchInputArgs", "type": "object"}}, {"name": "set_schedule_delivery", "title": "Choose where a monitor reports", "description": "Choose where new and changed records go when a monitor finds them: notifications, Slack, a connected tool or a signed webhook. Nothing runs.", "annotations": {"title": "Choose where a monitor reports", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"notify": {"default": true, "title": "Notify", "type": "boolean"}, "slack": {"anyOf": [{"maxLength": 81, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Slack"}, "sendTo": {"anyOf": [{"maxLength": 64, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Sendto"}, "webhook": {"anyOf": [{"maxLength": 2048, "type": "string"}, {"type": "null"}], "default": null, "title": "Webhook"}, "expected_version": {"minimum": 1, "title": "Expected Version", "type": "integer"}, "schedule_id": {"minLength": 1, "title": "Schedule Id", "type": "string"}}, "required": ["expected_version", "schedule_id"], "title": "McpWorkspaceSetScheduleDeliveryArgs", "type": "object"}}, {"name": "list_collections", "title": "List collections", "description": "List the imported lists and results you can open.", "annotations": {"title": "List collections", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"project_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}, "after": {"anyOf": [{"maxLength": 128, "type": "string"}, {"type": "null"}], "default": null, "title": "After"}, "limit": {"anyOf": [{"maximum": 100, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Limit"}, "sort": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Sort"}}, "title": "McpWorkspaceListCollectionsArgs", "type": "object"}}, {"name": "get_collection", "title": "Open a collection", "description": "Read a collection's records, columns and saved views.", "annotations": {"title": "Open a collection", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"collection_id": {"minLength": 1, "title": "Collection Id", "type": "string"}}, "required": ["collection_id"], "title": "McpWorkspaceReadCollectionArgs", "type": "object"}}, {"name": "combine_collections", "title": "Combine lists", "description": "Merge collections you own into one, keeping each record once with its sources.", "annotations": {"title": "Combine lists", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"request_id": {"maxLength": 128, "minLength": 8, "pattern": "^[A-Za-z0-9_-]+$", "title": "Request Id", "type": "string"}, "name": {"maxLength": 120, "minLength": 1, "title": "Name", "type": "string"}, "collection_ids": {"items": {"type": "string"}, "maxItems": 20, "minItems": 2, "title": "Collection Ids", "type": "array"}, "project_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}}, "required": ["request_id", "name", "collection_ids"], "title": "McpWorkspaceCombineCollectionsArgs", "type": "object"}}, {"name": "filter_collection", "title": "Narrow a list", "description": "Keep the records you pick by ID, by source or by where they are.", "annotations": {"title": "Narrow a list", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"record_ids": {"anyOf": [{"items": {"type": "string"}, "maxItems": 2000, "type": "array"}, {"type": "null"}], "default": null, "title": "Record Ids"}, "source_collection_ids": {"anyOf": [{"items": {"type": "string"}, "maxItems": 20, "type": "array"}, {"type": "null"}], "default": null, "title": "Source Collection Ids"}, "bbox": {"anyOf": [{"maxItems": 4, "minItems": 4, "prefixItems": [{"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}], "type": "array"}, {"type": "null"}], "default": null, "title": "Bbox"}, "collection_id": {"minLength": 1, "title": "Collection Id", "type": "string"}}, "required": ["collection_id"], "title": "McpWorkspaceFilterCollectionArgs", "type": "object"}}, {"name": "list_views", "title": "List saved views", "description": "Read the views saved on a collection.", "annotations": {"title": "List saved views", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"collection_id": {"minLength": 1, "title": "Collection Id", "type": "string"}}, "required": ["collection_id"], "title": "McpWorkspaceListViewsArgs", "type": "object"}}, {"name": "save_view", "title": "Save a view", "description": "Keep the filters, columns, sort order and map area of a collection as a personal view.", "annotations": {"title": "Save a view", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"$defs": {"WorkspaceSavedView": {"additionalProperties": false, "properties": {"id": {"maxLength": 128, "minLength": 1, "title": "Id", "type": "string"}, "name": {"maxLength": 120, "minLength": 1, "title": "Name", "type": "string"}, "view": {"default": "table", "enum": ["table", "list", "map", "relationships", "compare", "history"], "title": "View", "type": "string"}, "query": {"default": "", "maxLength": 2000, "title": "Query", "type": "string"}, "status": {"default": "all", "maxLength": 80, "minLength": 1, "title": "Status", "type": "string"}, "area": {"anyOf": [{"items": {"maxItems": 2, "minItems": 2, "prefixItems": [{"type": "number"}, {"type": "number"}], "type": "array"}, "maxItems": 2, "minItems": 2, "type": "array"}, {"type": "null"}], "default": null, "title": "Area"}, "hiddenColumns": {"items": {"type": "string"}, "maxItems": 128, "title": "Hiddencolumns", "type": "array"}, "sorting": {"anyOf": [{"$ref": "#/$defs/WorkspaceViewSorting"}, {"type": "null"}], "default": null}}, "required": ["id", "name"], "title": "WorkspaceSavedView", "type": "object"}, "WorkspaceViewSorting": {"additionalProperties": false, "properties": {"columnKey": {"maxLength": 128, "minLength": 1, "title": "Columnkey", "type": "string"}, "order": {"title": "Order", "type": "integer"}}, "required": ["columnKey", "order"], "title": "WorkspaceViewSorting", "type": "object"}}, "additionalProperties": false, "properties": {"expected_version": {"minimum": 0, "title": "Expected Version", "type": "integer"}, "view": {"type": "object", "$ref": "#/$defs/WorkspaceSavedView"}, "collection_id": {"minLength": 1, "title": "Collection Id", "type": "string"}}, "required": ["expected_version", "view", "collection_id"], "title": "McpWorkspaceSaveViewArgs", "type": "object"}}, {"name": "list_starred", "title": "List starred work", "description": "Read the requests, collections and projects you starred.", "annotations": {"title": "List starred work", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {}, "title": "McpWorkspaceListStarsArgs", "type": "object"}}, {"name": "star_item", "title": "Star something", "description": "Star or unstar a request, collection or project so it shows in the sidebar.", "annotations": {"title": "Star something", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"$defs": {"WorkspaceStarItem": {"additionalProperties": false, "properties": {"id": {"maxLength": 128, "minLength": 1, "title": "Id", "type": "string"}, "name": {"maxLength": 240, "minLength": 1, "title": "Name", "type": "string"}, "route": {"maxLength": 512, "minLength": 1, "title": "Route", "type": "string"}}, "required": ["id", "name", "route"], "title": "WorkspaceStarItem", "type": "object"}}, "additionalProperties": false, "properties": {"expected_version": {"minimum": 0, "title": "Expected Version", "type": "integer"}, "item": {"type": "object", "$ref": "#/$defs/WorkspaceStarItem"}, "starred": {"title": "Starred", "type": "boolean"}}, "required": ["expected_version", "item", "starred"], "title": "McpWorkspaceStarItemArgs", "type": "object"}}, {"name": "list_notes", "title": "Read notes", "description": "Read the notes on a project or a record.", "annotations": {"title": "Read notes", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"project_id": {"anyOf": [{"maxLength": 128, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}, "collection_id": {"anyOf": [{"maxLength": 128, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Collection Id"}, "record_id": {"anyOf": [{"maxLength": 128, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Record Id"}}, "title": "McpWorkspaceListNotesArgs", "type": "object"}}, {"name": "add_note", "title": "Leave a note", "description": "Add a note to a project or a record. Anyone you @mention gets an email.", "annotations": {"title": "Leave a note", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"project_id": {"anyOf": [{"maxLength": 128, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}, "collection_id": {"anyOf": [{"maxLength": 128, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Collection Id"}, "record_id": {"anyOf": [{"maxLength": 128, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Record Id"}, "expected_version": {"minimum": 0, "title": "Expected Version", "type": "integer"}, "id": {"maxLength": 128, "minLength": 1, "title": "Id", "type": "string"}, "text": {"maxLength": 8000, "minLength": 1, "title": "Text", "type": "string"}}, "required": ["expected_version", "id", "text"], "title": "McpWorkspaceAddNoteArgs", "type": "object"}}, {"name": "resolve_note", "title": "Resolve a note", "description": "Mark a note done, or reopen it.", "annotations": {"title": "Resolve a note", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"project_id": {"anyOf": [{"maxLength": 128, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}, "collection_id": {"anyOf": [{"maxLength": 128, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Collection Id"}, "record_id": {"anyOf": [{"maxLength": 128, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Record Id"}, "expected_version": {"minimum": 1, "title": "Expected Version", "type": "integer"}, "resolved": {"title": "Resolved", "type": "boolean"}, "note_id": {"minLength": 1, "title": "Note Id", "type": "string"}}, "required": ["expected_version", "resolved", "note_id"], "title": "McpWorkspaceResolveNoteArgs", "type": "object"}}, {"name": "list_your_fields", "title": "Read your fields", "description": "Read the status, checkbox and text fields your team added to a collection.", "annotations": {"title": "Read your fields", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"collection_id": {"minLength": 1, "title": "Collection Id", "type": "string"}}, "required": ["collection_id"], "title": "McpWorkspaceListYourFieldsArgs", "type": "object"}}, {"name": "save_your_fields", "title": "Add, rename or remove your fields", "description": "Add, rename or remove your own fields on a collection. Removing a field deletes its values.", "annotations": {"title": "Add, rename or remove your fields", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": false}, "inputSchema": {"$defs": {"YourField": {"additionalProperties": false, "properties": {"key": {"maxLength": 96, "minLength": 10, "title": "Key", "type": "string"}, "label": {"maxLength": 80, "minLength": 1, "title": "Label", "type": "string"}, "type": {"enum": ["choice", "check", "text"], "title": "Type", "type": "string"}, "options": {"anyOf": [{"items": {"type": "string"}, "maxItems": 20, "minItems": 1, "type": "array"}, {"type": "null"}], "default": null, "title": "Options"}}, "required": ["key", "label", "type"], "title": "YourField", "type": "object"}}, "additionalProperties": false, "properties": {"expected_version": {"minimum": 0, "title": "Expected Version", "type": "integer"}, "fields": {"items": {"$ref": "#/$defs/YourField"}, "maxItems": 30, "title": "Fields", "type": "array"}, "collection_id": {"minLength": 1, "title": "Collection Id", "type": "string"}}, "required": ["expected_version", "fields", "collection_id"], "title": "McpWorkspaceSaveYourFieldsArgs", "type": "object"}}, {"name": "set_your_field", "title": "Mark records", "description": "Set or clear one of your own fields on the records you choose, like a status of Called.", "annotations": {"title": "Mark records", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"expected_version": {"minimum": 0, "title": "Expected Version", "type": "integer"}, "record_ids": {"items": {"type": "string"}, "maxItems": 2000, "minItems": 1, "title": "Record Ids", "type": "array"}, "key": {"maxLength": 96, "minLength": 10, "title": "Key", "type": "string"}, "value": {"anyOf": [{"type": "string"}, {"type": "boolean"}, {"type": "null"}], "default": null, "title": "Value"}, "collection_id": {"minLength": 1, "title": "Collection Id", "type": "string"}}, "required": ["expected_version", "record_ids", "key", "collection_id"], "title": "McpWorkspaceSetYourFieldValueArgs", "type": "object"}}, {"name": "list_connections", "title": "List connected tools", "description": "List the spreadsheets, databases, CRMs and automation tools this account connected.", "annotations": {"title": "List connected tools", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {}, "title": "McpListConnectionsArgs", "type": "object"}}, {"name": "list_connection_destinations", "title": "Pick where records go", "description": "List the sheets, tables, bases and CRM objects in a connected account.", "annotations": {"title": "Pick where records go", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"connection_id": {"minLength": 1, "title": "Connection Id", "type": "string"}, "base_id": {"anyOf": [{"maxLength": 200, "type": "string"}, {"type": "null"}], "default": null, "title": "Base Id"}, "cursor": {"anyOf": [{"maxLength": 4096, "type": "string"}, {"type": "null"}], "default": null, "title": "Cursor"}}, "required": ["connection_id"], "title": "McpListConnectionDestinationsArgs", "type": "object"}}, {"name": "get_connection_columns", "title": "Read a destination's fields", "description": "Read the columns or properties a destination has, in the tool's own words. Nothing is sent.", "annotations": {"title": "Read a destination's fields", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"selection": {"additionalProperties": true, "title": "Selection", "type": "object"}, "connection_id": {"minLength": 1, "title": "Connection Id", "type": "string"}}, "required": ["selection", "connection_id"], "title": "McpGetConnectionColumnsArgs", "type": "object"}}, {"name": "save_connection_destination", "title": "Save a field mapping", "description": "Save which fact goes into which field of a destination, for every send after this one.", "annotations": {"title": "Save a field mapping", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"selection": {"additionalProperties": true, "title": "Selection", "type": "object"}, "connection_id": {"minLength": 1, "title": "Connection Id", "type": "string"}}, "required": ["selection", "connection_id"], "title": "McpSaveConnectionDestinationArgs", "type": "object"}}, {"name": "send_to_destination", "title": "Send records to a tool", "description": "Write the selected results to Google Sheets, Excel, Airtable, Notion, HubSpot, Salesforce or Outlook drafts with the saved field mapping. A CRM updates the records it already has.", "annotations": {"title": "Send records to a tool", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"find_id": {"maxLength": 128, "minLength": 5, "title": "Find Id", "type": "string"}, "entity_ids": {"items": {"type": "string"}, "maxItems": 2000, "minItems": 1, "title": "Entity Ids", "type": "array"}, "destination_sha256": {"pattern": "^[0-9a-f]{64}$", "title": "Destination Sha256", "type": "string"}, "connection_id": {"minLength": 1, "title": "Connection Id", "type": "string"}}, "required": ["find_id", "entity_ids", "destination_sha256", "connection_id"], "title": "McpSendToDestinationArgs", "type": "object"}}, {"name": "reconcile_destination_export", "title": "Check an uncertain send", "description": "Check what arrived in a destination before anything is sent twice.", "annotations": {"title": "Check an uncertain send", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"connection_id": {"minLength": 1, "title": "Connection Id", "type": "string"}, "export_id": {"minLength": 1, "title": "Export Id", "type": "string"}}, "required": ["connection_id", "export_id"], "title": "McpReconcileDestinationExportArgs", "type": "object"}}, {"name": "create_destination_sync", "title": "Keep a tool up to date", "description": "Keep sending new and changed records to the same destination with the same mapping.", "annotations": {"title": "Keep a tool up to date", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"connection_id": {"maxLength": 128, "minLength": 5, "title": "Connection Id", "type": "string"}, "collectionId": {"maxLength": 128, "minLength": 5, "title": "Collectionid", "type": "string"}, "destination_sha256": {"pattern": "^[0-9a-f]{64}$", "title": "Destination Sha256", "type": "string"}, "keepSending": {"default": true, "title": "Keepsending", "type": "boolean"}}, "required": ["connection_id", "collectionId", "destination_sha256"], "title": "McpCreateDestinationSyncArgs", "type": "object"}}, {"name": "update_destination_sync", "title": "Start or stop sending", "description": "Start or stop continuous sending to a destination.", "annotations": {"title": "Start or stop sending", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"keepSending": {"title": "Keepsending", "type": "boolean"}, "sync_id": {"minLength": 1, "title": "Sync Id", "type": "string"}}, "required": ["keepSending", "sync_id"], "title": "McpUpdateDestinationSyncArgs", "type": "object"}}, {"name": "list_destination_syncs", "title": "List continuous sends", "description": "Read every destination that receives new records, and whether it is on.", "annotations": {"title": "List continuous sends", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {}, "title": "McpListDestinationSyncsArgs", "type": "object"}}, {"name": "list_destination_exports", "title": "Read what was sent", "description": "Read each send: where it went, how many records arrived, and which were updated or skipped.", "annotations": {"title": "Read what was sent", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {}, "title": "McpListDestinationExportsArgs", "type": "object"}}, {"name": "list_connected_tools", "title": "See tools you can connect", "description": "List the sheets, databases, CRMs, automation and chat tools SpecStream can send to.", "annotations": {"title": "See tools you can connect", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {}, "title": "McpListConnectedToolsArgs", "type": "object"}}, {"name": "import_from_source", "title": "Import from a connected sheet", "description": "Import a Google Sheet, Excel workbook or Airtable view, and optionally check it every day for new and changed rows.", "annotations": {"title": "Import from a connected sheet", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"connection_id": {"maxLength": 128, "minLength": 5, "title": "Connection Id", "type": "string"}, "import_id": {"maxLength": 128, "minLength": 8, "pattern": "^[A-Za-z0-9_-]+$", "title": "Import Id", "type": "string"}, "name": {"maxLength": 120, "minLength": 1, "title": "Name", "type": "string"}, "project_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}, "link": {"maxLength": 4096, "minLength": 10, "title": "Link", "type": "string"}, "keepUpdated": {"default": true, "title": "Keepupdated", "type": "boolean"}, "mapping": {"additionalProperties": {"type": "string"}, "maxProperties": 100, "title": "Mapping", "type": "object"}, "source_sha256": {"anyOf": [{"pattern": "^[0-9a-f]{64}$", "type": "string"}, {"type": "null"}], "default": null, "title": "Source Sha256"}, "identity_column": {"anyOf": [{"maxLength": 200, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Identity Column"}, "sheet_id": {"anyOf": [{"maxLength": 200, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Sheet Id"}}, "required": ["connection_id", "import_id", "name", "link"], "title": "McpImportCloudListArgs", "type": "object"}}, {"name": "preview_cloud_list", "title": "Preview a connected sheet", "description": "Read the first rows and columns of a Google Sheet, Excel workbook or Airtable view before importing it.", "annotations": {"title": "Preview a connected sheet", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"connection_id": {"maxLength": 128, "minLength": 5, "title": "Connection Id", "type": "string"}, "link": {"maxLength": 4096, "minLength": 10, "title": "Link", "type": "string"}, "sheet_id": {"anyOf": [{"maxLength": 200, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Sheet Id"}}, "required": ["connection_id", "link"], "title": "McpPreviewCloudListArgs", "type": "object"}}, {"name": "list_cloud_imports", "title": "List linked sheets", "description": "Read the sheets and tables you linked, and when each was last checked.", "annotations": {"title": "List linked sheets", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {}, "title": "McpListCloudImportsArgs", "type": "object"}}, {"name": "update_cloud_import", "title": "Start or stop daily checks", "description": "Turn the daily check for new and changed rows on or off for a linked sheet.", "annotations": {"title": "Start or stop daily checks", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"keepUpdated": {"title": "Keepupdated", "type": "boolean"}, "import_id": {"minLength": 1, "title": "Import Id", "type": "string"}}, "required": ["keepUpdated", "import_id"], "title": "McpUpdateCloudImportArgs", "type": "object"}}, {"name": "import_csv", "title": "Import a CSV or Excel file", "description": "Bring in your own list with names, websites, places and any other columns. Nothing is researched or charged. Then quote a find with source_import_id to fill in details or check each row.", "annotations": {"title": "Import a CSV or Excel file", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"import_id": {"maxLength": 128, "minLength": 8, "pattern": "^[A-Za-z0-9_-]+$", "title": "Import Id", "type": "string"}, "name": {"maxLength": 120, "minLength": 1, "title": "Name", "type": "string"}, "format": {"pattern": "^(csv|xlsx)$", "title": "Format", "type": "string"}, "project_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}, "sheet": {"anyOf": [{"maxLength": 31, "type": "string"}, {"type": "null"}], "default": null, "title": "Sheet"}, "content": {"anyOf": [{"maxLength": 20000000, "type": "string"}, {"type": "null"}], "default": null, "title": "Content"}, "content_base64": {"anyOf": [{"maxLength": 26666668, "type": "string"}, {"type": "null"}], "default": null, "title": "Content Base64"}, "mapping": {"anyOf": [{"additionalProperties": {"type": "string"}, "maxProperties": 100, "type": "object"}, {"type": "null"}], "default": null, "title": "Mapping"}}, "required": ["import_id", "name", "format"], "title": "McpImportFileCommandArgs", "type": "object"}}, {"name": "list_activity", "title": "Read activity", "description": "Read what happened across the account and its projects, and who did it.", "annotations": {"title": "Read activity", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"project_id": {"anyOf": [{"maxLength": 128, "type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}, "cursor": {"anyOf": [{"maxLength": 4096, "type": "string"}, {"type": "null"}], "default": null, "title": "Cursor"}, "limit": {"anyOf": [{"maximum": 100, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Limit"}}, "title": "McpWorkspaceActivityArgs", "type": "object"}}, {"name": "get_relationships", "title": "See what records share", "description": "Group records by the values they share in a column.", "annotations": {"title": "See what records share", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"collection_id": {"minLength": 1, "title": "Collection Id", "type": "string"}, "field_id": {"anyOf": [{"maxLength": 200, "type": "string"}, {"type": "null"}], "default": null, "title": "Field Id"}}, "required": ["collection_id"], "title": "McpWorkspaceRelationshipsArgs", "type": "object"}}, {"name": "save_relationships", "title": "Connect records by a column", "description": "Save the column that links records, such as a city, an owner or a supplier.", "annotations": {"title": "Connect records by a column", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"expected_version": {"minimum": 0, "title": "Expected Version", "type": "integer"}, "field_id": {"maxLength": 200, "minLength": 1, "title": "Field Id", "type": "string"}, "label": {"maxLength": 120, "minLength": 1, "title": "Label", "type": "string"}, "collection_id": {"minLength": 1, "title": "Collection Id", "type": "string"}}, "required": ["expected_version", "field_id", "label", "collection_id"], "title": "McpWorkspaceSaveRelationshipsArgs", "type": "object"}}, {"name": "report_wrong_result", "title": "Report a result in a list", "description": "Report a charged result in a list that is wrong, within 7 days, for review and a refund.", "annotations": {"title": "Report a result in a list", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"request_id": {"maxLength": 128, "minLength": 8, "title": "Request Id", "type": "string"}, "record_id": {"maxLength": 2048, "minLength": 1, "title": "Record Id", "type": "string"}, "check": {"maxLength": 500, "minLength": 1, "title": "Check", "type": "string"}, "truth": {"maxLength": 1200, "minLength": 1, "title": "Truth", "type": "string"}, "link": {"anyOf": [{"maxLength": 2048, "type": "string"}, {"type": "null"}], "default": null, "title": "Link"}, "collection_id": {"minLength": 1, "title": "Collection Id", "type": "string"}}, "required": ["request_id", "record_id", "check", "truth", "collection_id"], "title": "McpWorkspaceReportResultArgs", "type": "object"}}, {"name": "list_request_templates", "title": "Start from an example", "description": "List example requests that already work for each kind of record. Edit one, then understand and quote it before anything runs.", "annotations": {"title": "Start from an example", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"record_type": {"anyOf": [{"maxLength": 64, "type": "string"}, {"type": "null"}], "default": null, "title": "Record Type"}}, "title": "McpListRequestTemplatesArgs", "type": "object"}}, {"name": "get_collection_changes", "title": "See what changed", "description": "Compare a list with its earlier results: each changed fact, before and after, and where it was seen.", "annotations": {"title": "See what changed", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"collection_id": {"minLength": 1, "title": "Collection Id", "type": "string"}}, "required": ["collection_id"], "title": "McpWorkspaceCollectionChangesArgs", "type": "object"}}, {"name": "teach_web_source", "title": "Teach a website source", "description": "Read one public page and learn its records from 3 to 8 example rows the user copied from it. Show the user the preview's explanation: how each field is read, which rows are their examples and which were inferred, and what happens when the page changes.", "annotations": {"title": "Teach a website source", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"url": {"maxLength": 4096, "minLength": 8, "title": "Url", "type": "string"}, "name": {"maxLength": 120, "minLength": 1, "title": "Name", "type": "string"}, "name_column": {"default": "name", "maxLength": 80, "minLength": 1, "title": "Name Column", "type": "string"}, "examples": {"items": {"additionalProperties": {"type": "string"}, "type": "object"}, "maxItems": 8, "minItems": 3, "title": "Examples", "type": "array"}, "exclude": {"items": {"type": "string"}, "maxItems": 16, "title": "Exclude", "type": "array"}, "project_id": {"anyOf": [{"maxLength": 128, "type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}}, "required": ["url", "name", "examples"], "title": "McpTeachWebSourceArgs", "type": "object"}}, {"name": "list_web_sources", "title": "List website sources", "description": "List the website sources saved in a project.", "annotations": {"title": "List website sources", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {}, "title": "McpListWebSourcesArgs", "type": "object"}}, {"name": "get_web_source", "title": "Read a website source", "description": "Read a saved website source and how each column is read.", "annotations": {"title": "Read a website source", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"source_id": {"minLength": 1, "title": "Source Id", "type": "string"}}, "required": ["source_id"], "title": "McpGetWebSourceArgs", "type": "object"}}, {"name": "preview_web_source", "title": "Read a website source again", "description": "Read a saved source's page again and preview its rows. Earlier lists stay unchanged.", "annotations": {"title": "Read a website source again", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"source_id": {"minLength": 1, "title": "Source Id", "type": "string"}}, "required": ["source_id"], "title": "McpPreviewWebSourceArgs", "type": "object"}}, {"name": "get_web_source_preview", "title": "Read a source preview", "description": "Read one source preview with its rows, cell locations and field explanations.", "annotations": {"title": "Read a source preview", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"preview_id": {"minLength": 1, "title": "Preview Id", "type": "string"}}, "required": ["preview_id"], "title": "McpGetWebSourcePreviewArgs", "type": "object"}}, {"name": "save_web_source_list", "title": "Save a source preview as a list", "description": "Save a preview the user reviewed as an imported list, using its preview hash. Saving does not research or spend.", "annotations": {"title": "Save a source preview as a list", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"preview_id": {"maxLength": 128, "minLength": 8, "title": "Preview Id", "type": "string"}, "preview_hash": {"pattern": "^[0-9a-f]{64}$", "title": "Preview Hash", "type": "string"}, "import_id": {"maxLength": 128, "minLength": 8, "pattern": "^[A-Za-z0-9_-]+$", "title": "Import Id", "type": "string"}, "name": {"maxLength": 120, "minLength": 1, "title": "Name", "type": "string"}, "mapping": {"additionalProperties": {"type": "string"}, "title": "Mapping", "type": "object"}}, "required": ["preview_id", "preview_hash", "import_id", "name"], "title": "McpSaveWebSourceListArgs", "type": "object"}}, {"name": "get_reconciliation_fields", "title": "List fields to match on", "description": "Read the fields of a list the user can open, with examples, to choose which fields to match against another list. Changes nothing.", "annotations": {"title": "List fields to match on", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"collection_id": {"minLength": 1, "title": "Collection Id", "type": "string"}}, "required": ["collection_id"], "title": "McpGetReconciliationFieldsArgs", "type": "object"}}, {"name": "list_reconciliations", "title": "List recent comparisons", "description": "List the latest comparisons that include a list. Comparisons are kept for 30 days; a list filled from one is kept as its own list.", "annotations": {"title": "List recent comparisons", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"collection_id": {"minLength": 1, "title": "Collection Id", "type": "string"}}, "required": ["collection_id"], "title": "McpListReconciliationsArgs", "type": "object"}}, {"name": "prepare_reconciliation", "title": "Compare two lists", "description": "Propose which rows in one list correspond to rows in another, using matching groups of exact or close-spelling rules (any group can match; every rule in a group must agree) and conflict fields that rule a pair out. Shows alternatives, conflicts and missing values. A close spelling is not proof of the same company, and one candidate is not permission to choose it. No search and no charge.", "annotations": {"title": "Compare two lists", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"$defs": {"ReconciliationFill": {"additionalProperties": false, "properties": {"right_field": {"maxLength": 160, "minLength": 1, "title": "Right Field", "type": "string"}, "output_field": {"maxLength": 120, "minLength": 1, "title": "Output Field", "type": "string"}}, "required": ["right_field", "output_field"], "title": "ReconciliationFill", "type": "object"}, "ReconciliationGroup": {"additionalProperties": false, "properties": {"rules": {"items": {"$ref": "#/$defs/ReconciliationRule"}, "maxItems": 6, "minItems": 1, "title": "Rules", "type": "array"}}, "required": ["rules"], "title": "ReconciliationGroup", "type": "object"}, "ReconciliationRule": {"additionalProperties": false, "properties": {"left_field": {"maxLength": 160, "minLength": 1, "title": "Left Field", "type": "string"}, "right_field": {"maxLength": 160, "minLength": 1, "title": "Right Field", "type": "string"}, "mode": {"default": "edit", "enum": ["exact", "edit"], "title": "Mode", "type": "string"}, "threshold_bps": {"default": 8500, "maximum": 10000, "minimum": 5000, "title": "Threshold Bps", "type": "integer"}, "normalization": {"default": "nfkc_casefold_space", "enum": ["literal", "nfkc_casefold_space"], "title": "Normalization", "type": "string"}}, "required": ["left_field", "right_field"], "title": "ReconciliationRule", "type": "object"}, "ReconciliationScope": {"additionalProperties": false, "properties": {"collection_id": {"maxLength": 128, "minLength": 1, "title": "Collection Id", "type": "string"}, "record_ids": {"anyOf": [{"items": {"type": "string"}, "maxItems": 5000, "minItems": 1, "type": "array"}, {"type": "null"}], "default": null, "title": "Record Ids"}}, "required": ["collection_id"], "title": "ReconciliationScope", "type": "object"}, "ReconciliationVeto": {"additionalProperties": false, "properties": {"left_field": {"maxLength": 160, "minLength": 1, "title": "Left Field", "type": "string"}, "right_field": {"maxLength": 160, "minLength": 1, "title": "Right Field", "type": "string"}, "normalization": {"default": "nfkc_casefold_space", "enum": ["literal", "nfkc_casefold_space"], "title": "Normalization", "type": "string"}}, "required": ["left_field", "right_field"], "title": "ReconciliationVeto", "type": "object"}}, "additionalProperties": false, "properties": {"request_id": {"maxLength": 128, "minLength": 8, "title": "Request Id", "type": "string"}, "name": {"maxLength": 120, "minLength": 1, "title": "Name", "type": "string"}, "project_id": {"anyOf": [{"maxLength": 128, "type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}, "left": {"type": "object", "$ref": "#/$defs/ReconciliationScope"}, "right": {"type": "object", "$ref": "#/$defs/ReconciliationScope"}, "groups": {"items": {"$ref": "#/$defs/ReconciliationGroup"}, "maxItems": 4, "minItems": 1, "title": "Groups", "type": "array"}, "vetoes": {"default": [], "items": {"$ref": "#/$defs/ReconciliationVeto"}, "maxItems": 6, "title": "Vetoes", "type": "array"}, "fill": {"items": {"$ref": "#/$defs/ReconciliationFill"}, "maxItems": 12, "minItems": 1, "title": "Fill", "type": "array"}, "assignment": {"default": "one_to_one", "enum": ["one_to_one", "many_to_one"], "title": "Assignment", "type": "string"}, "include_private_fields": {"default": false, "title": "Include Private Fields", "type": "boolean"}}, "required": ["request_id", "name", "left", "right", "groups", "fill"], "title": "McpPrepareReconciliationArgs", "type": "object"}}, {"name": "get_reconciliation", "title": "Read a comparison", "description": "Read the proposed pairs, alternatives, conflicts and missing values of a comparison. Refuses if either list changed since it was prepared.", "annotations": {"title": "Read a comparison", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"comparison_id": {"minLength": 1, "title": "Comparison Id", "type": "string"}}, "required": ["comparison_id"], "title": "McpGetReconciliationArgs", "type": "object"}}, {"name": "apply_reconciliation", "title": "Fill a list from chosen pairs", "description": "Only after the user chooses the pairs: fill empty cells into a NEW list from the chosen counterpart rows, using the exact comparison hash. Original cells and lists stay unchanged and unmatched rows are kept. Filled cells are inputs, not checked results; researching them needs a normal quote and approval.", "annotations": {"title": "Fill a list from chosen pairs", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"$defs": {"ReconciliationChoice": {"additionalProperties": false, "properties": {"left_record_id": {"maxLength": 128, "minLength": 1, "title": "Left Record Id", "type": "string"}, "right_record_id": {"maxLength": 128, "minLength": 1, "title": "Right Record Id", "type": "string"}}, "required": ["left_record_id", "right_record_id"], "title": "ReconciliationChoice", "type": "object"}}, "additionalProperties": false, "properties": {"comparison_hash": {"pattern": "^[0-9a-f]{64}$", "title": "Comparison Hash", "type": "string"}, "import_id": {"maxLength": 128, "minLength": 8, "pattern": "^[A-Za-z0-9_-]+$", "title": "Import Id", "type": "string"}, "name": {"maxLength": 120, "minLength": 1, "title": "Name", "type": "string"}, "choices": {"items": {"$ref": "#/$defs/ReconciliationChoice"}, "maxItems": 5000, "minItems": 1, "title": "Choices", "type": "array"}, "comparison_id": {"minLength": 1, "title": "Comparison Id", "type": "string"}}, "required": ["comparison_hash", "import_id", "name", "choices", "comparison_id"], "title": "McpApplyReconciliationArgs", "type": "object"}}, {"name": "get_reconciled_input", "title": "Read where filled cells came from", "description": "Read, for a list made by apply_reconciliation, which chosen pair filled each cell.", "annotations": {"title": "Read where filled cells came from", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"import_id": {"minLength": 1, "title": "Import Id", "type": "string"}}, "required": ["import_id"], "title": "McpGetReconciledInputArgs", "type": "object"}}, {"name": "list_investigation_functions", "title": "List requests that run per row", "description": "List the saved requests in this project that can run once per row.", "annotations": {"title": "List requests that run per row", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"project_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}}, "title": "McpListInvestigationFunctionsArgs", "type": "object"}}, {"name": "create_investigation_function", "title": "Make a request run per row", "description": "Make a saved request run once per row by turning some of its values into typed inputs. Nothing runs and nothing is charged.", "annotations": {"title": "Make a request run per row", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"$defs": {"InvestigationParameter": {"additionalProperties": false, "properties": {"name": {"pattern": "^[a-z][a-z0-9_]{0,39}$", "title": "Name", "type": "string"}, "label": {"maxLength": 100, "minLength": 1, "title": "Label", "type": "string"}, "paths": {"items": {"type": "string"}, "maxItems": 8, "minItems": 1, "title": "Paths", "type": "array"}, "value_type": {"enum": ["text", "integer", "number", "boolean", "url"], "title": "Value Type", "type": "string"}, "prefix": {"default": "", "maxLength": 500, "title": "Prefix", "type": "string"}, "suffix": {"default": "", "maxLength": 500, "title": "Suffix", "type": "string"}}, "required": ["name", "label", "paths", "value_type"], "title": "InvestigationParameter", "type": "object"}}, "additionalProperties": false, "properties": {"name": {"maxLength": 120, "minLength": 1, "title": "Name", "type": "string"}, "spec_id": {"maxLength": 128, "minLength": 1, "title": "Spec Id", "type": "string"}, "revision_id": {"maxLength": 128, "minLength": 1, "title": "Revision Id", "type": "string"}, "parameters": {"items": {"$ref": "#/$defs/InvestigationParameter"}, "maxItems": 8, "minItems": 1, "title": "Parameters", "type": "array"}}, "required": ["name", "spec_id", "revision_id", "parameters"], "title": "McpCreateInvestigationFunctionArgs", "type": "object"}}, {"name": "get_investigation_function", "title": "Read a request that runs per row", "description": "Read the saved request and its typed inputs.", "annotations": {"title": "Read a request that runs per row", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"function_id": {"minLength": 1, "title": "Function Id", "type": "string"}}, "required": ["function_id"], "title": "McpGetInvestigationFunctionArgs", "type": "object"}}, {"name": "get_investigation_parameters", "title": "List a request's possible inputs", "description": "List the values in a saved request that can become inputs.", "annotations": {"title": "List a request's possible inputs", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"spec_id": {"minLength": 1, "title": "Spec Id", "type": "string"}, "revision_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Revision Id"}}, "required": ["spec_id"], "title": "McpGetInvestigationParametersArgs", "type": "object"}}, {"name": "get_investigation_inputs", "title": "List a list's columns for inputs", "description": "List the columns of a list with example values, to choose which column feeds each input.", "annotations": {"title": "List a list's columns for inputs", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"collection_id": {"minLength": 1, "title": "Collection Id", "type": "string"}}, "required": ["collection_id"], "title": "McpGetInvestigationInputsArgs", "type": "object"}}, {"name": "list_collection_investigations", "title": "List runs over a list", "description": "List the recent runs started from this list.", "annotations": {"title": "List runs over a list", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"collection_id": {"minLength": 1, "title": "Collection Id", "type": "string"}}, "required": ["collection_id"], "title": "McpListCollectionInvestigationsArgs", "type": "object"}}, {"name": "prepare_investigation_batch", "title": "Quote a run over list rows", "description": "Bind the selected rows to the inputs and return one quote: the distinct searches, rows with missing inputs, searches reused from earlier work, and one maximum. Nothing runs yet.", "annotations": {"title": "Quote a run over list rows", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"$defs": {"InvestigationBinding": {"additionalProperties": false, "properties": {"field": {"anyOf": [{"maxLength": 300, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Field"}, "value": {"anyOf": [{"type": "string"}, {"type": "integer"}, {"type": "number"}, {"type": "boolean"}, {"type": "null"}], "default": null, "title": "Value"}}, "title": "InvestigationBinding", "type": "object"}}, "additionalProperties": false, "properties": {"request_id": {"maxLength": 128, "minLength": 8, "title": "Request Id", "type": "string"}, "function_id": {"maxLength": 128, "minLength": 1, "title": "Function Id", "type": "string"}, "collection_id": {"maxLength": 128, "minLength": 1, "title": "Collection Id", "type": "string"}, "record_ids": {"items": {"type": "string"}, "maxItems": 200, "minItems": 1, "title": "Record Ids", "type": "array"}, "bindings": {"additionalProperties": {"$ref": "#/$defs/InvestigationBinding"}, "maxProperties": 8, "minProperties": 1, "title": "Bindings", "type": "object"}, "reuse_completed": {"default": true, "title": "Reuse Completed", "type": "boolean"}}, "required": ["request_id", "function_id", "collection_id", "record_ids", "bindings"], "title": "McpPrepareInvestigationBatchArgs", "type": "object"}}, {"name": "get_investigation_batch", "title": "Read a run over list rows", "description": "Read each input row, its search status and the list it led to.", "annotations": {"title": "Read a run over list rows", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"batch_id": {"minLength": 1, "title": "Batch Id", "type": "string"}}, "required": ["batch_id"], "title": "McpGetInvestigationBatchArgs", "type": "object"}}, {"name": "approve_investigation_batch", "title": "Approve a run over list rows", "description": "Approve the quote's exact maximum. The searches then run as ordinary finds, within that maximum.", "annotations": {"title": "Approve a run over list rows", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"quote_hash": {"pattern": "^[0-9a-f]{64}$", "title": "Quote Hash", "type": "string"}, "confirm_max_cents": {"minimum": 0, "title": "Confirm Max Cents", "type": "integer"}, "batch_id": {"minLength": 1, "title": "Batch Id", "type": "string"}}, "required": ["quote_hash", "confirm_max_cents", "batch_id"], "title": "McpApproveInvestigationBatchArgs", "type": "object"}}, {"name": "cancel_investigation_batch", "title": "Stop a run over list rows", "description": "Stop searches that haven't started and cancel running ones where possible. Finished results stay yours.", "annotations": {"title": "Stop a run over list rows", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"batch_id": {"minLength": 1, "title": "Batch Id", "type": "string"}}, "required": ["batch_id"], "title": "McpCancelInvestigationBatchArgs", "type": "object"}}, {"name": "get_investigation_results", "title": "Read a run's results by row", "description": "Read each input row with the results it led to, including their sources. Input values are never treated as sources for results.", "annotations": {"title": "Read a run's results by row", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"batch_id": {"minLength": 1, "title": "Batch Id", "type": "string"}}, "required": ["batch_id"], "title": "McpGetInvestigationResultsArgs", "type": "object"}}, {"name": "prepare_research_rule", "title": "Prepare automatic research", "description": "Prepare a rule that researches rows when they first become ready or when their inputs change, with a per-run and a total spending limit. Nothing runs until it's approved.", "annotations": {"title": "Prepare automatic research", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"$defs": {"InvestigationBinding": {"additionalProperties": false, "properties": {"field": {"anyOf": [{"maxLength": 300, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Field"}, "value": {"anyOf": [{"type": "string"}, {"type": "integer"}, {"type": "number"}, {"type": "boolean"}, {"type": "null"}], "default": null, "title": "Value"}}, "title": "InvestigationBinding", "type": "object"}, "ResearchRuleCondition": {"additionalProperties": false, "properties": {"field": {"maxLength": 300, "minLength": 1, "title": "Field", "type": "string"}, "operator": {"default": "equals", "enum": ["equals", "not_equals", "present", "empty"], "title": "Operator", "type": "string"}, "value": {"anyOf": [{"type": "string"}, {"type": "integer"}, {"type": "number"}, {"type": "boolean"}, {"type": "null"}], "default": null, "title": "Value"}}, "required": ["field"], "title": "ResearchRuleCondition", "type": "object"}}, "additionalProperties": false, "properties": {"request_id": {"maxLength": 128, "minLength": 8, "title": "Request Id", "type": "string"}, "name": {"maxLength": 120, "minLength": 1, "title": "Name", "type": "string"}, "collection_id": {"maxLength": 128, "minLength": 1, "title": "Collection Id", "type": "string"}, "function_id": {"maxLength": 128, "minLength": 1, "title": "Function Id", "type": "string"}, "bindings": {"additionalProperties": {"$ref": "#/$defs/InvestigationBinding"}, "maxProperties": 8, "minProperties": 1, "title": "Bindings", "type": "object"}, "conditions": {"default": [], "items": {"$ref": "#/$defs/ResearchRuleCondition"}, "maxItems": 8, "title": "Conditions", "type": "array"}, "trigger": {"default": "first_ready", "enum": ["first_ready", "input_changed"], "title": "Trigger", "type": "string"}, "include_existing": {"default": false, "title": "Include Existing", "type": "boolean"}, "reuse_completed": {"default": true, "title": "Reuse Completed", "type": "boolean"}, "batch_size": {"default": 20, "maximum": 200, "minimum": 1, "title": "Batch Size", "type": "integer"}, "per_batch_cents": {"maximum": 100000000, "minimum": 1, "title": "Per Batch Cents", "type": "integer"}, "total_cents": {"maximum": 100000000, "minimum": 1, "title": "Total Cents", "type": "integer"}, "valid_until": {"format": "date-time", "title": "Valid Until", "type": "string"}}, "required": ["request_id", "name", "collection_id", "function_id", "bindings", "per_batch_cents", "total_cents", "valid_until"], "title": "McpPrepareResearchRuleArgs", "type": "object"}}, {"name": "list_research_rules", "title": "List automatic research rules", "description": "List the automatic research rules on this list.", "annotations": {"title": "List automatic research rules", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"collection_id": {"minLength": 1, "title": "Collection Id", "type": "string"}}, "required": ["collection_id"], "title": "McpListResearchRulesArgs", "type": "object"}}, {"name": "get_research_rule", "title": "Read an automatic research rule", "description": "Read a rule's limits, what it has spent, which rows are waiting and its recent runs.", "annotations": {"title": "Read an automatic research rule", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"rule_id": {"minLength": 1, "title": "Rule Id", "type": "string"}, "offset": {"anyOf": [{"maximum": 20000, "minimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "title": "Offset"}}, "required": ["rule_id"], "title": "McpGetResearchRuleArgs", "type": "object"}}, {"name": "approve_research_rule", "title": "Approve automatic research", "description": "Approve the rule's total spending limit. Rows that qualify later then run without asking again, until the limit or the expiry is reached.", "annotations": {"title": "Approve automatic research", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"review_hash": {"pattern": "^[0-9a-f]{64}$", "title": "Review Hash", "type": "string"}, "confirm_total_cents": {"maximum": 100000000, "minimum": 1, "title": "Confirm Total Cents", "type": "integer"}, "rule_id": {"minLength": 1, "title": "Rule Id", "type": "string"}}, "required": ["review_hash", "confirm_total_cents", "rule_id"], "title": "McpApproveResearchRuleArgs", "type": "object"}}, {"name": "patch_research_rule", "title": "Pause, resume or delete a rule", "description": "Pause, resume or delete a rule. Pausing holds queued searches; running ones finish. Resuming never raises the limits.", "annotations": {"title": "Pause, resume or delete a rule", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"expected_version": {"minimum": 1, "title": "Expected Version", "type": "integer"}, "state": {"enum": ["active", "paused", "deleted"], "title": "State", "type": "string"}, "rule_id": {"minLength": 1, "title": "Rule Id", "type": "string"}}, "required": ["expected_version", "state", "rule_id"], "title": "McpPatchResearchRuleArgs", "type": "object"}}, {"name": "get_research_rule_results", "title": "Read automatic research results", "description": "Read every run of the rule with its input rows and results.", "annotations": {"title": "Read automatic research results", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"rule_id": {"minLength": 1, "title": "Rule Id", "type": "string"}}, "required": ["rule_id"], "title": "McpGetResearchRuleResultsArgs", "type": "object"}}]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[{"name": "compile", "title": "Understand a request", "description": "Read a request written in everyday words, in any language, and return how SpecStream understood it: what to find, the conditions every result must meet, the facts to bring back (required or optional), how many, and in what order, with the ast_hash that identifies this reading. Nothing runs and nothing is charged.", "annotations": {"title": "Understand a request", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"q": {"maxLength": 16000, "minLength": 1, "title": "Q", "type": "string"}, "locale": {"default": "en-US", "pattern": "^[a-z]{2}-[A-Z]{2}$", "title": "Locale", "type": "string"}}, "required": ["q"], "title": "McpCompileArgs", "type": "object"}}, {"name": "edit_spec", "title": "Change what to find or bring back", "description": "Change a condition or a fact to bring back without rewording the request. Send the revised reading as ast with the edit operations, and get back a checked reading with a new ast_hash for the next quote. Results that already ran stay as they were.", "annotations": {"title": "Change what to find or bring back", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"$defs": {"ChipOp": {"enum": ["set", "remove"], "title": "ChipOp", "type": "string"}, "ChipOperation": {"additionalProperties": false, "properties": {"op": {"$ref": "#/$defs/ChipOp"}, "chip_id": {"minLength": 1, "title": "Chip Id", "type": "string"}, "value": {"anyOf": [{"type": "boolean"}, {"type": "integer"}, {"type": "number"}, {"type": "string"}, {"items": {"type": "string"}, "type": "array"}, {"$ref": "#/$defs/CountMatches"}, {"type": "null"}], "default": null, "title": "Value"}}, "required": ["op", "chip_id"], "title": "ChipOperation", "type": "object"}, "CountComparison": {"additionalProperties": false, "properties": {"op": {"enum": ["gte", "gt", "lte", "lt", "eq", "ne"], "title": "Op", "type": "string"}, "value": {"minimum": 0, "title": "Value", "type": "integer"}}, "required": ["op", "value"], "title": "CountComparison", "type": "object"}, "CountMatches": {"additionalProperties": false, "properties": {"condition": {"anyOf": [{"$ref": "#/$defs/MemberExpression"}, {"$ref": "#/$defs/MemberPredicate"}, {"type": "null"}], "default": null, "title": "Condition"}, "count": {"$ref": "#/$defs/CountComparison"}}, "required": ["count"], "title": "CountMatches", "type": "object"}, "Discovery": {"additionalProperties": false, "properties": {"geography_scope": {"anyOf": [{"const": "worldwide.v1", "type": "string"}, {"type": "null"}], "default": null, "title": "Geography Scope"}, "term": {"maxLength": 2000, "minLength": 1, "title": "Term", "type": "string"}, "platforms": {"items": {"pattern": "^[a-z][a-z0-9_]{0,47}$", "type": "string"}, "maxItems": 16, "title": "Platforms", "type": "array", "uniqueItems": true}, "searches": {"items": {"maxLength": 120, "minLength": 1, "type": "string"}, "maxItems": 4, "title": "Searches", "type": "array"}, "role_phrases": {"items": {"maxLength": 60, "minLength": 1, "type": "string"}, "maxItems": 8, "title": "Role Phrases", "type": "array"}, "seed_identifiers": {"additionalProperties": {"type": "string"}, "maxProperties": 8, "title": "Seed Identifiers", "type": "object"}}, "required": ["term"], "title": "Discovery", "type": "object"}, "EntityKind": {"enum": ["place", "creator", "organization", "storefront_product", "app_listing", "job_posting", "scholarly_work", "tender", "grant", "software_repository", "software_package", "dataset", "clinical_trial", "regulatory_document", "vulnerability", "book", "podcast", "web_page", "knowledge_entity", "person"], "title": "EntityKind", "type": "string"}, "EntityType": {"enum": ["local_business", "creator", "organization", "organization", "storefront_product", "app_listing", "job_posting", "scholarly_work", "tender", "grant", "software_repository", "software_package", "dataset", "clinical_trial", "regulatory_document", "vulnerability", "book", "podcast", "web_page", "knowledge_entity", "person"], "title": "EntityType", "type": "string"}, "Geo": {"additionalProperties": false, "properties": {"kind": {"$ref": "#/$defs/GeoKind"}, "query_label": {"minLength": 1, "title": "Query Label", "type": "string"}, "country_code": {"anyOf": [{"pattern": "^[A-Z]{2}$", "type": "string"}, {"type": "null"}], "default": null, "title": "Country Code"}, "admin1_code": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Admin1 Code"}, "locality": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Locality"}, "postal_code": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Postal Code"}, "status": {"$ref": "#/$defs/GeoStatus"}, "source": {"$ref": "#/$defs/GeoSource"}, "geoname_id": {"anyOf": [{"minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Geoname Id"}, "near": {"anyOf": [{"$ref": "#/$defs/Near"}, {"type": "null"}], "default": null}}, "required": ["kind", "query_label", "admin1_code", "locality", "postal_code", "status", "source"], "title": "Geo", "type": "object"}, "GeoKind": {"enum": ["country", "locality", "admin1"], "title": "GeoKind", "type": "string"}, "GeoSource": {"enum": ["gazetteer", "catalog", "alias", "well_formed"], "title": "GeoSource", "type": "string"}, "GeoStatus": {"enum": ["qualified", "ambiguous", "unqualified"], "title": "GeoStatus", "type": "string"}, "InferredClause": {"additionalProperties": false, "properties": {"field_id": {"minLength": 1, "title": "Field Id", "type": "string"}, "reason": {"minLength": 1, "title": "Reason", "type": "string"}}, "required": ["field_id", "reason"], "title": "InferredClause", "type": "object"}, "MatchExpression": {"additionalProperties": false, "description": "Explicit logical scope; leaves remain ordinary source-verifiable predicates.", "properties": {"op": {"enum": ["all", "any", "not"], "title": "Op", "type": "string"}, "clauses": {"items": {"anyOf": [{"$ref": "#/$defs/Predicate"}, {"$ref": "#/$defs/MatchExpression"}]}, "maxItems": 128, "minItems": 1, "title": "Clauses", "type": "array"}}, "required": ["op", "clauses"], "title": "MatchExpression", "type": "object"}, "MemberExpression": {"additionalProperties": false, "properties": {"op": {"enum": ["all", "any", "not"], "title": "Op", "type": "string"}, "clauses": {"items": {"anyOf": [{"$ref": "#/$defs/MemberPredicate"}, {"$ref": "#/$defs/MemberExpression"}]}, "maxItems": 32, "minItems": 1, "title": "Clauses", "type": "array"}}, "required": ["op", "clauses"], "title": "MemberExpression", "type": "object"}, "MemberPredicate": {"additionalProperties": false, "properties": {"field_id": {"pattern": "^[a-z][a-z0-9_]{0,63}$", "title": "Field Id", "type": "string"}, "op": {"$ref": "#/$defs/PredicateOp"}, "value": {"anyOf": [{"type": "boolean"}, {"type": "integer"}, {"type": "number"}, {"type": "string"}, {"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Value"}}, "required": ["field_id", "op", "value"], "title": "MemberPredicate", "type": "object"}, "Near": {"additionalProperties": false, "description": "A distance from a point: \"within 65 miles of 1417 E Fedora Ave, Fresno\".", "properties": {"point": {"maxLength": 300, "minLength": 1, "title": "Point", "type": "string"}, "latitude": {"maximum": 90, "minimum": -90, "title": "Latitude", "type": "number"}, "longitude": {"maximum": 180, "minimum": -180, "title": "Longitude", "type": "number"}, "radius_km": {"exclusiveMinimum": 0, "maximum": 1000, "title": "Radius Km", "type": "number"}}, "required": ["point", "latitude", "longitude", "radius_km"], "title": "Near", "type": "object"}, "OutputField": {"additionalProperties": false, "description": "A fact selected for delivery, independent from result-set membership.", "properties": {"field_id": {"minLength": 1, "title": "Field Id", "type": "string"}, "required": {"default": false, "title": "Required", "type": "boolean"}}, "required": ["field_id"], "title": "OutputField", "type": "object"}, "Predicate": {"additionalProperties": false, "properties": {"field_id": {"minLength": 1, "title": "Field Id", "type": "string"}, "op": {"$ref": "#/$defs/PredicateOp"}, "value": {"anyOf": [{"type": "boolean"}, {"type": "integer"}, {"type": "number"}, {"type": "string"}, {"items": {"type": "string"}, "type": "array"}, {"$ref": "#/$defs/CountMatches"}, {"type": "null"}], "title": "Value"}}, "required": ["field_id", "op", "value"], "title": "Predicate", "type": "object"}, "PredicateOp": {"enum": ["count_matches", "contains", "not_contains", "has_any", "has_all", "has_none", "before", "after", "on_or_before", "on_or_after", "gt", "lt", "ne", "not_in", "gte", "lte", "eq", "exists", "class_in", "in"], "title": "PredicateOp", "type": "string"}, "QueryAst": {"additionalProperties": false, "properties": {"target_requirement": {"anyOf": [{"$ref": "#/$defs/TargetRequirement"}, {"type": "null"}], "default": null}, "semantic_binding": {"anyOf": [{"$ref": "#/$defs/SemanticBinding"}, {"type": "null"}], "default": null}, "spec_version": {"const": "query_ast.v1", "default": "query_ast.v1", "title": "Spec Version", "type": "string"}, "entity_type": {"$ref": "#/$defs/EntityType"}, "limit": {"$ref": "#/$defs/QueryLimit"}, "discovery": {"$ref": "#/$defs/Discovery"}, "geo": {"anyOf": [{"$ref": "#/$defs/Geo"}, {"type": "null"}], "default": null}, "where": {"items": {"$ref": "#/$defs/Predicate"}, "maxItems": 128, "title": "Where", "type": "array"}, "match_expression": {"anyOf": [{"$ref": "#/$defs/MatchExpression"}, {"type": "null"}], "default": null}, "output_fields": {"items": {"$ref": "#/$defs/OutputField"}, "maxItems": 24, "title": "Output Fields", "type": "array"}, "worded_conditions": {"items": {"$ref": "#/$defs/WordedCondition"}, "maxItems": 12, "title": "Worded Conditions", "type": "array"}, "worded_outputs": {"items": {"$ref": "#/$defs/WordedOutput"}, "maxItems": 12, "title": "Worded Outputs", "type": "array"}, "sort": {"items": {"$ref": "#/$defs/SortKey"}, "title": "Sort", "type": "array"}, "locale": {"pattern": "^[a-z]{2}-[A-Z]{2}$", "title": "Locale", "type": "string"}, "inferred": {"items": {"$ref": "#/$defs/InferredClause"}, "title": "Inferred", "type": "array"}, "unsupported": {"items": {"$ref": "#/$defs/UnsupportedClause"}, "title": "Unsupported", "type": "array"}}, "required": ["entity_type", "limit", "discovery", "where", "sort", "locale", "inferred", "unsupported"], "title": "QueryAst", "type": "object"}, "QueryLimit": {"additionalProperties": false, "properties": {"max": {"default": 25, "maximum": 2147483647, "minimum": 1, "title": "Max", "type": "integer"}, "inferred": {"default": false, "title": "Inferred", "type": "boolean"}}, "title": "QueryLimit", "type": "object"}, "SemanticBinding": {"additionalProperties": false, "properties": {"spec_version": {"const": "semantic_binding.v1", "default": "semantic_binding.v1", "title": "Spec Version", "type": "string"}, "catalog_sha256": {"pattern": "^[0-9a-f]{64}$", "title": "Catalog Sha256", "type": "string"}, "target_id": {"pattern": "^[a-z][a-z0-9_.-]{1,127}$", "title": "Target Id", "type": "string"}, "footprint_id": {"anyOf": [{"pattern": "^[a-z][a-z0-9_.-]{1,127}$", "type": "string"}, {"type": "null"}], "default": null, "title": "Footprint Id"}}, "required": ["catalog_sha256", "target_id"], "title": "SemanticBinding", "type": "object"}, "SortDirection": {"enum": ["asc", "desc"], "title": "SortDirection", "type": "string"}, "SortKey": {"additionalProperties": false, "properties": {"field_id": {"minLength": 1, "title": "Field Id", "type": "string"}, "direction": {"$ref": "#/$defs/SortDirection"}}, "required": ["field_id", "direction"], "title": "SortKey", "type": "object"}, "TargetRequirement": {"additionalProperties": false, "properties": {"contract": {"const": "target-source-assertion.v1", "default": "target-source-assertion.v1", "title": "Contract", "type": "string"}, "entity_kind": {"$ref": "#/$defs/EntityKind"}, "text": {"maxLength": 2000, "minLength": 1, "title": "Text", "type": "string"}, "reading_policy_sha256": {"pattern": "^[0-9a-f]{64}$", "title": "Reading Policy Sha256", "type": "string"}, "max_candidates": {"default": 128, "maximum": 256, "minimum": 1, "title": "Max Candidates", "type": "integer"}, "max_passages": {"default": 12, "maximum": 16, "minimum": 1, "title": "Max Passages", "type": "integer"}, "max_context_chars": {"default": 7500, "maximum": 12000, "minimum": 500, "title": "Max Context Chars", "type": "integer"}, "max_source_chars": {"default": 262144, "maximum": 262144, "minimum": 1000, "title": "Max Source Chars", "type": "integer"}, "timeout_ms": {"default": 3000, "maximum": 5000, "minimum": 1, "title": "Timeout Ms", "type": "integer"}, "evidence_meaning": {"const": "interpreted_published_assertion", "default": "interpreted_published_assertion", "title": "Evidence Meaning", "type": "string"}, "prior_knowledge_authority": {"const": false, "default": false, "title": "Prior Knowledge Authority", "type": "boolean"}, "modifies_typed_predicates": {"const": false, "default": false, "title": "Modifies Typed Predicates", "type": "boolean"}}, "required": ["entity_kind", "text", "reading_policy_sha256"], "title": "TargetRequirement", "type": "object"}, "UnsupportedClause": {"additionalProperties": false, "properties": {"field_id": {"minLength": 1, "title": "Field Id", "type": "string"}, "op": {"anyOf": [{"$ref": "#/$defs/PredicateOp"}, {"type": "null"}]}, "value": {"anyOf": [{"type": "boolean"}, {"type": "integer"}, {"type": "number"}, {"type": "string"}, {"items": {"type": "string"}, "type": "array"}, {"$ref": "#/$defs/CountMatches"}, {"type": "null"}], "title": "Value"}, "reason": {"minLength": 1, "title": "Reason", "type": "string"}}, "required": ["field_id", "op", "value", "reason"], "title": "UnsupportedClause", "type": "object"}, "WordedCondition": {"additionalProperties": false, "description": "A requirement no catalog field expresses, kept in the person's own words.\n\nSchema is acceleration, never permission: each result's own pages are read\nfor this statement (yes / no / unsure). A yes needs a quote the code finds in\nthe result's own source; a quoted no removes the result; an unconfirmed line\nis delivered marked.", "properties": {"condition_id": {"pattern": "^[wt][0-9]{1,2}$", "title": "Condition Id", "type": "string"}, "words": {"maxLength": 300, "minLength": 1, "title": "Words", "type": "string"}, "statement": {"maxLength": 400, "minLength": 1, "title": "Statement", "type": "string"}, "search_words": {"default": "", "maxLength": 120, "title": "Search Words", "type": "string"}}, "required": ["condition_id", "words", "statement"], "title": "WordedCondition", "type": "object"}, "WordedOutput": {"additionalProperties": false, "description": "A detail to return that no output field expresses, read from each result's pages.", "properties": {"detail_id": {"pattern": "^d[0-9]{1,2}$", "title": "Detail Id", "type": "string"}, "words": {"maxLength": 300, "minLength": 1, "title": "Words", "type": "string"}, "description": {"maxLength": 300, "minLength": 1, "title": "Description", "type": "string"}, "value_type": {"default": "text", "enum": ["text", "number", "date", "url", "email", "phone", "yes_no"], "title": "Value Type", "type": "string"}, "required": {"default": false, "title": "Required", "type": "boolean"}}, "required": ["detail_id", "words", "description"], "title": "WordedOutput", "type": "object"}}, "additionalProperties": false, "description": "Edit the same typed Spec through the canonical chip operation contract.", "properties": {"ast": {"$ref": "#/$defs/QueryAst"}, "operations": {"items": {"$ref": "#/$defs/ChipOperation"}, "title": "Operations", "type": "array"}}, "required": ["ast", "operations"], "title": "McpEditSpecArgs", "type": "object"}}, {"name": "list_find_rows", "title": "Read the results", "description": "Read the results that met every condition, with the source behind each check, a page at a time; next_cursor is null on the last page. The separate possible list holds candidates with open conditions, which are not results and were not charged.", "annotations": {"title": "Read the results", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"find_id": {"title": "Find Id", "type": "string"}, "cursor": {"anyOf": [{"maxLength": 2048, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Cursor"}, "limit": {"default": 100, "maximum": 100, "minimum": 1, "title": "Limit", "type": "integer"}}, "required": ["find_id"], "title": "McpListFindRowsArgs", "type": "object"}}, {"name": "get_find", "title": "Check on a run", "description": "Read a run's request, progress, and what it has cost so far. After the user approves a quote, check it until the run finishes.", "annotations": {"title": "Check on a run", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"find_id": {"minLength": 1, "title": "Find Id", "type": "string"}}, "required": ["find_id"], "title": "McpGetFindArgs", "type": "object"}}, {"name": "get_revisit", "title": "Read what a recheck found", "description": "Read one page of the records a recheck looked at: what still holds, what changed, and what it couldn't reach. Pass next_after as after until it is null.", "annotations": {"title": "Read what a recheck found", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"find_id": {"minLength": 1, "title": "Find Id", "type": "string"}, "after": {"default": "", "maxLength": 256, "title": "After", "type": "string"}, "limit": {"default": 100, "maximum": 200, "minimum": 1, "title": "Limit", "type": "integer"}}, "required": ["find_id"], "title": "McpRevisitArgs", "type": "object"}}, {"name": "create_spec", "title": "Save a request", "description": "Save a reviewed request as its first version so it can be rerun, shared or changed.", "annotations": {"title": "Save a request", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"$defs": {"CountComparison": {"additionalProperties": false, "properties": {"op": {"enum": ["gte", "gt", "lte", "lt", "eq", "ne"], "title": "Op", "type": "string"}, "value": {"minimum": 0, "title": "Value", "type": "integer"}}, "required": ["op", "value"], "title": "CountComparison", "type": "object"}, "CountMatches": {"additionalProperties": false, "properties": {"condition": {"anyOf": [{"$ref": "#/$defs/MemberExpression"}, {"$ref": "#/$defs/MemberPredicate"}, {"type": "null"}], "default": null, "title": "Condition"}, "count": {"$ref": "#/$defs/CountComparison"}}, "required": ["count"], "title": "CountMatches", "type": "object"}, "Discovery": {"additionalProperties": false, "properties": {"geography_scope": {"anyOf": [{"const": "worldwide.v1", "type": "string"}, {"type": "null"}], "default": null, "title": "Geography Scope"}, "term": {"maxLength": 2000, "minLength": 1, "title": "Term", "type": "string"}, "platforms": {"items": {"pattern": "^[a-z][a-z0-9_]{0,47}$", "type": "string"}, "maxItems": 16, "title": "Platforms", "type": "array", "uniqueItems": true}, "searches": {"items": {"maxLength": 120, "minLength": 1, "type": "string"}, "maxItems": 4, "title": "Searches", "type": "array"}, "role_phrases": {"items": {"maxLength": 60, "minLength": 1, "type": "string"}, "maxItems": 8, "title": "Role Phrases", "type": "array"}, "seed_identifiers": {"additionalProperties": {"type": "string"}, "maxProperties": 8, "title": "Seed Identifiers", "type": "object"}}, "required": ["term"], "title": "Discovery", "type": "object"}, "EntityKind": {"enum": ["place", "creator", "organization", "storefront_product", "app_listing", "job_posting", "scholarly_work", "tender", "grant", "software_repository", "software_package", "dataset", "clinical_trial", "regulatory_document", "vulnerability", "book", "podcast", "web_page", "knowledge_entity", "person"], "title": "EntityKind", "type": "string"}, "EntityType": {"enum": ["local_business", "creator", "organization", "organization", "storefront_product", "app_listing", "job_posting", "scholarly_work", "tender", "grant", "software_repository", "software_package", "dataset", "clinical_trial", "regulatory_document", "vulnerability", "book", "podcast", "web_page", "knowledge_entity", "person"], "title": "EntityType", "type": "string"}, "Geo": {"additionalProperties": false, "properties": {"kind": {"$ref": "#/$defs/GeoKind"}, "query_label": {"minLength": 1, "title": "Query Label", "type": "string"}, "country_code": {"anyOf": [{"pattern": "^[A-Z]{2}$", "type": "string"}, {"type": "null"}], "default": null, "title": "Country Code"}, "admin1_code": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Admin1 Code"}, "locality": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Locality"}, "postal_code": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Postal Code"}, "status": {"$ref": "#/$defs/GeoStatus"}, "source": {"$ref": "#/$defs/GeoSource"}, "geoname_id": {"anyOf": [{"minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Geoname Id"}, "near": {"anyOf": [{"$ref": "#/$defs/Near"}, {"type": "null"}], "default": null}}, "required": ["kind", "query_label", "admin1_code", "locality", "postal_code", "status", "source"], "title": "Geo", "type": "object"}, "GeoKind": {"enum": ["country", "locality", "admin1"], "title": "GeoKind", "type": "string"}, "GeoSource": {"enum": ["gazetteer", "catalog", "alias", "well_formed"], "title": "GeoSource", "type": "string"}, "GeoStatus": {"enum": ["qualified", "ambiguous", "unqualified"], "title": "GeoStatus", "type": "string"}, "InferredClause": {"additionalProperties": false, "properties": {"field_id": {"minLength": 1, "title": "Field Id", "type": "string"}, "reason": {"minLength": 1, "title": "Reason", "type": "string"}}, "required": ["field_id", "reason"], "title": "InferredClause", "type": "object"}, "MatchExpression": {"additionalProperties": false, "description": "Explicit logical scope; leaves remain ordinary source-verifiable predicates.", "properties": {"op": {"enum": ["all", "any", "not"], "title": "Op", "type": "string"}, "clauses": {"items": {"anyOf": [{"$ref": "#/$defs/Predicate"}, {"$ref": "#/$defs/MatchExpression"}]}, "maxItems": 128, "minItems": 1, "title": "Clauses", "type": "array"}}, "required": ["op", "clauses"], "title": "MatchExpression", "type": "object"}, "MemberExpression": {"additionalProperties": false, "properties": {"op": {"enum": ["all", "any", "not"], "title": "Op", "type": "string"}, "clauses": {"items": {"anyOf": [{"$ref": "#/$defs/MemberPredicate"}, {"$ref": "#/$defs/MemberExpression"}]}, "maxItems": 32, "minItems": 1, "title": "Clauses", "type": "array"}}, "required": ["op", "clauses"], "title": "MemberExpression", "type": "object"}, "MemberPredicate": {"additionalProperties": false, "properties": {"field_id": {"pattern": "^[a-z][a-z0-9_]{0,63}$", "title": "Field Id", "type": "string"}, "op": {"$ref": "#/$defs/PredicateOp"}, "value": {"anyOf": [{"type": "boolean"}, {"type": "integer"}, {"type": "number"}, {"type": "string"}, {"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Value"}}, "required": ["field_id", "op", "value"], "title": "MemberPredicate", "type": "object"}, "Near": {"additionalProperties": false, "description": "A distance from a point: \"within 65 miles of 1417 E Fedora Ave, Fresno\".", "properties": {"point": {"maxLength": 300, "minLength": 1, "title": "Point", "type": "string"}, "latitude": {"maximum": 90, "minimum": -90, "title": "Latitude", "type": "number"}, "longitude": {"maximum": 180, "minimum": -180, "title": "Longitude", "type": "number"}, "radius_km": {"exclusiveMinimum": 0, "maximum": 1000, "title": "Radius Km", "type": "number"}}, "required": ["point", "latitude", "longitude", "radius_km"], "title": "Near", "type": "object"}, "OutputField": {"additionalProperties": false, "description": "A fact selected for delivery, independent from result-set membership.", "properties": {"field_id": {"minLength": 1, "title": "Field Id", "type": "string"}, "required": {"default": false, "title": "Required", "type": "boolean"}}, "required": ["field_id"], "title": "OutputField", "type": "object"}, "Predicate": {"additionalProperties": false, "properties": {"field_id": {"minLength": 1, "title": "Field Id", "type": "string"}, "op": {"$ref": "#/$defs/PredicateOp"}, "value": {"anyOf": [{"type": "boolean"}, {"type": "integer"}, {"type": "number"}, {"type": "string"}, {"items": {"type": "string"}, "type": "array"}, {"$ref": "#/$defs/CountMatches"}, {"type": "null"}], "title": "Value"}}, "required": ["field_id", "op", "value"], "title": "Predicate", "type": "object"}, "PredicateOp": {"enum": ["count_matches", "contains", "not_contains", "has_any", "has_all", "has_none", "before", "after", "on_or_before", "on_or_after", "gt", "lt", "ne", "not_in", "gte", "lte", "eq", "exists", "class_in", "in"], "title": "PredicateOp", "type": "string"}, "QueryAst": {"additionalProperties": false, "properties": {"target_requirement": {"anyOf": [{"$ref": "#/$defs/TargetRequirement"}, {"type": "null"}], "default": null}, "semantic_binding": {"anyOf": [{"$ref": "#/$defs/SemanticBinding"}, {"type": "null"}], "default": null}, "spec_version": {"const": "query_ast.v1", "default": "query_ast.v1", "title": "Spec Version", "type": "string"}, "entity_type": {"$ref": "#/$defs/EntityType"}, "limit": {"$ref": "#/$defs/QueryLimit"}, "discovery": {"$ref": "#/$defs/Discovery"}, "geo": {"anyOf": [{"$ref": "#/$defs/Geo"}, {"type": "null"}], "default": null}, "where": {"items": {"$ref": "#/$defs/Predicate"}, "maxItems": 128, "title": "Where", "type": "array"}, "match_expression": {"anyOf": [{"$ref": "#/$defs/MatchExpression"}, {"type": "null"}], "default": null}, "output_fields": {"items": {"$ref": "#/$defs/OutputField"}, "maxItems": 24, "title": "Output Fields", "type": "array"}, "worded_conditions": {"items": {"$ref": "#/$defs/WordedCondition"}, "maxItems": 12, "title": "Worded Conditions", "type": "array"}, "worded_outputs": {"items": {"$ref": "#/$defs/WordedOutput"}, "maxItems": 12, "title": "Worded Outputs", "type": "array"}, "sort": {"items": {"$ref": "#/$defs/SortKey"}, "title": "Sort", "type": "array"}, "locale": {"pattern": "^[a-z]{2}-[A-Z]{2}$", "title": "Locale", "type": "string"}, "inferred": {"items": {"$ref": "#/$defs/InferredClause"}, "title": "Inferred", "type": "array"}, "unsupported": {"items": {"$ref": "#/$defs/UnsupportedClause"}, "title": "Unsupported", "type": "array"}}, "required": ["entity_type", "limit", "discovery", "where", "sort", "locale", "inferred", "unsupported"], "title": "QueryAst", "type": "object"}, "QueryLimit": {"additionalProperties": false, "properties": {"max": {"default": 25, "maximum": 2147483647, "minimum": 1, "title": "Max", "type": "integer"}, "inferred": {"default": false, "title": "Inferred", "type": "boolean"}}, "title": "QueryLimit", "type": "object"}, "SemanticBinding": {"additionalProperties": false, "properties": {"spec_version": {"const": "semantic_binding.v1", "default": "semantic_binding.v1", "title": "Spec Version", "type": "string"}, "catalog_sha256": {"pattern": "^[0-9a-f]{64}$", "title": "Catalog Sha256", "type": "string"}, "target_id": {"pattern": "^[a-z][a-z0-9_.-]{1,127}$", "title": "Target Id", "type": "string"}, "footprint_id": {"anyOf": [{"pattern": "^[a-z][a-z0-9_.-]{1,127}$", "type": "string"}, {"type": "null"}], "default": null, "title": "Footprint Id"}}, "required": ["catalog_sha256", "target_id"], "title": "SemanticBinding", "type": "object"}, "SortDirection": {"enum": ["asc", "desc"], "title": "SortDirection", "type": "string"}, "SortKey": {"additionalProperties": false, "properties": {"field_id": {"minLength": 1, "title": "Field Id", "type": "string"}, "direction": {"$ref": "#/$defs/SortDirection"}}, "required": ["field_id", "direction"], "title": "SortKey", "type": "object"}, "TargetRequirement": {"additionalProperties": false, "properties": {"contract": {"const": "target-source-assertion.v1", "default": "target-source-assertion.v1", "title": "Contract", "type": "string"}, "entity_kind": {"$ref": "#/$defs/EntityKind"}, "text": {"maxLength": 2000, "minLength": 1, "title": "Text", "type": "string"}, "reading_policy_sha256": {"pattern": "^[0-9a-f]{64}$", "title": "Reading Policy Sha256", "type": "string"}, "max_candidates": {"default": 128, "maximum": 256, "minimum": 1, "title": "Max Candidates", "type": "integer"}, "max_passages": {"default": 12, "maximum": 16, "minimum": 1, "title": "Max Passages", "type": "integer"}, "max_context_chars": {"default": 7500, "maximum": 12000, "minimum": 500, "title": "Max Context Chars", "type": "integer"}, "max_source_chars": {"default": 262144, "maximum": 262144, "minimum": 1000, "title": "Max Source Chars", "type": "integer"}, "timeout_ms": {"default": 3000, "maximum": 5000, "minimum": 1, "title": "Timeout Ms", "type": "integer"}, "evidence_meaning": {"const": "interpreted_published_assertion", "default": "interpreted_published_assertion", "title": "Evidence Meaning", "type": "string"}, "prior_knowledge_authority": {"const": false, "default": false, "title": "Prior Knowledge Authority", "type": "boolean"}, "modifies_typed_predicates": {"const": false, "default": false, "title": "Modifies Typed Predicates", "type": "boolean"}}, "required": ["entity_kind", "text", "reading_policy_sha256"], "title": "TargetRequirement", "type": "object"}, "UnsupportedClause": {"additionalProperties": false, "properties": {"field_id": {"minLength": 1, "title": "Field Id", "type": "string"}, "op": {"anyOf": [{"$ref": "#/$defs/PredicateOp"}, {"type": "null"}]}, "value": {"anyOf": [{"type": "boolean"}, {"type": "integer"}, {"type": "number"}, {"type": "string"}, {"items": {"type": "string"}, "type": "array"}, {"$ref": "#/$defs/CountMatches"}, {"type": "null"}], "title": "Value"}, "reason": {"minLength": 1, "title": "Reason", "type": "string"}}, "required": ["field_id", "op", "value", "reason"], "title": "UnsupportedClause", "type": "object"}, "WordedCondition": {"additionalProperties": false, "description": "A requirement no catalog field expresses, kept in the person's own words.\n\nSchema is acceleration, never permission: each result's own pages are read\nfor this statement (yes / no / unsure). A yes needs a quote the code finds in\nthe result's own source; a quoted no removes the result; an unconfirmed line\nis delivered marked.", "properties": {"condition_id": {"pattern": "^[wt][0-9]{1,2}$", "title": "Condition Id", "type": "string"}, "words": {"maxLength": 300, "minLength": 1, "title": "Words", "type": "string"}, "statement": {"maxLength": 400, "minLength": 1, "title": "Statement", "type": "string"}, "search_words": {"default": "", "maxLength": 120, "title": "Search Words", "type": "string"}}, "required": ["condition_id", "words", "statement"], "title": "WordedCondition", "type": "object"}, "WordedOutput": {"additionalProperties": false, "description": "A detail to return that no output field expresses, read from each result's pages.", "properties": {"detail_id": {"pattern": "^d[0-9]{1,2}$", "title": "Detail Id", "type": "string"}, "words": {"maxLength": 300, "minLength": 1, "title": "Words", "type": "string"}, "description": {"maxLength": 300, "minLength": 1, "title": "Description", "type": "string"}, "value_type": {"default": "text", "enum": ["text", "number", "date", "url", "email", "phone", "yes_no"], "title": "Value Type", "type": "string"}, "required": {"default": false, "title": "Required", "type": "boolean"}}, "required": ["detail_id", "words", "description"], "title": "WordedOutput", "type": "object"}}, "additionalProperties": false, "oneOf": [{"properties": {"ast": {"not": {"type": "null"}}, "source_find_id": {"type": "null"}}, "required": ["ast"]}, {"properties": {"source_find_id": {"type": "string"}, "ast": {"type": "null"}}, "required": ["source_find_id"]}], "properties": {"name": {"maxLength": 120, "minLength": 1, "title": "Name", "type": "string"}, "ast": {"anyOf": [{"$ref": "#/$defs/QueryAst"}, {"type": "null"}], "default": null}, "source_find_id": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Source Find Id"}, "project_id": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}, "context": {"default": "", "maxLength": 4000, "title": "Context", "type": "string"}}, "required": ["name"], "title": "McpCreateSpecArgs", "type": "object"}}, {"name": "list_specs", "title": "List saved requests", "description": "List the saved requests you can open.", "annotations": {"title": "List saved requests", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"limit": {"anyOf": [{"maximum": 100, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Limit"}, "cursor": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Cursor"}, "project_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}, "archived": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "title": "Archived"}}, "title": "McpListSpecsArgs", "type": "object"}}, {"name": "get_spec", "title": "Open a saved request", "description": "Read a saved request and its current version.", "annotations": {"title": "Open a saved request", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"spec_id": {"minLength": 1, "title": "Spec Id", "type": "string"}}, "required": ["spec_id"], "title": "McpGetSpecArgs", "type": "object"}}, {"name": "create_spec_link", "title": "Share a request as a link", "description": "Create a link to the wording and conditions of a saved request. It never shares results or the balance.", "annotations": {"title": "Share a request as a link", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"revision_id": {"maxLength": 160, "minLength": 1, "title": "Revision Id", "type": "string"}, "expected_ast_hash": {"pattern": "^[0-9a-f]{64}$", "title": "Expected Ast Hash", "type": "string"}, "include_context": {"default": false, "title": "Include Context", "type": "boolean"}, "expires_seconds": {"default": 2592000, "maximum": 2592000, "minimum": 3600, "title": "Expires Seconds", "type": "integer"}, "spec_id": {"minLength": 1, "title": "Spec Id", "type": "string"}}, "required": ["revision_id", "expected_ast_hash", "spec_id"], "title": "McpCreateSpecLinkArgs", "type": "object"}}, {"name": "get_shared_spec", "title": "Open a shared request", "description": "Read a request someone shared, while their link is still on.", "annotations": {"title": "Open a shared request", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"token": {"minLength": 1, "title": "Token", "type": "string"}}, "required": ["token"], "title": "McpGetSharedSpecArgs", "type": "object"}}, {"name": "revoke_spec_link", "title": "Turn off a request link", "description": "Turn off a shared request link. The request and its results stay.", "annotations": {"title": "Turn off a request link", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"spec_id": {"minLength": 1, "title": "Spec Id", "type": "string"}, "link_id": {"minLength": 1, "title": "Link Id", "type": "string"}}, "required": ["spec_id", "link_id"], "title": "McpRevokeSpecLinkArgs", "type": "object"}}, {"name": "revise_spec", "title": "Save a new version", "description": "Save a change to a saved request as a new version, only if nobody changed it since you read it.", "annotations": {"title": "Save a new version", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"$defs": {"CountComparison": {"additionalProperties": false, "properties": {"op": {"enum": ["gte", "gt", "lte", "lt", "eq", "ne"], "title": "Op", "type": "string"}, "value": {"minimum": 0, "title": "Value", "type": "integer"}}, "required": ["op", "value"], "title": "CountComparison", "type": "object"}, "CountMatches": {"additionalProperties": false, "properties": {"condition": {"anyOf": [{"$ref": "#/$defs/MemberExpression"}, {"$ref": "#/$defs/MemberPredicate"}, {"type": "null"}], "default": null, "title": "Condition"}, "count": {"$ref": "#/$defs/CountComparison"}}, "required": ["count"], "title": "CountMatches", "type": "object"}, "Discovery": {"additionalProperties": false, "properties": {"geography_scope": {"anyOf": [{"const": "worldwide.v1", "type": "string"}, {"type": "null"}], "default": null, "title": "Geography Scope"}, "term": {"maxLength": 2000, "minLength": 1, "title": "Term", "type": "string"}, "platforms": {"items": {"pattern": "^[a-z][a-z0-9_]{0,47}$", "type": "string"}, "maxItems": 16, "title": "Platforms", "type": "array", "uniqueItems": true}, "searches": {"items": {"maxLength": 120, "minLength": 1, "type": "string"}, "maxItems": 4, "title": "Searches", "type": "array"}, "role_phrases": {"items": {"maxLength": 60, "minLength": 1, "type": "string"}, "maxItems": 8, "title": "Role Phrases", "type": "array"}, "seed_identifiers": {"additionalProperties": {"type": "string"}, "maxProperties": 8, "title": "Seed Identifiers", "type": "object"}}, "required": ["term"], "title": "Discovery", "type": "object"}, "EntityKind": {"enum": ["place", "creator", "organization", "storefront_product", "app_listing", "job_posting", "scholarly_work", "tender", "grant", "software_repository", "software_package", "dataset", "clinical_trial", "regulatory_document", "vulnerability", "book", "podcast", "web_page", "knowledge_entity", "person"], "title": "EntityKind", "type": "string"}, "EntityType": {"enum": ["local_business", "creator", "organization", "organization", "storefront_product", "app_listing", "job_posting", "scholarly_work", "tender", "grant", "software_repository", "software_package", "dataset", "clinical_trial", "regulatory_document", "vulnerability", "book", "podcast", "web_page", "knowledge_entity", "person"], "title": "EntityType", "type": "string"}, "Geo": {"additionalProperties": false, "properties": {"kind": {"$ref": "#/$defs/GeoKind"}, "query_label": {"minLength": 1, "title": "Query Label", "type": "string"}, "country_code": {"anyOf": [{"pattern": "^[A-Z]{2}$", "type": "string"}, {"type": "null"}], "default": null, "title": "Country Code"}, "admin1_code": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Admin1 Code"}, "locality": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Locality"}, "postal_code": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Postal Code"}, "status": {"$ref": "#/$defs/GeoStatus"}, "source": {"$ref": "#/$defs/GeoSource"}, "geoname_id": {"anyOf": [{"minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Geoname Id"}, "near": {"anyOf": [{"$ref": "#/$defs/Near"}, {"type": "null"}], "default": null}}, "required": ["kind", "query_label", "admin1_code", "locality", "postal_code", "status", "source"], "title": "Geo", "type": "object"}, "GeoKind": {"enum": ["country", "locality", "admin1"], "title": "GeoKind", "type": "string"}, "GeoSource": {"enum": ["gazetteer", "catalog", "alias", "well_formed"], "title": "GeoSource", "type": "string"}, "GeoStatus": {"enum": ["qualified", "ambiguous", "unqualified"], "title": "GeoStatus", "type": "string"}, "InferredClause": {"additionalProperties": false, "properties": {"field_id": {"minLength": 1, "title": "Field Id", "type": "string"}, "reason": {"minLength": 1, "title": "Reason", "type": "string"}}, "required": ["field_id", "reason"], "title": "InferredClause", "type": "object"}, "MatchExpression": {"additionalProperties": false, "description": "Explicit logical scope; leaves remain ordinary source-verifiable predicates.", "properties": {"op": {"enum": ["all", "any", "not"], "title": "Op", "type": "string"}, "clauses": {"items": {"anyOf": [{"$ref": "#/$defs/Predicate"}, {"$ref": "#/$defs/MatchExpression"}]}, "maxItems": 128, "minItems": 1, "title": "Clauses", "type": "array"}}, "required": ["op", "clauses"], "title": "MatchExpression", "type": "object"}, "MemberExpression": {"additionalProperties": false, "properties": {"op": {"enum": ["all", "any", "not"], "title": "Op", "type": "string"}, "clauses": {"items": {"anyOf": [{"$ref": "#/$defs/MemberPredicate"}, {"$ref": "#/$defs/MemberExpression"}]}, "maxItems": 32, "minItems": 1, "title": "Clauses", "type": "array"}}, "required": ["op", "clauses"], "title": "MemberExpression", "type": "object"}, "MemberPredicate": {"additionalProperties": false, "properties": {"field_id": {"pattern": "^[a-z][a-z0-9_]{0,63}$", "title": "Field Id", "type": "string"}, "op": {"$ref": "#/$defs/PredicateOp"}, "value": {"anyOf": [{"type": "boolean"}, {"type": "integer"}, {"type": "number"}, {"type": "string"}, {"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Value"}}, "required": ["field_id", "op", "value"], "title": "MemberPredicate", "type": "object"}, "Near": {"additionalProperties": false, "description": "A distance from a point: \"within 65 miles of 1417 E Fedora Ave, Fresno\".", "properties": {"point": {"maxLength": 300, "minLength": 1, "title": "Point", "type": "string"}, "latitude": {"maximum": 90, "minimum": -90, "title": "Latitude", "type": "number"}, "longitude": {"maximum": 180, "minimum": -180, "title": "Longitude", "type": "number"}, "radius_km": {"exclusiveMinimum": 0, "maximum": 1000, "title": "Radius Km", "type": "number"}}, "required": ["point", "latitude", "longitude", "radius_km"], "title": "Near", "type": "object"}, "OutputField": {"additionalProperties": false, "description": "A fact selected for delivery, independent from result-set membership.", "properties": {"field_id": {"minLength": 1, "title": "Field Id", "type": "string"}, "required": {"default": false, "title": "Required", "type": "boolean"}}, "required": ["field_id"], "title": "OutputField", "type": "object"}, "Predicate": {"additionalProperties": false, "properties": {"field_id": {"minLength": 1, "title": "Field Id", "type": "string"}, "op": {"$ref": "#/$defs/PredicateOp"}, "value": {"anyOf": [{"type": "boolean"}, {"type": "integer"}, {"type": "number"}, {"type": "string"}, {"items": {"type": "string"}, "type": "array"}, {"$ref": "#/$defs/CountMatches"}, {"type": "null"}], "title": "Value"}}, "required": ["field_id", "op", "value"], "title": "Predicate", "type": "object"}, "PredicateOp": {"enum": ["count_matches", "contains", "not_contains", "has_any", "has_all", "has_none", "before", "after", "on_or_before", "on_or_after", "gt", "lt", "ne", "not_in", "gte", "lte", "eq", "exists", "class_in", "in"], "title": "PredicateOp", "type": "string"}, "QueryAst": {"additionalProperties": false, "properties": {"target_requirement": {"anyOf": [{"$ref": "#/$defs/TargetRequirement"}, {"type": "null"}], "default": null}, "semantic_binding": {"anyOf": [{"$ref": "#/$defs/SemanticBinding"}, {"type": "null"}], "default": null}, "spec_version": {"const": "query_ast.v1", "default": "query_ast.v1", "title": "Spec Version", "type": "string"}, "entity_type": {"$ref": "#/$defs/EntityType"}, "limit": {"$ref": "#/$defs/QueryLimit"}, "discovery": {"$ref": "#/$defs/Discovery"}, "geo": {"anyOf": [{"$ref": "#/$defs/Geo"}, {"type": "null"}], "default": null}, "where": {"items": {"$ref": "#/$defs/Predicate"}, "maxItems": 128, "title": "Where", "type": "array"}, "match_expression": {"anyOf": [{"$ref": "#/$defs/MatchExpression"}, {"type": "null"}], "default": null}, "output_fields": {"items": {"$ref": "#/$defs/OutputField"}, "maxItems": 24, "title": "Output Fields", "type": "array"}, "worded_conditions": {"items": {"$ref": "#/$defs/WordedCondition"}, "maxItems": 12, "title": "Worded Conditions", "type": "array"}, "worded_outputs": {"items": {"$ref": "#/$defs/WordedOutput"}, "maxItems": 12, "title": "Worded Outputs", "type": "array"}, "sort": {"items": {"$ref": "#/$defs/SortKey"}, "title": "Sort", "type": "array"}, "locale": {"pattern": "^[a-z]{2}-[A-Z]{2}$", "title": "Locale", "type": "string"}, "inferred": {"items": {"$ref": "#/$defs/InferredClause"}, "title": "Inferred", "type": "array"}, "unsupported": {"items": {"$ref": "#/$defs/UnsupportedClause"}, "title": "Unsupported", "type": "array"}}, "required": ["entity_type", "limit", "discovery", "where", "sort", "locale", "inferred", "unsupported"], "title": "QueryAst", "type": "object"}, "QueryLimit": {"additionalProperties": false, "properties": {"max": {"default": 25, "maximum": 2147483647, "minimum": 1, "title": "Max", "type": "integer"}, "inferred": {"default": false, "title": "Inferred", "type": "boolean"}}, "title": "QueryLimit", "type": "object"}, "SemanticBinding": {"additionalProperties": false, "properties": {"spec_version": {"const": "semantic_binding.v1", "default": "semantic_binding.v1", "title": "Spec Version", "type": "string"}, "catalog_sha256": {"pattern": "^[0-9a-f]{64}$", "title": "Catalog Sha256", "type": "string"}, "target_id": {"pattern": "^[a-z][a-z0-9_.-]{1,127}$", "title": "Target Id", "type": "string"}, "footprint_id": {"anyOf": [{"pattern": "^[a-z][a-z0-9_.-]{1,127}$", "type": "string"}, {"type": "null"}], "default": null, "title": "Footprint Id"}}, "required": ["catalog_sha256", "target_id"], "title": "SemanticBinding", "type": "object"}, "SortDirection": {"enum": ["asc", "desc"], "title": "SortDirection", "type": "string"}, "SortKey": {"additionalProperties": false, "properties": {"field_id": {"minLength": 1, "title": "Field Id", "type": "string"}, "direction": {"$ref": "#/$defs/SortDirection"}}, "required": ["field_id", "direction"], "title": "SortKey", "type": "object"}, "TargetRequirement": {"additionalProperties": false, "properties": {"contract": {"const": "target-source-assertion.v1", "default": "target-source-assertion.v1", "title": "Contract", "type": "string"}, "entity_kind": {"$ref": "#/$defs/EntityKind"}, "text": {"maxLength": 2000, "minLength": 1, "title": "Text", "type": "string"}, "reading_policy_sha256": {"pattern": "^[0-9a-f]{64}$", "title": "Reading Policy Sha256", "type": "string"}, "max_candidates": {"default": 128, "maximum": 256, "minimum": 1, "title": "Max Candidates", "type": "integer"}, "max_passages": {"default": 12, "maximum": 16, "minimum": 1, "title": "Max Passages", "type": "integer"}, "max_context_chars": {"default": 7500, "maximum": 12000, "minimum": 500, "title": "Max Context Chars", "type": "integer"}, "max_source_chars": {"default": 262144, "maximum": 262144, "minimum": 1000, "title": "Max Source Chars", "type": "integer"}, "timeout_ms": {"default": 3000, "maximum": 5000, "minimum": 1, "title": "Timeout Ms", "type": "integer"}, "evidence_meaning": {"const": "interpreted_published_assertion", "default": "interpreted_published_assertion", "title": "Evidence Meaning", "type": "string"}, "prior_knowledge_authority": {"const": false, "default": false, "title": "Prior Knowledge Authority", "type": "boolean"}, "modifies_typed_predicates": {"const": false, "default": false, "title": "Modifies Typed Predicates", "type": "boolean"}}, "required": ["entity_kind", "text", "reading_policy_sha256"], "title": "TargetRequirement", "type": "object"}, "UnsupportedClause": {"additionalProperties": false, "properties": {"field_id": {"minLength": 1, "title": "Field Id", "type": "string"}, "op": {"anyOf": [{"$ref": "#/$defs/PredicateOp"}, {"type": "null"}]}, "value": {"anyOf": [{"type": "boolean"}, {"type": "integer"}, {"type": "number"}, {"type": "string"}, {"items": {"type": "string"}, "type": "array"}, {"$ref": "#/$defs/CountMatches"}, {"type": "null"}], "title": "Value"}, "reason": {"minLength": 1, "title": "Reason", "type": "string"}}, "required": ["field_id", "op", "value", "reason"], "title": "UnsupportedClause", "type": "object"}, "WordedCondition": {"additionalProperties": false, "description": "A requirement no catalog field expresses, kept in the person's own words.\n\nSchema is acceleration, never permission: each result's own pages are read\nfor this statement (yes / no / unsure). A yes needs a quote the code finds in\nthe result's own source; a quoted no removes the result; an unconfirmed line\nis delivered marked.", "properties": {"condition_id": {"pattern": "^[wt][0-9]{1,2}$", "title": "Condition Id", "type": "string"}, "words": {"maxLength": 300, "minLength": 1, "title": "Words", "type": "string"}, "statement": {"maxLength": 400, "minLength": 1, "title": "Statement", "type": "string"}, "search_words": {"default": "", "maxLength": 120, "title": "Search Words", "type": "string"}}, "required": ["condition_id", "words", "statement"], "title": "WordedCondition", "type": "object"}, "WordedOutput": {"additionalProperties": false, "description": "A detail to return that no output field expresses, read from each result's pages.", "properties": {"detail_id": {"pattern": "^d[0-9]{1,2}$", "title": "Detail Id", "type": "string"}, "words": {"maxLength": 300, "minLength": 1, "title": "Words", "type": "string"}, "description": {"maxLength": 300, "minLength": 1, "title": "Description", "type": "string"}, "value_type": {"default": "text", "enum": ["text", "number", "date", "url", "email", "phone", "yes_no"], "title": "Value Type", "type": "string"}, "required": {"default": false, "title": "Required", "type": "boolean"}}, "required": ["detail_id", "words", "description"], "title": "WordedOutput", "type": "object"}}, "additionalProperties": false, "properties": {"expected_revision_id": {"title": "Expected Revision Id", "type": "string"}, "parent_revision_id": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Branch from this revision of the same request. Leave it out to branch from the current head. expected_revision_id still protects the current head against concurrent edits.", "title": "Parent Revision Id"}, "ast": {"$ref": "#/$defs/QueryAst"}, "name": {"anyOf": [{"maxLength": 120, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Name"}, "context": {"anyOf": [{"maxLength": 4000, "type": "string"}, {"type": "null"}], "default": null, "title": "Context"}, "spec_id": {"minLength": 1, "title": "Spec Id", "type": "string"}}, "required": ["expected_revision_id", "ast", "spec_id"], "title": "McpReviseSpecArgs", "type": "object"}}, {"name": "list_spec_revisions", "title": "Read a request's history", "description": "List every saved version of a request.", "annotations": {"title": "Read a request's history", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"spec_id": {"minLength": 1, "title": "Spec Id", "type": "string"}, "limit": {"anyOf": [{"maximum": 100, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Limit"}, "cursor": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Cursor"}}, "required": ["spec_id"], "title": "McpListSpecRevisionsArgs", "type": "object"}}, {"name": "get_spec_revision", "title": "Open one version", "description": "Read one earlier version of a saved request, unchanged.", "annotations": {"title": "Open one version", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"spec_id": {"minLength": 1, "title": "Spec Id", "type": "string"}, "revision_id": {"minLength": 1, "title": "Revision Id", "type": "string"}}, "required": ["spec_id", "revision_id"], "title": "McpGetSpecRevisionArgs", "type": "object"}}, {"name": "archive_spec", "title": "Archive or restore a request", "description": "Put a saved request away, or bring it back. Its results stay.", "annotations": {"title": "Archive or restore a request", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"expected_revision_id": {"title": "Expected Revision Id", "type": "string"}, "archived": {"default": true, "title": "Archived", "type": "boolean"}, "spec_id": {"minLength": 1, "title": "Spec Id", "type": "string"}}, "required": ["expected_revision_id", "spec_id"], "title": "McpArchiveSpecArgs", "type": "object"}}, {"name": "list_spec_finds", "title": "See every run of a request", "description": "List the runs each version of a saved request did.", "annotations": {"title": "See every run of a request", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"spec_id": {"minLength": 1, "title": "Spec Id", "type": "string"}, "limit": {"anyOf": [{"maximum": 100, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Limit"}, "cursor": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Cursor"}}, "required": ["spec_id"], "title": "McpListSpecFindsArgs", "type": "object"}}, {"name": "get_find_lineage", "title": "See where a run came from", "description": "Read which version of a request a run used, and the earlier run it continued.", "annotations": {"title": "See where a run came from", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"find_id": {"minLength": 1, "title": "Find Id", "type": "string"}}, "required": ["find_id"], "title": "McpGetFindLineageArgs", "type": "object"}}, {"name": "create_project", "title": "Create a project", "description": "Start a project with its own spending limit.", "annotations": {"title": "Create a project", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"name": {"maxLength": 120, "minLength": 1, "title": "Name", "type": "string"}, "monthly_spend_cap_cents": {"default": 0, "maximum": 100000000, "minimum": 0, "title": "Monthly Spend Cap Cents", "type": "integer"}}, "required": ["name"], "title": "McpCreateProjectArgs", "type": "object"}}, {"name": "list_projects", "title": "List projects", "description": "List the projects you can open, with your role in each.", "annotations": {"title": "List projects", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"limit": {"anyOf": [{"maximum": 100, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Limit"}, "cursor": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Cursor"}}, "title": "McpListProjectsArgs", "type": "object"}}, {"name": "get_project", "title": "Open a project", "description": "Read a project, its members, their roles and their spending limits.", "annotations": {"title": "Open a project", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"project_id": {"minLength": 1, "title": "Project Id", "type": "string"}}, "required": ["project_id"], "title": "McpGetProjectArgs", "type": "object"}}, {"name": "update_project", "title": "Update a project", "description": "Change a project's details, only if nobody changed them since you read them.", "annotations": {"title": "Update a project", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"expected_version": {"minimum": 1, "title": "Expected Version", "type": "integer"}, "name": {"anyOf": [{"maxLength": 120, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Name"}, "monthly_spend_cap_cents": {"anyOf": [{"maximum": 100000000, "minimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "title": "Monthly Spend Cap Cents"}, "project_id": {"minLength": 1, "title": "Project Id", "type": "string"}}, "required": ["expected_version", "project_id"], "title": "McpUpdateProjectArgs", "type": "object"}}, {"name": "put_project_member", "title": "Set a member's role and limit", "description": "Make someone an editor or viewer of a project, with their own monthly spending limit.", "annotations": {"title": "Set a member's role and limit", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"account_id": {"title": "Account Id", "type": "string"}, "role": {"enum": ["editor", "viewer"], "title": "Role", "type": "string"}, "monthly_spend_cap_cents": {"default": 0, "maximum": 100000000, "minimum": 0, "title": "Monthly Spend Cap Cents", "type": "integer"}, "project_id": {"minLength": 1, "title": "Project Id", "type": "string"}}, "required": ["account_id", "role", "project_id"], "title": "McpPutProjectMemberArgs", "type": "object"}}, {"name": "list_project_members", "title": "List project members", "description": "List who is in a project and their roles.", "annotations": {"title": "List project members", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"project_id": {"minLength": 1, "title": "Project Id", "type": "string"}, "limit": {"anyOf": [{"maximum": 100, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Limit"}, "cursor": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Cursor"}}, "required": ["project_id"], "title": "McpListProjectMembersArgs", "type": "object"}}, {"name": "revoke_project_member", "title": "Remove a project member", "description": "End someone's access to a project. Their work stays.", "annotations": {"title": "Remove a project member", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"project_id": {"minLength": 1, "title": "Project Id", "type": "string"}, "account_id": {"minLength": 1, "title": "Account Id", "type": "string"}}, "required": ["project_id", "account_id"], "title": "McpRevokeProjectMemberArgs", "type": "object"}}, {"name": "get_delivery", "title": "Open delivered results", "description": "Read a run's finished results with the request version and sources behind them.", "annotations": {"title": "Open delivered results", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"find_id": {"minLength": 1, "title": "Find Id", "type": "string"}}, "required": ["find_id"], "title": "McpGetDeliveryArgs", "type": "object"}}, {"name": "get_find_decisions", "title": "See why each result qualified", "description": "Read each condition check on a run's results: yes, no or unsure, the value seen, and its source.", "annotations": {"title": "See why each result qualified", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"find_id": {"minLength": 1, "title": "Find Id", "type": "string"}, "limit": {"anyOf": [{"maximum": 100, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Limit"}, "cursor": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Cursor"}}, "required": ["find_id"], "title": "McpGetFindDecisionsArgs", "type": "object"}}, {"name": "replay_find_decisions", "title": "Replay the checks", "description": "Reproduce a run's saved checks from the recorded evidence. No new search and no new charge.", "annotations": {"title": "Replay the checks", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"find_id": {"minLength": 1, "title": "Find Id", "type": "string"}}, "required": ["find_id"], "title": "McpReplayFindDecisionsArgs", "type": "object"}}, {"name": "get_me", "title": "Check spending limits", "description": "Read the spending limit for this connection and how much of it is left.", "annotations": {"title": "Check spending limits", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {}, "title": "McpGetMeArgs", "type": "object"}}, {"name": "search_workspace", "title": "Search your work", "description": "Find records, lists, requests, projects, people, notes and monitors by name or text.", "annotations": {"title": "Search your work", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"q": {"maxLength": 200, "minLength": 1, "title": "Q", "type": "string"}, "limit": {"anyOf": [{"maximum": 100, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Limit"}, "cursor": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Cursor"}}, "required": ["q"], "title": "McpWorkspaceSearchArgs", "type": "object"}}, {"name": "list_notifications", "title": "Read notifications", "description": "Read mentions, finished work and blocked monitors.", "annotations": {"title": "Read notifications", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"tab": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Tab"}, "limit": {"anyOf": [{"maximum": 100, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Limit"}, "cursor": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Cursor"}}, "title": "McpWorkspaceListNotificationsArgs", "type": "object"}}, {"name": "list_audit_events", "title": "Read the audit log", "description": "Read sign-ins, new keys, approved spending, exports, monitors and imports from the last 12 months.", "annotations": {"title": "Read the audit log", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"project_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}, "actor_account_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Actor Account Id"}, "cursor": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Cursor"}, "kind": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Kind"}, "limit": {"anyOf": [{"maximum": 100, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Limit"}}, "title": "McpWorkspaceListAuditEventsArgs", "type": "object"}}, {"name": "get_account", "title": "Read the account", "description": "Read the account and its payment history.", "annotations": {"title": "Read the account", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {}, "title": "McpGetAccountArgs", "type": "object"}}, {"name": "spec_options", "title": "See what you can ask for", "description": "List the conditions and facts SpecStream can check for one kind of record.", "annotations": {"title": "See what you can ask for", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"target": {"minLength": 1, "title": "Target", "type": "string"}}, "required": ["target"], "title": "McpGetSpecOptionsArgs", "type": "object"}}, {"name": "get_find_commerce", "title": "Check a run's payment", "description": "Read what a run was charged, what it delivered, and who can open it.", "annotations": {"title": "Check a run's payment", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"find_id": {"minLength": 1, "title": "Find Id", "type": "string"}}, "required": ["find_id"], "title": "McpGetFindCommerceArgs", "type": "object"}}, {"name": "reconcile_find_commerce", "title": "Recover a payment", "description": "Find a payment that already happened for a run instead of running the work again.", "annotations": {"title": "Recover a payment", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"find_id": {"minLength": 1, "title": "Find Id", "type": "string"}}, "required": ["find_id"], "title": "McpReconcileFindCommerceArgs", "type": "object"}}, {"name": "cancel_find", "title": "Stop a run", "description": "Ask a run in progress to stop. It keeps what it already found.", "annotations": {"title": "Stop a run", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"find_id": {"minLength": 1, "title": "Find Id", "type": "string"}}, "required": ["find_id"], "title": "McpCancelFindArgs", "type": "object"}}, {"name": "export_find", "title": "Download the results", "description": "Create a download link for a run's results as CSV, Excel, JSON or HTML, or KML and GeoJSON for records with places. The link works for 24 hours.", "annotations": {"title": "Download the results", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"$defs": {"ExportFormat": {"description": "Owned Delivery export formats, including maps from supplied coordinates.", "enum": ["xlsx", "csv", "json", "html", "kml", "geojson"], "title": "ExportFormat", "type": "string"}}, "additionalProperties": false, "properties": {"format": {"$ref": "#/$defs/ExportFormat"}, "find_id": {"minLength": 1, "title": "Find Id", "type": "string"}}, "required": ["format", "find_id"], "title": "McpExportFindArgs", "type": "object"}}, {"name": "share_find", "title": "Share results", "description": "Create a link to a fixed copy of a run's results that anyone with the link can open.", "annotations": {"title": "Share results", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"include_contacts": {"default": true, "title": "Include Contacts", "type": "boolean"}, "find_id": {"minLength": 1, "title": "Find Id", "type": "string"}}, "required": ["find_id"], "title": "McpShareFindArgs", "type": "object"}}, {"name": "revoke_share", "title": "Stop sharing results", "description": "Turn off a shared results link.", "annotations": {"title": "Stop sharing results", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"share_id": {"minLength": 1, "title": "Share Id", "type": "string"}}, "required": ["share_id"], "title": "McpRevokeShareArgs", "type": "object"}}, {"name": "get_capacity_catalog", "title": "Read prices", "description": "Read the plans, per-result rates and top-up options.", "annotations": {"title": "Read prices", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {}, "title": "McpGetCapacityCatalogArgs", "type": "object"}}, {"name": "get_capacity_balance", "title": "Check the balance", "description": "Read the balance available for work. A balance is not permission to spend: paid work still needs the user's approval of a quote.", "annotations": {"title": "Check the balance", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"project_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}}, "title": "McpGetCapacityBalanceArgs", "type": "object"}}, {"name": "get_capacity_entitlements", "title": "Check what the plan includes", "description": "Read the account's plan, what it includes, such as schedules, CRM sync and single sign-on, and how many members it has. A feature the plan doesn't include returns plan_required with the plan that includes it.", "annotations": {"title": "Check what the plan includes", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"project_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}}, "title": "McpGetCapacityEntitlementsArgs", "type": "object"}}, {"name": "claim_free_capacity", "title": "Claim the free start", "description": "Claim the one-time free balance for an eligible, verified account.", "annotations": {"title": "Claim the free start", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {}, "title": "McpClaimFreeCapacityArgs", "type": "object"}}, {"name": "quote_capacity_work", "title": "Get a quote", "description": "Price the reading identified by ast_hash before anything runs. Operation find prices a new request, extend more results, add_facts more facts on results the user has, and refresh a recheck of them; the last three take parent_find_id. For an imported list, find with source_import_id and its source_row_ids fills in details or checks each row. The quote shows the most the work can cost. Nothing is spent.", "annotations": {"title": "Get a quote", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"ast_hash": {"pattern": "^[0-9a-f]{64}$", "title": "Ast Hash", "type": "string"}, "operation": {"default": "find", "enum": ["find", "extend", "add_facts", "refresh", "retained"], "title": "Operation", "type": "string"}, "parent_find_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Parent Find Id"}, "revision_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Revision Id"}, "project_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}, "source_import_id": {"anyOf": [{"maxLength": 128, "minLength": 8, "type": "string"}, {"type": "null"}], "default": null, "title": "Source Import Id"}, "source_row_ids": {"items": {"type": "string"}, "maxItems": 2000, "title": "Source Row Ids", "type": "array"}, "requested_units": {"default": 25, "maximum": 10000, "minimum": 1, "title": "Requested Units", "type": "integer"}, "minimum_units": {"anyOf": [{"maximum": 10000, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Minimum Units"}, "selected_entity_ids": {"anyOf": [{"items": {"type": "string"}, "maxItems": 10000, "minItems": 1, "type": "array"}, {"type": "null"}], "default": null, "title": "Selected Entity Ids"}}, "required": ["ast_hash"], "title": "McpQuoteCapacityWorkArgs", "type": "object"}}, {"name": "get_capacity_quote", "title": "Reopen a quote", "description": "Read a quote and any work already approved from it.", "annotations": {"title": "Reopen a quote", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"quote_id": {"minLength": 1, "title": "Quote Id", "type": "string"}}, "required": ["quote_id"], "title": "McpGetCapacityQuoteArgs", "type": "object"}}, {"name": "authorize_capacity_work", "title": "Approve a quote", "description": "Start the work on an approved quote: its quote_id and quote_hash, the ceiling the user approved in cents as confirm_max_cents, and a stable idempotency_key. SpecStream then reads the live web and charges only for delivered results, never more than the ceiling.", "annotations": {"title": "Approve a quote", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"quote_id": {"title": "Quote Id", "type": "string"}, "quote_hash": {"pattern": "^[0-9a-f]{64}$", "title": "Quote Hash", "type": "string"}, "idempotency_key": {"maxLength": 128, "minLength": 8, "title": "Idempotency Key", "type": "string"}, "confirm_max_cents": {"minimum": 0, "title": "Confirm Max Cents", "type": "integer"}, "authority_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Authority Id"}}, "required": ["quote_id", "quote_hash", "idempotency_key", "confirm_max_cents"], "title": "McpAuthorizeCapacityWorkArgs", "type": "object"}}, {"name": "get_capacity_request", "title": "Find work already started", "description": "Return the work started with an idempotency_key, so a retry doesn't start it twice.", "annotations": {"title": "Find work already started", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"request_key": {"minLength": 1, "title": "Request Key", "type": "string"}, "project_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}}, "required": ["request_key"], "title": "McpGetCapacityRequestArgs", "type": "object"}}, {"name": "get_capacity_execution", "title": "Read what a run cost", "description": "Read the finished work, what it cost, and your access to its results.", "annotations": {"title": "Read what a run cost", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"find_id": {"minLength": 1, "title": "Find Id", "type": "string"}}, "required": ["find_id"], "title": "McpGetCapacityExecutionArgs", "type": "object"}}, {"name": "create_capacity_schedule", "title": "Create a monitor", "description": "Run a request on a schedule, hourly to yearly, within a limit per run and per period. Each run reads the live web. Rechecks cost half.", "annotations": {"title": "Create a monitor", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": true}, "inputSchema": {"$defs": {"CalendarSchedule": {"additionalProperties": false, "properties": {"startAt": {"format": "date", "title": "Startat", "type": "string"}, "hour": {"maximum": 23, "minimum": 0, "title": "Hour", "type": "integer"}, "minute": {"default": 0, "maximum": 59, "minimum": 0, "title": "Minute", "type": "integer"}, "timezone": {"maxLength": 100, "minLength": 1, "title": "Timezone", "type": "string"}, "type": {"enum": ["hours", "days", "weeks", "months", "years"], "title": "Type", "type": "string"}, "interval": {"maximum": 1000, "minimum": 1, "title": "Interval", "type": "integer"}, "daysOfWeek": {"default": [], "items": {"maximum": 6, "minimum": 0, "type": "integer"}, "title": "Daysofweek", "type": "array"}}, "required": ["startAt", "hour", "timezone", "type", "interval"], "title": "CalendarSchedule", "type": "object"}, "CapacityQuoteRequest": {"additionalProperties": false, "properties": {"ast_hash": {"pattern": "^[0-9a-f]{64}$", "title": "Ast Hash", "type": "string"}, "operation": {"default": "find", "enum": ["find", "extend", "add_facts", "refresh", "retained"], "title": "Operation", "type": "string"}, "parent_find_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Parent Find Id"}, "revision_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Revision Id"}, "project_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}, "source_import_id": {"anyOf": [{"maxLength": 128, "minLength": 8, "type": "string"}, {"type": "null"}], "default": null, "title": "Source Import Id"}, "source_row_ids": {"items": {"type": "string"}, "maxItems": 2000, "title": "Source Row Ids", "type": "array"}, "requested_units": {"default": 25, "maximum": 10000, "minimum": 1, "title": "Requested Units", "type": "integer"}, "minimum_units": {"anyOf": [{"maximum": 10000, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Minimum Units"}, "selected_entity_ids": {"anyOf": [{"items": {"type": "string"}, "maxItems": 10000, "minItems": 1, "type": "array"}, {"type": "null"}], "default": null, "title": "Selected Entity Ids"}}, "required": ["ast_hash"], "title": "CapacityQuoteRequest", "type": "object"}}, "additionalProperties": false, "properties": {"idempotency_key": {"maxLength": 128, "minLength": 8, "title": "Idempotency Key", "type": "string"}, "scope": {"$ref": "#/$defs/CapacityQuoteRequest"}, "cadence_seconds": {"minimum": 3600, "title": "Cadence Seconds", "type": "integer"}, "first_due_at": {"format": "date-time", "title": "First Due At", "type": "string"}, "per_run_cents": {"exclusiveMinimum": 0, "title": "Per Run Cents", "type": "integer"}, "period_cents": {"exclusiveMinimum": 0, "title": "Period Cents", "type": "integer"}, "calendar_schedule": {"anyOf": [{"$ref": "#/$defs/CalendarSchedule"}, {"type": "null"}], "default": null}, "valid_until": {"format": "date-time", "title": "Valid Until", "type": "string"}}, "required": ["idempotency_key", "scope", "cadence_seconds", "first_due_at", "per_run_cents", "period_cents", "valid_until"], "title": "McpCreateCapacityScheduleArgs", "type": "object"}}, {"name": "list_capacity_schedules", "title": "List monitors", "description": "Read your monitors and whether each is running or paused.", "annotations": {"title": "List monitors", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"project_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}, "after": {"anyOf": [{"maxLength": 160, "type": "string"}, {"type": "null"}], "default": null, "title": "After"}, "limit": {"anyOf": [{"maximum": 100, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Limit"}}, "title": "McpListCapacitySchedulesArgs", "type": "object"}}, {"name": "update_capacity_schedule", "title": "Pause, resume or delete a monitor", "description": "Pause, resume or delete a monitor. Missed runs are never bought later.", "annotations": {"title": "Pause, resume or delete a monitor", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"expected_version": {"minimum": 1, "title": "Expected Version", "type": "integer"}, "state": {"enum": ["active", "paused", "deleted"], "title": "State", "type": "string"}, "schedule_id": {"minLength": 1, "title": "Schedule Id", "type": "string"}}, "required": ["expected_version", "state", "schedule_id"], "title": "McpUpdateCapacityScheduleArgs", "type": "object"}}, {"name": "list_capacity_occurrences", "title": "See each monitor run", "description": "Read a monitor's completed, blocked and missed runs, with the reason.", "annotations": {"title": "See each monitor run", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"schedule_id": {"minLength": 1, "title": "Schedule Id", "type": "string"}, "before": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Before"}, "limit": {"anyOf": [{"maximum": 100, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Limit"}}, "required": ["schedule_id"], "title": "McpListCapacityOccurrencesArgs", "type": "object"}}, {"name": "create_capacity_refund_claim", "title": "Report a wrong result", "description": "Send charged results that don't meet the request's conditions for review and a refund.", "annotations": {"title": "Report a wrong result", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"reservation_id": {"title": "Reservation Id", "type": "string"}, "unit_ids": {"items": {"type": "string"}, "maxItems": 10000, "minItems": 1, "title": "Unit Ids", "type": "array"}, "reason": {"maxLength": 2000, "minLength": 1, "title": "Reason", "type": "string"}, "idempotency_key": {"maxLength": 128, "minLength": 8, "title": "Idempotency Key", "type": "string"}}, "required": ["reservation_id", "unit_ids", "reason", "idempotency_key"], "title": "McpCreateCapacityRefundClaimArgs", "type": "object"}}, {"name": "get_capacity_refund_claim", "title": "Check a report", "description": "Read the status of a reported wrong result.", "annotations": {"title": "Check a report", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"claim_id": {"minLength": 1, "title": "Claim Id", "type": "string"}}, "required": ["claim_id"], "title": "McpGetCapacityRefundClaimArgs", "type": "object"}}, {"name": "create_api_key", "title": "Create an API key", "description": "Create an API key with permissions, an expiry date and a spending limit. Ask the account owner first.", "annotations": {"title": "Create an API key", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"name": {"default": "key", "maxLength": 120, "minLength": 1, "title": "Name", "type": "string"}, "scopes": {"items": {"enum": ["specs:read", "specs:write", "finds:read", "finds:write", "finds:spend", "projects:read", "projects:manage", "account:read"], "type": "string"}, "maxItems": 8, "title": "Scopes", "type": "array"}, "project_id": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}, "spend_cap_cents": {"default": 0, "maximum": 100000000, "minimum": 0, "title": "Spend Cap Cents", "type": "integer"}, "expires_in_days": {"default": 90, "maximum": 365, "minimum": 1, "title": "Expires In Days", "type": "integer"}}, "title": "McpCreateAccountKeyArgs", "type": "object"}}, {"name": "create_webhook", "title": "Add a webhook", "description": "Send a signed event to your URL when a run finishes, a monitor finds something new, or records are added. The signing secret is shown once.", "annotations": {"title": "Add a webhook", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"url": {"title": "Url", "type": "string"}, "event_name": {"default": "find.completed", "enum": ["find.completed", "monitor.found", "collection.records_added"], "title": "Event Name", "type": "string"}, "events": {"anyOf": [{"items": {"enum": ["find.completed", "monitor.found", "collection.records_added"], "type": "string"}, "maxItems": 3, "minItems": 1, "type": "array"}, {"type": "null"}], "default": null, "title": "Events"}}, "required": ["url"], "title": "McpCreateCustomerWebhookArgs", "type": "object"}}, {"name": "delegate_access", "title": "Delegate a budget", "description": "Let a key or project run specific work within a per-run and monthly limit.", "annotations": {"title": "Delegate a budget", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"actor_key": {"title": "Actor Key", "type": "string"}, "project_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}, "operations": {"items": {"enum": ["find", "extend", "add_facts", "refresh", "retained"], "type": "string"}, "minItems": 1, "title": "Operations", "type": "array"}, "scope_hash": {"anyOf": [{"pattern": "^[0-9a-f]{64}$", "type": "string"}, {"type": "null"}], "default": null, "title": "Scope Hash"}, "quote_id": {"anyOf": [{"maxLength": 128, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Quote Id"}, "per_run_cents": {"exclusiveMinimum": 0, "title": "Per Run Cents", "type": "integer"}, "period_cents": {"exclusiveMinimum": 0, "title": "Period Cents", "type": "integer"}, "valid_until": {"format": "date-time", "title": "Valid Until", "type": "string"}}, "required": ["actor_key", "operations", "per_run_cents", "period_cents", "valid_until"], "title": "McpCreateCapacityAuthorityArgs", "type": "object"}}, {"name": "request_account_deletion", "title": "Close the account", "description": "Close the account. Access ends at once and the data is erased seven days later.", "annotations": {"title": "Close the account", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {}, "title": "McpDeleteAccountArgs", "type": "object"}}, {"name": "invite_project_member", "title": "Invite someone to a project", "description": "Email a project invitation with a role, a spending limit and an expiry date.", "annotations": {"title": "Invite someone to a project", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"request_id": {"maxLength": 128, "minLength": 8, "title": "Request Id", "type": "string"}, "project_id": {"maxLength": 128, "minLength": 1, "title": "Project Id", "type": "string"}, "email": {"maxLength": 320, "minLength": 3, "title": "Email", "type": "string"}, "role": {"default": "editor", "enum": ["editor", "viewer"], "title": "Role", "type": "string"}, "monthly_spend_cap_cents": {"default": 0, "maximum": 100000000, "minimum": 0, "title": "Monthly Spend Cap Cents", "type": "integer"}, "expires_in_days": {"default": 7, "enum": [1, 7, 30], "title": "Expires In Days", "type": "integer"}}, "required": ["request_id", "project_id", "email"], "title": "McpWorkspaceInviteMemberArgs", "type": "object"}}, {"name": "filter_by_area", "title": "Filter by map area", "description": "Narrow a collection to the records inside an area on the map.", "annotations": {"title": "Filter by map area", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"record_ids": {"anyOf": [{"items": {"type": "string"}, "maxItems": 2000, "type": "array"}, {"type": "null"}], "default": null, "title": "Record Ids"}, "source_collection_ids": {"anyOf": [{"items": {"type": "string"}, "maxItems": 20, "type": "array"}, {"type": "null"}], "default": null, "title": "Source Collection Ids"}, "bbox": {"anyOf": [{"maxItems": 4, "minItems": 4, "prefixItems": [{"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}], "type": "array"}, {"type": "null"}], "default": null, "title": "Bbox"}, "collection_id": {"minLength": 1, "title": "Collection Id", "type": "string"}}, "required": ["collection_id"], "title": "McpWorkspaceFilterCollectionArgs", "type": "object"}}, {"name": "set_schedule_delivery", "title": "Choose where a monitor reports", "description": "Choose where new and changed records go when a monitor finds them: notifications, Slack, a connected tool or a signed webhook. Nothing runs.", "annotations": {"title": "Choose where a monitor reports", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"notify": {"default": true, "title": "Notify", "type": "boolean"}, "slack": {"anyOf": [{"maxLength": 81, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Slack"}, "sendTo": {"anyOf": [{"maxLength": 64, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Sendto"}, "webhook": {"anyOf": [{"maxLength": 2048, "type": "string"}, {"type": "null"}], "default": null, "title": "Webhook"}, "expected_version": {"minimum": 1, "title": "Expected Version", "type": "integer"}, "schedule_id": {"minLength": 1, "title": "Schedule Id", "type": "string"}}, "required": ["expected_version", "schedule_id"], "title": "McpWorkspaceSetScheduleDeliveryArgs", "type": "object"}}, {"name": "list_collections", "title": "List collections", "description": "List the imported lists and results you can open.", "annotations": {"title": "List collections", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"project_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}, "after": {"anyOf": [{"maxLength": 128, "type": "string"}, {"type": "null"}], "default": null, "title": "After"}, "limit": {"anyOf": [{"maximum": 100, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Limit"}, "sort": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Sort"}}, "title": "McpWorkspaceListCollectionsArgs", "type": "object"}}, {"name": "get_collection", "title": "Open a collection", "description": "Read a collection's records, columns and saved views.", "annotations": {"title": "Open a collection", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"collection_id": {"minLength": 1, "title": "Collection Id", "type": "string"}}, "required": ["collection_id"], "title": "McpWorkspaceReadCollectionArgs", "type": "object"}}, {"name": "combine_collections", "title": "Combine lists", "description": "Merge collections you own into one, keeping each record once with its sources.", "annotations": {"title": "Combine lists", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"request_id": {"maxLength": 128, "minLength": 8, "pattern": "^[A-Za-z0-9_-]+$", "title": "Request Id", "type": "string"}, "name": {"maxLength": 120, "minLength": 1, "title": "Name", "type": "string"}, "collection_ids": {"items": {"type": "string"}, "maxItems": 20, "minItems": 2, "title": "Collection Ids", "type": "array"}, "project_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}}, "required": ["request_id", "name", "collection_ids"], "title": "McpWorkspaceCombineCollectionsArgs", "type": "object"}}, {"name": "filter_collection", "title": "Narrow a list", "description": "Keep the records you pick by ID, by source or by where they are.", "annotations": {"title": "Narrow a list", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"record_ids": {"anyOf": [{"items": {"type": "string"}, "maxItems": 2000, "type": "array"}, {"type": "null"}], "default": null, "title": "Record Ids"}, "source_collection_ids": {"anyOf": [{"items": {"type": "string"}, "maxItems": 20, "type": "array"}, {"type": "null"}], "default": null, "title": "Source Collection Ids"}, "bbox": {"anyOf": [{"maxItems": 4, "minItems": 4, "prefixItems": [{"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}], "type": "array"}, {"type": "null"}], "default": null, "title": "Bbox"}, "collection_id": {"minLength": 1, "title": "Collection Id", "type": "string"}}, "required": ["collection_id"], "title": "McpWorkspaceFilterCollectionArgs", "type": "object"}}, {"name": "list_views", "title": "List saved views", "description": "Read the views saved on a collection.", "annotations": {"title": "List saved views", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"collection_id": {"minLength": 1, "title": "Collection Id", "type": "string"}}, "required": ["collection_id"], "title": "McpWorkspaceListViewsArgs", "type": "object"}}, {"name": "save_view", "title": "Save a view", "description": "Keep the filters, columns, sort order and map area of a collection as a personal view.", "annotations": {"title": "Save a view", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"$defs": {"WorkspaceSavedView": {"additionalProperties": false, "properties": {"id": {"maxLength": 128, "minLength": 1, "title": "Id", "type": "string"}, "name": {"maxLength": 120, "minLength": 1, "title": "Name", "type": "string"}, "view": {"default": "table", "enum": ["table", "list", "map", "relationships", "compare", "history"], "title": "View", "type": "string"}, "query": {"default": "", "maxLength": 2000, "title": "Query", "type": "string"}, "status": {"default": "all", "maxLength": 80, "minLength": 1, "title": "Status", "type": "string"}, "area": {"anyOf": [{"items": {"maxItems": 2, "minItems": 2, "prefixItems": [{"type": "number"}, {"type": "number"}], "type": "array"}, "maxItems": 2, "minItems": 2, "type": "array"}, {"type": "null"}], "default": null, "title": "Area"}, "hiddenColumns": {"items": {"type": "string"}, "maxItems": 128, "title": "Hiddencolumns", "type": "array"}, "sorting": {"anyOf": [{"$ref": "#/$defs/WorkspaceViewSorting"}, {"type": "null"}], "default": null}}, "required": ["id", "name"], "title": "WorkspaceSavedView", "type": "object"}, "WorkspaceViewSorting": {"additionalProperties": false, "properties": {"columnKey": {"maxLength": 128, "minLength": 1, "title": "Columnkey", "type": "string"}, "order": {"title": "Order", "type": "integer"}}, "required": ["columnKey", "order"], "title": "WorkspaceViewSorting", "type": "object"}}, "additionalProperties": false, "properties": {"expected_version": {"minimum": 0, "title": "Expected Version", "type": "integer"}, "view": {"$ref": "#/$defs/WorkspaceSavedView"}, "collection_id": {"minLength": 1, "title": "Collection Id", "type": "string"}}, "required": ["expected_version", "view", "collection_id"], "title": "McpWorkspaceSaveViewArgs", "type": "object"}}, {"name": "list_starred", "title": "List starred work", "description": "Read the requests, collections and projects you starred.", "annotations": {"title": "List starred work", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {}, "title": "McpWorkspaceListStarsArgs", "type": "object"}}, {"name": "star_item", "title": "Star something", "description": "Star or unstar a request, collection or project so it shows in the sidebar.", "annotations": {"title": "Star something", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"$defs": {"WorkspaceStarItem": {"additionalProperties": false, "properties": {"id": {"maxLength": 128, "minLength": 1, "title": "Id", "type": "string"}, "name": {"maxLength": 240, "minLength": 1, "title": "Name", "type": "string"}, "route": {"maxLength": 512, "minLength": 1, "title": "Route", "type": "string"}}, "required": ["id", "name", "route"], "title": "WorkspaceStarItem", "type": "object"}}, "additionalProperties": false, "properties": {"expected_version": {"minimum": 0, "title": "Expected Version", "type": "integer"}, "item": {"$ref": "#/$defs/WorkspaceStarItem"}, "starred": {"title": "Starred", "type": "boolean"}}, "required": ["expected_version", "item", "starred"], "title": "McpWorkspaceStarItemArgs", "type": "object"}}, {"name": "list_notes", "title": "Read notes", "description": "Read the notes on a project or a record.", "annotations": {"title": "Read notes", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"project_id": {"anyOf": [{"maxLength": 128, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}, "collection_id": {"anyOf": [{"maxLength": 128, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Collection Id"}, "record_id": {"anyOf": [{"maxLength": 128, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Record Id"}}, "title": "McpWorkspaceListNotesArgs", "type": "object"}}, {"name": "add_note", "title": "Leave a note", "description": "Add a note to a project or a record. Anyone you @mention gets an email.", "annotations": {"title": "Leave a note", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"project_id": {"anyOf": [{"maxLength": 128, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}, "collection_id": {"anyOf": [{"maxLength": 128, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Collection Id"}, "record_id": {"anyOf": [{"maxLength": 128, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Record Id"}, "expected_version": {"minimum": 0, "title": "Expected Version", "type": "integer"}, "id": {"maxLength": 128, "minLength": 1, "title": "Id", "type": "string"}, "text": {"maxLength": 8000, "minLength": 1, "title": "Text", "type": "string"}}, "required": ["expected_version", "id", "text"], "title": "McpWorkspaceAddNoteArgs", "type": "object"}}, {"name": "resolve_note", "title": "Resolve a note", "description": "Mark a note done, or reopen it.", "annotations": {"title": "Resolve a note", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"project_id": {"anyOf": [{"maxLength": 128, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}, "collection_id": {"anyOf": [{"maxLength": 128, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Collection Id"}, "record_id": {"anyOf": [{"maxLength": 128, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Record Id"}, "expected_version": {"minimum": 1, "title": "Expected Version", "type": "integer"}, "resolved": {"title": "Resolved", "type": "boolean"}, "note_id": {"minLength": 1, "title": "Note Id", "type": "string"}}, "required": ["expected_version", "resolved", "note_id"], "title": "McpWorkspaceResolveNoteArgs", "type": "object"}}, {"name": "list_your_fields", "title": "Read your fields", "description": "Read the status, checkbox and text fields your team added to a collection.", "annotations": {"title": "Read your fields", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"collection_id": {"minLength": 1, "title": "Collection Id", "type": "string"}}, "required": ["collection_id"], "title": "McpWorkspaceListYourFieldsArgs", "type": "object"}}, {"name": "save_your_fields", "title": "Add, rename or remove your fields", "description": "Add, rename or remove your own fields on a collection. Removing a field deletes its values.", "annotations": {"title": "Add, rename or remove your fields", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": false}, "inputSchema": {"$defs": {"YourField": {"additionalProperties": false, "properties": {"key": {"maxLength": 96, "minLength": 10, "title": "Key", "type": "string"}, "label": {"maxLength": 80, "minLength": 1, "title": "Label", "type": "string"}, "type": {"enum": ["choice", "check", "text"], "title": "Type", "type": "string"}, "options": {"anyOf": [{"items": {"type": "string"}, "maxItems": 20, "minItems": 1, "type": "array"}, {"type": "null"}], "default": null, "title": "Options"}}, "required": ["key", "label", "type"], "title": "YourField", "type": "object"}}, "additionalProperties": false, "properties": {"expected_version": {"minimum": 0, "title": "Expected Version", "type": "integer"}, "fields": {"items": {"$ref": "#/$defs/YourField"}, "maxItems": 30, "title": "Fields", "type": "array"}, "collection_id": {"minLength": 1, "title": "Collection Id", "type": "string"}}, "required": ["expected_version", "fields", "collection_id"], "title": "McpWorkspaceSaveYourFieldsArgs", "type": "object"}}, {"name": "set_your_field", "title": "Mark records", "description": "Set or clear one of your own fields on the records you choose, like a status of Called.", "annotations": {"title": "Mark records", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"expected_version": {"minimum": 0, "title": "Expected Version", "type": "integer"}, "record_ids": {"items": {"type": "string"}, "maxItems": 2000, "minItems": 1, "title": "Record Ids", "type": "array"}, "key": {"maxLength": 96, "minLength": 10, "title": "Key", "type": "string"}, "value": {"anyOf": [{"type": "string"}, {"type": "boolean"}, {"type": "null"}], "default": null, "title": "Value"}, "collection_id": {"minLength": 1, "title": "Collection Id", "type": "string"}}, "required": ["expected_version", "record_ids", "key", "collection_id"], "title": "McpWorkspaceSetYourFieldValueArgs", "type": "object"}}, {"name": "list_connections", "title": "List connected tools", "description": "List the spreadsheets, databases, CRMs and automation tools this account connected.", "annotations": {"title": "List connected tools", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {}, "title": "McpListConnectionsArgs", "type": "object"}}, {"name": "list_connection_destinations", "title": "Pick where records go", "description": "List the sheets, tables, bases and CRM objects in a connected account.", "annotations": {"title": "Pick where records go", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"connection_id": {"minLength": 1, "title": "Connection Id", "type": "string"}, "base_id": {"anyOf": [{"maxLength": 200, "type": "string"}, {"type": "null"}], "default": null, "title": "Base Id"}, "cursor": {"anyOf": [{"maxLength": 4096, "type": "string"}, {"type": "null"}], "default": null, "title": "Cursor"}}, "required": ["connection_id"], "title": "McpListConnectionDestinationsArgs", "type": "object"}}, {"name": "get_connection_columns", "title": "Read a destination's fields", "description": "Read the columns or properties a destination has, in the tool's own words. Nothing is sent.", "annotations": {"title": "Read a destination's fields", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"selection": {"additionalProperties": true, "title": "Selection", "type": "object"}, "connection_id": {"minLength": 1, "title": "Connection Id", "type": "string"}}, "required": ["selection", "connection_id"], "title": "McpGetConnectionColumnsArgs", "type": "object"}}, {"name": "save_connection_destination", "title": "Save a field mapping", "description": "Save which fact goes into which field of a destination, for every send after this one.", "annotations": {"title": "Save a field mapping", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"selection": {"additionalProperties": true, "title": "Selection", "type": "object"}, "connection_id": {"minLength": 1, "title": "Connection Id", "type": "string"}}, "required": ["selection", "connection_id"], "title": "McpSaveConnectionDestinationArgs", "type": "object"}}, {"name": "send_to_destination", "title": "Send records to a tool", "description": "Write the selected results to Google Sheets, Excel, Airtable, Notion, HubSpot, Salesforce or Outlook drafts with the saved field mapping. A CRM updates the records it already has.", "annotations": {"title": "Send records to a tool", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"find_id": {"maxLength": 128, "minLength": 5, "title": "Find Id", "type": "string"}, "entity_ids": {"items": {"type": "string"}, "maxItems": 2000, "minItems": 1, "title": "Entity Ids", "type": "array"}, "destination_sha256": {"pattern": "^[0-9a-f]{64}$", "title": "Destination Sha256", "type": "string"}, "connection_id": {"minLength": 1, "title": "Connection Id", "type": "string"}}, "required": ["find_id", "entity_ids", "destination_sha256", "connection_id"], "title": "McpSendToDestinationArgs", "type": "object"}}, {"name": "reconcile_destination_export", "title": "Check an uncertain send", "description": "Check what arrived in a destination before anything is sent twice.", "annotations": {"title": "Check an uncertain send", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"connection_id": {"minLength": 1, "title": "Connection Id", "type": "string"}, "export_id": {"minLength": 1, "title": "Export Id", "type": "string"}}, "required": ["connection_id", "export_id"], "title": "McpReconcileDestinationExportArgs", "type": "object"}}, {"name": "create_destination_sync", "title": "Keep a tool up to date", "description": "Keep sending new and changed records to the same destination with the same mapping.", "annotations": {"title": "Keep a tool up to date", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"connection_id": {"maxLength": 128, "minLength": 5, "title": "Connection Id", "type": "string"}, "collectionId": {"maxLength": 128, "minLength": 5, "title": "Collectionid", "type": "string"}, "destination_sha256": {"pattern": "^[0-9a-f]{64}$", "title": "Destination Sha256", "type": "string"}, "keepSending": {"default": true, "title": "Keepsending", "type": "boolean"}}, "required": ["connection_id", "collectionId", "destination_sha256"], "title": "McpCreateDestinationSyncArgs", "type": "object"}}, {"name": "update_destination_sync", "title": "Start or stop sending", "description": "Start or stop continuous sending to a destination.", "annotations": {"title": "Start or stop sending", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"keepSending": {"title": "Keepsending", "type": "boolean"}, "sync_id": {"minLength": 1, "title": "Sync Id", "type": "string"}}, "required": ["keepSending", "sync_id"], "title": "McpUpdateDestinationSyncArgs", "type": "object"}}, {"name": "list_destination_syncs", "title": "List continuous sends", "description": "Read every destination that receives new records, and whether it is on.", "annotations": {"title": "List continuous sends", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {}, "title": "McpListDestinationSyncsArgs", "type": "object"}}, {"name": "list_destination_exports", "title": "Read what was sent", "description": "Read each send: where it went, how many records arrived, and which were updated or skipped.", "annotations": {"title": "Read what was sent", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {}, "title": "McpListDestinationExportsArgs", "type": "object"}}, {"name": "list_connected_tools", "title": "See tools you can connect", "description": "List the sheets, databases, CRMs, automation and chat tools SpecStream can send to.", "annotations": {"title": "See tools you can connect", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {}, "title": "McpListConnectedToolsArgs", "type": "object"}}, {"name": "import_from_source", "title": "Import from a connected sheet", "description": "Import a Google Sheet, Excel workbook or Airtable view, and optionally check it every day for new and changed rows.", "annotations": {"title": "Import from a connected sheet", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"connection_id": {"maxLength": 128, "minLength": 5, "title": "Connection Id", "type": "string"}, "import_id": {"maxLength": 128, "minLength": 8, "pattern": "^[A-Za-z0-9_-]+$", "title": "Import Id", "type": "string"}, "name": {"maxLength": 120, "minLength": 1, "title": "Name", "type": "string"}, "project_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}, "link": {"maxLength": 4096, "minLength": 10, "title": "Link", "type": "string"}, "keepUpdated": {"default": true, "title": "Keepupdated", "type": "boolean"}, "mapping": {"additionalProperties": {"type": "string"}, "maxProperties": 100, "title": "Mapping", "type": "object"}, "source_sha256": {"anyOf": [{"pattern": "^[0-9a-f]{64}$", "type": "string"}, {"type": "null"}], "default": null, "title": "Source Sha256"}, "identity_column": {"anyOf": [{"maxLength": 200, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Identity Column"}, "sheet_id": {"anyOf": [{"maxLength": 200, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Sheet Id"}}, "required": ["connection_id", "import_id", "name", "link"], "title": "McpImportCloudListArgs", "type": "object"}}, {"name": "preview_cloud_list", "title": "Preview a connected sheet", "description": "Read the first rows and columns of a Google Sheet, Excel workbook or Airtable view before importing it.", "annotations": {"title": "Preview a connected sheet", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"connection_id": {"maxLength": 128, "minLength": 5, "title": "Connection Id", "type": "string"}, "link": {"maxLength": 4096, "minLength": 10, "title": "Link", "type": "string"}, "sheet_id": {"anyOf": [{"maxLength": 200, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "title": "Sheet Id"}}, "required": ["connection_id", "link"], "title": "McpPreviewCloudListArgs", "type": "object"}}, {"name": "list_cloud_imports", "title": "List linked sheets", "description": "Read the sheets and tables you linked, and when each was last checked.", "annotations": {"title": "List linked sheets", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {}, "title": "McpListCloudImportsArgs", "type": "object"}}, {"name": "update_cloud_import", "title": "Start or stop daily checks", "description": "Turn the daily check for new and changed rows on or off for a linked sheet.", "annotations": {"title": "Start or stop daily checks", "readOnlyHint": false, "destructiveHint": true, "openWorldHint": true}, "inputSchema": {"additionalProperties": false, "properties": {"keepUpdated": {"title": "Keepupdated", "type": "boolean"}, "import_id": {"minLength": 1, "title": "Import Id", "type": "string"}}, "required": ["keepUpdated", "import_id"], "title": "McpUpdateCloudImportArgs", "type": "object"}}, {"name": "import_csv", "title": "Import a CSV or Excel file", "description": "Bring in your own list with names, websites, places and any other columns. Nothing is researched or charged. Then quote a find with source_import_id to fill in details or check each row.", "annotations": {"title": "Import a CSV or Excel file", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"import_id": {"maxLength": 128, "minLength": 8, "pattern": "^[A-Za-z0-9_-]+$", "title": "Import Id", "type": "string"}, "name": {"maxLength": 120, "minLength": 1, "title": "Name", "type": "string"}, "format": {"pattern": "^(csv|xlsx)$", "title": "Format", "type": "string"}, "project_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}, "sheet": {"anyOf": [{"maxLength": 31, "type": "string"}, {"type": "null"}], "default": null, "title": "Sheet"}, "content": {"anyOf": [{"maxLength": 20000000, "type": "string"}, {"type": "null"}], "default": null, "title": "Content"}, "content_base64": {"anyOf": [{"maxLength": 26666668, "type": "string"}, {"type": "null"}], "default": null, "title": "Content Base64"}, "mapping": {"anyOf": [{"additionalProperties": {"type": "string"}, "maxProperties": 100, "type": "object"}, {"type": "null"}], "default": null, "title": "Mapping"}}, "required": ["import_id", "name", "format"], "title": "McpImportFileCommandArgs", "type": "object"}}, {"name": "list_activity", "title": "Read activity", "description": "Read what happened across the account and its projects, and who did it.", "annotations": {"title": "Read activity", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"project_id": {"anyOf": [{"maxLength": 128, "type": "string"}, {"type": "null"}], "default": null, "title": "Project Id"}, "cursor": {"anyOf": [{"maxLength": 4096, "type": "string"}, {"type": "null"}], "default": null, "title": "Cursor"}, "limit": {"anyOf": [{"maximum": 100, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "title": "Limit"}}, "title": "McpWorkspaceActivityArgs", "type": "object"}}, {"name": "get_relationships", "title": "See what records share", "description": "Group records by the values they share in a column.", "annotations": {"title": "See what records share", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"collection_id": {"minLength": 1, "title": "Collection Id", "type": "string"}, "field_id": {"anyOf": [{"maxLength": 200, "type": "string"}, {"type": "null"}], "default": null, "title": "Field Id"}}, "required": ["collection_id"], "title": "McpWorkspaceRelationshipsArgs", "type": "object"}}, {"name": "save_relationships", "title": "Connect records by a column", "description": "Save the column that links records, such as a city, an owner or a supplier.", "annotations": {"title": "Connect records by a column", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"expected_version": {"minimum": 0, "title": "Expected Version", "type": "integer"}, "field_id": {"maxLength": 200, "minLength": 1, "title": "Field Id", "type": "string"}, "label": {"maxLength": 120, "minLength": 1, "title": "Label", "type": "string"}, "collection_id": {"minLength": 1, "title": "Collection Id", "type": "string"}}, "required": ["expected_version", "field_id", "label", "collection_id"], "title": "McpWorkspaceSaveRelationshipsArgs", "type": "object"}}, {"name": "report_wrong_result", "title": "Report a result in a list", "description": "Report a charged result in a list that is wrong, within 7 days, for review and a refund.", "annotations": {"title": "Report a result in a list", "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"request_id": {"maxLength": 128, "minLength": 8, "title": "Request Id", "type": "string"}, "record_id": {"maxLength": 2048, "minLength": 1, "title": "Record Id", "type": "string"}, "check": {"maxLength": 500, "minLength": 1, "title": "Check", "type": "string"}, "truth": {"maxLength": 1200, "minLength": 1, "title": "Truth", "type": "string"}, "link": {"anyOf": [{"maxLength": 2048, "type": "string"}, {"type": "null"}], "default": null, "title": "Link"}, "collection_id": {"minLength": 1, "title": "Collection Id", "type": "string"}}, "required": ["request_id", "record_id", "check", "truth", "collection_id"], "title": "McpWorkspaceReportResultArgs", "type": "object"}}, {"name": "list_request_templates", "title": "Start from an example", "description": "List example requests that already work for each kind of record. Edit one, then understand and quote it before anything runs.", "annotations": {"title": "Start from an example", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"record_type": {"anyOf": [{"maxLength": 64, "type": "string"}, {"type": "null"}], "default": null, "title": "Record Type"}}, "title": "McpListRequestTemplatesArgs", "type": "object"}}, {"name": "get_collection_changes", "title": "See what changed", "description": "Compare a list with its earlier results: each changed fact, before and after, and where it was seen.", "annotations": {"title": "See what changed", "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false}, "inputSchema": {"additionalProperties": false, "properties": {"collection_id": {"minLength": 1, "title": "Collection Id", "type": "string"}}, "required": ["collection_id"], "title": "McpWorkspaceCollectionChangesArgs", "type": "object"}}]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|