MCP Server
KWatch provides a hosted MCP (Model Context Protocol) server, so AI agents and assistants like Claude, Claude Code, Cursor, and any other MCP-compatible client can use KWatch on your behalf. Once connected, an agent can create, list, update, and delete your keyword monitoring alerts and conversation trackers using plain language instructions.
The MCP server exposes the same capabilities as the REST API, with the same permissions: your plan must include API access, and team roles are enforced the same way.
Endpoint
The MCP server uses the Streamable HTTP transport and is available at:
https://api.kwatch.io/mcp
Authentication
The MCP server uses the same API keys as the REST API. You can generate API keys from your dashboard under the API section.
Your MCP client must send the API key in the Authorization header as a bearer token:
Authorization: Bearer your-api-key-here
Connecting Your Client
Claude Code
claude mcp add --transport http kwatch https://api.kwatch.io/mcp --header "Authorization: Bearer your-api-key-here"
Cursor
Add this to your .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):
{
"mcpServers": {
"kwatch": {
"url": "https://api.kwatch.io/mcp",
"headers": {
"Authorization": "Bearer your-api-key-here"
}
}
}
}
VS Code
Add this to your .vscode/mcp.json:
{
"servers": {
"kwatch": {
"type": "http",
"url": "https://api.kwatch.io/mcp",
"headers": {
"Authorization": "Bearer your-api-key-here"
}
}
}
}
Claude Desktop and Other stdio-only Clients
Clients that only support local (stdio) MCP servers can connect through the mcp-remote bridge. For example, in claude_desktop_config.json:
{
"mcpServers": {
"kwatch": {
"command": "npx",
"args": [
"mcp-remote",
"https://api.kwatch.io/mcp",
"--header",
"Authorization: Bearer your-api-key-here"
]
}
}
}
Available Tools
Keyword Monitoring
| Tool | Description |
|---|---|
list_keyword_alerts | List the keyword alerts of your team, for one platform or all platforms |
get_keyword_alert | Get one keyword alert by platform and ID |
create_keyword_alert | Create a new keyword alert on X (Twitter), LinkedIn, Facebook, Reddit, Hacker News, or YouTube |
update_keyword_alert | Update an existing keyword alert |
delete_keyword_alert | Delete a keyword alert |
Conversation Tracking
| Tool | Description |
|---|---|
list_conversation_trackers | List the conversation trackers of your team, for one platform or all platforms |
get_conversation_tracker | Get one conversation tracker by platform and ID |
create_conversation_tracker | Start tracking a Reddit or Hacker News conversation |
update_conversation_tracker | Update an existing conversation tracker |
delete_conversation_tracker | Delete a conversation tracker |
The tools accept the same fields as the corresponding REST API endpoints, documented in the API section. Two behaviors differ from the REST API to make life easier for agents:
- Creation defaults: when creating a keyword alert,
enabled,search_posts, andsearch_commentsdefault totrueif not provided, like in the dashboard. - Partial updates: the update tools only need the fields you want to change. Omitted fields keep their current values, whereas the REST API expects the full object on update.
Example Prompts
Once your client is connected, you can ask things like:
Monitor mentions of "kwatch" on Reddit and Hacker News, whole words only.
Which keyword alerts do I currently have on LinkedIn?
Track this Hacker News thread: https://news.ycombinator.com/item?id=42424242
Pause all my X (Twitter) alerts.
Errors
- If the API key is missing or invalid, the server returns a
401 UnauthorizedHTTP error. - If your plan does not include API access, the server returns a
403 ForbiddenHTTP error. - Validation and permission errors (invalid keywords, plan limits reached, insufficient team role...) are returned as tool results with an error flag, so the agent can read the message and correct itself.
Note: the MCP server manages your alerts and trackers, but the mentions found by KWatch are delivered through your notification channels (email, Slack, and API webhooks), like for alerts created in the dashboard.