AbuseIPDB MCP Server
Provides containerized deployment options with features like lightweight image, secure non-root user execution, health checks, and environment validation.
Supports environment variable configuration through .env files for managing API keys and other settings.
Offers deployment configuration for Kubernetes with container specifications and secure API key management.
Provides deployment instructions and environment setup specific to Linux environments.
Supports integration with Claude Desktop on macOS through specific configuration file paths and setup instructions.
Implements the MCP server in Python with async/await support and type hints for better performance and code quality.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@AbuseIPDB MCP Servercheck 192.168.1.100 for abuse reports from the last 30 days"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AbuseIPDB MCP Server
A Model Context Protocol (MCP) server for integrating with the AbuseIPDB API. Query IP abuse reports and submit new reports โ directly from your AI assistant.
๐ฆ Install: uvx mcp-abuseipdb ยท pip install mcp-abuseipdb ยท PyPI

Features
๐ Check IP โ Query AbuseIPDB for abuse reports on any IPv4/IPv6 address with verbose details
๐จ Report IP โ Submit abuse reports for malicious IP addresses
๐ Zero-Install with uvx โ Run instantly via
uvx mcp-abuseipdb, no setup needed๐ Multiple Transports โ Stdio (default) and Streamable HTTP (MCP spec 2025-03-26)
๐ฆ PyPI Package โ Install via
pip install mcp-abuseipdb๐ณ Docker Ready โ Alpine-based lightweight container
โก Async/Await โ High-performance asynchronous operations
๐๏ธ Full Categories โ Complete 1-23 category mapping with human-readable names
๐ Rate Limit Handling โ Automatic retry information on 429 responses
โ Input Validation โ Robust IPv4/IPv6 and parameter validation
๐งน Clean Output โ Readable text output optimized for MCP clients
Related MCP server: Shodan MCP Server
Quick Start
Using uvx (Recommended)
The fastest way โ no clone, no install, no virtual environment:
# Run directly (stdio transport)
ABUSEIPDB_API_KEY="your_api_key_here" uvx mcp-abuseipdb
# With HTTP transport
ABUSEIPDB_API_KEY="your_api_key_here" uvx mcp-abuseipdb --transport http --port 8000Prerequisite: uv must be installed.
Install:pip install uvยทcurl -LsSf https://astral.sh/uv/install.sh | shยท Windows
Using pip
pip install mcp-abuseipdb
export ABUSEIPDB_API_KEY="your_api_key_here"
mcp-abuseipdbUsing Docker
docker build -t abuseipdb-mcp .
docker run -it --rm -e ABUSEIPDB_API_KEY="your_api_key_here" abuseipdb-mcpLive Demo
IP Reputation Check and Advanced Analysis

Example: check_ip analyzing a suspicious IP address with comprehensive abuse reports, categories, geolocation, and threat intelligence.

Advanced usage: detailed IP analysis with verbose reporting, ISP information, abuse confidence scores, and recent attack patterns.
MCP Client Configuration
Claude Desktop โ uvx (Recommended)
Add to claude_desktop_config.json:
{
"mcpServers": {
"abuseipdb": {
"command": "uvx",
"args": ["mcp-abuseipdb"],
"env": {
"ABUSEIPDB_API_KEY": "your_api_key_here"
}
}
}
}Claude Desktop โ uvx with HTTP Transport
{
"mcpServers": {
"abuseipdb": {
"command": "uvx",
"args": ["mcp-abuseipdb", "--transport", "http", "--port", "8000"],
"env": {
"ABUSEIPDB_API_KEY": "your_api_key_here"
}
}
}
}Remote Server (Streamable HTTP)
{
"mcpServers": {
"abuseipdb": {
"url": "http://your-server:8000/mcp"
}
}
}Docker (Stdio)
{
"mcpServers": {
"abuseipdb": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "ABUSEIPDB_API_KEY=your_api_key_here",
"abuseipdb-mcp"
]
}
}
}Docker (Streamable HTTP)
# Start container
docker run -d --rm \
-e ABUSEIPDB_API_KEY="your_api_key_here" \
-e MCP_TRANSPORT=http \
-p 8000:8000 \
abuseipdb-mcp{
"mcpServers": {
"abuseipdb": {
"url": "http://localhost:8000/mcp"
}
}
}๐ More config examples:
examples/mcp-client-configs.json
Available Tools
1. check_ip
Check an IP address for abuse reports.
Parameter | Type | Required | Default | Description |
| string | โ | โ | IPv4 or IPv6 address to check |
| integer | โ | 30 | Only return reports within the last x days (1-365) |
| boolean | โ | true | Include detailed reports in the response |
Example Input:
{
"ipAddress": "134.122.87.122",
"maxAgeInDays": 30,
"verbose": true
}Example Output:
AbuseIPDB Check Results
IP Address: 134.122.87.122
Abuse Confidence Score: 75%
Is Public: Yes
Is Whitelisted: No
Country: United States (US)
ISP: DigitalOcean, LLC
Usage Type: Data Center/Web Hosting/Transit
Domain: digitalocean.com
Total Reports: 15
Categories: Brute-Force, SSH, Port Scan, Hacking2. report_ip
Report an abusive IP address to AbuseIPDB.
Parameter | Type | Required | Description |
| string | โ | IPv4 or IPv6 address to report |
| string | โ | Comma-separated category IDs (e.g., |
| string | โ | Descriptive text of the attack (no PII) |
| string | โ | ISO 8601 datetime of the attack |
Example Input:
{
"ip": "192.168.1.100",
"categories": "18,22",
"comment": "Multiple SSH brute force attempts detected",
"timestamp": "2024-01-15T10:30:00Z"
}Abuse Categories
ID | Category | ID | Category | ID | Category |
1 | DNS Compromise | 9 | Open Proxy | 17 | Spoofing |
2 | DNS Poisoning | 10 | Web Spam | 18 | Brute-Force |
3 | Fraud Orders | 11 | Email Spam | 19 | Bad Web Bot |
4 | DDoS Attack | 12 | Blog Spam | 20 | Exploited Host |
5 | FTP Brute-Force | 13 | VPN IP | 21 | Web App Attack |
6 | Ping of Death | 14 | Port Scan | 22 | SSH |
7 | Phishing | 15 | Hacking | 23 | IoT Targeted |
8 | Fraud VoIP | 16 | SQL Injection |
Transport Types
Transport | Use Case | Protocol |
stdio (default) | Local MCP clients (Claude Desktop, etc.) | Standard I/O |
http | Remote access, multi-client, cloud deploy | Streamable HTTP (MCP spec 2025-03-26) |
Running the Server
# Stdio (default)
mcp-abuseipdb
# HTTP transport
mcp-abuseipdb --transport http
# HTTP with custom host/port
mcp-abuseipdb --transport http --host 127.0.0.1 --port 3000
# Via environment variables
MCP_TRANSPORT=http MCP_PORT=3000 mcp-abuseipdbTesting HTTP Transport
mcp-abuseipdb --transport http --port 8000
curl -X POST http://localhost:8000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","method":"initialize","id":1,"params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'Docker Deployment
Build & Run
docker build -t abuseipdb-mcp .
docker run -it --rm -e ABUSEIPDB_API_KEY="your_api_key_here" abuseipdb-mcpDocker Compose
The included docker-compose.yml provides two pre-configured services:
# Stdio service
ABUSEIPDB_API_KEY="your_key" docker compose --profile stdio up abuseipdb-mcp
# HTTP service (exposed on port 8000)
ABUSEIPDB_API_KEY="your_key" docker compose --profile http up abuseipdb-mcp-httpDevelopment
Local Setup
git clone https://github.com/n3r0-b1n4ry/mcp-abuseipdb.git
cd mcp-abuseipdb
python -m venv venv
source venv/bin/activate # Linux/macOS
venv\Scripts\activate # Windows
pip install -e .
export ABUSEIPDB_API_KEY="your_api_key_here"
mcp-abuseipdbRunning Tests
python -m pytest test/test_server.py -vBuild & Publish
python -m build
python -m twine upload dist/*Error Handling
Error | Behavior |
Rate Limit (429) | Returns retry-after duration and remaining quota |
Invalid API Key | Clear authentication error message |
Invalid IP Format | Format validation with helpful message |
API Errors | Detailed error response with status codes |
Network Issues | Timeout and connection error handling |
Rate Limits
Plan | Check Endpoint | Report Endpoint |
Free | 1,000/day | 100/day |
Basic | 3,000/day | 300/day |
Premium | 10,000/day | 1,000/day |
Enterprise | 100,000/day | 10,000/day |
Dependencies
Package | Version | Purpose |
โฅ1.12.0, <2.0.0 | Model Context Protocol SDK | |
โฅ0.27.0 | Async HTTP client | |
โฅ2.8.0 | Data validation | |
โฅ1.0.0 | Environment variable loading | |
โฅ0.32.0 | ASGI server (HTTP transport) | |
โฅ0.45.0 | ASGI framework (HTTP transport) |
Project Structure
mcp-abuseipdb/
โโโ src/
โ โโโ abuseipdb_mcp/ # Python package (uvx/pip)
โ โ โโโ __init__.py
โ โ โโโ server.py # Entry point (package)
โ โ โโโ modules.py # AbuseIPDBServer class
โ โโโ server.py # Entry point (standalone)
โ โโโ modules.py # AbuseIPDBServer class (standalone)
โโโ config/
โ โโโ mcp.json # MCP server config (stdio)
โ โโโ mcp-docker.json # MCP Docker config
โโโ examples/
โ โโโ mcp-client-configs.json # MCP client config examples
โโโ images/ # Screenshots and demo images
โโโ pyproject.toml # Package metadata & build config
โโโ Dockerfile # Alpine-based container
โโโ docker-compose.yml # Stdio + HTTP services
โโโ requirements.txt # Legacy pip dependencies
โโโ LICENSE # MIT License
โโโ README.mdTroubleshooting
Problem | Solution |
| Set |
Connection timeout | Check network connectivity and firewall settings |
Rate limit exceeded | Wait for retry period or upgrade AbuseIPDB plan |
Invalid IP format | Use properly formatted IPv4 or IPv6 addresses |
| Install uv: |
MCP client not connecting | Verify |
Changelog
v1.3.0
โ uvx / PyPI support โ
uvx mcp-abuseipdbworks out of the boxโ
pyproject.tomlโ Modern Python packaging with hatchlingโ Entry point โ
mcp-abuseipdbCLI command via[project.scripts]โ Dockerfile updated โ Uses
pip install .and entry pointโ Streamable HTTP transport โ MCP spec 2025-03-26 compliant
v1.2.0
โ MCP SDK 1.12.2 compatibility
โ Direct
TextContentlist returns (replacesCallToolResult)โ Complete category mapping (1-23)
โ Verbose mode enabled by default
โ Clean output formatting (no markdown)
โ Alpine Docker image optimization
Contributing
Fork the repository
Create a feature branch
Make your changes
Submit a pull request
License
MIT License โ free for personal and commercial use.
Made with โค๏ธ for the MCP community
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/n3r0-b1n4ry/mcp-abuseipdb'
If you have feedback or need assistance with the MCP directory API, please join our Discord server