Skip to main content
Glama
KoruShield

Koru Shield MCP Server

Official
by KoruShield
README.md
# Koru Shield MCP Server

Manage your [Koru Shield](https://korushield.com) DNS protection through AI assistants. Block domains, check policies, review blocked queries, manage schedules, and more, all through natural language.

## What it does

Exposes your Koru Shield account as [Model Context Protocol](https://modelcontextprotocol.io) tools:

| Tool | What it does |
|---|---|
| `list_profiles` / `get_profile` | List and inspect DNS protection profiles |
| `create_rule` / `list_rules` / `delete_rule` | Block or allow domains per profile |
| `list_filter_categories` / `set_filter_category` | Toggle categories (adult, gambling, social media...) |
| `simulate_policy` | Check if a domain would be blocked right now |
| `get_logs` | Recent DNS queries: allowed, blocked, when |
| `analytics_summary` | Totals, blocked percentage, encrypted queries |
| `list_schedules` / `create_schedule` / `delete_schedule` | Time windows (bedtime, homework hours) |
| `list_devices` | Devices enrolled per profile |
| `get_entitlements` | Plan, limits, current usage |
| `get_referral_code` | Your referral link |

Example prompts once connected:

- "Block tiktok.com on the Kids profile"
- "Would youtube.com be blocked on Kids right now?"
- "Show me what got blocked today"
- "Turn on adult content filtering for the whole house"
- "Add a bedtime schedule 9pm to 7am on weekdays for the Kids profile"

## Setup

### 1. Get a Koru Shield API key

Sign in at https://my.korushield.com, go to API keys, and create one. Copy the key.

### 2. Install

No install needed. Run directly with npx:

```bash
npx -y @korushield/mcp-server
```

Set your key as an environment variable:

```bash
export KORU_SHIELD_API_KEY="your-key-here"
```

Optional: `KORU_SHIELD_API_URL` overrides the API base URL (default `https://my.korushield.com/api`).

### 3. Connect your AI client

**Claude Code**

```bash
claude mcp add koru-shield -- npx -y @korushield/mcp-server
```

(Claude Code passes environment through, so export `KORU_SHIELD_API_KEY` first. Or use the HTTP transport below with a header.)

**Cursor / VS Code**

Add to your MCP config (`~/.cursor/mcp.json` or VS Code `mcp.json`):

```json
{
  "mcpServers": {
    "koru-shield": {
      "command": "npx",
      "args": ["-y", "@korushield/mcp-server"],
      "env": {
        "KORU_SHIELD_API_KEY": "your-key-here"
      }
    }
  }
}
```

**Claude Desktop**

Add to `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "koru-shield": {
      "command": "npx",
      "args": ["-y", "@korushield/mcp-server"],
      "env": {
        "KORU_SHIELD_API_KEY": "your-key-here"
      }
    }
  }
}
```

### HTTP transport (remote)

For clients that connect over HTTP (agents, hosted setups):

```bash
MCP_TRANSPORT=http PORT=3000 KORU_SHIELD_API_KEY="your-key-here" npx -y @korushield/mcp-server
```

Or pass the key per-request instead of the env var:

```
POST https://your-host/mcp
Authorization: Bearer <koru-shield-api-key>
```

Health check: `GET /healthz`.

## Security notes

- Your API key grants full control of your Koru Shield account, including deleting rules and schedules. Treat it like a password.
- Prefer a dedicated API key for AI assistants so you can revoke it independently.
- The server never logs or transmits your key anywhere except to the Koru Shield API.

## Development

```bash
npm install
npm run build
npm start
```

Test with the MCP Inspector:

```bash
KORU_SHIELD_API_KEY="your-key-here" npm run inspector
```

## License

MIT

TDQS

B3.4/5.0

Scored across 16 tools

Disambiguation5/5

Each tool targets a distinct resource or action: profiles, rules, filter categories, schedules, logs, analytics, devices, and account info. Overlap is minimal; simulate_policy, get_logs, and analytics_summary serve different query intents. No two tools appear to do the same thing.

Naming Consistency4/5

Nearly all tools follow a consistent verb_noun snake_case pattern (list_profiles, create_rule, set_filter_category). The only deviation is analytics_summary, which is a noun phrase rather than verb_noun. Still highly readable and predictable.

Tool Count4/5

16 tools is slightly above the ideal 3–15 range but reasonable given the multiple sub-resources (profiles, rules, categories, schedules, devices, analytics, account). Each tool maps to a clear operation, with no obvious redundancy.

Completeness2/5

The surface lacks profile lifecycle operations (create/update/delete profile), rule and schedule updates, and device enrollment/removal. Only list operations exist for devices and entitlements. These gaps will force agents to work around missing CRUD for core resources.

Maintenance

ActivityMaintained
ResponsivenessNo issues