waikay-mcp
An MCP (Model Context Protocol) server for the Waikay brand visibility API. Gives Claude and other MCP-compatible AI assistants full interactive access to your Waikay account — query brand visibility across AI models, manage tracked prompts, and analyse citations, all in conversation.
Built by Dixon Jones.
What you can do
- "List my Waikay projects"
- "How many times was Dixon Jones mentioned by ChatGPT this week?"
- "Show me the share of voice for dixonjones.com vs competitors"
- "Which URLs are being cited for my brand in Gemini?"
- "Create a new prompt tracking 'best SEO consultants' across ChatGPT and Claude, running daily"
- "Pause the prompt about entity-based SEO"
- "Add Copilot scraped to all my active prompts"
Requirements
- Python 3.10+
- A Waikay account on Level 2 or above ($69.95/month)
- Your Waikay API key (from account settings)
Installation
pip install waikay-mcp
Configuration
Claude Desktop app
Add to %APPDATA%\Claude\claude_desktop_config.json (Windows) or ~/Library/Application Support/Claude/claude_desktop_config.json (Mac):
{
"mcpServers": {
"waikay": {
"command": "python",
"args": ["-m", "waikay_mcp"],
"env": {
"WAIKAY_API_KEY": "your_api_key_here"
}
}
}
}
Claude Code (CLI)
Add to ~/.claude/settings.json:
{
"mcpServers": {
"waikay": {
"command": "python",
"args": ["-m", "waikay_mcp"],
"env": {
"WAIKAY_API_KEY": "your_api_key_here"
}
}
}
}
After editing the config, fully quit and relaunch the app — MCP servers load at startup.
Available tools
list_projects
Returns all projects in your Waikay account with their IDs and URLs.
list_projects()
get_overview
Brand mention counts by AI model over the current and previous 7-day window, with a delta.
get_overview(project_id, prompt_id?)
| Parameter | Type | Required | Description |
|---|---|---|---|
project_id |
int | Yes | From list_projects |
prompt_id |
int | No | Omit for project-wide totals; supply for a single prompt |
get_rankings
Share of voice and competitive positioning over a 30-day rolling window.
get_rankings(project_id, prompt_id?)
| Parameter | Type | Required | Description |
|---|---|---|---|
project_id |
int | Yes | From list_projects |
prompt_id |
int | No | Omit for project-wide; supply for a single prompt |
get_sources
Citation and URL analysis — which domains and pages AI models reference when mentioning your brand.
get_sources(project_id, prompt_id?)
| Parameter | Type | Required | Description |
|---|---|---|---|
project_id |
int | Yes | From list_projects |
prompt_id |
int | No | Omit for project-wide; supply for a single prompt |
get_scores
AI knowledge scores by model and date over a 365-day window. Project level only.
get_scores(project_id)
list_prompts
List all tracked prompts for a project, with their models, frequency, and active status.
list_prompts(project_id, include_inactive?, include_deleted?)
| Parameter | Type | Default | Description |
|---|---|---|---|
project_id |
int | — | From list_projects |
include_inactive |
bool | true |
Include paused prompts |
include_deleted |
bool | false |
Include deleted prompts |
create_prompt
Create a new tracked prompt for a project.
create_prompt(project_id, prompt_string, models, frequency, audience?)
| Parameter | Type | Required | Description |
|---|---|---|---|
project_id |
int | Yes | From list_projects |
prompt_string |
str | Yes | Max 500 characters; cannot be changed after creation |
models |
list[int] | Yes | Model IDs to track — see table below |
frequency |
int | Yes | 1=daily, 2=twice weekly, 7=weekly |
audience |
int | No | Audience identifier (default 0) |
Returns the new prompt_id, or a 402 error if your account has insufficient credits.
update_prompt
Update an existing prompt. The prompt_string cannot be changed after creation.
update_prompt(project_id, prompt_id, models?, frequency?, audience?, active?)
| Parameter | Type | Required | Description |
|---|---|---|---|
project_id |
int | Yes | From list_projects |
prompt_id |
int | Yes | From list_prompts |
models |
list[int] | No | Replace the tracked model list |
frequency |
int | No | 1=daily, 2=twice weekly, 7=weekly |
audience |
int | No | Update audience identifier |
active |
int | No | 1=running, 0=paused, 2=deleted |
delete_prompt
Soft-delete a tracked prompt. Idempotent.
delete_prompt(project_id, prompt_id)
Model IDs
| ID | Model |
|---|---|
1 |
Sonar (Perplexity) API |
3 |
ChatGPT API |
5 |
Claude API |
100 |
Gemini API |
101 |
AI Mode — scraped |
102 |
ChatGPT — scraped |
103 |
Gemini — scraped |
104 |
Copilot — scraped |
License
GPL-3.0
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file waikay_mcp-0.3.0.tar.gz.
File metadata
- Download URL: waikay_mcp-0.3.0.tar.gz
- Upload date:
- Size: 16.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
755fa0d07b59084aa6d3b0531dd675b9c5df4ce2477c4841b046157b7f74ebbd
|
|
| MD5 |
fc120d403fd700dede04ebc68199e730
|
|
| BLAKE2b-256 |
4f8c5e8d3ba645691939e9bf998622b2607e549d91d81044500a393b1276bfa8
|
File details
Details for the file waikay_mcp-0.3.0-py3-none-any.whl.
File metadata
- Download URL: waikay_mcp-0.3.0-py3-none-any.whl
- Upload date:
- Size: 17.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4b2ddb6e2c1458f452cd6fe81adf1a10c13ee9e985500c63cc101482c3b0abec
|
|
| MD5 |
c4d5a4dd33e1c9d1831f4ac8b1b7d8ac
|
|
| BLAKE2b-256 |
58cc4cfa3211e0420730be1b230d918c8fc0a7a3414b6ab9a14f977cf41b79da
|