@aborruso/ckan-mcp-server 0.4.2 โ†’ 0.4.4

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/EXAMPLES.md CHANGED
@@ -210,6 +210,14 @@ ckan_datastore_search({
210
210
  })
211
211
  ```
212
212
 
213
+ ### SQL query
214
+ ```typescript
215
+ ckan_datastore_search_sql({
216
+ server_url: "https://demo.ckan.org",
217
+ sql: "SELECT Country, COUNT(*) AS total FROM \"5b3cf3a8-9a58-45ee-8e1a-4d98b8320c9a\" GROUP BY Country ORDER BY total DESC LIMIT 10"
218
+ })
219
+ ```
220
+
213
221
  ## Advanced Solr Searches
214
222
 
215
223
  ### AND combination
@@ -285,6 +293,25 @@ ckan_package_search({
285
293
  })
286
294
  ```
287
295
 
296
+ ## Tags and Groups
297
+
298
+ ### List groups
299
+ ```typescript
300
+ ckan_group_list({
301
+ server_url: "https://www.dati.gov.it/opendata",
302
+ all_fields: true,
303
+ limit: 20
304
+ })
305
+ ```
306
+
307
+ ### Show group details
308
+ ```typescript
309
+ ckan_group_show({
310
+ server_url: "https://www.dati.gov.it/opendata",
311
+ id: "ambiente"
312
+ })
313
+ ```
314
+
288
315
  ## Advanced Solr Query Features
289
316
 
290
317
  CKAN uses Apache Solr for search. The `q` parameter supports advanced Solr query syntax including fuzzy matching, proximity search, boosting, and complex boolean logic.
package/LOG.md CHANGED
@@ -2,6 +2,19 @@
2
2
 
3
3
  ## 2026-01-10
4
4
 
5
+ ### Version 0.4.4 - DataStore SQL
6
+ - **Tool**: Added `ckan_datastore_search_sql`
7
+ - **Docs**: Updated README/EXAMPLES/PRD for SQL support
8
+ - **Tests**: Added SQL fixture and checks
9
+
10
+ ## 2026-01-10
11
+
12
+ ### Version 0.4.3 - Tags and Groups
13
+ - **Tags**: Added `ckan_tag_list` with faceting and filtering
14
+ - **Groups**: Added `ckan_group_list`, `ckan_group_show`, `ckan_group_search`
15
+ - **Docs**: Updated README with examples and tool list
16
+ - **Tests**: Added tag/group fixtures and tests
17
+
5
18
  ### Version 0.4.2 - Packaging
6
19
  - **npm package**: Added `.npmignore` to exclude dev artifacts
7
20
 
package/PRD.md CHANGED
@@ -653,9 +653,9 @@ ckan_package_search({
653
653
  - Max 32.000 record per query
654
654
  - Dipende dalla configurazione del server CKAN
655
655
 
656
- 5. **No SQL Support**:
657
- - Tool `ckan_datastore_search_sql` menzionato come "in sviluppo"
658
- - Non implementato nel codice attuale
656
+ 5. **SQL Support Limitations**:
657
+ - `ckan_datastore_search_sql` funziona solo se il portale espone l'endpoint SQL
658
+ - Alcuni portali disabilitano SQL per motivi di sicurezza
659
659
 
660
660
  6. **Timeout**:
661
661
  - 30 secondi fissi per HTTP request
@@ -696,9 +696,9 @@ ckan_package_search({
696
696
  - API key per endpoint privati
697
697
  - OAuth per portali che lo supportano
698
698
 
699
- - [ ] **SQL Query Support**
700
- - Implementare `ckan_datastore_search_sql`
701
- - Supporto query SQL complete
699
+ - [x] **SQL Query Support**
700
+ - Implementato `ckan_datastore_search_sql`
701
+ - Richiede portali con DataStore SQL attivo
702
702
 
703
703
  - [ ] **Caching Layer**
704
704
  - Cache risultati frequenti
package/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # CKAN MCP Server
2
2
 
3
+ [![npm version](https://img.shields.io/npm/v/@aborruso/ckan-mcp-server)](https://www.npmjs.com/package/@aborruso/ckan-mcp-server)
4
+
3
5
  MCP (Model Context Protocol) server for interacting with CKAN-based open data portals.
4
6
 
5
7
  ## Features
@@ -12,14 +14,14 @@ MCP (Model Context Protocol) server for interacting with CKAN-based open data po
12
14
  - ๐ŸŽจ Output in Markdown or JSON format
13
15
  - โšก Pagination and faceting support
14
16
  - ๐Ÿ“„ MCP Resource Templates for direct data access
15
- - ๐Ÿงช Comprehensive test suite (113 tests, 100% passing)
17
+ - ๐Ÿงช Comprehensive test suite (120 tests, 100% passing)
16
18
 
17
19
  ## Installation
18
20
 
19
21
  ### From npm (recommended)
20
22
 
21
23
  ```bash
22
- npm install ckan-mcp-server
24
+ npm install -g @aborruso/ckan-mcp-server
23
25
  ```
24
26
 
25
27
  ### From source
@@ -34,7 +36,7 @@ npm install
34
36
  # Build with esbuild (fast, ~4ms)
35
37
  npm run build
36
38
 
37
- # Run tests (113 tests)
39
+ # Run tests (120 tests)
38
40
  npm test
39
41
  ```
40
42
 
@@ -76,38 +78,19 @@ TRANSPORT=http PORT=3000 npm start
76
78
 
77
79
  **Best for**: Global access, zero infrastructure, free hosting
78
80
 
79
- Deploy to Cloudflare's edge network for worldwide low-latency access.
80
-
81
- **Prerequisites**:
82
- - Cloudflare account (free): https://dash.cloudflare.com/sign-up
83
- - Wrangler CLI: `npm install -g wrangler`
84
-
85
- **Quick Deploy**:
86
-
87
- ```bash
88
- # Clone repository
89
- git clone https://github.com/aborruso/ckan-mcp-server.git
90
- cd ckan-mcp-server
91
-
92
- # Install dependencies
93
- npm install
94
-
95
- # Authenticate with Cloudflare
96
- wrangler login
81
+ Use the public Workers endpoint (no local install required):
97
82
 
98
- # Deploy to Workers
99
- npm run deploy
83
+ ```json
84
+ {
85
+ "mcpServers": {
86
+ "ckan": {
87
+ "url": "https://ckan-mcp-server.andy-pr.workers.dev/mcp"
88
+ }
89
+ }
90
+ }
100
91
  ```
101
92
 
102
- Your server will be live at: `https://ckan-mcp-server.<your-account>.workers.dev`
103
-
104
- **Free tier includes**:
105
- - 100,000 requests/day
106
- - Global edge deployment
107
- - Automatic HTTPS
108
- - No cold starts
109
-
110
- For detailed deployment instructions, see [DEPLOYMENT.md](docs/DEPLOYMENT.md).
93
+ Want your own deployment? See [DEPLOYMENT.md](docs/DEPLOYMENT.md).
111
94
 
112
95
  ## Claude Desktop Configuration
113
96
 
@@ -137,22 +120,16 @@ Then add to `claude_desktop_config.json`:
137
120
  }
138
121
  ```
139
122
 
140
- ### Option 2: Local Installation
123
+ ### Option 2: Local Installation (Optional)
141
124
 
142
- Install in a specific project:
143
-
144
- ```bash
145
- npm install @aborruso/ckan-mcp-server
146
- ```
147
-
148
- Then add to `claude_desktop_config.json`:
125
+ If you installed locally (see Installation), use this config:
149
126
 
150
127
  ```json
151
128
  {
152
129
  "mcpServers": {
153
130
  "ckan": {
154
131
  "command": "node",
155
- "args": ["/absolute/path/to/project/node_modules/@aborruso/ckan-mcp-server/dist/index.js"]
132
+ "args": ["/absolute/path/to/project/node_modules/@username/ckan-mcp-server/dist/index.js"]
156
133
  }
157
134
  }
158
135
  }
@@ -198,6 +175,7 @@ Use the public Cloudflare Workers deployment (no local installation required):
198
175
  - **ckan_package_search**: Search datasets with Solr queries
199
176
  - **ckan_package_show**: Complete details of a dataset
200
177
  - **ckan_package_list**: List all datasets
178
+ - **ckan_tag_list**: List tags with counts
201
179
 
202
180
  ### Organizations
203
181
 
@@ -207,7 +185,13 @@ Use the public Cloudflare Workers deployment (no local installation required):
207
185
  ### DataStore
208
186
 
209
187
  - **ckan_datastore_search**: Query tabular data
210
- - **ckan_datastore_search_sql**: SQL queries (in development)
188
+ - **ckan_datastore_search_sql**: SQL queries on DataStore
189
+
190
+ ### Groups
191
+
192
+ - **ckan_group_list**: List groups
193
+ - **ckan_group_show**: Show group details
194
+ - **ckan_group_search**: Search groups by name
211
195
 
212
196
  ### Utilities
213
197
 
@@ -274,6 +258,25 @@ ckan_package_search({
274
258
  })
275
259
  ```
276
260
 
261
+ ### List tags (natural language: "show top tags about health")
262
+
263
+ ```typescript
264
+ ckan_tag_list({
265
+ server_url: "https://www.dati.gov.it/opendata",
266
+ tag_query: "salute",
267
+ limit: 25
268
+ })
269
+ ```
270
+
271
+ ### Search groups (natural language: "find groups about environment")
272
+
273
+ ```typescript
274
+ ckan_group_search({
275
+ server_url: "https://www.dati.gov.it/opendata",
276
+ pattern: "ambiente"
277
+ })
278
+ ```
279
+
277
280
  ### DataStore Query
278
281
 
279
282
  ```typescript
@@ -286,6 +289,15 @@ ckan_datastore_search({
286
289
  })
287
290
  ```
288
291
 
292
+ ### DataStore SQL Query
293
+
294
+ ```typescript
295
+ ckan_datastore_search_sql({
296
+ server_url: "https://demo.ckan.org",
297
+ sql: "SELECT Country, COUNT(*) AS total FROM \"abc-123-def\" GROUP BY Country ORDER BY total DESC LIMIT 10"
298
+ })
299
+ ```
300
+
289
301
  ## Supported CKAN Portals
290
302
 
291
303
  Some of the main compatible portals: