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:
- Phase 1 (Available Now): npm package for local clients (Claude Desktop, Cursor)
- Phase 2 (Coming Soon): Remote MCP Gateway for server-side agents with SSO
Phase 1: Local MCP Client (npm package)
Claude Desktop Setup
-
Get your API key from app.need2.watch/settings/api-keys
-
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"
}
}
}
}
-
Restart Claude Desktop
-
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 monitorsensitivity(number, optional): Threshold from 0.0 (more alerts) to 1.0 (fewer alerts). Default: 0.5checkInterval(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 monitorsince(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"
- Verify config file location (macOS:
~/Library/Application Support/Claude/claude_desktop_config.json) - Restart Claude Desktop
- Check
N2W_API_KEYis set correctly
"Authentication failed"
- Verify API key starts with
n2w_live_orn2w_test_ - Get a fresh key from app.need2.watch/settings/api-keys
- 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.