Skip to main content

MCP Integration Guide

Need2Watch provides first-class support for the Model Context Protocol (MCP), enabling AI assistants like Claude to create and manage monitors directly.

Overview

MCP enables your AI assistant to:

  • Create monitors with natural language
  • List your existing monitors
  • Retrieve detected changes
  • Delete monitors

Two integration options:

  1. Phase 1 (Available Now): npm package for local clients (Claude Desktop, Cursor)
  2. Phase 2 (Coming Soon): Remote MCP Gateway for server-side agents with SSO

Phase 1: Local MCP Client (npm package)

Claude Desktop Setup

  1. Get your API key from app.need2.watch/settings/api-keys

  2. Edit Claude Desktop config:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
"mcpServers": {
"need2watch": {
"command": "npx",
"args": ["-y", "@need2watch/mcp-server"],
"env": {
"N2W_API_KEY": "n2w_live_xxxxx"
}
}
}
}
  1. Restart Claude Desktop

  2. Test it:

Ask Claude:

"Create a monitor for iPhone 16 Pro prices"

Claude will use the Need2Watch MCP tools to create the monitor automatically.

Cursor IDE Setup

Cursor also supports MCP. Add the same configuration to:

Cursor Config: .cursor/mcp.json in your project root

{
"mcpServers": {
"need2watch": {
"command": "npx",
"args": ["-y", "@need2watch/mcp-server"],
"env": {
"N2W_API_KEY": "n2w_live_xxxxx"
}
}
}
}

Available MCP Tools

create_monitor

Create a new monitor with natural language intent.

Parameters:

  • intent (string, required): Natural language description of what to monitor
  • sensitivity (number, optional): Threshold from 0.0 (more alerts) to 1.0 (fewer alerts). Default: 0.5
  • checkInterval (string, optional): Check frequency like "15m", "1h", "1d". Default: "15m"

Example usage in Claude:

"Monitor the price of a PlayStation 5 on Amazon and Best Buy"

Returns:

{
"monitorId": "mon-abc123",
"status": "active",
"interpretedAs": {
"product": "PlayStation 5",
"metric": "price",
"sites": ["amazon.com", "bestbuy.com"]
},
"sources": [
{
"url": "https://amazon.com/dp/...",
"currentValue": { "price": 499.99 }
}
]
}

list_monitors

List all monitors for the authenticated user.

Parameters: None

Example usage in Claude:

"Show me all my active monitors"

Returns:

{
"monitors": [
{
"id": "mon-abc123",
"name": "Monitor PlayStation 5 price on Amazon and Best Buy",
"intent": "Monitor PlayStation 5 price",
"status": "active",
"sourceCount": 2,
"lastCheckAt": "2024-01-25T10:30:00Z"
}
]
}

get_changes

Retrieve detected changes with optional filtering.

Parameters:

  • monitorId (string, optional): Filter to specific monitor
  • since (string, optional): ISO 8601 timestamp to get changes since

Example usage in Claude:

"Has anything changed on my PS5 price monitor in the last 24 hours?"

Returns:

{
"changes": [
{
"id": "chg-xyz789",
"monitorId": "mon-abc123",
"detectedAt": "2024-01-25T10:15:00Z",
"type": "price",
"source": "https://amazon.com/dp/...",
"before": { "price": 499.99 },
"after": { "price": 449.99 },
"relevance": {
"score": 0.95,
"reason": "Price decrease matches user's intent"
}
}
]
}

delete_monitor

Delete a monitor by ID.

Parameters:

  • monitorId (string, required): The ID of the monitor to delete

Example usage in Claude:

"Delete the PS5 price monitor"

Returns:

{
"success": true
}

Phase 2: Remote MCP Gateway (Coming Soon)

For server-side AI agents and enterprise deployments, Need2Watch will offer a remote MCP Gateway:

Features

  • Remote MCP endpoint: mcp.need2.watch/mcp
  • Streamable HTTP transport: No local npm package required
  • Cloudflare Access authentication: Enterprise SSO (Google, Okta, Azure AD)
  • Tool-level permissions: RBAC based on user tier
  • Rate limiting: Automatic tier-based limits

Enterprise SSO Flow

sequenceDiagram
Agent->>Gateway: MCP request
Gateway->>Cloudflare Access: Verify SSO session
Cloudflare Access->>IDP: Check user identity
IDP->>Cloudflare Access: User verified
Cloudflare Access->>Gateway: Session valid
Gateway->>API: Execute tool
API->>Gateway: Response
Gateway->>Agent: MCP response

Configuration (Phase 2)

{
"mcpServers": {
"need2watch": {
"url": "https://mcp.need2.watch/mcp",
"transport": "streamable-http",
"auth": {
"type": "cloudflare-access",
"team": "your-team.cloudflareaccess.com"
}
}
}
}

Stay tuned for Phase 2 launch!

Troubleshooting

"MCP server not found"

  1. Verify config file location (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json)
  2. Restart Claude Desktop
  3. Check N2W_API_KEY is set correctly

"Authentication failed"

  1. Verify API key starts with n2w_live_ or n2w_test_
  2. Get a fresh key from app.need2.watch/settings/api-keys
  3. Ensure no extra spaces in config JSON

"Rate limit exceeded"

Free tier: 100 API requests/day. Upgrade to Full tier for unlimited requests.

Example Conversations

Creating a monitor

You: "Hey Claude, can you monitor Nike Air Max 90 prices on Nike.com and Foot Locker?"

Claude: "I'll create a monitor for Nike Air Max 90 prices. Let me set that up for you."

[Claude uses create_monitor tool]

Claude: "Done! I've created a monitor that will check Nike.com and Foot Locker for Nike Air Max 90 prices every 15 minutes. The current prices are $130 on Nike.com and $125 on Foot Locker. I'll notify you when there are any changes."

Checking for changes

You: "Have there been any price changes on my monitors?"

Claude: "Let me check your monitors for recent changes."

[Claude uses list_monitors and get_changes tools]

Claude: "Good news! The Nike Air Max 90 price dropped from $130 to $115 on Nike.com about 2 hours ago. Foot Locker still shows $125."

Local Development

To develop or test the MCP server locally:

# Clone the repository
git clone https://github.com/need2watch/mcp-server
cd mcp-server

# Install dependencies
npm install

# Set your API key
export N2W_API_KEY=n2w_test_xxxxx

# Run the server
npm start

See the MCP server repository for full development docs.

MCP Protocol Resources