@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.
- package/EXAMPLES.md +19 -0
- package/LOG.md +13 -0
- package/README.md +47 -37
- package/dist/index.js +435 -13
- package/dist/worker.js +130 -74
- package/openspec/changes/add-ckan-analyze-dataset-structure/proposal.md +17 -0
- package/openspec/changes/add-ckan-analyze-dataset-structure/specs/ckan-insights/spec.md +7 -0
- package/openspec/changes/add-ckan-analyze-dataset-structure/tasks.md +6 -0
- package/openspec/changes/add-ckan-analyze-dataset-updates/proposal.md +17 -0
- package/openspec/changes/add-ckan-analyze-dataset-updates/specs/ckan-insights/spec.md +7 -0
- package/openspec/changes/add-ckan-analyze-dataset-updates/tasks.md +6 -0
- package/openspec/changes/add-ckan-audit-tool/proposal.md +17 -0
- package/openspec/changes/add-ckan-audit-tool/specs/ckan-insights/spec.md +7 -0
- package/openspec/changes/add-ckan-audit-tool/tasks.md +6 -0
- package/openspec/changes/add-ckan-dataset-insights/proposal.md +17 -0
- package/openspec/changes/add-ckan-dataset-insights/specs/ckan-insights/spec.md +7 -0
- package/openspec/changes/add-ckan-dataset-insights/tasks.md +6 -0
- package/openspec/changes/archive/2026-01-10-add-ckan-find-relevant-datasets/proposal.md +17 -0
- package/openspec/changes/archive/2026-01-10-add-ckan-find-relevant-datasets/specs/ckan-insights/spec.md +7 -0
- package/openspec/changes/archive/2026-01-10-add-ckan-find-relevant-datasets/tasks.md +6 -0
- package/openspec/changes/update-search-parser-config/proposal.md +13 -0
- package/openspec/changes/update-search-parser-config/specs/ckan-insights/spec.md +11 -0
- package/openspec/changes/update-search-parser-config/specs/ckan-search/spec.md +11 -0
- package/openspec/changes/update-search-parser-config/tasks.md +6 -0
- package/openspec/project.md +9 -7
- package/openspec/specs/ckan-insights/spec.md +19 -0
- package/openspec/specs/cloudflare-deployment/spec.md +344 -0
- package/package.json +1 -1
- /package/openspec/changes/{add-cloudflare-workers → archive/2026-01-10-add-cloudflare-workers}/design.md +0 -0
- /package/openspec/changes/{add-cloudflare-workers → archive/2026-01-10-add-cloudflare-workers}/proposal.md +0 -0
- /package/openspec/changes/{add-cloudflare-workers → archive/2026-01-10-add-cloudflare-workers}/specs/cloudflare-deployment/spec.md +0 -0
- /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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
470
|
-
│ ├── server.ts
|
|
471
|
-
│ ├──
|
|
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
|
|
474
|
-
│ │
|
|
480
|
+
│ │ ├── http.ts # CKAN API client
|
|
481
|
+
│ │ ├── formatting.ts # Output formatting
|
|
482
|
+
│ │ └── url-generator.ts
|
|
475
483
|
│ ├── tools/
|
|
476
|
-
│ │ ├── package.ts
|
|
484
|
+
│ │ ├── package.ts # Package search/show
|
|
477
485
|
│ │ ├── organization.ts # Organization tools
|
|
478
|
-
│ │ ├── datastore.ts
|
|
479
|
-
│ │
|
|
480
|
-
│ ├──
|
|
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
|
|
492
|
+
│ │ ├── uri.ts # URI parsing
|
|
483
493
|
│ │ ├── dataset.ts
|
|
484
494
|
│ │ ├── resource.ts
|
|
485
495
|
│ │ └── organization.ts
|
|
486
496
|
│ └── transport/
|
|
487
|
-
│ ├── stdio.ts
|
|
488
|
-
│ └── http.ts
|
|
489
|
-
├── tests/
|
|
490
|
-
├── dist/
|
|
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
|
```
|