@pipeworx/mcp-montreal-events 0.1.2 → 0.1.3

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
@@ -2,7 +2,7 @@
2
2
 
3
3
  Montréal Events MCP.
4
4
 
5
- Part of [Pipeworx](https://pipeworx.io) — an MCP gateway connecting AI agents to 1683+ live data sources.
5
+ Part of [Pipeworx](https://pipeworx.io) — an MCP gateway connecting AI agents to 1704+ live data sources. This is an independent, unofficial integration — not affiliated with, endorsed by, or published by the upstream provider.
6
6
 
7
7
  ## Tools
8
8
 
@@ -54,7 +54,7 @@ directly, instead of just this one's:
54
54
  }
55
55
  ```
56
56
 
57
- Both URLs reach the same gateway and the same 1683+ data sources. The
57
+ Both URLs reach the same gateway and the same 1704+ data sources. The
58
58
  only difference is which pack's tools are listed **directly**; `ask_pipeworx`
59
59
  reaches all of them from either one.
60
60
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pipeworx/mcp-montreal-events",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "Montréal Events MCP.",
5
5
  "type": "module",
6
6
  "main": "src/index.ts",
@@ -26,7 +26,7 @@
26
26
  "@cloudflare/workers-types": "^4.20260405.1"
27
27
  },
28
28
  "pipeworx": {
29
- "sourceHash": "v1-94ce5a58674d8df5f517854a64a47f796eaa0aa8095855920d0661d0aa8b2d12",
30
- "sourceCommit": "6182c4cfebddb94950e060b5d2fca18f18ad1aca"
29
+ "sourceHash": "v1-8e4bd7f03361b9b730421d4e56a86543de6bdc412ab2a0fc395f03b72cbaef64",
30
+ "sourceCommit": "eb436cf60f06c9b79701a15cd1670609580544a5"
31
31
  }
32
32
  }
package/server.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "name": "io.github.pipeworx-io/montreal-events",
4
4
  "title": "Montreal Events",
5
5
  "description": "Montréal Events MCP.",
6
- "version": "0.1.2",
6
+ "version": "0.1.3",
7
7
  "websiteUrl": "https://pipeworx.io/packs/montreal-events",
8
8
  "repository": {
9
9
  "url": "https://github.com/pipeworx-io/mcp-montreal-events",
package/src/index.ts CHANGED
@@ -755,7 +755,18 @@ async function countQuery(clause: string): Promise<number> {
755
755
  }
756
756
 
757
757
  async function runSql(sqlText: string): Promise<unknown[]> {
758
- const res = await pwFetch(`${SQL_URL}?sql=${encodeURIComponent(sqlText)}`, { headers: { Accept: 'application/json', 'User-Agent': UA } });
758
+ // POST with a JSON body, not GET with a query string: donnees.montreal.ca's
759
+ // front end now rejects a `"` character in the GET query string (the
760
+ // resource-id table name requires double quotes, e.g. FROM "6decf611-...")
761
+ // with a 409 "Valeur manquante" (missing value) — the WAF strips/mangles
762
+ // the sql param before CKAN ever validates it. The identical query via
763
+ // POST JSON works (verified live 2026-10-07). Every GET call failed loud
764
+ // with this HTTP 409, which is why this pack's live traffic was 192/192.
765
+ const res = await pwFetch(SQL_URL, {
766
+ method: 'POST',
767
+ headers: { Accept: 'application/json', 'Content-Type': 'application/json', 'User-Agent': UA },
768
+ body: JSON.stringify({ sql: sqlText }),
769
+ });
759
770
  const body = (await res.json().catch(() => ({}))) as { success?: boolean; result?: { records?: unknown[] }; error?: { message?: string } };
760
771
  if (!res.ok || body.success === false) throw new Error(`Montréal: ${body.error?.message || `HTTP ${res.status}`}`);
761
772
  return body.result?.records ?? [];
package/src/server.ts CHANGED
@@ -9,7 +9,7 @@ import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprot
9
9
  import pack from './index.js';
10
10
 
11
11
  const server = new Server(
12
- { name: '@pipeworx/mcp-montreal-events', version: '0.1.2' },
12
+ { name: '@pipeworx/mcp-montreal-events', version: '0.1.3' },
13
13
  { capabilities: { tools: {} } },
14
14
  );
15
15