Skip to main content
Glama
README.md
# mcp-tekna

<!-- mcp-name: io.github.Vortiago/mcp-tekna -->

MCP server for Tekna events and news.

## Installation

### Claude Code (Plugin)

```bash
claude plugin add github:Vortiago/mcp-tekna
```

### Claude Desktop (Manual Config)

Add to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "mcp-tekna": {
      "command": "uvx",
      "args": ["mcp-tekna"]
    }
  }
}
```

### Claude Desktop (.mcpb Bundle)

```bash
npm install -g @anthropic-ai/mcpb
cd mcpb
mcpb pack
# Double-click the resulting .mcpb file to install
```

### PyPI

```bash
uvx mcp-tekna
```

### Docker

```bash
docker build -t mcp-tekna .
docker run -p 3000:3000 mcp-tekna
# Connect from claude.ai: http://localhost:3000
```

Or with docker compose:

```bash
docker compose up
```

## Tools

### search_events

Search Tekna's event catalog with optional filters for region, topic, format, price, language, and audience.

```
search_events(query="AI", region="Vestlandet")
```

### get_event_details

Get full details for a specific event including speakers, agenda, and pricing.

```
get_event_details(event_number="51691")
```

### get_news

Fetch recent news articles with optional content type filtering.

```
get_news(content_type="Politisk", page=1)
```

### get_member_benefits

List all Tekna member benefits organized by category.

```
get_member_benefits()
```

## Development

```bash
uv sync
uv run mcp-tekna
```

For streamable-http transport:

```bash
MCP_TRANSPORT=streamable-http uv run mcp-tekna
```

### Environment Variables

| Variable | Default | Description |
|----------|---------|-------------|
| `MCP_TRANSPORT` | `stdio` | Transport protocol (`stdio` or `streamable-http`) |
| `MCP_HOST` | `0.0.0.0` | Host for streamable-http |
| `MCP_PORT` | `3000` | Port for streamable-http |
| `TEKNA_TIMEOUT` | `30` | Tekna API timeout in seconds |
| `TEKNA_CACHE_TTL` | `900` | Cache TTL in seconds (15 min) |
| `LOG_LEVEL` | `INFO` | Logging level |

### Running Tests

```bash
uv run pytest tests/ -v
```

### Version Bumping

```bash
git tag v0.2.0
uv run poe bump-version
```

## License

MIT

TDQS

A4.4/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: event details, member benefits, news, and event search. No overlap or ambiguity.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (get_event_details, get_member_benefits, get_news, search_events). No mixing of conventions.

Tool Count5/5

4 tools is appropriate for the scope of providing information about events, benefits, and news. Not too few or too many.

Completeness4/5

Covers the main information needs (events, benefits, news) with search and details. Minor gap: no direct listing of all events without search, but search with empty query can serve that purpose.

Maintenance

ActivityInactive
ResponsivenessNo issues