@mailwoman/mcp 9.1.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 CHANGED
@@ -1,6 +1,6 @@
1
1
  # @mailwoman/mcp
2
2
 
3
- An **MCP server** exposing [Mailwoman](https://mailwoman.sister.software)'s parse/geocode/POI toolset to agents over stdio — no HTTP endpoint, just a subprocess an MCP client launches.
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 candidateDb = resolveCandidateDBPath()
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 (!candidateDb && !wofPaths.length) {
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, candidateDb })
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 candidateDb = resolveCandidateDBPath();
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 (!candidateDb && !wofPaths.length) {
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, candidateDb });
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.1.0",
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.1.0",
49
- "@mailwoman/core": "9.1.0",
50
- "@mailwoman/filer": "9.1.0",
51
- "@mailwoman/neural": "9.1.0",
52
- "@mailwoman/neural-weights-en-us": "9.1.0",
53
- "@mailwoman/poi-taxonomy": "9.1.0",
54
- "@mailwoman/resolver": "9.1.0",
55
- "@mailwoman/resolver-wof-sqlite": "9.1.0",
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.1.0",
74
+ "mailwoman": "9.2.0",
58
75
  "zod": "^4.4.3"
59
76
  },
60
77
  "peerDependencies": {
61
- "@mailwoman/resolver-wof-sqlite": "9.1.0"
78
+ "@mailwoman/resolver-wof-sqlite": "9.2.0"
62
79
  },
63
80
  "peerDependenciesMeta": {
64
81
  "@mailwoman/resolver-wof-sqlite": {