@honua/mcp-server 0.1.9-beta.0 → 0.1.11-beta.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.
- package/certification/setup-parity.md +79 -0
- package/dist/src/certification/admin-parity.d.ts +7 -1
- package/dist/src/certification/admin-parity.d.ts.map +1 -1
- package/dist/src/certification/admin-parity.js +9 -2
- package/dist/src/certification/setup-parity.d.ts +86 -0
- package/dist/src/certification/setup-parity.d.ts.map +1 -0
- package/dist/src/certification/setup-parity.js +188 -0
- package/dist/src/eval/cli.js +2 -2
- package/dist/src/eval/corpus.d.ts.map +1 -1
- package/dist/src/eval/corpus.js +6 -5
- package/dist/src/eval/grade.d.ts.map +1 -1
- package/dist/src/eval/grade.js +25 -0
- package/dist/src/eval/report.d.ts +9 -0
- package/dist/src/eval/report.d.ts.map +1 -1
- package/dist/src/eval/report.js +15 -5
- package/dist/src/eval/runner.d.ts.map +1 -1
- package/dist/src/eval/runner.js +16 -1
- package/dist/src/eval/types.d.ts +37 -2
- package/dist/src/eval/types.d.ts.map +1 -1
- package/dist/src/eval/workflow-corpus.d.ts +9 -0
- package/dist/src/eval/workflow-corpus.d.ts.map +1 -0
- package/dist/src/eval/workflow-corpus.js +306 -0
- package/dist/src/proxy.d.ts.map +1 -1
- package/dist/src/proxy.js +7 -1
- package/dist/src/release/zero-to-map-checkpoint.d.ts.map +1 -1
- package/dist/src/release/zero-to-map-checkpoint.js +9 -1
- package/dist/src/release/zero-to-map-cli.d.ts +11 -1
- package/dist/src/release/zero-to-map-cli.d.ts.map +1 -1
- package/dist/src/release/zero-to-map-cli.js +52 -12
- package/dist/src/release/zero-to-map.d.ts +132 -59
- package/dist/src/release/zero-to-map.d.ts.map +1 -1
- package/dist/src/release/zero-to-map.js +459 -167
- package/package.json +7 -4
- package/release/zero-to-map/README.md +76 -79
- package/release/zero-to-map/configs/claude-code.mcp.json +1 -1
- package/release/zero-to-map/configs/claude-desktop.json +1 -1
- package/release/zero-to-map/configs/cursor.json +1 -1
- package/release/zero-to-map/journey.v1.json +965 -502
- package/release/zero-to-map/contracts/esri-gp-mcp.v1.json +0 -73
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@honua/mcp-server",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.11-beta.0",
|
|
4
4
|
"description": "Platform-free MCP server for geospatial services: expose discovery, query, and analysis over any public ArcGIS/Esri FeatureServer or OGC API endpoint to any MCP client, with no platform lock-in",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Honua",
|
|
@@ -56,6 +56,7 @@
|
|
|
56
56
|
"test:certification": "npm run build --silent && vitest run test/certification && node dist/src/certification/cli.js",
|
|
57
57
|
"test:certification:admin": "vitest run test/proxy.test.ts test/certification/admin-parity.test.ts",
|
|
58
58
|
"certify:admin-parity": "npm run build --silent && node dist/src/certification/admin-parity.js",
|
|
59
|
+
"certify:setup-parity": "npm run build --silent && node dist/src/certification/setup-parity.js",
|
|
59
60
|
"test:certification:artifact": "npm run build --silent && node dist/src/certification/cli.js --artifact-only",
|
|
60
61
|
"test:certification:standalone": "npm run build --silent && node dist/src/certification/cli.js --target standalone",
|
|
61
62
|
"test:certification:standalone-ogc": "npm run build --silent && node dist/src/certification/cli.js --target standalone-ogc",
|
|
@@ -82,12 +83,13 @@
|
|
|
82
83
|
"zod": "^3.24.0"
|
|
83
84
|
},
|
|
84
85
|
"overrides": {
|
|
85
|
-
"hono": "^4.
|
|
86
|
+
"hono": "^4.13.7",
|
|
86
87
|
"@hono/node-server": "^2.0.5",
|
|
87
|
-
"fast-uri": "^3.1.
|
|
88
|
+
"fast-uri": "^3.1.6",
|
|
89
|
+
"qs": "^6.16.0"
|
|
88
90
|
},
|
|
89
91
|
"peerDependencies": {
|
|
90
|
-
"@honua/sdk-js": "^0.1.
|
|
92
|
+
"@honua/sdk-js": "^0.1.11-beta.0"
|
|
91
93
|
},
|
|
92
94
|
"devDependencies": {
|
|
93
95
|
"@biomejs/biome": "1.9.4",
|
|
@@ -101,6 +103,7 @@
|
|
|
101
103
|
"dist/src",
|
|
102
104
|
"release/zero-to-map",
|
|
103
105
|
"certification/geospatial-mcp-schemas",
|
|
106
|
+
"certification/setup-parity.md",
|
|
104
107
|
"README.md",
|
|
105
108
|
"LICENSE"
|
|
106
109
|
],
|
|
@@ -1,15 +1,25 @@
|
|
|
1
1
|
# Zero-to-map 2026.1 release journey
|
|
2
2
|
|
|
3
|
+
The September 9 release decision on #1401 narrows first-cut qualification.
|
|
4
|
+
This older journey still exercises the broader Admin/analysis and multi-family
|
|
5
|
+
Studio integration. Its roster is not the bounded 2026.1 setup gate. Use the
|
|
6
|
+
[pinned setup catalog check](../../certification/setup-parity.md) for that
|
|
7
|
+
gate's HTTP/stdio discovery evidence; retain separate install and style/render
|
|
8
|
+
execution receipts. Full Admin MCP and broader analysis qualification remain
|
|
9
|
+
outside the bounded first-cut dependency chain.
|
|
10
|
+
|
|
3
11
|
This bundle is the executable contract for `honua-release#123` D9.3: install
|
|
4
|
-
Honua, configure and publish deterministic data with
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
`honua://jobs/{
|
|
12
|
+
Honua, configure and publish deterministic data with the closed admin roster,
|
|
13
|
+
buffer the published parcels with `honua_validate_plan` then
|
|
14
|
+
`honua_execute_plan` (`analytics.buffer-aggregate`), prove `geometry.buffer`
|
|
15
|
+
through the SDK GPServer runner, compose distinct map, app, and dashboard
|
|
16
|
+
packages in Studio, save each as an immutable version, and publish that saved
|
|
17
|
+
version. An admin `honua_studio_propose_publication` returns `shareUrl` with
|
|
18
|
+
`humanConfirmationRequired: false`. The same session fetches each share URL and
|
|
19
|
+
requires HTTP 200. It does not import a Console receipt and it does not require
|
|
20
|
+
a second principal. The buffer job is polled through `honua://jobs/{jobId}` to
|
|
21
|
+
terminal success, and `artifacts[].artifactId` is read from
|
|
22
|
+
`honua://jobs/{jobId}/results`; a queued submission alone cannot pass.
|
|
13
23
|
|
|
14
24
|
The driver reuses `honua admin install` and `honua-mcp-proxy`. It does not ship
|
|
15
25
|
a second installer, admin client, or MCP transport. The installer is the
|
|
@@ -49,17 +59,21 @@ Prerequisites:
|
|
|
49
59
|
|
|
50
60
|
- Node.js 20.19 or newer and Docker with Compose
|
|
51
61
|
- the 2026.1 `honua` CLI work from `honua-sdk-js#1370-#1373`
|
|
52
|
-
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
`
|
|
58
|
-
`
|
|
59
|
-
|
|
62
|
+
- one admin credential. The journey does not require a second principal
|
|
63
|
+
- a server build that advertises the closed operator roster this journey calls:
|
|
64
|
+
`honua_admin_connections_create`, `honua_admin_connections_test`,
|
|
65
|
+
`honua_admin_import_upload_url`, `honua_admin_layer_publish`,
|
|
66
|
+
`honua_admin_services_access_policy_set`, `honua_admin_server_status`,
|
|
67
|
+
`honua_admin_api_key_list`, `honua_admin_api_key_effective_permissions`,
|
|
68
|
+
`honua_validate_plan`, `honua_execute_plan`, and the Studio lifecycle tools
|
|
69
|
+
including `honua_studio_save_version`, `honua_studio_get_version`,
|
|
70
|
+
`honua_studio_reopen_version`, and `honua_studio_propose_publication`.
|
|
71
|
+
It does not require a 432- or 441-tool catalog, and it does not require the
|
|
72
|
+
`analysis` or `esri-gp` profiles. `honua_esri_gp_*` and `honua_buffer_features`
|
|
73
|
+
are not called
|
|
74
|
+
- the `geoprocessing/Buffer` GPServer task seeded for the separate
|
|
75
|
+
`geometry.buffer` proof. That task takes WKB and has no `layerId`
|
|
60
76
|
- these fixtures available to the server at an HTTP(S) base URL
|
|
61
|
-
- a writable checkpoint path; the first pass emits the exact resolved Console
|
|
62
|
-
receipt request after all pre-approval work completes
|
|
63
77
|
|
|
64
78
|
Serve the checked-in fixtures from a URL reachable by the Honua container, for
|
|
65
79
|
example with an existing static-file server. Then run:
|
|
@@ -78,26 +92,32 @@ npm run release:zero-to-map -- \
|
|
|
78
92
|
--output ./zero-to-map-live-receipt.json
|
|
79
93
|
```
|
|
80
94
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
95
|
+
`dbSecretReference` is a request-supplied secret reference: the journey sends
|
|
96
|
+
it to the server, and the server resolves it from its own environment. The
|
|
97
|
+
server the journey runs against must therefore both define that variable (the
|
|
98
|
+
fixture database connection string) and permit it in its allowlist for
|
|
99
|
+
request-supplied secret references (honua-server #5055), which is
|
|
100
|
+
deny-by-default. Permit exactly this one name rather than a prefix, in the
|
|
101
|
+
server's environment:
|
|
86
102
|
|
|
87
103
|
```sh
|
|
88
|
-
|
|
89
|
-
--console-receipt ./console-approval.json
|
|
104
|
+
Security__RequestSecretReferences__AllowedEnvironmentVariables__0=HONUA_ZERO_TO_MAP_DB_CONNECTION
|
|
90
105
|
```
|
|
91
106
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
107
|
+
Without that entry the `create-connection` action in stage 2 is refused before
|
|
108
|
+
any connection is stored. Server images that predate the setting ignore the
|
|
109
|
+
variable. `honua admin install local` does not write either variable into the
|
|
110
|
+
compose file it generates, so add both to the `honua` service's environment (or
|
|
111
|
+
start an equivalent server yourself) before running with `--execute`. If you
|
|
112
|
+
pass a different `--var dbSecretReference=env:<NAME>`, permit `<NAME>` instead.
|
|
113
|
+
|
|
114
|
+
The live run does not pause for a Console receipt. An admin publish returns
|
|
115
|
+
`shareUrl` (`/api/v1/studio/published` plus the route) with
|
|
116
|
+
`humanConfirmationRequired: false`, and the journey fetches that URL. A
|
|
117
|
+
root-relative share path is resolved against the MCP endpoint origin. HTTP is
|
|
118
|
+
accepted only for a loopback origin; any other share URL must be HTTPS and must
|
|
119
|
+
not embed credentials. One admin credential performs configuration, publication,
|
|
120
|
+
and the fetch.
|
|
101
121
|
|
|
102
122
|
For a deployment already provisioned by the DevOps ECS producer, use
|
|
103
123
|
`--target aws-ecs --provision-receipt <pre-teardown-binding.json>`. The binding
|
|
@@ -107,27 +127,14 @@ the real image/digest, Terraform, readiness, and a secret-free access receipt
|
|
|
107
127
|
whose reference digest is verified against the producer's Secrets Manager ARN;
|
|
108
128
|
it does not invoke or pretend to invoke the Docker installer.
|
|
109
129
|
|
|
110
|
-
The catalog is checked
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
| --- | --- | --- |
|
|
119
|
-
| `base` | 47 static + 385 `honua_admin_*` = 432 | the generated Admin contract, plus the 11 audited secret/session exclusions proven absent |
|
|
120
|
-
| `analysis` | 6 | `honua_buffer_features` by name; the rest by declared size (the server has not published an `analysis` roster - honua-server#3363) |
|
|
121
|
-
| `esri-gp` | 3 | exactly `honua_esri_gp_list_tasks`, `honua_esri_gp_describe_task`, `honua_esri_gp_execute_task` from `contracts/esri-gp-mcp.v1.json` |
|
|
122
|
-
|
|
123
|
-
The enabled candidate therefore advertises 432 + 6 + 3 = 441 tools. A missing,
|
|
124
|
-
unexpected, duplicate, excluded, truncated, or schema-drifted member fails with
|
|
125
|
-
its own labelled finding naming the journey stage and action that needs the
|
|
126
|
-
tool; a short catalog is reported as a pagination fault rather than a roster
|
|
127
|
-
decision. The pagination safety ceiling in `listAllTools` is deliberately
|
|
128
|
-
separate from every roster number, so reading a larger profile-enabled catalog
|
|
129
|
-
is never mistaken for a hostile server. Default-profile certification
|
|
130
|
-
(`certifyAdminCatalogParity`) continues to require exactly 432.
|
|
130
|
+
The catalog is checked before the first MCP call. The preflight selects
|
|
131
|
+
`tools/list` view `full` and asserts the closed roster: every tool this journey
|
|
132
|
+
calls, by name, with the stage and action that needs it. It does not require
|
|
133
|
+
432 or 441 tools and it does not require the `analysis` or `esri-gp` profiles.
|
|
134
|
+
Extra advertised tools are not a failure. A duplicate name or an input schema
|
|
135
|
+
that rejects a planned argument blocks the run without sending that call.
|
|
136
|
+
Default-profile certification (`certifyAdminCatalogParity`) is a separate gate
|
|
137
|
+
and is not this journey's roster.
|
|
131
138
|
|
|
132
139
|
The connection is
|
|
133
140
|
created with `secretReference` + `secretType`; raw database credentials never
|
|
@@ -145,30 +152,20 @@ The Studio version tools are also preflighted before the first server mutation.
|
|
|
145
152
|
Map, app, and dashboard each exercise layer, style, view, widget, and control
|
|
146
153
|
mutations before validation; family-specific shortcuts or embedded lookalikes
|
|
147
154
|
cannot satisfy the release roster.
|
|
148
|
-
The journey does not treat `honua_studio_get_draft` as reopen evidence
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
version identities, all three reopened drafts and intent-bearing publication
|
|
159
|
-
versions, all three Console request/publication/status/public-URL identities,
|
|
160
|
-
execution operations, audit correlations, routes, candidate, and release. Each
|
|
161
|
-
audit operation must equal its family's execution operation, each proposal ID
|
|
162
|
-
must equal its publication request ID, and the app public URL must equal the
|
|
163
|
-
top-level share URL. The Studio proposal actions reject any pre-approval
|
|
164
|
-
publication ID or public URL and must report both `recorded=true` and
|
|
165
|
-
`humanConfirmationRequired=true`. Agent execution never claims the human
|
|
166
|
-
publication step. Stage 7 independently requires identity-preserving HTTPS
|
|
167
|
-
HTTP 200 responses for map, app, and dashboard URLs.
|
|
155
|
+
The journey does not treat `honua_studio_get_draft` as reopen evidence. Save
|
|
156
|
+
captures read `/structuredContent/version/versionId`,
|
|
157
|
+
`/structuredContent/version/contentHash`, and `versionNumber` under `version`.
|
|
158
|
+
`honua_studio_get_version` still returns top-level `versionId` and `contentHash`.
|
|
159
|
+
Publication runs after that save. `honua_studio_propose_publication` takes
|
|
160
|
+
`itemId`, `versionId`, `contentHash`, `route`, `visibility`, and `note`. It does
|
|
161
|
+
not take `draftId`, `generation`, or `embed`. For this admin journey the result
|
|
162
|
+
has `humanConfirmationRequired: false` and a `shareUrl`. The journey fetches
|
|
163
|
+
each share URL and requires HTTP 200. It does not forbid `shareUrl` and it does
|
|
164
|
+
not wait for a second principal.
|
|
168
165
|
|
|
169
166
|
## Evidence status
|
|
170
167
|
|
|
171
168
|
The fixtures, plan, contracts, and simulated end-to-end tests are deterministic.
|
|
172
|
-
They are not a live release recording.
|
|
173
|
-
|
|
174
|
-
|
|
169
|
+
They are not a live release recording. Contract mode stays `blocked` and does
|
|
170
|
+
not start Docker. A live pass is the same admin session reaching HTTP 200 on
|
|
171
|
+
the three share URLs.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"mcpServers": {
|
|
3
3
|
"honua": {
|
|
4
4
|
"command": "npx",
|
|
5
|
-
"args": ["-y", "--package", "@honua/mcp-server@0.1.
|
|
5
|
+
"args": ["-y", "--package", "@honua/mcp-server@0.1.10-beta.0", "honua-mcp-proxy"],
|
|
6
6
|
"env": {
|
|
7
7
|
"HONUA_MCP_REMOTE_URL": "http://localhost:8080/mcp"
|
|
8
8
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"mcpServers": {
|
|
3
3
|
"honua": {
|
|
4
4
|
"command": "npx",
|
|
5
|
-
"args": ["-y", "--package", "@honua/mcp-server@0.1.
|
|
5
|
+
"args": ["-y", "--package", "@honua/mcp-server@0.1.10-beta.0", "honua-mcp-proxy"],
|
|
6
6
|
"env": {
|
|
7
7
|
"HONUA_MCP_REMOTE_URL": "http://localhost:8080/mcp"
|
|
8
8
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"mcpServers": {
|
|
3
3
|
"honua": {
|
|
4
4
|
"command": "npx",
|
|
5
|
-
"args": ["-y", "--package", "@honua/mcp-server@0.1.
|
|
5
|
+
"args": ["-y", "--package", "@honua/mcp-server@0.1.10-beta.0", "honua-mcp-proxy"],
|
|
6
6
|
"env": {
|
|
7
7
|
"HONUA_MCP_REMOTE_URL": "http://localhost:8080/mcp"
|
|
8
8
|
}
|