@ignfab/geocontext 0.9.0 → 0.9.2
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/README.md +51 -22
- package/dist/gpf/adminexpress.d.ts +2 -1
- package/dist/gpf/adminexpress.js +7 -3
- package/dist/gpf/adminexpress.js.map +1 -1
- package/dist/gpf/altitude.d.ts +2 -1
- package/dist/gpf/altitude.js +13 -19
- package/dist/gpf/altitude.js.map +1 -1
- package/dist/gpf/geocode.d.ts +3 -1
- package/dist/gpf/geocode.js +19 -8
- package/dist/gpf/geocode.js.map +1 -1
- package/dist/gpf/parcellaire-express.d.ts +2 -1
- package/dist/gpf/parcellaire-express.js +8 -4
- package/dist/gpf/parcellaire-express.js.map +1 -1
- package/dist/gpf/urbanisme.d.ts +4 -2
- package/dist/gpf/urbanisme.js +32 -5
- package/dist/gpf/urbanisme.js.map +1 -1
- package/dist/gpf/wfs.d.ts +5 -3
- package/dist/gpf/wfs.js +59 -19
- package/dist/gpf/wfs.js.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/logger.js.map +1 -1
- package/dist/resources/WfsCqlFilterResource.d.ts +10 -0
- package/dist/resources/WfsCqlFilterResource.js +21 -0
- package/dist/resources/WfsCqlFilterResource.js.map +1 -0
- package/dist/resources/readMarkdownResource.d.ts +1 -0
- package/dist/resources/readMarkdownResource.js +21 -0
- package/dist/resources/readMarkdownResource.js.map +1 -0
- package/dist/tools/AdminexpressTool.d.ts +58 -15
- package/dist/tools/AdminexpressTool.js +33 -13
- package/dist/tools/AdminexpressTool.js.map +1 -1
- package/dist/tools/AltitudeTool.d.ts +64 -16
- package/dist/tools/AltitudeTool.js +30 -12
- package/dist/tools/AltitudeTool.js.map +1 -1
- package/dist/tools/AssietteSupTool.d.ts +64 -16
- package/dist/tools/AssietteSupTool.js +34 -13
- package/dist/tools/AssietteSupTool.js.map +1 -1
- package/dist/tools/CadastreTool.d.ts +68 -15
- package/dist/tools/CadastreTool.js +35 -13
- package/dist/tools/CadastreTool.js.map +1 -1
- package/dist/tools/GeocodeTool.d.ts +73 -10
- package/dist/tools/GeocodeTool.js +35 -9
- package/dist/tools/GeocodeTool.js.map +1 -1
- package/dist/tools/GpfWfsDescribeTypeTool.d.ts +115 -12
- package/dist/tools/GpfWfsDescribeTypeTool.js +39 -13
- package/dist/tools/GpfWfsDescribeTypeTool.js.map +1 -1
- package/dist/tools/GpfWfsGetFeaturesTool.d.ts +65 -28
- package/dist/tools/GpfWfsGetFeaturesTool.js +117 -47
- package/dist/tools/GpfWfsGetFeaturesTool.js.map +1 -1
- package/dist/tools/GpfWfsListTypesTool.d.ts +18 -6
- package/dist/tools/GpfWfsListTypesTool.js +16 -8
- package/dist/tools/GpfWfsListTypesTool.js.map +1 -1
- package/dist/tools/GpfWfsSearchTypesTool.d.ts +61 -14
- package/dist/tools/GpfWfsSearchTypesTool.js +38 -17
- package/dist/tools/GpfWfsSearchTypesTool.js.map +1 -1
- package/dist/tools/UrbanismeTool.d.ts +63 -15
- package/dist/tools/UrbanismeTool.js +42 -13
- package/dist/tools/UrbanismeTool.js.map +1 -1
- package/dist/tools/toolAnnotations.d.ts +6 -0
- package/dist/tools/toolAnnotations.js +7 -0
- package/dist/tools/toolAnnotations.js.map +1 -0
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GpfWfsSearchTypesTool.js","sourceRoot":"","sources":["../../src/tools/GpfWfsSearchTypesTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"GpfWfsSearchTypesTool.js","sourceRoot":"","sources":["../../src/tools/GpfWfsSearchTypesTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,qCAAqC,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,EAAE,+CAA+C,CAAC;SACvD,QAAQ,CAAC,yBAAyB,CAAC;IACtC,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,QAAQ,EAAE;SACV,QAAQ,CAAC,0EAA0E,CAAC;CACxF,CAAC,CAAC;AAIH,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;IAC7D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IAC3D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;CAChE,CAAC,CAAC;AAEH,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,QAAQ,CAAC,0CAA0C,CAAC;CACpG,CAAC,CAAC;AAEH,MAAM,qBAAsB,SAAQ,OAA+B;IACjE,IAAI,GAAG,sBAAsB,CAAC;IAC9B,KAAK,GAAG,wBAAwB,CAAC;IACjC,WAAW,GAAG,qCAAqC,CAAC;IACpD,WAAW,GAAG;QACZ,qIAAqI;QACrI,wHAAwH;QACxH,6IAA6I;QAC7I,+FAA+F;KAChG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACL,iBAAiB,GAAG,6BAA6B,CAAC;IAE5D,MAAM,GAAG,4BAA4B,CAAC;IAEtC,KAAK,CAAC,OAAO,CAAC,KAA6B;QACzC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;QAC3C,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,kBAAkB,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACjF,OAAO;YACL,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBAC1C,EAAE,EAAE,WAAW,CAAC,EAAE;gBAClB,KAAK,EAAE,WAAW,CAAC,KAAK;gBACxB,WAAW,EAAE,WAAW,CAAC,WAAW;aACrC,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;CACF;AAED,eAAe,qBAAqB,CAAC"}
|
|
@@ -1,22 +1,70 @@
|
|
|
1
1
|
import { MCPTool } from "mcp-framework";
|
|
2
2
|
import { z } from "zod";
|
|
3
|
-
|
|
4
|
-
lon:
|
|
5
|
-
lat:
|
|
6
|
-
}
|
|
3
|
+
declare const urbanismeInputSchema: z.ZodObject<{
|
|
4
|
+
lon: z.ZodNumber;
|
|
5
|
+
lat: z.ZodNumber;
|
|
6
|
+
}, "strip", z.ZodTypeAny, {
|
|
7
|
+
lon?: number;
|
|
8
|
+
lat?: number;
|
|
9
|
+
}, {
|
|
10
|
+
lon?: number;
|
|
11
|
+
lat?: number;
|
|
12
|
+
}>;
|
|
13
|
+
type UrbanismeInput = z.infer<typeof urbanismeInputSchema>;
|
|
7
14
|
declare class UrbanismeTool extends MCPTool<UrbanismeInput> {
|
|
8
15
|
name: string;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
lat: {
|
|
16
|
-
type: z.ZodNumber;
|
|
17
|
-
description: string;
|
|
18
|
-
};
|
|
16
|
+
title: string;
|
|
17
|
+
annotations: {
|
|
18
|
+
readonly readOnlyHint: true;
|
|
19
|
+
readonly destructiveHint: false;
|
|
20
|
+
readonly idempotentHint: true;
|
|
21
|
+
readonly openWorldHint: true;
|
|
19
22
|
};
|
|
20
|
-
|
|
23
|
+
description: string;
|
|
24
|
+
protected outputSchemaShape: z.ZodObject<{
|
|
25
|
+
results: z.ZodArray<z.ZodObject<{
|
|
26
|
+
type: z.ZodString;
|
|
27
|
+
id: z.ZodString;
|
|
28
|
+
bbox: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
|
|
29
|
+
distance: z.ZodNumber;
|
|
30
|
+
}, "strip", z.ZodUnknown, z.objectOutputType<{
|
|
31
|
+
type: z.ZodString;
|
|
32
|
+
id: z.ZodString;
|
|
33
|
+
bbox: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
|
|
34
|
+
distance: z.ZodNumber;
|
|
35
|
+
}, z.ZodUnknown, "strip">, z.objectInputType<{
|
|
36
|
+
type: z.ZodString;
|
|
37
|
+
id: z.ZodString;
|
|
38
|
+
bbox: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
|
|
39
|
+
distance: z.ZodNumber;
|
|
40
|
+
}, z.ZodUnknown, "strip">>, "many">;
|
|
41
|
+
}, "strip", z.ZodTypeAny, {
|
|
42
|
+
results?: z.objectOutputType<{
|
|
43
|
+
type: z.ZodString;
|
|
44
|
+
id: z.ZodString;
|
|
45
|
+
bbox: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
|
|
46
|
+
distance: z.ZodNumber;
|
|
47
|
+
}, z.ZodUnknown, "strip">[];
|
|
48
|
+
}, {
|
|
49
|
+
results?: z.objectInputType<{
|
|
50
|
+
type: z.ZodString;
|
|
51
|
+
id: z.ZodString;
|
|
52
|
+
bbox: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
|
|
53
|
+
distance: z.ZodNumber;
|
|
54
|
+
}, z.ZodUnknown, "strip">[];
|
|
55
|
+
}>;
|
|
56
|
+
schema: z.ZodObject<{
|
|
57
|
+
lon: z.ZodNumber;
|
|
58
|
+
lat: z.ZodNumber;
|
|
59
|
+
}, "strip", z.ZodTypeAny, {
|
|
60
|
+
lon?: number;
|
|
61
|
+
lat?: number;
|
|
62
|
+
}, {
|
|
63
|
+
lon?: number;
|
|
64
|
+
lat?: number;
|
|
65
|
+
}>;
|
|
66
|
+
execute(input: UrbanismeInput): Promise<{
|
|
67
|
+
results: any;
|
|
68
|
+
}>;
|
|
21
69
|
}
|
|
22
70
|
export default UrbanismeTool;
|
|
@@ -1,22 +1,51 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { MCPTool } from "mcp-framework";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { getUrbanisme, URBANISME_SOURCE } from "../gpf/urbanisme.js";
|
|
4
|
+
import logger from "../logger.js";
|
|
5
|
+
import { READ_ONLY_OPEN_WORLD_TOOL_ANNOTATIONS } from "./toolAnnotations.js";
|
|
6
|
+
const urbanismeInputSchema = z.object({
|
|
7
|
+
lon: z
|
|
8
|
+
.number()
|
|
9
|
+
.min(-180)
|
|
10
|
+
.max(180)
|
|
11
|
+
.describe("La longitude du point."),
|
|
12
|
+
lat: z
|
|
13
|
+
.number()
|
|
14
|
+
.min(-90)
|
|
15
|
+
.max(90)
|
|
16
|
+
.describe("La latitude du point."),
|
|
17
|
+
});
|
|
18
|
+
const urbanismeResultSchema = z
|
|
19
|
+
.object({
|
|
20
|
+
type: z.string().describe("Le type d'objet d'urbanisme renvoyé."),
|
|
21
|
+
id: z.string().describe("L'identifiant de l'objet d'urbanisme."),
|
|
22
|
+
bbox: z.array(z.number()).describe("La boîte englobante de l'objet d'urbanisme.").optional(),
|
|
23
|
+
distance: z.number().describe("La distance entre le point demandé et l'objet d'urbanisme retenu."),
|
|
24
|
+
})
|
|
25
|
+
.catchall(z.unknown());
|
|
26
|
+
const urbanismeOutputSchema = z.object({
|
|
27
|
+
results: z.array(urbanismeResultSchema).describe("La liste des objets d'urbanisme pertinents pour le point demandé."),
|
|
28
|
+
});
|
|
29
|
+
const URBANISME_TOOL_DESCRIPTION = [
|
|
30
|
+
`Renvoie, pour un point donné par sa longitude et sa latitude, la liste des objets d'urbanisme pertinents du Géoportail de l'Urbanisme (document, zones, prescriptions, informations, etc.), avec leurs propriétés associées. (source : ${URBANISME_SOURCE}).`,
|
|
31
|
+
"Les résultats peuvent notamment inclure le document d'urbanisme applicable ainsi que des éléments réglementaires associés à proximité du point.",
|
|
32
|
+
"Modèles d'URL Géoportail de l'Urbanisme :",
|
|
33
|
+
"- fiche document: https://www.geoportail-urbanisme.gouv.fr/document/by-id/{gpu_doc_id}",
|
|
34
|
+
"- carte: https://www.geoportail-urbanisme.gouv.fr/map/?documentId={gpu_doc_id}",
|
|
35
|
+
"- fichier: https://www.geoportail-urbanisme.gouv.fr/api/document/{gpu_doc_id}/files/{nomfic}",
|
|
36
|
+
].join("\n");
|
|
4
37
|
class UrbanismeTool extends MCPTool {
|
|
5
38
|
name = "urbanisme";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
},
|
|
12
|
-
lat: {
|
|
13
|
-
type: z.number(),
|
|
14
|
-
description: "La latitude du point",
|
|
15
|
-
},
|
|
16
|
-
};
|
|
39
|
+
title = "Informations d’urbanisme";
|
|
40
|
+
annotations = READ_ONLY_OPEN_WORLD_TOOL_ANNOTATIONS;
|
|
41
|
+
description = URBANISME_TOOL_DESCRIPTION;
|
|
42
|
+
outputSchemaShape = urbanismeOutputSchema;
|
|
43
|
+
schema = urbanismeInputSchema;
|
|
17
44
|
async execute(input) {
|
|
18
45
|
logger.info(`urbanisme(${input.lon},${input.lat})...`);
|
|
19
|
-
return
|
|
46
|
+
return {
|
|
47
|
+
results: await getUrbanisme(input.lon, input.lat),
|
|
48
|
+
};
|
|
20
49
|
}
|
|
21
50
|
}
|
|
22
51
|
export default UrbanismeTool;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UrbanismeTool.js","sourceRoot":"","sources":["../../src/tools/UrbanismeTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"UrbanismeTool.js","sourceRoot":"","sources":["../../src/tools/UrbanismeTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,qCAAqC,EAAE,MAAM,sBAAsB,CAAC;AAE7E,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,GAAG,EAAE,CAAC;SACH,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,GAAG,CAAC;SACT,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,CAAC,wBAAwB,CAAC;IACrC,GAAG,EAAE,CAAC;SACH,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,CAAC;SACR,GAAG,CAAC,EAAE,CAAC;SACP,QAAQ,CAAC,uBAAuB,CAAC;CACrC,CAAC,CAAC;AAIH,MAAM,qBAAqB,GAAG,CAAC;KAC5B,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IACjE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IAChE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,6CAA6C,CAAC,CAAC,QAAQ,EAAE;IAC5F,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mEAAmE,CAAC;CACnG,CAAC;KACD,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAEzB,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,mEAAmE,CAAC;CACtH,CAAC,CAAC;AAEH,MAAM,0BAA0B,GAAG;IACjC,0OAA0O,gBAAgB,IAAI;IAC9P,iJAAiJ;IACjJ,2CAA2C;IAC3C,wFAAwF;IACxF,gFAAgF;IAChF,8FAA8F;CAC/F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAGb,MAAM,aAAc,SAAQ,OAAuB;IACjD,IAAI,GAAG,WAAW,CAAC;IACnB,KAAK,GAAG,0BAA0B,CAAC;IACnC,WAAW,GAAG,qCAAqC,CAAC;IACpD,WAAW,GAAG,0BAA0B,CAAC;IAC/B,iBAAiB,GAAG,qBAAqB,CAAC;IAEpD,MAAM,GAAG,oBAAoB,CAAC;IAE9B,KAAK,CAAC,OAAO,CAAC,KAAqB;QACjC,MAAM,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC;QACvD,OAAO;YACL,OAAO,EAAE,MAAM,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC;SAClD,CAAC;IACJ,CAAC;CACF;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolAnnotations.js","sourceRoot":"","sources":["../../src/tools/toolAnnotations.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qCAAqC,GAAG;IACnD,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,KAAK;IACtB,cAAc,EAAE,IAAI;IACpB,aAAa,EAAE,IAAI;CACX,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ignfab/geocontext",
|
|
3
|
-
"version": "0.9.
|
|
4
|
-
"description": "An experimental MCP server providing
|
|
3
|
+
"version": "0.9.2",
|
|
4
|
+
"description": "An experimental MCP server providing access to the services and data of the french Geoplateform",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"geocontext": "./dist/index.js"
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"spatial",
|
|
21
21
|
"context"
|
|
22
22
|
],
|
|
23
|
-
"author": "
|
|
23
|
+
"author": "IGNF",
|
|
24
24
|
"license": "MIT",
|
|
25
25
|
"bugs": {
|
|
26
26
|
"url": "https://github.com/ignfab/geocontext/issues"
|
|
@@ -35,11 +35,11 @@
|
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@camptocamp/ogc-client": "^1.3.0",
|
|
38
|
-
"@ignfab/gpf-schema-store": "^0.1.
|
|
38
|
+
"@ignfab/gpf-schema-store": "^0.1.1",
|
|
39
39
|
"https-proxy-agent": "^7.0.6",
|
|
40
40
|
"jsts": "^2.12.1",
|
|
41
41
|
"lodash": "^4.17.21",
|
|
42
|
-
"mcp-framework": "^0.2.
|
|
42
|
+
"mcp-framework": "^0.2.21",
|
|
43
43
|
"node-fetch": "^3.3.2",
|
|
44
44
|
"winston": "^3.18.3",
|
|
45
45
|
"zod": "^3.25.76"
|