@mailwoman/mcp 9.0.0 → 9.2.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/README.md +1 -1
- package/cli.ts +3 -3
- package/out/cli.js +3 -3
- package/package.json +30 -13
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @mailwoman/mcp
|
|
2
2
|
|
|
3
|
-
An **MCP server** exposing [Mailwoman](https://mailwoman.
|
|
3
|
+
An **MCP server** exposing [Mailwoman](https://mailwoman.ai)'s parse/geocode/POI toolset to agents over stdio — no HTTP endpoint, just a subprocess an MCP client launches.
|
|
4
4
|
|
|
5
5
|
## Tools
|
|
6
6
|
|
package/cli.ts
CHANGED
|
@@ -116,7 +116,7 @@ function loadCore(): Promise<{ classifier: NeuralAddressClassifier; resolver: Re
|
|
|
116
116
|
corePromise ??= (async () => {
|
|
117
117
|
const resolverMod = await import("@mailwoman/resolver-wof-sqlite")
|
|
118
118
|
const wofPaths = wofShardPaths().filter(existsSync)
|
|
119
|
-
const
|
|
119
|
+
const candidateDB = resolveCandidateDBPath()
|
|
120
120
|
|
|
121
121
|
// #1009 friendly-failure discipline, the MCP shape of it. `server.ts` turns a thrown Error into an
|
|
122
122
|
// `isError` tool result carrying `error.message`, so the message an agent reads IS whatever is thrown
|
|
@@ -126,7 +126,7 @@ function loadCore(): Promise<{ classifier: NeuralAddressClassifier; resolver: Re
|
|
|
126
126
|
// discovery: #1444 moved the `<data-root>/wof/candidate.db` convention fallback INTO
|
|
127
127
|
// `resolveCandidateDBPath`, so this bare call picks a pulled gazetteer up with nothing exported. The
|
|
128
128
|
// `MAILWOMAN_DATA_ROOT` in the client's `env` block is enough on its own.
|
|
129
|
-
if (!
|
|
129
|
+
if (!candidateDB && !wofPaths.length) {
|
|
130
130
|
throw new Error(
|
|
131
131
|
`${buildNoGazetteerMessage({
|
|
132
132
|
dataRoot: mailwomanDataRoot(),
|
|
@@ -135,7 +135,7 @@ function loadCore(): Promise<{ classifier: NeuralAddressClassifier; resolver: Re
|
|
|
135
135
|
)
|
|
136
136
|
}
|
|
137
137
|
|
|
138
|
-
const backend = createResolverBackend(resolverMod, { wofPaths,
|
|
138
|
+
const backend = createResolverBackend(resolverMod, { wofPaths, candidateDB })
|
|
139
139
|
const resolver = createWOFResolver(backend)
|
|
140
140
|
|
|
141
141
|
// Same discipline for the model weights. `@mailwoman/neural-weights-en-us` is a declared dependency of
|
package/out/cli.js
CHANGED
|
@@ -93,7 +93,7 @@ function loadCore() {
|
|
|
93
93
|
corePromise ??= (async () => {
|
|
94
94
|
const resolverMod = await import("@mailwoman/resolver-wof-sqlite");
|
|
95
95
|
const wofPaths = wofShardPaths().filter(existsSync);
|
|
96
|
-
const
|
|
96
|
+
const candidateDB = resolveCandidateDBPath();
|
|
97
97
|
// #1009 friendly-failure discipline, the MCP shape of it. `server.ts` turns a thrown Error into an
|
|
98
98
|
// `isError` tool result carrying `error.message`, so the message an agent reads IS whatever is thrown
|
|
99
99
|
// here — which made the raw internal `resolveShards: at least one shard is required` the first thing a
|
|
@@ -102,13 +102,13 @@ function loadCore() {
|
|
|
102
102
|
// discovery: #1444 moved the `<data-root>/wof/candidate.db` convention fallback INTO
|
|
103
103
|
// `resolveCandidateDBPath`, so this bare call picks a pulled gazetteer up with nothing exported. The
|
|
104
104
|
// `MAILWOMAN_DATA_ROOT` in the client's `env` block is enough on its own.
|
|
105
|
-
if (!
|
|
105
|
+
if (!candidateDB && !wofPaths.length) {
|
|
106
106
|
throw new Error(`${buildNoGazetteerMessage({
|
|
107
107
|
dataRoot: mailwomanDataRoot(),
|
|
108
108
|
docsPath: "/docs/developers/how-to/use-the-mcp-server",
|
|
109
109
|
})}\n\n Needs it: ${CORE_BACKED_TOOLS}\n Works without it: ${CORE_FREE_TOOLS}`);
|
|
110
110
|
}
|
|
111
|
-
const backend = createResolverBackend(resolverMod, { wofPaths,
|
|
111
|
+
const backend = createResolverBackend(resolverMod, { wofPaths, candidateDB });
|
|
112
112
|
const resolver = createWOFResolver(backend);
|
|
113
113
|
// Same discipline for the model weights. `@mailwoman/neural-weights-en-us` is a declared dependency of
|
|
114
114
|
// this package as of 2026-08-03 — before that a standalone `npm install @mailwoman/mcp` resolved
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mailwoman/mcp",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.2.0",
|
|
4
4
|
"description": "MCP server — mailwoman's spatial toolset for agents (parse, geocode, poi_search, overpass_export, layer_manifest).",
|
|
5
5
|
"license": "AGPL-3.0-only OR LicenseRef-Commercial",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
8
|
"url": "https://github.com/sister-software/mailwoman.git",
|
|
9
|
-
"directory": "mcp"
|
|
9
|
+
"directory": "packages/mcp"
|
|
10
10
|
},
|
|
11
11
|
"bin": {
|
|
12
12
|
"mailwoman-mcp": "./out/cli.js"
|
|
@@ -24,7 +24,8 @@
|
|
|
24
24
|
"!*.test.ts",
|
|
25
25
|
"!*.test.tsx",
|
|
26
26
|
"!**/*.test.ts",
|
|
27
|
-
"!**/*.test.tsx"
|
|
27
|
+
"!**/*.test.tsx",
|
|
28
|
+
"!test/**"
|
|
28
29
|
],
|
|
29
30
|
"type": "module",
|
|
30
31
|
"exports": {
|
|
@@ -32,6 +33,14 @@
|
|
|
32
33
|
".": {
|
|
33
34
|
"types": "./out/index.d.ts",
|
|
34
35
|
"default": "./out/index.js"
|
|
36
|
+
},
|
|
37
|
+
"./layer-guards": {
|
|
38
|
+
"types": "./out/layer-guards.d.ts",
|
|
39
|
+
"default": "./out/layer-guards.js"
|
|
40
|
+
},
|
|
41
|
+
"./tools": {
|
|
42
|
+
"types": "./out/tools.d.ts",
|
|
43
|
+
"default": "./out/tools.js"
|
|
35
44
|
}
|
|
36
45
|
},
|
|
37
46
|
"publishConfig": {
|
|
@@ -41,24 +50,32 @@
|
|
|
41
50
|
".": {
|
|
42
51
|
"types": "./out/index.d.ts",
|
|
43
52
|
"default": "./out/index.js"
|
|
53
|
+
},
|
|
54
|
+
"./layer-guards": {
|
|
55
|
+
"types": "./out/layer-guards.d.ts",
|
|
56
|
+
"default": "./out/layer-guards.js"
|
|
57
|
+
},
|
|
58
|
+
"./tools": {
|
|
59
|
+
"types": "./out/tools.d.ts",
|
|
60
|
+
"default": "./out/tools.js"
|
|
44
61
|
}
|
|
45
62
|
}
|
|
46
63
|
},
|
|
47
64
|
"dependencies": {
|
|
48
|
-
"@mailwoman/bdc": "9.
|
|
49
|
-
"@mailwoman/core": "9.
|
|
50
|
-
"@mailwoman/filer": "9.
|
|
51
|
-
"@mailwoman/neural": "9.
|
|
52
|
-
"@mailwoman/neural-weights-en-us": "9.
|
|
53
|
-
"@mailwoman/poi-taxonomy": "9.
|
|
54
|
-
"@mailwoman/resolver": "9.
|
|
55
|
-
"@mailwoman/resolver-wof-sqlite": "9.
|
|
65
|
+
"@mailwoman/bdc": "9.2.0",
|
|
66
|
+
"@mailwoman/core": "9.2.0",
|
|
67
|
+
"@mailwoman/filer": "9.2.0",
|
|
68
|
+
"@mailwoman/neural": "9.2.0",
|
|
69
|
+
"@mailwoman/neural-weights-en-us": "9.2.0",
|
|
70
|
+
"@mailwoman/poi-taxonomy": "9.2.0",
|
|
71
|
+
"@mailwoman/resolver": "9.2.0",
|
|
72
|
+
"@mailwoman/resolver-wof-sqlite": "9.2.0",
|
|
56
73
|
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
57
|
-
"mailwoman": "9.
|
|
74
|
+
"mailwoman": "9.2.0",
|
|
58
75
|
"zod": "^4.4.3"
|
|
59
76
|
},
|
|
60
77
|
"peerDependencies": {
|
|
61
|
-
"@mailwoman/resolver-wof-sqlite": "9.
|
|
78
|
+
"@mailwoman/resolver-wof-sqlite": "9.2.0"
|
|
62
79
|
},
|
|
63
80
|
"peerDependenciesMeta": {
|
|
64
81
|
"@mailwoman/resolver-wof-sqlite": {
|