kalundborg-mcp
# Kalundborg MCP Server
MCP (Model Context Protocol) server til Kalundborg Kommune, der giver adgang til information fra kalundborg.dk.
## Installation
```bash
npm install
```
## Brug
### Lokalt
```bash
npm start
```
### Med Claude Desktop
Tilføj til din Claude Desktop konfiguration (`~/Library/Application Support/Claude/claude_desktop_config.json`):
```json
{
"mcpServers": {
"kalundborg": {
"command": "node",
"args": ["/sti/til/kalundborg-mcp-server/index.js"]
}
}
}
```
Eller installer globalt:
```bash
npm install -g .
```
Og brug:
```json
{
"mcpServers": {
"kalundborg": {
"command": "kalundborg-mcp"
}
}
}
```
## Tilgængelige Tools
### 1. `search_content`
Søg i alt indhold på kalundborg.dk.
**Input:**
- `query` (string, påkrævet): Søgeord eller sætning
**Eksempel:**
```json
{
"query": "affald"
}
```
### 2. `get_news`
Hent nyheder og pressemeddelelser fra Kalundborg Kommune.
**Input:**
- `limit` (number, valgfri): Antal nyheder (standard: 10)
- `year` (string, valgfri): Filtrer efter år (fx "2025")
- `category` (string, valgfri): Filtrer efter kategori
**Eksempel:**
```json
{
"limit": 5,
"year": "2025"
}
```
### 3. `get_popular_pages`
Hent de mest populære sider på kalundborg.dk.
**Input:** Ingen parametre
**Eksempel:**
```json
{}
```
### 4. `get_contact_info`
Hent kontaktinformation for Kalundborg Kommune.
**Input:**
- `department` (string, valgfri): Specifik afdeling
**Eksempel:**
```json
{
"department": "borgerservice"
}
```
### 5. `search_services`
Søg efter kommunale services og selvbetjeningsløsninger.
**Input:**
- `query` (string, påkrævet): Søgeord for service
**Eksempel:**
```json
{
"query": "pas og kørekort"
}
```
## Brug Cases
### 1. Find nyheder om trafiksikkerhed
```
Tool: get_news
Input: { "limit": 5 }
```
### 2. Søg efter affaldsinformation
```
Tool: search_services
Input: { "query": "affald" }
```
### 3. Hent kontaktoplysninger
```
Tool: get_contact_info
Input: {}
```
### 4. Find populære selvbetjeningsløsninger
```
Tool: get_popular_pages
Input: {}
```
## Funktioner
✅ Real-time data fra kalundborg.dk
✅ Nyheder og pressemeddelelser
✅ Søgning i kommunale services
✅ Kontaktinformation
✅ Populære sider
## Teknisk Stack
- **MCP SDK**: @modelcontextprotocol/sdk
- **Web Scraping**: cheerio
- **HTTP Client**: node-fetch
- **Validation**: zod
## Udvikling
For at udvide serveren med flere tools:
1. Definer et nyt Zod schema
2. Implementer tool funktionen
3. Registrer tool i ListToolsRequestSchema handler
4. Tilføj case i CallToolRequestSchema handler
## Licens
ISC
TDQS
Scored across 5 tools
Search tools overlap somewhat—search_content covers all site content while search_services narrows to municipal services, but the descriptions are distinct enough to avoid major confusion. The other tools (popular pages, news, contact info) are clearly separate.
All five tool names follow the same verb_noun pattern (search_*, get_*), with consistent snake_case and clear action-object pairs. No mixed conventions or unpredictable naming.
Five tools is a well-scoped set for a municipality website assistant, covering search, navigation, news, contact, and services without unnecessary redundancy or bloat.
The domain is public information on kalundborg.dk, and the tools cover primary browsing, searching, news, and contact lookup. Minor gaps include no dedicated page-by-URL fetcher or event calendar, but agents can work around these via search_content.