Production-ready MCP server for changedetection.io API - Monitor website changes through Model Context Protocol
A Model Context Protocol (MCP) server that provides seamless integration with changedetection.io for monitoring website changes. This server enables AI assistants and LLMs to interact with your changedetection.io instance to create, manage, and monitor website watches.
- Complete API Coverage: Full support for changedetection.io API operations
- Easy Setup: Simple configuration with environment variables
- Production Ready: Built with error handling and logging
- Type Safe: Fully typed Python implementation
- Async Operations: Non-blocking async/await architecture
- Vercel Compatible: Ready for serverless deployment
| Tool | Description |
|---|---|
list_watches |
List all configured website watches |
get_watch |
Get detailed information about a specific watch |
create_watch |
Create a new watch to monitor a website |
delete_watch |
Delete a watch and stop monitoring |
trigger_check |
Manually trigger a change detection check |
get_history |
Get the history of detected changes |
system_info |
Get system information about the instance |
- Python 3.10 or higher
- A running changedetection.io instance
- API key from your changedetection.io instance
-
Clone the repository
git clone https://github.com/patrickcarmichael/changedetection-mcp-server.git cd changedetection-mcp-server -
Install dependencies
pip install -r requirements.txt
-
Configure environment variables
cp .env.example .env # Edit .env with your changedetection.io URL and API key -
Run the server
python server.py
pip install changedetection-mcp-serverCreate a .env file in the project root:
CHANGEDETECTION_URL=http://localhost:5000
CHANGEDETECTION_API_KEY=your-api-key-here| Variable | Description | Required | Default |
|---|---|---|---|
CHANGEDETECTION_URL |
URL of your changedetection.io instance | Yes | http://localhost:5000 |
CHANGEDETECTION_API_KEY |
API key for authentication | Yes | - |
- Open your changedetection.io instance
- Navigate to Settings β API
- Generate or copy your API key
- Add it to your
.envfile
Add to your Claude Desktop configuration (claude_desktop_config.json):
{
"mcpServers": {
"changedetection": {
"command": "python",
"args": ["/path/to/changedetection-mcp-server/server.py"],
"env": {
"CHANGEDETECTION_URL": "http://localhost:5000",
"CHANGEDETECTION_API_KEY": "your-api-key-here"
}
}
}
}List all watches:
Show me all my website watches
Create a new watch:
Monitor https://example.com for changes and tag it as "important"
Check for changes:
Trigger a check for watch ID abc-123
View history:
Show me the change history for watch abc-123
This server is ready for deployment on Vercel:
-
Install Vercel CLI
npm i -g vercel
-
Deploy
vercel
-
Set environment variables in Vercel dashboard:
CHANGEDETECTION_URLCHANGEDETECTION_API_KEY
Create a Dockerfile:
FROM python:3.10-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY server.py .
CMD ["python", "server.py"]Build and run:
docker build -t changedetection-mcp-server .
docker run -e CHANGEDETECTION_URL=http://localhost:5000 \
-e CHANGEDETECTION_API_KEY=your-key \
changedetection-mcp-serverpytestblack .
ruff check .changedetection-mcp-server/
βββ server.py # Main MCP server implementation
βββ requirements.txt # Python dependencies
βββ pyproject.toml # Package configuration
βββ README.md # This file
βββ .env.example # Environment template
βββ .gitignore # Git ignore rules
βββ vercel.json # Vercel configuration
list_watches() -> dict: Get all watchesget_watch(watch_id: str) -> dict: Get specific watch detailscreate_watch(url: str, tag: Optional[str]) -> dict: Create new watchdelete_watch(watch_id: str) -> dict: Delete a watchtrigger_check(watch_id: str) -> dict: Trigger manual checkget_history(watch_id: str) -> dict: Get change historysystem_info() -> dict: Get system information
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- changedetection.io - Official website
- Model Context Protocol - MCP documentation
- MCP Specification - Protocol specification
Connection Refused
Error: Connection refused to http://localhost:5000
- Ensure changedetection.io is running
- Verify the URL in your
.envfile - Check firewall settings
Authentication Failed
Error: 401 Unauthorized
- Verify your API key is correct
- Regenerate API key in changedetection.io settings
Module Not Found
ModuleNotFoundError: No module named 'mcp'
- Run
pip install -r requirements.txt
For issues and questions:
- Open an issue on GitHub
- Check existing issues for solutions
- changedetection.io team for the excellent monitoring tool
- Anthropic for the Model Context Protocol
- All contributors to this project
Made with β€οΈ by Patrick Carmichael