@aborruso/ckan-mcp-server 0.4.5 → 0.4.7

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.
Files changed (32) hide show
  1. package/EXAMPLES.md +19 -0
  2. package/LOG.md +13 -0
  3. package/README.md +47 -37
  4. package/dist/index.js +435 -13
  5. package/dist/worker.js +130 -74
  6. package/openspec/changes/add-ckan-analyze-dataset-structure/proposal.md +17 -0
  7. package/openspec/changes/add-ckan-analyze-dataset-structure/specs/ckan-insights/spec.md +7 -0
  8. package/openspec/changes/add-ckan-analyze-dataset-structure/tasks.md +6 -0
  9. package/openspec/changes/add-ckan-analyze-dataset-updates/proposal.md +17 -0
  10. package/openspec/changes/add-ckan-analyze-dataset-updates/specs/ckan-insights/spec.md +7 -0
  11. package/openspec/changes/add-ckan-analyze-dataset-updates/tasks.md +6 -0
  12. package/openspec/changes/add-ckan-audit-tool/proposal.md +17 -0
  13. package/openspec/changes/add-ckan-audit-tool/specs/ckan-insights/spec.md +7 -0
  14. package/openspec/changes/add-ckan-audit-tool/tasks.md +6 -0
  15. package/openspec/changes/add-ckan-dataset-insights/proposal.md +17 -0
  16. package/openspec/changes/add-ckan-dataset-insights/specs/ckan-insights/spec.md +7 -0
  17. package/openspec/changes/add-ckan-dataset-insights/tasks.md +6 -0
  18. package/openspec/changes/archive/2026-01-10-add-ckan-find-relevant-datasets/proposal.md +17 -0
  19. package/openspec/changes/archive/2026-01-10-add-ckan-find-relevant-datasets/specs/ckan-insights/spec.md +7 -0
  20. package/openspec/changes/archive/2026-01-10-add-ckan-find-relevant-datasets/tasks.md +6 -0
  21. package/openspec/changes/update-search-parser-config/proposal.md +13 -0
  22. package/openspec/changes/update-search-parser-config/specs/ckan-insights/spec.md +11 -0
  23. package/openspec/changes/update-search-parser-config/specs/ckan-search/spec.md +11 -0
  24. package/openspec/changes/update-search-parser-config/tasks.md +6 -0
  25. package/openspec/project.md +9 -7
  26. package/openspec/specs/ckan-insights/spec.md +19 -0
  27. package/openspec/specs/cloudflare-deployment/spec.md +344 -0
  28. package/package.json +1 -1
  29. /package/openspec/changes/{add-cloudflare-workers → archive/2026-01-10-add-cloudflare-workers}/design.md +0 -0
  30. /package/openspec/changes/{add-cloudflare-workers → archive/2026-01-10-add-cloudflare-workers}/proposal.md +0 -0
  31. /package/openspec/changes/{add-cloudflare-workers → archive/2026-01-10-add-cloudflare-workers}/specs/cloudflare-deployment/spec.md +0 -0
  32. /package/openspec/changes/{add-cloudflare-workers → archive/2026-01-10-add-cloudflare-workers}/tasks.md +0 -0
package/EXAMPLES.md CHANGED
@@ -20,6 +20,15 @@ ckan_package_search({
20
20
  })
21
21
  ```
22
22
 
23
+ ### Find relevant datasets
24
+ ```typescript
25
+ ckan_find_relevant_datasets({
26
+ server_url: "https://demo.ckan.org",
27
+ query: "open data transport",
28
+ limit: 5
29
+ })
30
+ ```
31
+
23
32
  ## Italy Examples - dati.gov.it
24
33
 
25
34
  ### Search recent datasets
@@ -41,6 +50,16 @@ ckan_package_search({
41
50
  })
42
51
  ```
43
52
 
53
+ ### Long OR query (force text-field parser)
54
+ ```typescript
55
+ ckan_package_search({
56
+ server_url: "https://www.dati.gov.it/opendata",
57
+ q: "hotel OR alberghi OR \"strutture ricettive\" OR ospitalità OR ricettività OR agriturismo OR \"bed and breakfast\"",
58
+ query_parser: "text",
59
+ rows: 0
60
+ })
61
+ ```
62
+
44
63
  ### Regione Siciliana datasets
45
64
  ```typescript
46
65
  ckan_package_search({
package/LOG.md CHANGED
@@ -2,6 +2,19 @@
2
2
 
3
3
  ## 2026-01-10
4
4
 
5
+ ### Version 0.4.7 - Portal search parser override
6
+ - **Config**: Added per-portal search parser config
7
+ - **Tool**: Added query parser override for package search and relevance
8
+
9
+ ## 2026-01-10
10
+
11
+ ### Version 0.4.6 - Relevance ranking
12
+ - **Tool**: Added `ckan_find_relevant_datasets`
13
+ - **Docs**: Updated README/EXAMPLES
14
+ - **Tests**: Added relevance scoring checks
15
+
16
+ ## 2026-01-10
17
+
5
18
  ### Version 0.4.5 - Health version
6
19
  - **Workers**: /health version/tools updated
7
20
 
package/README.md CHANGED
@@ -40,27 +40,11 @@ npm run build
40
40
  npm test
41
41
  ```
42
42
 
43
- ## Usage
44
-
45
- ### Start with stdio (for local integration)
46
-
47
- ```bash
48
- npm start
49
- ```
50
-
51
- ### Start with HTTP (for remote access)
52
-
53
- ```bash
54
- TRANSPORT=http PORT=3000 npm start
55
- ```
56
-
57
- The server will be available at `http://localhost:3000/mcp`
58
-
59
- ## Deployment Options
43
+ ## Usage Options
60
44
 
61
45
  ### Option 1: Local Installation (stdio mode)
62
46
 
63
- **Best for**: Personal use with Claude Desktop
47
+ **Best for**: Personal use with local MCP clients
64
48
 
65
49
  Install and run locally on your machine (see Installation section above).
66
50
 
@@ -92,7 +76,7 @@ Use the public Workers endpoint (no local install required):
92
76
 
93
77
  Want your own deployment? See [DEPLOYMENT.md](docs/DEPLOYMENT.md).
94
78
 
95
- ## Claude Desktop Configuration
79
+ ### Claude Desktop Configuration
96
80
 
97
81
  Configuration file location:
98
82
 
@@ -100,7 +84,7 @@ Configuration file location:
100
84
  - **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
101
85
  - **Linux**: `~/.config/Claude/claude_desktop_config.json`
102
86
 
103
- ### Option 1: Global Installation (Recommended)
87
+ #### Option 1: Global Installation (Recommended)
104
88
 
105
89
  Install globally to use across all projects:
106
90
 
@@ -120,7 +104,7 @@ Then add to `claude_desktop_config.json`:
120
104
  }
121
105
  ```
122
106
 
123
- ### Option 2: Local Installation (Optional)
107
+ #### Option 2: Local Installation (Optional)
124
108
 
125
109
  If you installed locally (see Installation), use this config:
126
110
 
@@ -137,7 +121,7 @@ If you installed locally (see Installation), use this config:
137
121
 
138
122
  Replace `/absolute/path/to/project` with your actual project path.
139
123
 
140
- ### Option 3: From Source
124
+ #### Option 3: From Source
141
125
 
142
126
  If you cloned the repository:
143
127
 
@@ -152,7 +136,7 @@ If you cloned the repository:
152
136
  }
153
137
  ```
154
138
 
155
- ### Option 4: Cloudflare Workers (HTTP transport)
139
+ #### Option 4: Cloudflare Workers (HTTP transport)
156
140
 
157
141
  Use the public Cloudflare Workers deployment (no local installation required):
158
142
 
@@ -173,6 +157,7 @@ Use the public Cloudflare Workers deployment (no local installation required):
173
157
  ### Search and Discovery
174
158
 
175
159
  - **ckan_package_search**: Search datasets with Solr queries
160
+ - **ckan_find_relevant_datasets**: Rank datasets by relevance score
176
161
  - **ckan_package_show**: Complete details of a dataset
177
162
  - **ckan_package_list**: List all datasets
178
163
  - **ckan_tag_list**: List tags with counts
@@ -225,6 +210,27 @@ ckan_package_search({
225
210
  })
226
211
  ```
227
212
 
213
+ ### Force text-field parser for long OR queries
214
+
215
+ ```typescript
216
+ ckan_package_search({
217
+ server_url: "https://www.dati.gov.it/opendata",
218
+ q: "hotel OR alberghi OR \"strutture ricettive\" OR ospitalità OR ricettività",
219
+ query_parser: "text",
220
+ rows: 0
221
+ })
222
+ ```
223
+
224
+ ### Rank datasets by relevance
225
+
226
+ ```typescript
227
+ ckan_find_relevant_datasets({
228
+ server_url: "https://www.dati.gov.it/opendata",
229
+ query: "mobilità urbana",
230
+ limit: 5
231
+ })
232
+ ```
233
+
228
234
  ### Filter by organization
229
235
 
230
236
  ```typescript
@@ -466,28 +472,32 @@ ckan_package_search({
466
472
  ```
467
473
  ckan-mcp-server/
468
474
  ├── src/
469
- │ ├── index.ts # Entry point
470
- │ ├── server.ts # MCP server setup
471
- │ ├── types.ts # Types & schemas
475
+ │ ├── index.ts # Entry point
476
+ │ ├── server.ts # MCP server setup
477
+ │ ├── worker.ts # Cloudflare Workers entry
478
+ │ ├── types.ts # Types & schemas
472
479
  │ ├── utils/
473
- │ │ ├── http.ts # CKAN API client
474
- │ │ └── formatting.ts # Output formatting
480
+ │ │ ├── http.ts # CKAN API client
481
+ │ │ ├── formatting.ts # Output formatting
482
+ │ │ └── url-generator.ts
475
483
  │ ├── tools/
476
- │ │ ├── package.ts # Package search/show
484
+ │ │ ├── package.ts # Package search/show
477
485
  │ │ ├── organization.ts # Organization tools
478
- │ │ ├── datastore.ts # DataStore queries
479
- │ │ └── status.ts # Server status
480
- │ ├── resources/ # MCP Resource Templates
486
+ │ │ ├── datastore.ts # DataStore queries
487
+ │ │ ├── status.ts # Server status
488
+ ├── tag.ts # Tag tools
489
+ │ │ └── group.ts # Group tools
490
+ │ ├── resources/ # MCP Resource Templates
481
491
  │ │ ├── index.ts
482
- │ │ ├── uri.ts # URI parsing
492
+ │ │ ├── uri.ts # URI parsing
483
493
  │ │ ├── dataset.ts
484
494
  │ │ ├── resource.ts
485
495
  │ │ └── organization.ts
486
496
  │ └── transport/
487
- │ ├── stdio.ts # Stdio transport
488
- │ └── http.ts # HTTP transport
489
- ├── tests/ # Test suite (113 tests)
490
- ├── dist/ # Compiled files (generated)
497
+ │ ├── stdio.ts # Stdio transport
498
+ │ └── http.ts # HTTP transport
499
+ ├── tests/ # Test suite (120 tests)
500
+ ├── dist/ # Compiled files (generated)
491
501
  ├── package.json
492
502
  └── README.md
493
503
  ```