https://github.com/ondics/ckan-mcp-server
A Model Context Protocol (MCP) server for the CKAN API that enables browsing and managing CKAN data portals through MCP-compatible clients.
https://github.com/ondics/ckan-mcp-server
ckan mcp-server
Last synced: 5 months ago
JSON representation
A Model Context Protocol (MCP) server for the CKAN API that enables browsing and managing CKAN data portals through MCP-compatible clients.
- Host: GitHub
- URL: https://github.com/ondics/ckan-mcp-server
- Owner: ondics
- License: mpl-2.0
- Created: 2025-05-25T11:22:24.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-11-12T09:29:30.000Z (7 months ago)
- Last Synced: 2026-01-05T09:28:46.987Z (5 months ago)
- Topics: ckan, mcp-server
- Language: Python
- Homepage:
- Size: 209 KB
- Stars: 11
- Watchers: 1
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CKAN MCP Server
A Model Context Protocol (MCP) server for the CKAN API that enables browsing and managing CKAN data portals through MCP-compatible clients.
## What is this?
This is an MCP server that provides access to CKAN (Comprehensive Knowledge Archive Network) APIs through the Model Context Protocol. It can be used with MCP-compatible clients like Claude Desktop, IDEs, or other AI applications to interact with CKAN data portals.
## Requirements
- Python 3.13 or higher
- pip (Python package installer)
## Installation
1. Install Python dependencies:
```bash
pip install -r requirements.txt
```
## Configuration
Set the following environment variables:
- `CKAN_URL`: The base URL of your CKAN portal (e.g. `https://demo.ckan.org`)
- `CKAN_API_KEY`: (Optional) Your CKAN API key for write operations
Example:
```bash
export CKAN_URL="https://demo.ckan.org"
export CKAN_API_KEY="your-api-key-here"
```
You can also copy `.env.example` to `.env` and set your configuration there.
## Usage
### Running the server directly
```bash
python mcp_ckan_server.py
```
### Using Docker
```bash
# Build the image
docker build -t ckan-mcp-server .
# Run with environment variables
docker run -e CKAN_URL="https://demo.ckan.org" -e CKAN_API_KEY="your-key" ckan-mcp-server
```
### Using Docker Compose
```bash
# Copy environment file and configure
cp .env.example .env
# Edit .env with your settings
# Run the server
docker-compose up
```
## Available Tools
The MCP server provides the following tools:
### Packages/Datasets
- `ckan_package_list`: List all packages
- `ckan_package_show`: Show details of a specific package
- `ckan_package_search`: Search for packages
### Organizations
- `ckan_organization_list`: List all organizations
- `ckan_organization_show`: Show organization details
### DataStore
- `ckan_datastore_search` Search DataStore Tables by Resource
### Groups and Tags
- `ckan_group_list`: List all groups
- `ckan_tag_list`: List all tags
### Resources
- `ckan_resource_show`: Show resource details
### System
- `ckan_site_read`: Site information
- `ckan_status_show`: Status and version information
## Examples
### Search packages
```json
{
"tool": "ckan_package_search",
"arguments": {
"q": "climate data",
"rows": 5,
"sort": "score desc"
}
}
```
### Show organization
```json
{
"tool": "ckan_organization_show",
"arguments": {
"id": "sample-organization",
"include_datasets": true
}
}
```
### List all tags
```json
{
"tool": "ckan_tag_list",
"arguments": {}
}
```
## Resources
The server also provides the following resources:
- `ckan://api/docs`: API documentation
- `ckan://config`: Server configuration
## Using with MCP Clients
### Claude Desktop
Add this to your Claude Desktop configuration file:
```json
{
"mcpServers": {
"ckan": {
"command": "python",
"args": ["/path/to/mcp_ckan_server.py"],
"env": {
"CKAN_URL": "https://demo.ckan.org",
"CKAN_API_KEY": "your-api-key-here"
}
}
}
}
```
### Other MCP Clients
The server communicates via stdio, so any MCP-compatible client can connect to it by running the Python script and communicating through standard input/output.
## CKAN API Reference
This MCP server implements the main endpoints of the CKAN API v3.
Complete documentation: https://docs.ckan.org/en/latest/api/
## License
Mozilla Public License Version 2.0
## Author
(C) 2025, Ondics GmbH, https://ondics.de