@honua/mcp-server 0.0.9-alpha.0 → 0.0.20-alpha.0

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.
Files changed (147) hide show
  1. package/README.md +167 -0
  2. package/certification/geospatial-mcp-schemas/PROVENANCE.md +33 -0
  3. package/certification/geospatial-mcp-schemas/README.md +90 -0
  4. package/certification/geospatial-mcp-schemas/common/geoprocessing-error.schema.json +45 -0
  5. package/certification/geospatial-mcp-schemas/conformance/manifest.schema.json +73 -0
  6. package/certification/geospatial-mcp-schemas/index.json +311 -0
  7. package/certification/geospatial-mcp-schemas/resources/app-package.schema.json +20 -0
  8. package/certification/geospatial-mcp-schemas/resources/app-template.schema.json +15 -0
  9. package/certification/geospatial-mcp-schemas/resources/artifact.schema.json +69 -0
  10. package/certification/geospatial-mcp-schemas/resources/deployment.schema.json +27 -0
  11. package/certification/geospatial-mcp-schemas/resources/map-package.schema.json +21 -0
  12. package/certification/geospatial-mcp-schemas/resources/map-template.schema.json +15 -0
  13. package/certification/geospatial-mcp-schemas/resources/provenance.schema.json +50 -0
  14. package/certification/geospatial-mcp-schemas/resources/published-service.schema.json +21 -0
  15. package/certification/geospatial-mcp-schemas/resources/result-package.schema.json +64 -0
  16. package/certification/geospatial-mcp-schemas/resources/style.schema.json +12 -0
  17. package/certification/geospatial-mcp-schemas/resources/theme.schema.json +12 -0
  18. package/certification/geospatial-mcp-schemas/resources/workspace.schema.json +63 -0
  19. package/certification/geospatial-mcp-schemas/tools/apply_style_preset.schema.json +23 -0
  20. package/certification/geospatial-mcp-schemas/tools/cancel_job.schema.json +15 -0
  21. package/certification/geospatial-mcp-schemas/tools/clarify_intent.schema.json +69 -0
  22. package/certification/geospatial-mcp-schemas/tools/compose_mixed_protocol_map.schema.json +21 -0
  23. package/certification/geospatial-mcp-schemas/tools/create_app_package.schema.json +33 -0
  24. package/certification/geospatial-mcp-schemas/tools/create_map_package.schema.json +41 -0
  25. package/certification/geospatial-mcp-schemas/tools/execute_plan.schema.json +64 -0
  26. package/certification/geospatial-mcp-schemas/tools/geocode_address.schema.json +36 -0
  27. package/certification/geospatial-mcp-schemas/tools/get_style.schema.json +30 -0
  28. package/certification/geospatial-mcp-schemas/tools/ground_candidates.schema.json +66 -0
  29. package/certification/geospatial-mcp-schemas/tools/list_capabilities.schema.json +21 -0
  30. package/certification/geospatial-mcp-schemas/tools/list_layers.schema.json +14 -0
  31. package/certification/geospatial-mcp-schemas/tools/plan_analysis.schema.json +19 -0
  32. package/certification/geospatial-mcp-schemas/tools/preview_app_package.schema.json +15 -0
  33. package/certification/geospatial-mcp-schemas/tools/preview_map_package.schema.json +17 -0
  34. package/certification/geospatial-mcp-schemas/tools/preview_package.schema.json +40 -0
  35. package/certification/geospatial-mcp-schemas/tools/propose_operation.schema.json +28 -0
  36. package/certification/geospatial-mcp-schemas/tools/publish_result.schema.json +29 -0
  37. package/certification/geospatial-mcp-schemas/tools/publish_service.schema.json +59 -0
  38. package/certification/geospatial-mcp-schemas/tools/query_features.schema.json +54 -0
  39. package/certification/geospatial-mcp-schemas/tools/refine_map_package.schema.json +22 -0
  40. package/certification/geospatial-mcp-schemas/tools/render_map.schema.json +55 -0
  41. package/certification/geospatial-mcp-schemas/tools/resolve_entity.schema.json +30 -0
  42. package/certification/geospatial-mcp-schemas/tools/solve_route.schema.json +39 -0
  43. package/certification/geospatial-mcp-schemas/tools/validate_package.schema.json +35 -0
  44. package/certification/geospatial-mcp-schemas/tools/validate_plan.schema.json +61 -0
  45. package/dist/src/certification/certifier.d.ts +119 -0
  46. package/dist/src/certification/certifier.d.ts.map +1 -0
  47. package/dist/src/certification/certifier.js +410 -0
  48. package/dist/src/certification/cli.d.ts +3 -0
  49. package/dist/src/certification/cli.d.ts.map +1 -0
  50. package/dist/src/certification/cli.js +48 -0
  51. package/dist/src/certification/contracts.d.ts +62 -0
  52. package/dist/src/certification/contracts.d.ts.map +1 -0
  53. package/dist/src/certification/contracts.js +174 -0
  54. package/dist/src/certification/fixture-client.d.ts +4 -0
  55. package/dist/src/certification/fixture-client.d.ts.map +1 -0
  56. package/dist/src/certification/fixture-client.js +113 -0
  57. package/dist/src/certification/fixtures.d.ts +32 -0
  58. package/dist/src/certification/fixtures.d.ts.map +1 -0
  59. package/dist/src/certification/fixtures.js +64 -0
  60. package/dist/src/certification/json-schema.d.ts +49 -0
  61. package/dist/src/certification/json-schema.d.ts.map +1 -0
  62. package/dist/src/certification/json-schema.js +164 -0
  63. package/dist/src/certification/mock-upstream.d.ts +29 -0
  64. package/dist/src/certification/mock-upstream.d.ts.map +1 -0
  65. package/dist/src/certification/mock-upstream.js +96 -0
  66. package/dist/src/certification/operator-catalog.d.ts +82 -0
  67. package/dist/src/certification/operator-catalog.d.ts.map +1 -0
  68. package/dist/src/certification/operator-catalog.js +466 -0
  69. package/dist/src/certification/report.d.ts +4 -0
  70. package/dist/src/certification/report.d.ts.map +1 -0
  71. package/dist/src/certification/report.js +90 -0
  72. package/dist/src/certification/run.d.ts +28 -0
  73. package/dist/src/certification/run.d.ts.map +1 -0
  74. package/dist/src/certification/run.js +31 -0
  75. package/dist/src/certification/schema-index.d.ts +69 -0
  76. package/dist/src/certification/schema-index.d.ts.map +1 -0
  77. package/dist/src/certification/schema-index.js +82 -0
  78. package/dist/src/certification/target.d.ts +40 -0
  79. package/dist/src/certification/target.d.ts.map +1 -0
  80. package/dist/src/certification/target.js +167 -0
  81. package/dist/src/eval/cli.d.ts +3 -0
  82. package/dist/src/eval/cli.d.ts.map +1 -0
  83. package/dist/src/eval/cli.js +116 -0
  84. package/dist/src/eval/corpus.d.ts +27 -0
  85. package/dist/src/eval/corpus.d.ts.map +1 -0
  86. package/dist/src/eval/corpus.js +134 -0
  87. package/dist/src/eval/drivers/anthropic.d.ts +14 -0
  88. package/dist/src/eval/drivers/anthropic.d.ts.map +1 -0
  89. package/dist/src/eval/drivers/anthropic.js +120 -0
  90. package/dist/src/eval/drivers/bedrock.d.ts +54 -0
  91. package/dist/src/eval/drivers/bedrock.d.ts.map +1 -0
  92. package/dist/src/eval/drivers/bedrock.js +178 -0
  93. package/dist/src/eval/drivers/deterministic.d.ts +17 -0
  94. package/dist/src/eval/drivers/deterministic.d.ts.map +1 -0
  95. package/dist/src/eval/drivers/deterministic.js +51 -0
  96. package/dist/src/eval/drivers/index.d.ts +34 -0
  97. package/dist/src/eval/drivers/index.d.ts.map +1 -0
  98. package/dist/src/eval/drivers/index.js +74 -0
  99. package/dist/src/eval/drivers/openai.d.ts +14 -0
  100. package/dist/src/eval/drivers/openai.d.ts.map +1 -0
  101. package/dist/src/eval/drivers/openai.js +136 -0
  102. package/dist/src/eval/grade.d.ts +14 -0
  103. package/dist/src/eval/grade.d.ts.map +1 -0
  104. package/dist/src/eval/grade.js +56 -0
  105. package/dist/src/eval/northstar-corpus.d.ts +3 -0
  106. package/dist/src/eval/northstar-corpus.d.ts.map +1 -0
  107. package/dist/src/eval/northstar-corpus.js +194 -0
  108. package/dist/src/eval/operator-corpus.d.ts +3 -0
  109. package/dist/src/eval/operator-corpus.d.ts.map +1 -0
  110. package/dist/src/eval/operator-corpus.js +193 -0
  111. package/dist/src/eval/report.d.ts +104 -0
  112. package/dist/src/eval/report.d.ts.map +1 -0
  113. package/dist/src/eval/report.js +130 -0
  114. package/dist/src/eval/runner.d.ts +22 -0
  115. package/dist/src/eval/runner.d.ts.map +1 -0
  116. package/dist/src/eval/runner.js +116 -0
  117. package/dist/src/eval/types.d.ts +93 -0
  118. package/dist/src/eval/types.d.ts.map +1 -0
  119. package/dist/src/eval/types.js +10 -0
  120. package/dist/src/helpers.d.ts +11 -0
  121. package/dist/src/helpers.d.ts.map +1 -1
  122. package/dist/src/helpers.js +22 -0
  123. package/dist/src/index.d.ts +7 -0
  124. package/dist/src/index.d.ts.map +1 -1
  125. package/dist/src/index.js +30 -4
  126. package/dist/src/proxy.d.ts +46 -0
  127. package/dist/src/proxy.d.ts.map +1 -0
  128. package/dist/src/proxy.js +124 -0
  129. package/dist/src/resources/styles.d.ts +29 -0
  130. package/dist/src/resources/styles.d.ts.map +1 -0
  131. package/dist/src/resources/styles.js +43 -0
  132. package/dist/src/styles.d.ts +110 -0
  133. package/dist/src/styles.d.ts.map +1 -0
  134. package/dist/src/styles.js +118 -0
  135. package/dist/src/tools/apply-style-preset.d.ts +27 -0
  136. package/dist/src/tools/apply-style-preset.d.ts.map +1 -0
  137. package/dist/src/tools/apply-style-preset.js +29 -0
  138. package/dist/src/tools/count-features.d.ts.map +1 -1
  139. package/dist/src/tools/count-features.js +5 -4
  140. package/dist/src/tools/get-extent.d.ts.map +1 -1
  141. package/dist/src/tools/get-extent.js +6 -4
  142. package/dist/src/tools/get-style.d.ts +24 -0
  143. package/dist/src/tools/get-style.d.ts.map +1 -0
  144. package/dist/src/tools/get-style.js +28 -0
  145. package/dist/src/tools/query-features.d.ts.map +1 -1
  146. package/dist/src/tools/query-features.js +4 -1
  147. package/package.json +19 -4
@@ -0,0 +1,63 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://geospatial-mcp.honua.io/spec/schemas/resources/workspace.schema.json",
4
+ "title": "Workspace resource payload",
5
+ "description": "Read-only projection of a WorkspaceRef, addressable as honua://workspaces/{workspace_id}. The canonical kind values are Scratch/Persistent/TempLayer/SavedLayer/ResultCollection; the reference implementation projects lower_snake_case wire spellings (x-honua-reference-shape). lifecycleState is an MCP-layer projection. See resources.md §honua://workspaces/{workspace_id}.",
6
+ "x-honua-reference-shape": true,
7
+ "type": "object",
8
+ "additionalProperties": true,
9
+ "required": ["workspaceId"],
10
+ "properties": {
11
+ "workspaceId": {
12
+ "type": "string",
13
+ "description": "Stable identifier (ws_…)."
14
+ },
15
+ "kind": {
16
+ "type": "string",
17
+ "description": "WorkspaceKind. Canonical enum names are Scratch/Persistent/TempLayer/SavedLayer/ResultCollection; the reference implementation emits the lower_snake_case wire spelling. An empty/absent kind is not a legal value — omit the property rather than emitting an empty string.",
18
+ "enum": [
19
+ "scratch",
20
+ "persistent",
21
+ "temp_layer",
22
+ "saved_layer",
23
+ "result_collection",
24
+ "Scratch",
25
+ "Persistent",
26
+ "TempLayer",
27
+ "SavedLayer",
28
+ "ResultCollection"
29
+ ]
30
+ },
31
+ "label": { "type": "string", "description": "Human-readable label." },
32
+ "uri": { "type": "string", "description": "Canonical URI." },
33
+ "expiresAt": {
34
+ "type": ["string", "null"],
35
+ "format": "date-time",
36
+ "description": "Expiration timestamp when applicable."
37
+ },
38
+ "lifecycleState": {
39
+ "type": "string",
40
+ "description": "WorkspaceLifecycleState projection (MCP-layer, not a field of WorkspaceRef — see resources.md §honua://workspaces/{workspace_id}). Canonical enum names are Active/Expired/Archived/Deleted; the reference implementation emits the lower_snake_case wire spelling. Field name matches artifact.schema.json.lifecycleState.",
41
+ "enum": [
42
+ "active",
43
+ "expired",
44
+ "archived",
45
+ "deleted",
46
+ "Active",
47
+ "Expired",
48
+ "Archived",
49
+ "Deleted"
50
+ ]
51
+ },
52
+ "cleanupScheduledAt": {
53
+ "type": ["string", "null"],
54
+ "format": "date-time"
55
+ },
56
+ "resultsUri": {
57
+ "type": ["string", "null"],
58
+ "description": "URI of the result package this workspace's outputs are projected into, when applicable. MUST use the defined honua://results/{result_package_id} route (resources.md §honua://results/{result_package_id}); the spec defines no honua://jobs family (execution/job state is the canonical ExecutionJob object reference, not an MCP resource URI — see planning.md §5.3, conformance.md resource_projection contract).",
59
+ "pattern": "^honua://results/[^/]+$"
60
+ },
61
+ "notImplementedReason": { "type": "string" }
62
+ }
63
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://geospatial-mcp.honua.io/spec/schemas/tools/apply_style_preset.schema.json",
4
+ "title": "apply_style_preset inputSchema",
5
+ "description": "Argument shape for apply_style_preset (Analyze, Build App; returns the updated MapPackage). Applies a reusable StyleRef preset to a map package, optionally scoped to a binding. Responsibility-level; concrete styling field set finalizes upstream. See taxonomy.md §Map composition and resources.md §honua://styles/{style_id}.",
6
+ "type": "object",
7
+ "additionalProperties": true,
8
+ "required": ["mapPackageId", "styleId"],
9
+ "properties": {
10
+ "mapPackageId": {
11
+ "type": "string",
12
+ "description": "Identifier (map_…) of the MapPackage to style."
13
+ },
14
+ "styleId": {
15
+ "type": "string",
16
+ "description": "StyleRef preset identifier (style_…) to apply."
17
+ },
18
+ "targetBindingId": {
19
+ "type": "string",
20
+ "description": "Optional SourceBinding the preset is scoped to; applies map-wide when omitted."
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://geospatial-mcp.honua.io/spec/schemas/tools/cancel_job.schema.json",
4
+ "title": "cancel_job inputSchema",
5
+ "description": "Argument shape for the execution-lifecycle cancel tool (advertised name honua_cancel_job). Requests cancellation of a submitted ExecutionJob. x-honua-reference-shape: lifecycle control over the execution handoff; tracks the reference implementation.",
6
+ "x-honua-reference-shape": true,
7
+ "type": "object",
8
+ "required": ["jobId"],
9
+ "properties": {
10
+ "jobId": {
11
+ "type": "string",
12
+ "description": "Execution job identifier to request cancellation for."
13
+ }
14
+ }
15
+ }
@@ -0,0 +1,69 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://geospatial-mcp.honua.io/spec/schemas/tools/clarify_intent.schema.json",
4
+ "title": "clarify_intent inputSchema",
5
+ "description": "Argument shape for the clarify_intent tool (Analyze, Publish Data, Build App). Reference advertised name: honua_clarify_intent. Re-runs grounding with the operator's answers merged in. Extends ground_candidates with required intentId and a response carrying answers keyed by questionId. See planning.md §2.",
6
+ "type": "object",
7
+ "required": ["goal", "intentId", "response"],
8
+ "properties": {
9
+ "goal": {
10
+ "type": "string",
11
+ "minLength": 1,
12
+ "description": "Freeform natural-language description of the operator's goal."
13
+ },
14
+ "intentId": {
15
+ "type": "string",
16
+ "minLength": 1,
17
+ "description": "Intent identifier being clarified. Required on a clarification turn."
18
+ },
19
+ "workflowFamilyHint": {
20
+ "type": "string",
21
+ "enum": ["Analyze", "PublishData", "BuildApp", "AutomateDeploy"]
22
+ },
23
+ "assumptionPolicy": {
24
+ "type": "string",
25
+ "enum": ["AskAlways", "AskWhenMaterial", "UseDefaults"]
26
+ },
27
+ "explicitInputs": {
28
+ "type": "array",
29
+ "items": { "type": "string", "minLength": 1 }
30
+ },
31
+ "constraints": {
32
+ "type": "object",
33
+ "additionalProperties": false,
34
+ "properties": {
35
+ "areaOfInterest": { "type": "string" },
36
+ "spatialReferenceId": { "type": "integer" },
37
+ "timeWindowStart": { "type": "string", "format": "date-time" },
38
+ "timeWindowEnd": { "type": "string", "format": "date-time" },
39
+ "units": { "type": "string" }
40
+ }
41
+ },
42
+ "context": {
43
+ "type": "object",
44
+ "additionalProperties": false,
45
+ "properties": {
46
+ "workspaceId": { "type": "string" },
47
+ "priorIntentId": { "type": "string" },
48
+ "promotionScope": { "type": "string" }
49
+ }
50
+ },
51
+ "response": {
52
+ "type": "object",
53
+ "required": ["answers"],
54
+ "description": "ClarificationResponse: answers keyed by questionId.",
55
+ "properties": {
56
+ "answers": {
57
+ "type": "object",
58
+ "minProperties": 1,
59
+ "description": "Answers keyed by question identifier. Each answer is a non-empty list of values to support multi-select questions.",
60
+ "additionalProperties": {
61
+ "type": "array",
62
+ "minItems": 1,
63
+ "items": { "type": "string", "minLength": 1 }
64
+ }
65
+ }
66
+ }
67
+ }
68
+ }
69
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://geospatial-mcp.honua.io/spec/schemas/tools/compose_mixed_protocol_map.schema.json",
4
+ "title": "compose_mixed_protocol_map inputSchema",
5
+ "description": "Argument shape for compose_mixed_protocol_map (Analyze, Build App; returns a MapPackage). Composes a single map from layers bound across multiple protocols (GeoServices, OGC API, WMS/WFS, tiles) at the semantic level — protocol adaptation happens below the contract layer (taxonomy.md §Non-Goals 4). Responsibility-level; concrete binding field set finalizes upstream.",
6
+ "type": "object",
7
+ "additionalProperties": true,
8
+ "required": ["sourceBindings"],
9
+ "properties": {
10
+ "templateId": { "type": "string" },
11
+ "sourceBindings": {
12
+ "type": "array",
13
+ "minItems": 1,
14
+ "description": "Canonical SourceBinding entries, each protocol-aware. The tool does not expose protocol-specific operations.",
15
+ "items": { "type": "object", "additionalProperties": true }
16
+ },
17
+ "styleId": { "type": "string" },
18
+ "themeId": { "type": "string" },
19
+ "initialView": { "type": "object", "additionalProperties": true }
20
+ }
21
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://geospatial-mcp.honua.io/spec/schemas/tools/create_app_package.schema.json",
4
+ "title": "create_app_package inputSchema",
5
+ "description": "Argument shape for create_app_package (Build App; returns an AppPackage). Composes an SDK-native application from a map package, artifacts, and an app template. V1 targets honua-sdk-js with MapLibre GL JS. Responsibility-level: the AppPackage authoring field set finalizes upstream (honua-server#731). See taxonomy.md §App composition and resources.md §honua://app-packages/{app_package_id}.",
6
+ "type": "object",
7
+ "additionalProperties": true,
8
+ "properties": {
9
+ "templateId": {
10
+ "type": "string",
11
+ "description": "App-template registry identifier (surfaced through AppPackage.templateId)."
12
+ },
13
+ "targetSdk": {
14
+ "type": "string",
15
+ "description": "Target SDK declaration. V1 default is honua-sdk-js.",
16
+ "default": "honua-sdk-js"
17
+ },
18
+ "mapPackageId": {
19
+ "type": "string",
20
+ "description": "MapPackage (map_…) bound into the application."
21
+ },
22
+ "boundArtifactIds": {
23
+ "type": "array",
24
+ "description": "ArtifactRef identifiers (artifact_…) required at runtime.",
25
+ "items": { "type": "string" }
26
+ },
27
+ "runtimeConfig": {
28
+ "type": "object",
29
+ "additionalProperties": true,
30
+ "description": "Runtime configuration values projected into the generated app."
31
+ }
32
+ }
33
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://geospatial-mcp.honua.io/spec/schemas/tools/create_map_package.schema.json",
4
+ "title": "create_map_package inputSchema",
5
+ "description": "Argument shape for create_map_package (Analyze, Build App map-composition family; returns a MapPackage). Responsibility-level: the concrete MapPackage authoring field set is finalizing upstream (honua-server#731), so this schema pins the stable composition inputs (source bindings, style/theme selection, template, initial view) and permits additional properties. See taxonomy.md §Map composition and resources.md §honua://map-packages/{map_package_id}.",
6
+ "type": "object",
7
+ "additionalProperties": true,
8
+ "properties": {
9
+ "templateId": {
10
+ "type": "string",
11
+ "description": "Registry-defined MapTemplate identifier seeding the composition (e.g. analysis_default)."
12
+ },
13
+ "sourceBindings": {
14
+ "type": "array",
15
+ "description": "Protocol-aware bindings of map layers to data sources (canonical SourceBinding entries).",
16
+ "items": { "type": "object", "additionalProperties": true }
17
+ },
18
+ "styleId": {
19
+ "type": "string",
20
+ "description": "StyleRef selection (style_… ) applied to the composition."
21
+ },
22
+ "themeId": {
23
+ "type": "string",
24
+ "description": "ThemeSpec selection (theme_… ) applied to the composition."
25
+ },
26
+ "initialView": {
27
+ "type": "object",
28
+ "description": "Initial view geometry: bounding box and CRS.",
29
+ "additionalProperties": true,
30
+ "properties": {
31
+ "bbox": {
32
+ "type": "array",
33
+ "minItems": 4,
34
+ "maxItems": 4,
35
+ "items": { "type": "number" }
36
+ },
37
+ "crs": { "type": ["string", "integer"] }
38
+ }
39
+ }
40
+ }
41
+ }
@@ -0,0 +1,64 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://geospatial-mcp.honua.io/spec/schemas/tools/execute_plan.schema.json",
4
+ "title": "execute_plan inputSchema",
5
+ "description": "Argument shape for the execute_plan tool (Analyze, Publish Data; handoff returns an ExecutionJob reference for Analyze). Reference advertised name: honua_execute_plan. Submission rejects a missing planId or empty steps, so the executable plan REQUIRES planId and at least one step (contrast validate_plan). See planning.md §5.2.",
6
+ "type": "object",
7
+ "required": ["plan"],
8
+ "properties": {
9
+ "plan": { "$ref": "#/$defs/executablePlan" },
10
+ "idempotencyKey": {
11
+ "type": "string",
12
+ "description": "Optional deduplication key. Replays with the same key return the same job record."
13
+ }
14
+ },
15
+ "$defs": {
16
+ "executablePlan": {
17
+ "type": "object",
18
+ "description": "Canonical AnalysisPlan in executable form. planId and a non-empty steps array are mandatory.",
19
+ "required": ["planId", "steps"],
20
+ "properties": {
21
+ "planId": { "type": "string", "minLength": 1 },
22
+ "intentId": { "type": "string" },
23
+ "steps": {
24
+ "type": "array",
25
+ "minItems": 1,
26
+ "items": { "$ref": "#/$defs/planStep" }
27
+ },
28
+ "outputs": {
29
+ "type": "array",
30
+ "items": { "$ref": "#/$defs/artifactKind" }
31
+ },
32
+ "warnings": {
33
+ "type": "array",
34
+ "items": { "type": "string" }
35
+ }
36
+ }
37
+ },
38
+ "planStep": {
39
+ "type": "object",
40
+ "required": ["stepId", "kind"],
41
+ "properties": {
42
+ "stepId": { "type": "string" },
43
+ "kind": { "$ref": "#/$defs/planStepKind" },
44
+ "processId": { "type": "string" },
45
+ "inputs": {
46
+ "type": "object",
47
+ "additionalProperties": { "type": "string" }
48
+ },
49
+ "dependsOn": {
50
+ "type": "array",
51
+ "items": { "type": "string" }
52
+ }
53
+ }
54
+ },
55
+ "planStepKind": {
56
+ "type": "string",
57
+ "enum": ["QueryFeatures", "Geoprocess", "Aggregate", "RenderMap", "Export"]
58
+ },
59
+ "artifactKind": {
60
+ "type": "string",
61
+ "enum": ["Scalar", "FeatureLayer", "Table", "Raster", "File", "Report", "Map", "AppBundle"]
62
+ }
63
+ }
64
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://geospatial-mcp.honua.io/spec/schemas/tools/geocode_address.schema.json",
4
+ "title": "geocode_address inputSchema",
5
+ "description": "Argument shape for the analysis/geoprocessing geocode tool (advertised name honua_geocode_address). Resolves a freeform address to ranked candidates. x-honua-reference-shape: this shape tracks the reference implementation.",
6
+ "x-honua-reference-shape": true,
7
+ "type": "object",
8
+ "required": ["address"],
9
+ "properties": {
10
+ "address": {
11
+ "type": "string",
12
+ "minLength": 1,
13
+ "description": "Freeform single-line address text to geocode."
14
+ },
15
+ "maxResults": {
16
+ "type": "integer",
17
+ "minimum": 1,
18
+ "maximum": 50,
19
+ "default": 5,
20
+ "description": "Maximum number of candidates to return."
21
+ },
22
+ "countryCodes": {
23
+ "type": "string",
24
+ "description": "Optional comma-separated ISO 3166 country codes to restrict the search."
25
+ },
26
+ "outSrid": {
27
+ "type": "integer",
28
+ "default": 4326,
29
+ "description": "Spatial reference (SRID/WKID) for returned candidate coordinates."
30
+ },
31
+ "provider": {
32
+ "type": "string",
33
+ "description": "Optional preferred geocoding provider name."
34
+ }
35
+ }
36
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://geospatial-mcp.honua.io/spec/schemas/tools/get_style.schema.json",
4
+ "title": "get_style inputSchema",
5
+ "description": "Argument shape for get_style (Analyze, Publish Data, Build App). Read-only style inspection: with styleId, resolves a single canonical StyleRef (style_id/title/encodings) from the server OGC API – Styles surface; without styleId, lists the available styles (honua://styles). Like every MCP tool it is read-only and never mutates server-side styles. See taxonomy.md §Style inspection and resources.md §honua://styles/{style_id}.",
6
+ "type": "object",
7
+ "properties": {
8
+ "styleId": {
9
+ "type": "string",
10
+ "minLength": 1,
11
+ "description": "StyleRef identifier (style_…) to resolve. When omitted, the tool lists the available styles (honua://styles)."
12
+ },
13
+ "encoding": {
14
+ "type": "string",
15
+ "description": "Optional StyleEncoding to select from StyleRef.encodings when resolving a single style.",
16
+ "enum": [
17
+ "mapbox-style",
18
+ "sld-1.0.0",
19
+ "sld-1.1.0",
20
+ "esri-drawing-info",
21
+ "esri-image-renderer",
22
+ "3d-tiles-styling"
23
+ ]
24
+ },
25
+ "includeStylesheet": {
26
+ "type": "boolean",
27
+ "description": "When true and styleId is set, include the resolved stylesheet body (inlineBody) for the selected encoding; otherwise the StyleRef projection advertises derived encodings by reference (storageRef)."
28
+ }
29
+ }
30
+ }
@@ -0,0 +1,66 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://geospatial-mcp.honua.io/spec/schemas/tools/ground_candidates.schema.json",
4
+ "title": "ground_candidates inputSchema",
5
+ "description": "Argument shape for the ground_candidates tool (Analyze, Publish Data). Reference advertised name: honua_ground_candidates. Grounds a natural-language goal to a workflow family, ranked candidates, a draft intent, and an optional clarification envelope. See taxonomy.md §Intent and planning and planning.md §2.",
6
+ "type": "object",
7
+ "required": ["goal"],
8
+ "properties": {
9
+ "goal": {
10
+ "type": "string",
11
+ "minLength": 1,
12
+ "description": "Freeform natural-language description of the operator's goal."
13
+ },
14
+ "intentId": {
15
+ "type": "string",
16
+ "minLength": 1,
17
+ "description": "Intent identifier. Optional on the initial grounding call (server allocates one); required on a clarification turn."
18
+ },
19
+ "workflowFamilyHint": {
20
+ "type": "string",
21
+ "description": "Optional workflow-family override (one of the canonical WorkflowFamily names).",
22
+ "enum": ["Analyze", "PublishData", "BuildApp", "AutomateDeploy"]
23
+ },
24
+ "assumptionPolicy": {
25
+ "type": "string",
26
+ "description": "Policy controlling when inferred assumptions trigger a clarification. See planning.md §2.3.",
27
+ "enum": ["AskAlways", "AskWhenMaterial", "UseDefaults"]
28
+ },
29
+ "explicitInputs": {
30
+ "type": "array",
31
+ "description": "Dataset, layer, or artifact identifiers the caller has already pinned.",
32
+ "items": { "type": "string", "minLength": 1 }
33
+ },
34
+ "constraints": {
35
+ "type": "object",
36
+ "additionalProperties": false,
37
+ "description": "Optional analysis constraints.",
38
+ "properties": {
39
+ "areaOfInterest": {
40
+ "type": "string",
41
+ "description": "AOI as WKT, bounding-box string, or named area."
42
+ },
43
+ "spatialReferenceId": {
44
+ "type": "integer",
45
+ "description": "EPSG SRID for the AOI (defaults to 4326)."
46
+ },
47
+ "timeWindowStart": { "type": "string", "format": "date-time" },
48
+ "timeWindowEnd": { "type": "string", "format": "date-time" },
49
+ "units": {
50
+ "type": "string",
51
+ "description": "Preferred unit system (e.g. 'meters', 'feet')."
52
+ }
53
+ }
54
+ },
55
+ "context": {
56
+ "type": "object",
57
+ "additionalProperties": false,
58
+ "description": "Optional workflow context.",
59
+ "properties": {
60
+ "workspaceId": { "type": "string" },
61
+ "priorIntentId": { "type": "string" },
62
+ "promotionScope": { "type": "string" }
63
+ }
64
+ }
65
+ }
66
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://geospatial-mcp.honua.io/spec/schemas/tools/list_capabilities.schema.json",
4
+ "title": "list_capabilities inputSchema",
5
+ "description": "Argument shape for enumerating the server's full tool/resource surface plus grounding resources for a cold client LLM. The bare standard taxonomy models capability discovery as a CapabilityCatalog read; the reference implementation exposes it as a discrete tool (advertised name honua_list_capabilities). x-honua-extension: this is a documented Honua extension over the bare taxonomy, pending formalization in the geospatial-mcp standard. x-honua-reference-shape: this shape tracks the reference implementation.",
6
+ "x-honua-extension": true,
7
+ "x-honua-reference-shape": true,
8
+ "type": "object",
9
+ "properties": {
10
+ "includeResources": {
11
+ "type": "boolean",
12
+ "default": true,
13
+ "description": "Include the resource catalog (job, catalog, and promotion URIs) in the manifest."
14
+ },
15
+ "includeGroundingResources": {
16
+ "type": "boolean",
17
+ "default": true,
18
+ "description": "Include the grounding/catalog resource URIs a client LLM should read first to ground a workflow."
19
+ }
20
+ }
21
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://geospatial-mcp.honua.io/spec/schemas/tools/list_layers.schema.json",
4
+ "title": "list_layers inputSchema",
5
+ "description": "Argument shape for the discovery/query layer-listing tool. The bare standard taxonomy models discovery as a CapabilityCatalog read; the reference implementation exposes it as a tool (advertised name honua_list_layers) over the open-core data-access surface. x-honua-reference-shape: this shape tracks the reference implementation.",
6
+ "x-honua-reference-shape": true,
7
+ "type": "object",
8
+ "properties": {
9
+ "filter": {
10
+ "type": "string",
11
+ "description": "Optional case-insensitive substring to match against service and layer name/title. When omitted, all published layers are returned."
12
+ }
13
+ }
14
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://geospatial-mcp.honua.io/spec/schemas/tools/plan_analysis.schema.json",
4
+ "title": "plan_analysis inputSchema",
5
+ "description": "Argument shape for the plan_analysis tool (Analyze family; emits an AnalysisPlan). Reference advertised name: honua_plan_analysis. Compiles a natural-language intent into an analysis plan / canonical spec draft. See taxonomy.md §Intent and planning.",
6
+ "type": "object",
7
+ "required": ["intent"],
8
+ "properties": {
9
+ "intent": {
10
+ "type": "string",
11
+ "minLength": 1,
12
+ "description": "Natural-language intent to compile into an analysis plan or canonical spec draft."
13
+ },
14
+ "context": {
15
+ "type": "object",
16
+ "description": "Optional caller context. Echoed back unchanged by the reference implementation."
17
+ }
18
+ }
19
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://geospatial-mcp.honua.io/spec/schemas/tools/preview_app_package.schema.json",
4
+ "title": "preview_app_package inputSchema",
5
+ "description": "Argument shape for preview_app_package (Build App; returns a preview ArtifactRef). Produces a read-only preview artifact for an existing app package. Responsibility-level. See taxonomy.md §App composition.",
6
+ "type": "object",
7
+ "additionalProperties": true,
8
+ "required": ["appPackageId"],
9
+ "properties": {
10
+ "appPackageId": {
11
+ "type": "string",
12
+ "description": "Identifier (app_…) of the AppPackage to preview."
13
+ }
14
+ }
15
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://geospatial-mcp.honua.io/spec/schemas/tools/preview_map_package.schema.json",
4
+ "title": "preview_map_package inputSchema",
5
+ "description": "Argument shape for preview_map_package (Analyze, Build App; returns a preview ArtifactRef). Produces a read-only preview artifact for an existing map package. Responsibility-level. See taxonomy.md §Map composition.",
6
+ "type": "object",
7
+ "additionalProperties": true,
8
+ "required": ["mapPackageId"],
9
+ "properties": {
10
+ "mapPackageId": {
11
+ "type": "string",
12
+ "description": "Identifier (map_…) of the MapPackage to preview."
13
+ },
14
+ "width": { "type": "integer", "minimum": 1 },
15
+ "height": { "type": "integer", "minimum": 1 }
16
+ }
17
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://geospatial-mcp.honua.io/spec/schemas/tools/preview_package.schema.json",
4
+ "title": "preview_package inputSchema",
5
+ "description": "Argument shape for the read-only composition-review tool (advertised name honua_preview_package). Computes a read-only preview plan for a map/app package before publishing, in addition to the requirement-coverage review; it never mutates server state. x-honua-reference-shape: tracks the reference implementation; the bare taxonomy models package preview as a CapabilityCatalog + resource read.",
6
+ "x-honua-reference-shape": true,
7
+ "type": "object",
8
+ "properties": {
9
+ "contractVersion": {
10
+ "type": "string",
11
+ "description": "Package-review contract version. Current value is honua.package_review.v1."
12
+ },
13
+ "packageFamily": {
14
+ "type": "string",
15
+ "description": "Supported values are query, analysis_plan, map_package, dashboard_report, form, app_package, workflow, gp, and etl. Missing or unknown values are returned as canonical missing_package_family or unsupported_package_family findings rather than rejected by the schema."
16
+ },
17
+ "packageId": { "type": "string" },
18
+ "requestedAction": { "type": "string" },
19
+ "format": { "type": "string" },
20
+ "packagePayload": {
21
+ "type": ["object", "array", "string", "number", "boolean", "null"],
22
+ "description": "Opaque package payload inspected only by the matching package-family adapter."
23
+ },
24
+ "requirements": {
25
+ "type": ["object", "null"],
26
+ "description": "Shared data binding, permission, schema, CRS, capability, dependency, and approval requirements. An explicit null is normalized to an empty requirement set."
27
+ },
28
+ "estimate": {
29
+ "type": "object",
30
+ "description": "Optional upstream estimate echoed in the shared package-review response."
31
+ },
32
+ "includePreviewPlan": { "type": "boolean" },
33
+ "includePassFindings": { "type": "boolean" },
34
+ "resourceRefs": {
35
+ "type": ["object", "null"],
36
+ "additionalProperties": { "type": "string" },
37
+ "description": "Safe caller-visible resource references. An explicit null is normalized to an empty map."
38
+ }
39
+ }
40
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://geospatial-mcp.honua.io/spec/schemas/tools/propose_operation.schema.json",
4
+ "title": "propose_operation inputSchema",
5
+ "description": "Argument shape for the control-plane proposal tool (advertised name honua_propose_operation). Proposes an in-scope mutating control-plane operation for human approval (never autonomously executed), consistent with the ADR-0028 no-direct-AI-mutation boundary in taxonomy.md §Non-Goals. x-honua-reference-shape: tracks the reference implementation.",
6
+ "x-honua-reference-shape": true,
7
+ "type": "object",
8
+ "required": ["kind"],
9
+ "properties": {
10
+ "kind": {
11
+ "type": "string",
12
+ "description": "In-scope mutating control-plane operation class to propose.",
13
+ "enum": ["AdminConfigChange", "Deploy", "MetadataRelease", "Seed"]
14
+ },
15
+ "reason": {
16
+ "type": "string",
17
+ "description": "Operator-facing reason or change note for the proposal."
18
+ },
19
+ "executionPayload": {
20
+ "type": "string",
21
+ "description": "Opaque, class-specific JSON execution payload replayed when the proposal is approved."
22
+ },
23
+ "idempotencyKey": {
24
+ "type": "string",
25
+ "description": "Stable idempotency key for the underlying operation."
26
+ }
27
+ }
28
+ }