kaax-mcp 0.1.3 → 0.1.4
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/dist/client.js +34 -15
- package/dist/client.js.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/client.js
CHANGED
|
@@ -6,7 +6,23 @@
|
|
|
6
6
|
* `undici.fetch` for the small footprint and Node 18+ compatibility.
|
|
7
7
|
*/
|
|
8
8
|
import { fetch } from "undici";
|
|
9
|
+
import { getLocale } from "./i18n.js";
|
|
9
10
|
const DEFAULT_BASE_URL = "https://www.kaax-agritech.com";
|
|
11
|
+
/**
|
|
12
|
+
* Every Kaax API route lives under `/[lang]/api/...` (i18n routing). Without
|
|
13
|
+
* the lang segment Next.js middleware fires a 307 redirect to add it, and
|
|
14
|
+
* undici drops the POST body on a 307 → the call lands on the server as a
|
|
15
|
+
* GET, every endpoint that expects a body returns 4xx/5xx, and the MCP
|
|
16
|
+
* appears to "always fail in production".
|
|
17
|
+
*
|
|
18
|
+
* Fix: prepend the locale before every path here. KAAX_LOCALE defaults to
|
|
19
|
+
* "es" so existing users see no change unless they explicitly switched.
|
|
20
|
+
*/
|
|
21
|
+
function withLang(path) {
|
|
22
|
+
const locale = getLocale();
|
|
23
|
+
const cleanPath = path.startsWith("/") ? path : `/${path}`;
|
|
24
|
+
return `/${locale}${cleanPath}`;
|
|
25
|
+
}
|
|
10
26
|
// ─────────────────────────────────────────────────────────────────────────
|
|
11
27
|
// Onboarding handoff — these endpoints do NOT require an apiKey because
|
|
12
28
|
// the MCP calls them BEFORE the user has signed up. They live outside the
|
|
@@ -19,7 +35,7 @@ const DEFAULT_BASE_URL = "https://www.kaax-agritech.com";
|
|
|
19
35
|
* flow. Returns the opaque token + a hint URL the MCP can `openBrowser` on.
|
|
20
36
|
*/
|
|
21
37
|
export async function issueOnboardingToken(baseUrl = DEFAULT_BASE_URL, source = "mcp") {
|
|
22
|
-
const url = `${baseUrl.replace(/\/$/, "")}/api/landing/onboarding-token`;
|
|
38
|
+
const url = `${baseUrl.replace(/\/$/, "")}${withLang("/api/landing/onboarding-token")}`;
|
|
23
39
|
const res = await fetch(url, {
|
|
24
40
|
method: "POST",
|
|
25
41
|
headers: { "Content-Type": "application/json", Accept: "application/json" },
|
|
@@ -36,7 +52,7 @@ export async function issueOnboardingToken(baseUrl = DEFAULT_BASE_URL, source =
|
|
|
36
52
|
* own bounded back-off.
|
|
37
53
|
*/
|
|
38
54
|
export async function fetchOnboardingStatus(token, baseUrl = DEFAULT_BASE_URL) {
|
|
39
|
-
const url = `${baseUrl.replace(/\/$/, "")}/api/landing/onboarding-status?token=${encodeURIComponent(token)}`;
|
|
55
|
+
const url = `${baseUrl.replace(/\/$/, "")}${withLang("/api/landing/onboarding-status")}?token=${encodeURIComponent(token)}`;
|
|
40
56
|
const res = await fetch(url, {
|
|
41
57
|
method: "GET",
|
|
42
58
|
headers: { Accept: "application/json" },
|
|
@@ -116,7 +132,7 @@ export class KaaxClient {
|
|
|
116
132
|
*/
|
|
117
133
|
async listAnalyses(filters = {}) {
|
|
118
134
|
const { page, limit, ...body } = filters;
|
|
119
|
-
const url = new URL(`${this.baseUrl}/api/v0/analyses`);
|
|
135
|
+
const url = new URL(`${this.baseUrl}${withLang("/api/v0/analyses")}`);
|
|
120
136
|
if (page)
|
|
121
137
|
url.searchParams.set("page", String(page));
|
|
122
138
|
if (limit)
|
|
@@ -161,18 +177,21 @@ export class KaaxClient {
|
|
|
161
177
|
}
|
|
162
178
|
/** GET /api/v2/fields — paginated, filterable list of the user's fields. */
|
|
163
179
|
async listFields(params = {}) {
|
|
164
|
-
|
|
180
|
+
// Build the query against a dummy origin so we get URLSearchParams
|
|
181
|
+
// encoding, then strip the origin back off. `tryGet` is responsible
|
|
182
|
+
// for prepending the `/[lang]` segment — we must not double it here.
|
|
183
|
+
const u = new URL("https://placeholder.invalid/api/v2/fields");
|
|
165
184
|
if (params.tag)
|
|
166
|
-
|
|
185
|
+
u.searchParams.set("tag", params.tag);
|
|
167
186
|
if (params.type)
|
|
168
|
-
|
|
187
|
+
u.searchParams.set("type", params.type);
|
|
169
188
|
if (params.q)
|
|
170
|
-
|
|
189
|
+
u.searchParams.set("q", params.q);
|
|
171
190
|
if (params.page)
|
|
172
|
-
|
|
191
|
+
u.searchParams.set("page", String(params.page));
|
|
173
192
|
if (params.limit)
|
|
174
|
-
|
|
175
|
-
return this.tryGet(
|
|
193
|
+
u.searchParams.set("limit", String(params.limit));
|
|
194
|
+
return this.tryGet(u.pathname + u.search);
|
|
176
195
|
}
|
|
177
196
|
/** GET /api/v2/models — every detection model owned by the caller. */
|
|
178
197
|
async listModels() {
|
|
@@ -202,11 +221,11 @@ export class KaaxClient {
|
|
|
202
221
|
// ─────────────────────────────────────────────────────────────────────────
|
|
203
222
|
/** POST /api/landing/request-download — submit the HubSpot form server-side. */
|
|
204
223
|
async requestDownload(body) {
|
|
205
|
-
return this.request(`${this.baseUrl}/api/landing/request-download`, { method: "POST", body: JSON.stringify(body ?? {}) });
|
|
224
|
+
return this.request(`${this.baseUrl}${withLang("/api/landing/request-download")}`, { method: "POST", body: JSON.stringify(body ?? {}) });
|
|
206
225
|
}
|
|
207
226
|
/** GET /api/landing/download-status — returns status + binary URLs on approval. */
|
|
208
227
|
async downloadStatus() {
|
|
209
|
-
return this.request(`${this.baseUrl}/api/landing/download-status`, { method: "GET" });
|
|
228
|
+
return this.request(`${this.baseUrl}${withLang("/api/landing/download-status")}`, { method: "GET" });
|
|
210
229
|
}
|
|
211
230
|
// ─────────────────────────────────────────────────────────────────────────
|
|
212
231
|
// Account overview — the ONE endpoint a free-tier user can call. Used by
|
|
@@ -225,7 +244,7 @@ export class KaaxClient {
|
|
|
225
244
|
if (!force && this.overviewCache && now < this.overviewCache.expiresAt) {
|
|
226
245
|
return this.overviewCache.value;
|
|
227
246
|
}
|
|
228
|
-
const value = await this.request(`${this.baseUrl}/api/landing/account-overview`, { method: "GET" });
|
|
247
|
+
const value = await this.request(`${this.baseUrl}${withLang("/api/landing/account-overview")}`, { method: "GET" });
|
|
229
248
|
this.overviewCache = {
|
|
230
249
|
value,
|
|
231
250
|
expiresAt: now + KaaxClient.OVERVIEW_TTL_MS,
|
|
@@ -239,7 +258,7 @@ export class KaaxClient {
|
|
|
239
258
|
/** Helper — GET that returns `null` on 404 / network errors. */
|
|
240
259
|
async tryGet(pathAndQuery) {
|
|
241
260
|
try {
|
|
242
|
-
return await this.request(`${this.baseUrl}${pathAndQuery}`, {
|
|
261
|
+
return await this.request(`${this.baseUrl}${withLang(pathAndQuery)}`, {
|
|
243
262
|
method: "GET",
|
|
244
263
|
});
|
|
245
264
|
}
|
|
@@ -252,7 +271,7 @@ export class KaaxClient {
|
|
|
252
271
|
/** Helper — POST that returns `null` on 404. */
|
|
253
272
|
async tryPost(pathAndQuery, body) {
|
|
254
273
|
try {
|
|
255
|
-
return await this.request(`${this.baseUrl}${pathAndQuery}`, {
|
|
274
|
+
return await this.request(`${this.baseUrl}${withLang(pathAndQuery)}`, {
|
|
256
275
|
method: "POST",
|
|
257
276
|
body: JSON.stringify(body),
|
|
258
277
|
});
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -30,7 +30,7 @@ import { buildResources } from "./resources.js";
|
|
|
30
30
|
import { buildPrompts } from "./prompts.js";
|
|
31
31
|
import { runInit } from "./init.js";
|
|
32
32
|
const SERVER_NAME = "kaax-mcp";
|
|
33
|
-
const SERVER_VERSION = "0.1.
|
|
33
|
+
const SERVER_VERSION = "0.1.4";
|
|
34
34
|
function bail(msg) {
|
|
35
35
|
// stderr only — MCP clients pipe stdout for protocol traffic.
|
|
36
36
|
process.stderr.write(`[${SERVER_NAME}] ${msg}\n`);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kaax-mcp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "MCP server for Kaax — one-liner installer (`npx -y kaax-mcp init`) that wires Kaax into Claude Desktop, Claude Code, Cursor and Windsurf. Onboards new users, queries analyses, suggests configurations, converts shapefiles to KML and guides downloads.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|