gwm-mcp
v1.1.1
Published
MCP server for Generic Web Monitor - interact with your GWM instance via Claude
Maintainers
Readme
GWM MCP Server
MCP (Model Context Protocol) server for Generic Web Monitor. Interact with your GWM competitive intelligence instance via Claude Desktop or Claude Code.
Features
- Query Data: Companies, URLs, changes, analysis results, market metrics
- Modify Configuration: Add companies/URLs, update settings, manage saved views
- Trigger Workflows: Run scrapes, analysis, deployments directly from Claude
Quick Start
1. Get Your Connection String
From Heroku:
heroku config:get DATABASE_URL -a your-appFrom Neon Dashboard: Connection Details → Connection string
2. Configure Claude Desktop
Open ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"gwm": {
"command": "npx",
"args": ["-y", "gwm-mcp"],
"env": {
"POSTGRES_CONNECTION_STRING": "postgres://user:pass@host:5432/db?sslmode=require"
}
}
}
}3. Restart Claude Desktop
The GWM tools should now appear. Try: "List all companies in my GWM instance"
Configuration
Required
| Variable | Description |
|----------|-------------|
| POSTGRES_CONNECTION_STRING | PostgreSQL connection string |
Optional (for workflow triggers)
| Variable | Description |
|----------|-------------|
| GITHUB_TOKEN | GitHub personal access token with workflow scope |
| GITHUB_OWNER | GitHub organization/user (e.g., "Redmore-Studio") |
| GITHUB_REPO | Repository name (e.g., "gwm-test") |
Optional (for AI discovery)
| Variable | Description |
|----------|-------------|
| PERPLEXITY_API_KEY | Perplexity API key for URL/market discovery |
Available Tools
Read Operations
| Tool | Description |
|------|-------------|
| gwm_list_companies | List monitored companies |
| gwm_get_company | Get company details |
| gwm_list_urls | List monitored URLs |
| gwm_get_url_status | Get URL scrape status |
| gwm_list_changes | List detected changes |
| gwm_get_change_details | Get change with diff |
| gwm_get_baseline_analysis | Get entity extraction |
| gwm_get_enhanced_analysis | Get deep analysis |
| gwm_list_market_metrics | List market metrics |
| gwm_get_competitor_facts | Get competitor facts |
| gwm_search_kwic | Search keyword matches |
| gwm_list_keywords | List tracked keywords |
| gwm_list_entity_groups | List entity normalizations |
| gwm_health_check | System health status |
Write Operations
| Tool | Description |
|------|-------------|
| gwm_add_company | Add company to monitor |
| gwm_update_company | Update company settings |
| gwm_add_url | Add URL to monitor |
| gwm_update_url | Update URL settings |
| gwm_disable_url | Disable URL from monitoring |
| gwm_update_company_metric | Update company sizing |
| gwm_create_saved_view | Create filter view |
| gwm_update_saved_view | Update saved view |
| gwm_delete_saved_view | Delete saved view |
Workflow Operations
| Tool | Description |
|------|-------------|
| gwm_trigger_full_monitor | Run full pipeline |
| gwm_trigger_scrape | Run scraping only |
| gwm_trigger_deploy | Quick deploy |
| gwm_get_workflow_runs | Check workflow status |
Discovery Operations (requires PERPLEXITY_API_KEY)
| Tool | Description |
|------|-------------|
| gwm_discover_urls | Find URLs to monitor for a company using AI |
| gwm_discover_market | Discover competitors and URLs for a market |
Example Usage
You: List all companies in the AI market
Claude: Here are the companies in the ai_companies market:
- OpenAI [FOCAL] (tier1)
Category: AI Lab
Website: https://openai.com
URLs: 5
...
You: Add Mistral AI as a new competitor
Claude: Company Added!
Mistral AI (ID: 52)
- Website: https://mistral.ai
- Category: AI Lab
- Market: ai_companies
Run a scrape workflow to start monitoring.
You: Trigger a full monitor for the AI market
Claude: Full Monitor Triggered!
Status: Workflow triggered successfully
Run ID: 12345678
Pipeline typically takes 15-20 minutes...Development
Build from source
cd mcp-server
npm install
npm run buildRun locally
POSTGRES_CONNECTION_STRING="postgres://..." node dist/index.jsTroubleshooting
"Connection timeout" error
Your database may be sleeping (cold start). Wait a few seconds and retry.
"Schema not found" error
The database may not be initialized. Run the "Initialize Database" workflow in GitHub Actions.
Workflow triggers not working
Ensure GITHUB_TOKEN, GITHUB_OWNER, and GITHUB_REPO are all set in your MCP config.
License
MIT
