# lukaskostka99-marketing-miner-mcp [Health: Active]

**Category:** 🎯 Marketing  
**Repository:** https://github.com/lukaskostka99/marketing-miner-mcp  
**GitHub Stars:** 0  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/lukaskostka99-marketing-miner-mcp

## Description
Discover high-impact keyword ideas across Central and Eastern European and English markets. Analyz…

## Tools
Capabilities this server exposes over MCP:

- **marketing_miner_get_search_volume** — Search volume + CPC + YoY + seasonality for a single keyword
- **marketing_miner_batch_search_volume** — Batch processing of 1–1000 keywords
- **marketing_miner_get_keyword_suggestions** — Keyword suggestions (questions / new / trending) with difficulty and SERP features. Supports `limit` + `offset` with `has_more` / `next_offset` in the response.
- **marketing_miner_get_website_stats** — Estimated traffic, keyword count, breakdown by result_type
- **marketing_miner_get_website_stats_range** — Historical traffic trend + competitor comparison

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "lukaskostka99-marketing-miner-mcp": {
    "command": "npx",
    "args": ["-y","github"]
  }
}
```

## Documentation & README

# Marketing Miner MCP Server

MCP server for the [Marketing Miner Profilers API](https://profilers-api.marketingminer.com/docs). Connects Claude, Cursor, Windsurf and other MCP clients to Marketing Miner keyword research and website analytics.

## Available tools

| Tool | Endpoint | Description |
|---|---|---|
| `marketing_miner_get_search_volume` | `GET /keywords/search-volume-data` | Search volume + CPC + YoY + seasonality for a single keyword |
| `marketing_miner_batch_search_volume` | `POST /keywords/search-volume-data` | Batch processing of 1–1000 keywords |
| `marketing_miner_get_keyword_suggestions` | `GET /keywords/suggestions` | Keyword suggestions (questions / new / trending) with difficulty and SERP features. Supports `limit` + `offset` with `has_more` / `next_offset` in the response. |
| `marketing_miner_get_website_stats` | `GET /websites/stats` | Estimated traffic, keyword count, breakdown by result_type |
| `marketing_miner_get_website_stats_range` | `GET/POST /websites/stats-range` | Historical traffic trend + competitor comparison |

Every tool returns `markdown` (default, human-readable) or `json` (`response_format: "json"`), plus `structuredContent` with all API fields. Each tool declares an `outputSchema` for client-side validation.

## Installation

Get an API token from [marketingminer.com/en/features/api](https://www.marketingminer.com/en/features/api), then pick one of the options below.

### Option A — Claude Code CLI one-liner (recommended, cross-platform)

Works on macOS, Windows and Linux — Claude Code CLI handles the config file location for you.

```bash
claude mcp add marketing-miner \
  -s user \
  -e MARKETING_MINER_API_TOKEN=YOUR_TOKEN \
  -- npx -y github:lukaskostka/marketing-miner-mcp
```

- `-s user` → installs globally (available from any project)
- `-e` → sets the API token as environment variable
- Replace `YOUR_TOKEN` with your actual Marketing Miner API token

To remove later: `claude mcp remove marketing-miner -s user`.

### Option B — `npx` straight from GitHub (no clone needed)

The repo ships the built `dist/` folder, so `npx` can run it directly.

**Claude Desktop / Cursor / Windsurf config:**
```json
{
  "mcpServers": {
    "marketing-miner": {
      "command": "npx",
      "args": ["-y", "github:lukaskostka/marketing-miner-mcp"],
      "env": {
        "MCP_TRANSPORT": "stdio",
        "MARKETING_MINER_API_TOKEN": "your_token_here"
      }
    }
  }
}
```

### Option C — clone the repo (for development / customization)

```bash
git clone https://github.com/lukaskostka/marketing-miner-mcp.git
cd marketing-miner-mcp
npm install
npm run build
```

Then point your MCP client at the built binary:
```json
{
  "mcpServers": {
    "marketing-miner": {
      "command": "node",
      "args": ["/absolute/path/to/marketing-miner-mcp/dist/index.js"],
      "env": {
        "MCP_TRANSPORT": "stdio",
        "MARKETING_MINER_API_TOKEN": "your_token_here"
      }
    }
  }
}
```

Run locally with `MARKETING_MINER_API_TOKEN=xxx npm start` (stdio, default) or `MCP_TRANSPORT=http MARKETING_MINER_API_TOKEN=xxx npm start` (Streamable HTTP on port 8000).

### Option D — Docker (self-hosted HTTP)

```bash
git clone https://github.com/lukaskostka/marketing-miner-mcp.git
cd marketing-miner-mcp
docker build -t marketing-miner-mcp .
docker run -p 8000:8000 -e MARKETING_MINER_API_TOKEN=your_token_here marketing-miner-mcp
```

Connect from a remote client via Streamable HTTP URL (see *Connecting from an MCP client* below).

## Configuration

| Variable | Default | Description |
|---|---|---|
| `MARKETING_MINER_API_TOKEN` | — | **Required.** API token from [marketingminer.com/en/features/api](https://www.marketingminer.com/en/features/api) |
| `MCP_TRANSPORT` | `stdio` | `stdio` (local MCP clients) or `http` (Streamable HTTP for hosted deployments) |
| `HOST` | `0.0.0.0` | HTTP bind host |
| `PORT` | `8000` | HTTP port |
| `MCP_HTTP_PATH` | `/mcp` | HTTP path |

Alternative token names: `MARKETING_MINER_API_KEY`, `MARKETING_MINER_TOKEN`, `MM_API_TOKEN`, `MM_API_KEY`.

## Remote HTTP client config

If you are running the server over Streamable HTTP (Option D above or any remote host), MCP clients connect via URL only:

```json
{
  "mcpServers": {
    "marketing-miner": {
      "url": "https://your-host.example.com/mcp"
    }
  }
}
```

## Usage examples

**1. Search volume for a single keyword:**
> "What is the search volume and seasonality of `marketing` in CZ?" → `marketing_miner_get_search_volume({lang:"cs", keyword:"marketing"})`

**2. Batch processing:**
> "Compare search volume of SEO terms" → `marketing_miner_batch_search_volume({lang:"cs", keywords:["seo","ppc","google ads","content marketing"]})`

**3. Question research for FAQ:**
> "Find questions around `hypoteka`" → `marketing_miner_get_keyword_suggestions({lang:"cs", keyword:"hypoteka", suggestions_type:"questions", limit:50})`

**4. Paginating suggestions:**
> Fetch next page → `marketing_miner_get_keyword_suggestions({lang:"cs", keyword:"hypoteka", limit:50, offset:50})`

**5. Competitor analysis:**
> "How much traffic does seznam.cz get?" → `marketing_miner_get_website_stats({lang:"cs", type:"domain", target:"seznam.cz"})`

**6. Competitor trends:**
> "Compare traffic trends of seznam.cz vs. idnes.cz" → `marketing_miner_get_website_stats_range({lang:"cs", type:"domain", target:"seznam.cz", period:"monthly", competitors:["idnes.cz"]})`

## Supported markets

`cs`, `sk`, `pl`, `hu`, `ro`, `gb`, `us`

## Architecture

- Node 18+, TypeScript (strict), ESM
- MCP SDK `^1.18` (`McpServer.registerTool`, Zod input + output schemas, tool annotations)
- Streamable HTTP (stateless per-request transport) + stdio
- Zod runtime validation with `.strict()` (rejects unknown keys)
- `structuredContent` + `outputSchema` on every tool
- Response truncation for both markdown (25k chars) and oversized `structuredContent` arrays
- Optional DNS-rebinding protection (`Origin` header validation when bound to loopback)

## License

MIT

