@aborruso/ckan-mcp-server 0.4.16 → 0.4.18
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/LOG.md +78 -0
- package/README.md +104 -34
- package/dist/index.js +161 -45
- package/dist/worker.js +42 -42
- package/package.json +12 -1
- package/.devin/wiki.json +0 -273
- package/CLAUDE.md +0 -398
- package/PRD.md +0 -999
- package/REFACTORING.md +0 -238
- package/examples/langgraph/01_basic_workflow.py +0 -277
- package/examples/langgraph/02_data_exploration.py +0 -366
- package/examples/langgraph/README.md +0 -719
- package/examples/langgraph/metadata_quality.py +0 -299
- package/examples/langgraph/requirements.txt +0 -12
- package/examples/langgraph/setup.sh +0 -32
- package/examples/langgraph/test_setup.py +0 -106
- package/openspec/AGENTS.md +0 -456
- package/openspec/changes/add-ckan-analyze-dataset-structure/proposal.md +0 -17
- package/openspec/changes/add-ckan-analyze-dataset-structure/specs/ckan-insights/spec.md +0 -7
- package/openspec/changes/add-ckan-analyze-dataset-structure/tasks.md +0 -6
- package/openspec/changes/add-ckan-analyze-dataset-updates/proposal.md +0 -17
- package/openspec/changes/add-ckan-analyze-dataset-updates/specs/ckan-insights/spec.md +0 -7
- package/openspec/changes/add-ckan-analyze-dataset-updates/tasks.md +0 -6
- package/openspec/changes/add-ckan-audit-tool/proposal.md +0 -17
- package/openspec/changes/add-ckan-audit-tool/specs/ckan-insights/spec.md +0 -7
- package/openspec/changes/add-ckan-audit-tool/tasks.md +0 -6
- package/openspec/changes/add-ckan-dataset-insights/proposal.md +0 -17
- package/openspec/changes/add-ckan-dataset-insights/specs/ckan-insights/spec.md +0 -7
- package/openspec/changes/add-ckan-dataset-insights/tasks.md +0 -6
- package/openspec/changes/add-ckan-host-allowlist-env/design.md +0 -38
- package/openspec/changes/add-ckan-host-allowlist-env/proposal.md +0 -16
- package/openspec/changes/add-ckan-host-allowlist-env/specs/ckan-request-allowlist/spec.md +0 -15
- package/openspec/changes/add-ckan-host-allowlist-env/specs/cloudflare-deployment/spec.md +0 -11
- package/openspec/changes/add-ckan-host-allowlist-env/tasks.md +0 -12
- package/openspec/changes/add-escape-text-query/proposal.md +0 -12
- package/openspec/changes/add-escape-text-query/specs/ckan-search/spec.md +0 -11
- package/openspec/changes/add-escape-text-query/tasks.md +0 -8
- package/openspec/changes/add-mqa-quality-tool/proposal.md +0 -21
- package/openspec/changes/add-mqa-quality-tool/specs/ckan-quality/spec.md +0 -71
- package/openspec/changes/add-mqa-quality-tool/tasks.md +0 -29
- package/openspec/changes/archive/2026-01-08-add-mcp-resources/design.md +0 -115
- package/openspec/changes/archive/2026-01-08-add-mcp-resources/proposal.md +0 -52
- package/openspec/changes/archive/2026-01-08-add-mcp-resources/specs/mcp-resources/spec.md +0 -92
- package/openspec/changes/archive/2026-01-08-add-mcp-resources/tasks.md +0 -56
- package/openspec/changes/archive/2026-01-08-expand-test-coverage-specs/design.md +0 -355
- package/openspec/changes/archive/2026-01-08-expand-test-coverage-specs/proposal.md +0 -161
- package/openspec/changes/archive/2026-01-08-expand-test-coverage-specs/tasks.md +0 -162
- package/openspec/changes/archive/2026-01-08-translate-project-to-english/proposal.md +0 -115
- package/openspec/changes/archive/2026-01-08-translate-project-to-english/specs/documentation-language/spec.md +0 -32
- package/openspec/changes/archive/2026-01-08-translate-project-to-english/tasks.md +0 -115
- package/openspec/changes/archive/2026-01-10-add-ckan-find-relevant-datasets/proposal.md +0 -17
- package/openspec/changes/archive/2026-01-10-add-ckan-find-relevant-datasets/specs/ckan-insights/spec.md +0 -7
- package/openspec/changes/archive/2026-01-10-add-ckan-find-relevant-datasets/tasks.md +0 -6
- package/openspec/changes/archive/2026-01-10-add-cloudflare-workers/design.md +0 -734
- package/openspec/changes/archive/2026-01-10-add-cloudflare-workers/proposal.md +0 -183
- package/openspec/changes/archive/2026-01-10-add-cloudflare-workers/specs/cloudflare-deployment/spec.md +0 -389
- package/openspec/changes/archive/2026-01-10-add-cloudflare-workers/tasks.md +0 -519
- package/openspec/changes/archive/2026-01-15-add-mcp-prompts/proposal.md +0 -13
- package/openspec/changes/archive/2026-01-15-add-mcp-prompts/specs/mcp-prompts/spec.md +0 -22
- package/openspec/changes/archive/2026-01-15-add-mcp-prompts/tasks.md +0 -10
- package/openspec/changes/archive/2026-01-15-add-mcp-resource-filters/proposal.md +0 -13
- package/openspec/changes/archive/2026-01-15-add-mcp-resource-filters/specs/mcp-resources/spec.md +0 -38
- package/openspec/changes/archive/2026-01-15-add-mcp-resource-filters/tasks.md +0 -10
- package/openspec/changes/archive/2026-01-19-update-repo-owner-ondata/proposal.md +0 -13
- package/openspec/changes/archive/2026-01-19-update-repo-owner-ondata/specs/repository-metadata/spec.md +0 -14
- package/openspec/changes/archive/2026-01-19-update-repo-owner-ondata/tasks.md +0 -12
- package/openspec/changes/archive/2026-01-19-update-search-parser-config/proposal.md +0 -13
- package/openspec/changes/archive/2026-01-19-update-search-parser-config/specs/ckan-insights/spec.md +0 -11
- package/openspec/changes/archive/2026-01-19-update-search-parser-config/specs/ckan-search/spec.md +0 -11
- package/openspec/changes/archive/2026-01-19-update-search-parser-config/tasks.md +0 -6
- package/openspec/changes/archive/add-automated-tests/design.md +0 -324
- package/openspec/changes/archive/add-automated-tests/proposal.md +0 -167
- package/openspec/changes/archive/add-automated-tests/specs/automated-testing/spec.md +0 -143
- package/openspec/changes/archive/add-automated-tests/tasks.md +0 -132
- package/openspec/project.md +0 -115
- package/openspec/specs/ckan-insights/spec.md +0 -23
- package/openspec/specs/ckan-search/spec.md +0 -16
- package/openspec/specs/cloudflare-deployment/spec.md +0 -344
- package/openspec/specs/documentation-language/spec.md +0 -32
- package/openspec/specs/mcp-prompts/spec.md +0 -26
- package/openspec/specs/mcp-resources/spec.md +0 -120
- package/openspec/specs/repository-metadata/spec.md +0 -19
- package/private/commenti-privati.yaml +0 -14
- package/testo.md +0 -12
- package/web-gui/PRD.md +0 -158
- package/web-gui/public/index.html +0 -883
- package/wrangler.toml +0 -6
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
# Proposal: Translate Project to English
|
|
2
|
-
|
|
3
|
-
**Status:** Completed
|
|
4
|
-
**Created:** 2026-01-08
|
|
5
|
-
**Author:** OpenCode
|
|
6
|
-
**Archived:** 2026-01-08 (as expand-test-coverage-specs)
|
|
7
|
-
|
|
8
|
-
## Summary
|
|
9
|
-
|
|
10
|
-
Translate the CKAN MCP Server project documentation from Italian to English to improve accessibility and align with international open data standards.
|
|
11
|
-
|
|
12
|
-
## Motivation
|
|
13
|
-
|
|
14
|
-
The CKAN MCP Server project is currently documented in Italian, which limits its accessibility to the global open data community. Since:
|
|
15
|
-
- CKAN is an international platform used by 500+ portals worldwide
|
|
16
|
-
- The MCP protocol and most technical documentation are in English
|
|
17
|
-
- The target audience (data scientists, developers, researchers) is primarily English-speaking
|
|
18
|
-
- The source code comments are already in English
|
|
19
|
-
|
|
20
|
-
Translating the documentation will:
|
|
21
|
-
- Lower adoption barriers for international users
|
|
22
|
-
- Improve discoverability through search engines
|
|
23
|
-
- Align with CKAN's global community
|
|
24
|
-
- Maintain consistency with the already-English codebase
|
|
25
|
-
|
|
26
|
-
## Scope
|
|
27
|
-
|
|
28
|
-
### Included
|
|
29
|
-
- **README.md**: Main project documentation (285 lines)
|
|
30
|
-
- **EXAMPLES.md**: Usage examples and workflows (427 lines)
|
|
31
|
-
|
|
32
|
-
### Excluded
|
|
33
|
-
- Source code files (already in English)
|
|
34
|
-
- SKILL.md (English skill documentation)
|
|
35
|
-
- AGENTS.md, LOG.md, other internal docs
|
|
36
|
-
- Package metadata (package.json, package-lock.json)
|
|
37
|
-
- API/tool names (already English)
|
|
38
|
-
- User-facing tool outputs (already English)
|
|
39
|
-
|
|
40
|
-
## Proposed Changes
|
|
41
|
-
|
|
42
|
-
### Files to Translate
|
|
43
|
-
|
|
44
|
-
1. **README.md**
|
|
45
|
-
- Project description and features
|
|
46
|
-
- Installation and usage instructions
|
|
47
|
-
- Tool descriptions and examples
|
|
48
|
-
- Troubleshooting guide
|
|
49
|
-
- Links and support section
|
|
50
|
-
|
|
51
|
-
2. **EXAMPLES.md**
|
|
52
|
-
- Connection tests
|
|
53
|
-
- Italy-specific examples (dati.gov.it)
|
|
54
|
-
- USA examples (data.gov)
|
|
55
|
-
- Demo CKAN examples
|
|
56
|
-
- DataStore queries
|
|
57
|
-
- Advanced Solr queries
|
|
58
|
-
- Complete workflows
|
|
59
|
-
|
|
60
|
-
### Translation Approach
|
|
61
|
-
|
|
62
|
-
- Direct translation maintaining technical accuracy
|
|
63
|
-
- Preserve all code examples (already in English)
|
|
64
|
-
- Keep Italian portal names, organization titles, and data values in Italian (e.g., "Regione Siciliana")
|
|
65
|
-
- Maintain structure and formatting
|
|
66
|
-
- Use official CKAN terminology (DataStore, faceting, Solr)
|
|
67
|
-
- Use ISO format for dates
|
|
68
|
-
- Keep current examples (Italy, USA, demo.ckan.org)
|
|
69
|
-
|
|
70
|
-
## Alternatives Considered
|
|
71
|
-
|
|
72
|
-
1. **Bilingual documentation**: Keep Italian and add English sections
|
|
73
|
-
- *Rejected*: Increases maintenance burden, creates version drift issues
|
|
74
|
-
|
|
75
|
-
2. **Auto-translation tools only**: Use machine translation without review
|
|
76
|
-
- *Rejected*: Quality concerns, potential technical errors
|
|
77
|
-
|
|
78
|
-
3. **No translation**: Keep Italian only
|
|
79
|
-
- *Rejected*: Limits project adoption and community growth
|
|
80
|
-
|
|
81
|
-
## Impact Assessment
|
|
82
|
-
|
|
83
|
-
### Benefits
|
|
84
|
-
- + Improved accessibility for international users
|
|
85
|
-
- + Better alignment with CKAN global community
|
|
86
|
-
- + Consistent language across code and documentation
|
|
87
|
-
- + Easier onboarding for new contributors
|
|
88
|
-
|
|
89
|
-
### Risks
|
|
90
|
-
- - Loss of Italy-specific context in translation
|
|
91
|
-
- - Possible translation errors in technical terms
|
|
92
|
-
- - Need to maintain English for future updates
|
|
93
|
-
|
|
94
|
-
### Mitigation
|
|
95
|
-
- Review all technical translations against CKAN API documentation
|
|
96
|
-
- Keep Italian portal names and organization titles in Italian
|
|
97
|
-
- Use official CKAN terminology for technical terms
|
|
98
|
-
|
|
99
|
-
## Open Questions
|
|
100
|
-
|
|
101
|
-
None - clarified with project owner.
|
|
102
|
-
|
|
103
|
-
## Dependencies
|
|
104
|
-
|
|
105
|
-
None - this is a documentation-only change with no code modifications.
|
|
106
|
-
|
|
107
|
-
## Success Criteria
|
|
108
|
-
|
|
109
|
-
- [ ] README.md fully translated to English
|
|
110
|
-
- [ ] EXAMPLES.md fully translated to English
|
|
111
|
-
- [ ] All technical terms accurate and consistent with CKAN API docs
|
|
112
|
-
- [ ] Code examples unchanged
|
|
113
|
-
- [ ] Markdown formatting preserved
|
|
114
|
-
- [ ] No broken links or references
|
|
115
|
-
- [ ] Validation: `openspec validate translate-project-to-english --strict` passes
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
# Spec: Documentation Language
|
|
2
|
-
|
|
3
|
-
Defines the language requirements for project documentation.
|
|
4
|
-
|
|
5
|
-
## ADDED Requirements
|
|
6
|
-
|
|
7
|
-
### Requirement: Project documentation in English
|
|
8
|
-
|
|
9
|
-
The project SHALL provide all user-facing documentation in English to ensure accessibility for the international open data community.
|
|
10
|
-
|
|
11
|
-
#### Scenario: English documentation
|
|
12
|
-
Given a CKAN MCP Server project
|
|
13
|
-
When a user reads the documentation
|
|
14
|
-
Then the documentation is in English
|
|
15
|
-
And code examples are in English
|
|
16
|
-
And technical terms follow CKAN API terminology
|
|
17
|
-
|
|
18
|
-
### Requirement: Preserve multilingual examples
|
|
19
|
-
|
|
20
|
-
The project SHALL preserve non-English portal names, organization titles, or data values in their original language to accurately reflect real-world CKAN portals.
|
|
21
|
-
|
|
22
|
-
#### Scenario: Italian portal example
|
|
23
|
-
Given an example using dati.gov.it
|
|
24
|
-
When the example references Italian organizations
|
|
25
|
-
Then organization names remain in Italian (e.g., "Regione Siciliana")
|
|
26
|
-
And descriptions are in English
|
|
27
|
-
|
|
28
|
-
#### Scenario: Non-English data values
|
|
29
|
-
Given an example query with data filters
|
|
30
|
-
When the data contains non-English values
|
|
31
|
-
Then those values are preserved in their original language
|
|
32
|
-
And the surrounding documentation explains the context in English
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
# Tasks: Translate Project to English
|
|
2
|
-
|
|
3
|
-
Ordered list of work items to translate the project documentation to English.
|
|
4
|
-
|
|
5
|
-
## Phase 1: Preparation
|
|
6
|
-
|
|
7
|
-
- [x] Create backup copies of README.md and EXAMPLES.md
|
|
8
|
-
- [x] Review CKAN API documentation for standard English terminology
|
|
9
|
-
- [x] Identify technical terms requiring precise translation (e.g., "DataStore", "facet", "Solr")
|
|
10
|
-
- [x] Note any Italy-specific context to preserve (e.g., portal names, organization titles)
|
|
11
|
-
|
|
12
|
-
## Phase 2: Translate README.md
|
|
13
|
-
|
|
14
|
-
- [x] Translate header and project description (lines 1-4)
|
|
15
|
-
- [x] Translate features section (lines 5-13)
|
|
16
|
-
- [x] Translate installation instructions (lines 15-26)
|
|
17
|
-
- [x] Translate usage section (lines 28-42)
|
|
18
|
-
- [x] Translate Claude Desktop configuration (lines 44-61)
|
|
19
|
-
- [x] Translate available tools section (lines 63-83)
|
|
20
|
-
- [x] Translate usage examples (lines 85-140)
|
|
21
|
-
- [x] Translate supported CKAN portals section (lines 142-152)
|
|
22
|
-
- [x] Translate advanced Solr queries section (lines 154-181)
|
|
23
|
-
- [x] Translate project structure section (lines 183-194)
|
|
24
|
-
- [x] Translate development section (lines 196-221)
|
|
25
|
-
- [x] Translate troubleshooting section (lines 223-252)
|
|
26
|
-
- [x] Translate contributing section (lines 254-262)
|
|
27
|
-
- [x] Translate license and useful links sections (lines 264-274)
|
|
28
|
-
- [x] Translate support section and footer (lines 276-285)
|
|
29
|
-
- [x] Verify all links remain functional
|
|
30
|
-
- [x] Check markdown formatting consistency
|
|
31
|
-
|
|
32
|
-
## Phase 3: Translate EXAMPLES.md
|
|
33
|
-
|
|
34
|
-
- [x] Translate header and introduction (lines 1-4)
|
|
35
|
-
- [x] Translate connection tests section (lines 5-21)
|
|
36
|
-
- [x] Translate Italy examples header (line 23)
|
|
37
|
-
- [x] Translate recent datasets example (lines 25-33)
|
|
38
|
-
- [x] Translate COVID-19 datasets example (lines 35-42)
|
|
39
|
-
- [x] Translate Regione Siciliana datasets example (lines 44-52)
|
|
40
|
-
- [x] Translate organization search examples (lines 54-73)
|
|
41
|
-
- [x] Translate wildcard organization search example (lines 75-85)
|
|
42
|
-
- [x] Translate organization statistics examples (lines 87-95)
|
|
43
|
-
- [x] Translate format statistics example (lines 97-105)
|
|
44
|
-
- [x] Translate organization list example (lines 107-115)
|
|
45
|
-
- [x] Translate organization details example (lines 117-124)
|
|
46
|
-
- [x] Translate CSV datasets example (lines 126-133)
|
|
47
|
-
- [x] Translate USA examples header (line 135)
|
|
48
|
-
- [x] Translate government datasets example (lines 137-144)
|
|
49
|
-
- [x] Translate tag-based datasets example (lines 146-153)
|
|
50
|
-
- [x] Translate demo CKAN examples (lines 155-178)
|
|
51
|
-
- [x] Translate DataStore queries header (line 180)
|
|
52
|
-
- [x] Translate basic DataStore query example (lines 182-189)
|
|
53
|
-
- [x] Translate filtered DataStore query example (lines 191-201)
|
|
54
|
-
- [x] Translate sorted DataStore query example (lines 203-211)
|
|
55
|
-
- [x] Translate advanced Solr queries header (line 213)
|
|
56
|
-
- [x] Translate AND combination example (lines 215-222)
|
|
57
|
-
- [x] Translate OR combination example (lines 224-231)
|
|
58
|
-
- [x] Translate NOT exclusion example (lines 233-240)
|
|
59
|
-
- [x] Translate title search example (lines 242-249)
|
|
60
|
-
- [x] Translate description search example (lines 251-258)
|
|
61
|
-
- [x] Translate wildcard search example (lines 260-267)
|
|
62
|
-
- [x] Translate date range filter example (lines 269-276)
|
|
63
|
-
- [x] Translate recent datasets example (lines 278-286)
|
|
64
|
-
- [x] Translate complete workflows header (line 288)
|
|
65
|
-
- [x] Translate workflow 1: regional dataset analysis (lines 290-314)
|
|
66
|
-
- [x] Translate workflow 2: monitoring new publications (lines 316-334)
|
|
67
|
-
- [x] Translate workflow 3: data coverage analysis (lines 336-370)
|
|
68
|
-
- [x] Translate workflow 4: thematic search (lines 372-401)
|
|
69
|
-
- [x] Translate output formats section (lines 403-418)
|
|
70
|
-
- [x] Translate notes section (lines 420-427)
|
|
71
|
-
- [x] Verify all code examples unchanged
|
|
72
|
-
- [x] Check markdown formatting consistency
|
|
73
|
-
|
|
74
|
-
## Phase 4: Review and Validation
|
|
75
|
-
|
|
76
|
-
- [x] Proofread README.md for English grammar and flow
|
|
77
|
-
- [x] Proofread EXAMPLES.md for English grammar and flow
|
|
78
|
-
- [x] Verify technical terminology matches CKAN API docs
|
|
79
|
-
- [x] Check all tool names are consistent with code
|
|
80
|
-
- [x] Ensure all URLs remain correct
|
|
81
|
-
- [x] Validate markdown syntax using a linter or manual check
|
|
82
|
-
- [x] Test all code examples for syntax errors
|
|
83
|
-
- [x] Confirm no Italian text remains in translated sections
|
|
84
|
-
- [x] Verify formatting, spacing, and indentation preserved
|
|
85
|
-
- [x] Check section headings follow markdown conventions
|
|
86
|
-
|
|
87
|
-
## Phase 5: Documentation Updates
|
|
88
|
-
|
|
89
|
-
- [x] Update README.md to reflect English-only documentation
|
|
90
|
-
- [x] Update any references to Italian docs in project files
|
|
91
|
-
- [x] Update project.md if it references language conventions
|
|
92
|
-
- [x] Verify package.json metadata remains accurate
|
|
93
|
-
- [x] Add note about translation history if appropriate
|
|
94
|
-
|
|
95
|
-
## Phase 6: Final Verification
|
|
96
|
-
|
|
97
|
-
- [x] Run `openspec validate translate-project-to-english --strict`
|
|
98
|
-
- [x] Resolve all validation errors
|
|
99
|
-
- [x] Final review of translated files
|
|
100
|
-
- [x] Prepare commit message (concise, following project conventions)
|
|
101
|
-
|
|
102
|
-
## Dependencies
|
|
103
|
-
|
|
104
|
-
- All tasks in Phase 2 and Phase 3 can be done in parallel after Phase 1
|
|
105
|
-
- Phase 4 depends on completion of Phase 2 and Phase 3
|
|
106
|
-
- Phase 5 depends on completion of Phase 4
|
|
107
|
-
- Phase 6 is final verification, depends on all previous phases
|
|
108
|
-
|
|
109
|
-
## Notes
|
|
110
|
-
|
|
111
|
-
- Preserve all Italian proper nouns (Regione Siciliana, Autorità Idrica Toscana, etc.)
|
|
112
|
-
- Keep all code examples and function names in English
|
|
113
|
-
- Maintain existing markdown structure and formatting
|
|
114
|
-
- Use standard English technical documentation style
|
|
115
|
-
- Refer to CKAN API docs (https://docs.ckan.org/en/latest/api/) for terminology
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
# Change: Add ckan_find_relevant_datasets tool
|
|
2
|
-
|
|
3
|
-
## Why
|
|
4
|
-
Ranked discovery helps surface the best datasets for a query without manual sorting.
|
|
5
|
-
|
|
6
|
-
## What Changes
|
|
7
|
-
- Add MCP tool `ckan_find_relevant_datasets` wrapping `package_search`.
|
|
8
|
-
- Score results using weighted fields (title, notes, tags, organization).
|
|
9
|
-
- Return top N datasets with score breakdown.
|
|
10
|
-
|
|
11
|
-
## Impact
|
|
12
|
-
- Affected specs: `ckan-insights`
|
|
13
|
-
- Affected code: `src/tools/package.ts` (or new insights module)
|
|
14
|
-
|
|
15
|
-
## Open Questions
|
|
16
|
-
- Default weights for title/notes/tags/organization?
|
|
17
|
-
- Default `limit` when omitted?
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
## ADDED Requirements
|
|
2
|
-
### Requirement: Find relevant datasets
|
|
3
|
-
The system SHALL provide a `ckan_find_relevant_datasets` tool that accepts `server_url`, `query`, `limit`, and optional weights for title, notes, tags, and organization, and returns the top N datasets ranked by score with a per-field score breakdown.
|
|
4
|
-
|
|
5
|
-
#### Scenario: Ranked results returned
|
|
6
|
-
- **WHEN** the tool is invoked with a query and limit
|
|
7
|
-
- **THEN** the system uses `package_search` results to return the top N datasets with numeric scores and field contributions
|