open-meteo-mcp-server 1.7.0 → 2.0.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.
@@ -14,6 +14,28 @@ export declare function generateSessionId(): string;
14
14
  * - X-API-Key: <key>
15
15
  */
16
16
  export declare function createAuthMiddleware(): (req: Request, res: Response, next: NextFunction) => void;
17
+ /**
18
+ * Express middleware guarding against DNS rebinding attacks: without it, a page
19
+ * served from any website can drive a locally bound MCP server through the
20
+ * victim's browser.
21
+ *
22
+ * Requests carrying no `Origin` header — CLI clients, SDK transports, container
23
+ * probes — pass through untouched. A request that does carry one is browser-issued
24
+ * and must match the ALLOWED_ORIGINS allow-list (comma-separated), which is empty
25
+ * by default: no browser is expected to talk to this server unless configured.
26
+ */
27
+ export declare function createOriginValidator(): (req: Request, res: Response, next: NextFunction) => void;
28
+ /**
29
+ * The MCP spec requires clients to accept both application/json and
30
+ * text/event-stream; clients sending `*\/*` or a single type are otherwise
31
+ * rejected with a 406. This widens the header on their behalf.
32
+ *
33
+ * Crucially it rewrites `rawHeaders` and not just `req.headers`: the SDK hands
34
+ * the request to Hono's `getRequestListener`, which rebuilds the web-standard
35
+ * Request from Node's raw header array, so mutating the parsed object alone is
36
+ * invisible to the transport.
37
+ */
38
+ export declare function createAcceptNormalizer(): (req: Request, _res: Response, next: NextFunction) => void;
17
39
  /**
18
40
  * Returns a safe, generic error message for HTTP responses.
19
41
  * Never expose internal error details (stack traces, connection strings,
@@ -1 +1 @@
1
- {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../src/security.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAG/D;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,KAC1B,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,KAAG,IAAI,CAqB/D;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAE1D;AAyCD,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAsBhD;AAMD;;;;GAIG;AACH,wBAAgB,iBAAiB,yDAWhC"}
1
+ {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../src/security.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAG/D;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,KAC1B,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,KAAG,IAAI,CAqB/D;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,KAC3B,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,KAAG,IAAI,CAuB/D;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,KAG5B,KAAK,OAAO,EAAE,MAAM,QAAQ,EAAE,MAAM,YAAY,KAAG,IAAI,CAiChE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAE1D;AAyCD,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAsBhD;AAMD;;;;GAIG;AACH,wBAAgB,iBAAiB,yDAWhC"}
package/dist/security.js CHANGED
@@ -34,6 +34,82 @@ export function createAuthMiddleware() {
34
34
  res.status(401).json({ error: 'Unauthorized: valid API key required' });
35
35
  };
36
36
  }
37
+ /**
38
+ * Express middleware guarding against DNS rebinding attacks: without it, a page
39
+ * served from any website can drive a locally bound MCP server through the
40
+ * victim's browser.
41
+ *
42
+ * Requests carrying no `Origin` header — CLI clients, SDK transports, container
43
+ * probes — pass through untouched. A request that does carry one is browser-issued
44
+ * and must match the ALLOWED_ORIGINS allow-list (comma-separated), which is empty
45
+ * by default: no browser is expected to talk to this server unless configured.
46
+ */
47
+ export function createOriginValidator() {
48
+ return (req, res, next) => {
49
+ const origin = req.headers.origin;
50
+ if (!origin) {
51
+ next();
52
+ return;
53
+ }
54
+ const allowed = (process.env.ALLOWED_ORIGINS ?? '')
55
+ .split(',')
56
+ .map((value) => value.trim())
57
+ .filter(Boolean);
58
+ if (allowed.includes(origin)) {
59
+ next();
60
+ return;
61
+ }
62
+ res.status(403).json({
63
+ jsonrpc: '2.0',
64
+ error: { code: -32600, message: 'Forbidden: origin not allowed' },
65
+ id: null,
66
+ });
67
+ };
68
+ }
69
+ /**
70
+ * The MCP spec requires clients to accept both application/json and
71
+ * text/event-stream; clients sending `*\/*` or a single type are otherwise
72
+ * rejected with a 406. This widens the header on their behalf.
73
+ *
74
+ * Crucially it rewrites `rawHeaders` and not just `req.headers`: the SDK hands
75
+ * the request to Hono's `getRequestListener`, which rebuilds the web-standard
76
+ * Request from Node's raw header array, so mutating the parsed object alone is
77
+ * invisible to the transport.
78
+ */
79
+ export function createAcceptNormalizer() {
80
+ const required = ['application/json', 'text/event-stream'];
81
+ return (req, _res, next) => {
82
+ const tokens = (req.headers.accept ?? '')
83
+ .split(',')
84
+ .map((value) => value.trim())
85
+ .filter(Boolean);
86
+ const present = new Set(tokens.map((value) => value.toLowerCase()));
87
+ for (const value of required) {
88
+ if (!present.has(value)) {
89
+ tokens.push(value);
90
+ present.add(value);
91
+ }
92
+ }
93
+ const merged = tokens.join(', ');
94
+ req.headers.accept = merged;
95
+ // Rebuild rawHeaders with exactly one Accept entry carrying the merged value.
96
+ const raw = req.rawHeaders;
97
+ const rebuilt = [];
98
+ for (let i = 0; i < raw.length; i += 2) {
99
+ const key = raw[i];
100
+ const value = raw[i + 1];
101
+ if (key === undefined || value === undefined)
102
+ continue;
103
+ if (key.toLowerCase() === 'accept')
104
+ continue;
105
+ rebuilt.push(key, value);
106
+ }
107
+ rebuilt.push('Accept', merged);
108
+ raw.length = 0;
109
+ raw.push(...rebuilt);
110
+ next();
111
+ };
112
+ }
37
113
  /**
38
114
  * Returns a safe, generic error message for HTTP responses.
39
115
  * Never expose internal error details (stack traces, connection strings,
@@ -1 +1 @@
1
- {"version":3,"file":"security.js","sourceRoot":"","sources":["../src/security.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"security.js","sourceRoot":"","sources":["../src/security.ts"],"names":[],"mappings":"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"}
package/dist/tools.d.ts CHANGED
@@ -1,14 +1,26 @@
1
- import type { Tool } from '@modelcontextprotocol/sdk/types.js';
2
- export declare const WEATHER_FORECAST_TOOL: Tool;
3
- export declare const WEATHER_ARCHIVE_TOOL: Tool;
4
- export declare const AIR_QUALITY_TOOL: Tool;
5
- export declare const MARINE_WEATHER_TOOL: Tool;
6
- export declare const ELEVATION_TOOL: Tool;
7
- export declare const WEATHER_MODEL_TOOLS: Tool[];
8
- export declare const FLOOD_FORECAST_TOOL: Tool;
9
- export declare const SEASONAL_FORECAST_TOOL: Tool;
10
- export declare const CLIMATE_PROJECTION_TOOL: Tool;
11
- export declare const ENSEMBLE_FORECAST_TOOL: Tool;
12
- export declare const GEOCODING_TOOL: Tool;
13
- export declare const ALL_TOOLS: Tool[];
1
+ import type { ToolAnnotations } from '@modelcontextprotocol/sdk/types.js';
2
+ export interface ToolDefinition {
3
+ name: string;
4
+ title: string;
5
+ description: string;
6
+ annotations: ToolAnnotations;
7
+ }
8
+ export declare const WEATHER_FORECAST_TOOL: ToolDefinition;
9
+ export declare const WEATHER_ARCHIVE_TOOL: ToolDefinition;
10
+ export declare const AIR_QUALITY_TOOL: ToolDefinition;
11
+ export declare const MARINE_WEATHER_TOOL: ToolDefinition;
12
+ export declare const ELEVATION_TOOL: ToolDefinition;
13
+ export declare const FLOOD_FORECAST_TOOL: ToolDefinition;
14
+ export declare const SEASONAL_FORECAST_TOOL: ToolDefinition;
15
+ export declare const CLIMATE_PROJECTION_TOOL: ToolDefinition;
16
+ export declare const ENSEMBLE_FORECAST_TOOL: ToolDefinition;
17
+ export declare const GEOCODING_TOOL: ToolDefinition;
18
+ export declare const DWD_ICON_FORECAST_TOOL: ToolDefinition;
19
+ export declare const GFS_FORECAST_TOOL: ToolDefinition;
20
+ export declare const METEOFRANCE_FORECAST_TOOL: ToolDefinition;
21
+ export declare const ECMWF_FORECAST_TOOL: ToolDefinition;
22
+ export declare const JMA_FORECAST_TOOL: ToolDefinition;
23
+ export declare const METNO_FORECAST_TOOL: ToolDefinition;
24
+ export declare const GEM_FORECAST_TOOL: ToolDefinition;
25
+ export declare const ALL_TOOLS: ToolDefinition[];
14
26
  //# sourceMappingURL=tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAgM/D,eAAO,MAAM,qBAAqB,EAAE,IA+PnC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,IA8MlC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,IAwI9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,IA+HjC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,IA0B5B,CAAC;AAgBF,eAAO,MAAM,mBAAmB,EAAE,IAAI,EAoGrC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,IA6FjC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,IA4UpC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,IA+HrC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,IAsNpC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,IAwC5B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,IAAI,EAY3B,CAAC"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAM1E,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,eAAe,CAAC;CAC9B;AAUD,eAAO,MAAM,qBAAqB,EAAE,cAMnC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,cAMlC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,cAM9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,cAMjC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,cAM5B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,cAMjC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,cAMpC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,cAKrC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,cAKpC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,cAM5B,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,cAMpC,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,cAM/B,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,cAMvC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,cAMjC,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,cAM/B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,cAMjC,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,cAM/B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,cAAc,EAkBrC,CAAC"}