blackdome-mcp 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,31 @@
1
+ name: Publish to MCP Registry
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*"
7
+ workflow_dispatch:
8
+
9
+ permissions:
10
+ contents: read
11
+ id-token: write
12
+
13
+ jobs:
14
+ publish:
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - name: Checkout
18
+ uses: actions/checkout@v5
19
+
20
+ - name: Install mcp-publisher
21
+ run: |
22
+ curl -L "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher
23
+
24
+ - name: Validate server metadata
25
+ run: ./mcp-publisher validate server.json
26
+
27
+ - name: Authenticate to MCP Registry
28
+ run: ./mcp-publisher login github-oidc
29
+
30
+ - name: Publish server metadata
31
+ run: ./mcp-publisher publish server.json
@@ -0,0 +1,5 @@
1
+ dist/
2
+ __pycache__/
3
+ *.egg-info/
4
+ .mcpregistry_*
5
+ *.pyc
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 BlackDome
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,145 @@
1
+ Metadata-Version: 2.4
2
+ Name: blackdome-mcp
3
+ Version: 0.1.0
4
+ Summary: BlackDome MCP Server — AI agent access to live honeypot threat intelligence, attacker IPs, IOCs, and credential intel.
5
+ Project-URL: Homepage, https://blackdome.ai
6
+ Project-URL: Documentation, https://blackdome.ai/docs/mcp
7
+ Project-URL: Repository, https://github.com/blackdome-ai/blackdome-mcp
8
+ Author-email: BlackDome <support@blackdome.ai>
9
+ License-Expression: MIT
10
+ License-File: LICENSE
11
+ Keywords: ai,blackdome,honeypot,iocs,mcp,security,threat-intel
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Topic :: Security
16
+ Classifier: Topic :: Software Development :: Libraries
17
+ Requires-Python: >=3.10
18
+ Requires-Dist: httpx>=0.27.0
19
+ Requires-Dist: mcp[cli]>=1.0.0
20
+ Provides-Extra: test
21
+ Requires-Dist: pytest-asyncio>=0.24; extra == 'test'
22
+ Requires-Dist: pytest>=8.0; extra == 'test'
23
+ Description-Content-Type: text/markdown
24
+
25
+ <!-- mcp-name: io.github.blackdome-ai/blackdome -->
26
+
27
+ # BlackDome MCP Server
28
+
29
+ Give your AI agents direct access to **live honeypot threat intelligence**. Look up attacker IPs, browse indicators of compromise (IOCs), inspect captured credentials and malware payloads, profile threat actors, and render a real-time global attack map — all from Claude, Cursor, or any MCP-compatible client.
30
+
31
+ Most tools are **free and need no API key** (the public community tier). A subset of high-value intelligence requires a paid plan.
32
+
33
+ ## Quick Start
34
+
35
+ ### Install
36
+
37
+ ```bash
38
+ pip install blackdome-mcp
39
+ ```
40
+
41
+ ### Configure
42
+
43
+ The free public tools work with **no API key**. To unlock the paid tiers (credential intelligence, payloads, actors, warboard, STIX export), get an API key at **[https://blackdome.ai/pricing](https://blackdome.ai/pricing)**.
44
+
45
+ #### Claude Desktop
46
+
47
+ Add to your `claude_desktop_config.json`:
48
+
49
+ ```json
50
+ {
51
+ "mcpServers": {
52
+ "blackdome": {
53
+ "command": "blackdome-mcp",
54
+ "env": {
55
+ "BLACKDOME_API_KEY": "your-api-key-here"
56
+ }
57
+ }
58
+ }
59
+ }
60
+ ```
61
+
62
+ > The `env` block is optional — omit `BLACKDOME_API_KEY` to run free public tools only.
63
+
64
+ #### Claude Code
65
+
66
+ ```bash
67
+ claude mcp add blackdome -- blackdome-mcp
68
+ # Optional — only needed for paid tools:
69
+ export BLACKDOME_API_KEY="your-api-key-here"
70
+ ```
71
+
72
+ #### Cursor
73
+
74
+ Add to your MCP settings:
75
+
76
+ ```json
77
+ {
78
+ "blackdome": {
79
+ "command": "blackdome-mcp",
80
+ "env": {
81
+ "BLACKDOME_API_KEY": "your-api-key-here"
82
+ }
83
+ }
84
+ }
85
+ ```
86
+
87
+ ## Available Tools
88
+
89
+ Free tools work with no key. Paid tools require an API key whose plan includes the listed feature.
90
+
91
+ | Tool | Tier | Description |
92
+ |------|------|-------------|
93
+ | `lookup_attacker_ip` | **Free** | Full dossier for one attacker IP — events, protocols, credentials (passwords masked), MITRE, edge nodes |
94
+ | `top_attackers` | **Free** | Most active attacker IPs over a window — pick one to drill into |
95
+ | `attack_map` | **Free** | Recent geolocated attack events for a live map (limit ≥ 10) |
96
+ | `attack_heatmap` | **Free** | Country-aggregated attack heatmap with centroids (limit ≥ 5) |
97
+ | `credential_preview` | **Free** | Sample of recent credentials (masked server-side) + teaser totals |
98
+ | `verify_sigil` | **Free** | Verify a BlackDome Sigil / audit record by id |
99
+ | `recent_iocs` | **Free** | Browse recent IOCs with full filter set (72h community delay) |
100
+ | `ioc_trends` | **Free** | Aggregated IOC trends — totals, breakdowns, daily new, top MITRE |
101
+ | `export_iocs` | **Free** (json/csv) · **Pro** (stix) | Export the IOC feed; STIX bundle needs the `stix_export` feature |
102
+ | `search_credentials` | **Enterprise** (`credential_intel`) | Search the global credential corpus with PLAINTEXT passwords |
103
+ | `credential_stats` | **Enterprise** (`credential_intel`) | Aggregate credential stats — top usernames/passwords, breakdowns |
104
+ | `list_payloads` | **Pro** (`api_access`) | List captured malware payloads, or fetch one by sha256 (VT/MB intel) |
105
+ | `get_actor` | **Pro** (`api_access`) | List clustered threat actors, or fetch one actor's sessions |
106
+ | `warboard` | **Pro** (`api_access`) | Sigil leaderboard with intrusion narratives + attacker command tails |
107
+ | `whoami` | **Any key** | Check your tenant, plan, features and live quota |
108
+
109
+ **Plans:** Community (free) → Pro ($299, adds `stix_export`, `api_access`) → Enterprise ($2000, adds `credential_intel`, `bulk_api`) → OEM ($5000). See [pricing](https://blackdome.ai/pricing).
110
+
111
+ ## Example Prompts
112
+
113
+ Once connected, try asking your AI assistant:
114
+
115
+ - *"Who are the top attackers hitting the honeypots this month?"*
116
+ - *"Look up attacker IP 176.65.139.56 and summarize what they tried."*
117
+ - *"Show me the latest malicious sha256 IOCs from the last week."*
118
+ - *"What are the IOC trends — which MITRE techniques are spiking?"*
119
+ - *"Render a heatmap of where attacks are coming from."*
120
+ - *"Export the IOC feed as CSV so I can load it into my SIEM."*
121
+ - *"What plan am I on and which features do I have?"* (runs `whoami`)
122
+ - *"Search captured SSH credentials for the username root."* (paid)
123
+
124
+ ## Environment Variables
125
+
126
+ | Variable | Required | Default | Description |
127
+ |----------|----------|---------|-------------|
128
+ | `BLACKDOME_API_KEY` | No | — | Bearer API key. Free tools work without it; paid tools require it |
129
+ | `BLACKDOME_BASE_URL` | No | `https://api.blackdome.ai` | API base URL |
130
+ | `BLACKDOME_TIMEOUT` | No | `15` | Request timeout in seconds |
131
+
132
+ ## Rate Limits
133
+
134
+ The free community tier is capped at roughly **30 requests/minute** and **100 requests/day**, and community IOC data carries a **72-hour freshness delay**. Paid plans raise these limits substantially (Enterprise: 1000 req/min, 50,000 req/day). When you hit a limit the server returns a clear `429` error with retry timing. Use `whoami` to see your live quota.
135
+
136
+ ## Security
137
+
138
+ - **Read-only.** Every tool is a GET request — the server never mutates BlackDome data.
139
+ - **Keyless free tier.** Public tools require no API key and expose only community-tier data.
140
+ - **Masked credentials.** The free `lookup_attacker_ip` tool masks captured passwords to `********` before returning them; `credential_preview` is masked server-side. Plaintext passwords are returned **only** by the paid `search_credentials` tool, which requires the `credential_intel` feature.
141
+ - **Secrets stay local.** Your API key is read from the environment and sent only to the BlackDome API over HTTPS. No data is stored by the MCP server — it proxies directly to BlackDome.
142
+
143
+ ## License
144
+
145
+ MIT
@@ -0,0 +1,121 @@
1
+ <!-- mcp-name: io.github.blackdome-ai/blackdome -->
2
+
3
+ # BlackDome MCP Server
4
+
5
+ Give your AI agents direct access to **live honeypot threat intelligence**. Look up attacker IPs, browse indicators of compromise (IOCs), inspect captured credentials and malware payloads, profile threat actors, and render a real-time global attack map — all from Claude, Cursor, or any MCP-compatible client.
6
+
7
+ Most tools are **free and need no API key** (the public community tier). A subset of high-value intelligence requires a paid plan.
8
+
9
+ ## Quick Start
10
+
11
+ ### Install
12
+
13
+ ```bash
14
+ pip install blackdome-mcp
15
+ ```
16
+
17
+ ### Configure
18
+
19
+ The free public tools work with **no API key**. To unlock the paid tiers (credential intelligence, payloads, actors, warboard, STIX export), get an API key at **[https://blackdome.ai/pricing](https://blackdome.ai/pricing)**.
20
+
21
+ #### Claude Desktop
22
+
23
+ Add to your `claude_desktop_config.json`:
24
+
25
+ ```json
26
+ {
27
+ "mcpServers": {
28
+ "blackdome": {
29
+ "command": "blackdome-mcp",
30
+ "env": {
31
+ "BLACKDOME_API_KEY": "your-api-key-here"
32
+ }
33
+ }
34
+ }
35
+ }
36
+ ```
37
+
38
+ > The `env` block is optional — omit `BLACKDOME_API_KEY` to run free public tools only.
39
+
40
+ #### Claude Code
41
+
42
+ ```bash
43
+ claude mcp add blackdome -- blackdome-mcp
44
+ # Optional — only needed for paid tools:
45
+ export BLACKDOME_API_KEY="your-api-key-here"
46
+ ```
47
+
48
+ #### Cursor
49
+
50
+ Add to your MCP settings:
51
+
52
+ ```json
53
+ {
54
+ "blackdome": {
55
+ "command": "blackdome-mcp",
56
+ "env": {
57
+ "BLACKDOME_API_KEY": "your-api-key-here"
58
+ }
59
+ }
60
+ }
61
+ ```
62
+
63
+ ## Available Tools
64
+
65
+ Free tools work with no key. Paid tools require an API key whose plan includes the listed feature.
66
+
67
+ | Tool | Tier | Description |
68
+ |------|------|-------------|
69
+ | `lookup_attacker_ip` | **Free** | Full dossier for one attacker IP — events, protocols, credentials (passwords masked), MITRE, edge nodes |
70
+ | `top_attackers` | **Free** | Most active attacker IPs over a window — pick one to drill into |
71
+ | `attack_map` | **Free** | Recent geolocated attack events for a live map (limit ≥ 10) |
72
+ | `attack_heatmap` | **Free** | Country-aggregated attack heatmap with centroids (limit ≥ 5) |
73
+ | `credential_preview` | **Free** | Sample of recent credentials (masked server-side) + teaser totals |
74
+ | `verify_sigil` | **Free** | Verify a BlackDome Sigil / audit record by id |
75
+ | `recent_iocs` | **Free** | Browse recent IOCs with full filter set (72h community delay) |
76
+ | `ioc_trends` | **Free** | Aggregated IOC trends — totals, breakdowns, daily new, top MITRE |
77
+ | `export_iocs` | **Free** (json/csv) · **Pro** (stix) | Export the IOC feed; STIX bundle needs the `stix_export` feature |
78
+ | `search_credentials` | **Enterprise** (`credential_intel`) | Search the global credential corpus with PLAINTEXT passwords |
79
+ | `credential_stats` | **Enterprise** (`credential_intel`) | Aggregate credential stats — top usernames/passwords, breakdowns |
80
+ | `list_payloads` | **Pro** (`api_access`) | List captured malware payloads, or fetch one by sha256 (VT/MB intel) |
81
+ | `get_actor` | **Pro** (`api_access`) | List clustered threat actors, or fetch one actor's sessions |
82
+ | `warboard` | **Pro** (`api_access`) | Sigil leaderboard with intrusion narratives + attacker command tails |
83
+ | `whoami` | **Any key** | Check your tenant, plan, features and live quota |
84
+
85
+ **Plans:** Community (free) → Pro ($299, adds `stix_export`, `api_access`) → Enterprise ($2000, adds `credential_intel`, `bulk_api`) → OEM ($5000). See [pricing](https://blackdome.ai/pricing).
86
+
87
+ ## Example Prompts
88
+
89
+ Once connected, try asking your AI assistant:
90
+
91
+ - *"Who are the top attackers hitting the honeypots this month?"*
92
+ - *"Look up attacker IP 176.65.139.56 and summarize what they tried."*
93
+ - *"Show me the latest malicious sha256 IOCs from the last week."*
94
+ - *"What are the IOC trends — which MITRE techniques are spiking?"*
95
+ - *"Render a heatmap of where attacks are coming from."*
96
+ - *"Export the IOC feed as CSV so I can load it into my SIEM."*
97
+ - *"What plan am I on and which features do I have?"* (runs `whoami`)
98
+ - *"Search captured SSH credentials for the username root."* (paid)
99
+
100
+ ## Environment Variables
101
+
102
+ | Variable | Required | Default | Description |
103
+ |----------|----------|---------|-------------|
104
+ | `BLACKDOME_API_KEY` | No | — | Bearer API key. Free tools work without it; paid tools require it |
105
+ | `BLACKDOME_BASE_URL` | No | `https://api.blackdome.ai` | API base URL |
106
+ | `BLACKDOME_TIMEOUT` | No | `15` | Request timeout in seconds |
107
+
108
+ ## Rate Limits
109
+
110
+ The free community tier is capped at roughly **30 requests/minute** and **100 requests/day**, and community IOC data carries a **72-hour freshness delay**. Paid plans raise these limits substantially (Enterprise: 1000 req/min, 50,000 req/day). When you hit a limit the server returns a clear `429` error with retry timing. Use `whoami` to see your live quota.
111
+
112
+ ## Security
113
+
114
+ - **Read-only.** Every tool is a GET request — the server never mutates BlackDome data.
115
+ - **Keyless free tier.** Public tools require no API key and expose only community-tier data.
116
+ - **Masked credentials.** The free `lookup_attacker_ip` tool masks captured passwords to `********` before returning them; `credential_preview` is masked server-side. Plaintext passwords are returned **only** by the paid `search_credentials` tool, which requires the `credential_intel` feature.
117
+ - **Secrets stay local.** Your API key is read from the environment and sent only to the BlackDome API over HTTPS. No data is stored by the MCP server — it proxies directly to BlackDome.
118
+
119
+ ## License
120
+
121
+ MIT
@@ -0,0 +1,42 @@
1
+ [build-system]
2
+ requires = ["hatchling"]
3
+ build-backend = "hatchling.build"
4
+
5
+ [project]
6
+ name = "blackdome-mcp"
7
+ version = "0.1.0"
8
+ description = "BlackDome MCP Server — AI agent access to live honeypot threat intelligence, attacker IPs, IOCs, and credential intel."
9
+ readme = "README.md"
10
+ license = "MIT"
11
+ requires-python = ">=3.10"
12
+ authors = [{ name = "BlackDome", email = "support@blackdome.ai" }]
13
+ keywords = ["mcp", "threat-intel", "blackdome", "security", "iocs", "honeypot", "ai"]
14
+ classifiers = [
15
+ "Development Status :: 4 - Beta",
16
+ "Intended Audience :: Developers",
17
+ "Programming Language :: Python :: 3",
18
+ "Topic :: Security",
19
+ "Topic :: Software Development :: Libraries",
20
+ ]
21
+ dependencies = [
22
+ "mcp[cli]>=1.0.0",
23
+ "httpx>=0.27.0",
24
+ ]
25
+
26
+ [project.optional-dependencies]
27
+ test = [
28
+ "pytest>=8.0",
29
+ "pytest-asyncio>=0.24",
30
+ ]
31
+
32
+ [project.scripts]
33
+ blackdome-mcp = "blackdome_mcp.server:main"
34
+
35
+ [project.urls]
36
+ Homepage = "https://blackdome.ai"
37
+ Documentation = "https://blackdome.ai/docs/mcp"
38
+ Repository = "https://github.com/blackdome-ai/blackdome-mcp"
39
+
40
+ [tool.pytest.ini_options]
41
+ asyncio_mode = "auto"
42
+ pythonpath = ["src"]
@@ -0,0 +1,43 @@
1
+ {
2
+ "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
3
+ "name": "io.github.blackdome-ai/blackdome",
4
+ "title": "BlackDome Threat Intel",
5
+ "description": "Live honeypot threat intel: attacker IPs, IOCs, credentials, payloads, actors.",
6
+ "websiteUrl": "https://blackdome.ai",
7
+ "repository": {
8
+ "url": "https://github.com/blackdome-ai/blackdome-mcp",
9
+ "source": "github"
10
+ },
11
+ "version": "0.1.0",
12
+ "packages": [
13
+ {
14
+ "registryType": "pypi",
15
+ "registryBaseUrl": "https://pypi.org",
16
+ "identifier": "blackdome-mcp",
17
+ "version": "0.1.0",
18
+ "transport": {
19
+ "type": "stdio"
20
+ },
21
+ "environmentVariables": [
22
+ {
23
+ "name": "BLACKDOME_API_KEY",
24
+ "description": "Optional Bearer API key. Free public tools work without it; paid tiers (credential intel, payloads, actors, warboard, STIX export) require a key. Get one at https://blackdome.ai/pricing",
25
+ "isRequired": false,
26
+ "isSecret": true
27
+ },
28
+ {
29
+ "name": "BLACKDOME_BASE_URL",
30
+ "description": "API base URL (default https://api.blackdome.ai).",
31
+ "isRequired": false,
32
+ "default": "https://api.blackdome.ai"
33
+ },
34
+ {
35
+ "name": "BLACKDOME_TIMEOUT",
36
+ "description": "HTTP request timeout in seconds (default 15). Increase for large STIX/CSV exports.",
37
+ "isRequired": false,
38
+ "default": "15"
39
+ }
40
+ ]
41
+ }
42
+ ]
43
+ }
@@ -0,0 +1,3 @@
1
+ """BlackDome MCP Server — AI agent access to live honeypot threat intelligence."""
2
+
3
+ __version__ = "0.1.0"