AynOps 1.1.0__py3-none-any.whl
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.
- aynops-1.1.0.dist-info/METADATA +331 -0
- aynops-1.1.0.dist-info/RECORD +6 -0
- aynops-1.1.0.dist-info/WHEEL +5 -0
- aynops-1.1.0.dist-info/licenses/LICENSE +21 -0
- aynops-1.1.0.dist-info/top_level.txt +1 -0
- server.py +27 -0
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: AynOps
|
|
3
|
+
Version: 1.1.0
|
|
4
|
+
Summary: A Model Context Protocol server that gives Claude real-time cybersecurity reconnaissance capabilities — WHOIS, DNS enumeration, port scanning, SSL inspection, CVE lookup, IP reputation, ASN lookup and more.
|
|
5
|
+
Requires-Python: >=3.12
|
|
6
|
+
Description-Content-Type: text/markdown
|
|
7
|
+
License-File: LICENSE
|
|
8
|
+
Requires-Dist: curl-cffi>=0.15.0
|
|
9
|
+
Requires-Dist: datetime>=6.0
|
|
10
|
+
Requires-Dist: dnspython>=2.8.0
|
|
11
|
+
Requires-Dist: fastmcp>=3.3.1
|
|
12
|
+
Requires-Dist: pip>=26.1.2
|
|
13
|
+
Requires-Dist: pytest==9.0.3
|
|
14
|
+
Requires-Dist: python-nmap>=0.7.1
|
|
15
|
+
Requires-Dist: python-whois>=0.9.6
|
|
16
|
+
Requires-Dist: reportlab>=4.5.1
|
|
17
|
+
Requires-Dist: requests>=2.34.2
|
|
18
|
+
Dynamic: license-file
|
|
19
|
+
|
|
20
|
+
<div align="center">
|
|
21
|
+
<picture>
|
|
22
|
+
<img alt="LangChain Logo" src=".github/images/logo.svg" width="90%">
|
|
23
|
+
</picture>
|
|
24
|
+
</div>
|
|
25
|
+
|
|
26
|
+
<div align="center">
|
|
27
|
+
<h3>
|
|
28
|
+
A Model Context Protocol (MCP) server that gives Claude real-time cybersecurity reconnaissance capabilities. Instead of manually running tools across different terminals, just tell Claude "analyze google.com" and get a complete security breakdown instantly.
|
|
29
|
+
</h3>
|
|
30
|
+
</div>
|
|
31
|
+
|
|
32
|
+
<div align="center">
|
|
33
|
+
<a href="https://opensource.org/licenses/MIT" target="_blank"> <img src="https://img.shields.io/badge/license-MIT-green.svg" /></a>
|
|
34
|
+
<a href="https://github.com/gaoharimran29-glitch/AynOps" target="_blank"> <img src="https://img.shields.io/github/stars/gaoharimran29-glitch/AynOps?style=social" /></a>
|
|
35
|
+
<a href="https://github.com/gaoharimran29-glitch/AynOps/network/members" target="_blank"><img src="https://img.shields.io/github/forks/gaoharimran29-glitch/AynOps?style=social" /></a>
|
|
36
|
+
<a href="https://pypi.org/project/AynOps/" target="_blank"><img src="https://img.shields.io/pypi/v/Cybersecurity-MCP-Server?label=version" /></a>
|
|
37
|
+
<a href="https://github.com/gaoharimran29-glitch/AynOps/issues" target="_blank"><img src="https://img.shields.io/github/issues/gaoharimran29-glitch/AynOps" /></a>
|
|
38
|
+
<a href="https://glama.ai/mcp/servers/gaoharimran29-glitch/AynOps">
|
|
39
|
+
<img src="https://glama.ai/mcp/servers/gaoharimran29-glitch/AynOps/badges/score.svg" /></a>
|
|
40
|
+
</div>
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
## What is this?
|
|
44
|
+
|
|
45
|
+
Claude by default has **zero native cybersecurity tooling**. No WHOIS. No DNS enumeration. No port scanning. No SSL inspection.
|
|
46
|
+
|
|
47
|
+
This MCP server fixes that — extending Claude with **real-world security tools** that run live against any domain or IP. Reconnaissance that normally requires multiple specialized tools and 20+ minutes of manual work becomes a single prompt.
|
|
48
|
+
|
|
49
|
+
This is a **local MCP server** — it runs entirely on your machine. Your data never leaves your computer.
|
|
50
|
+
It is also listed on glama mcp registry.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Tools Available
|
|
55
|
+
|
|
56
|
+
| Tool | Description |
|
|
57
|
+
|---|---|
|
|
58
|
+
| `whois_lookup` | Domain registration data — owner, registrar, creation date, expiry, name servers |
|
|
59
|
+
| `dns_enumeration` | A, AAAA, MX, NS, TXT, CNAME, SOA records + common subdomain brute-forcing |
|
|
60
|
+
| `port_scan` | Nmap-powered scanner with service/version detection and security warnings |
|
|
61
|
+
| `ssl_inspect` | SSL/TLS certificate — issuer, expiry, cipher strength, SANs, TLS version |
|
|
62
|
+
| `tech_stack_detect` | Web server, CMS, JS frameworks, CDN, analytics, and security header scoring |
|
|
63
|
+
| `cert_transparency` | Subdomain discovery via crt.sh Certificate Transparency logs with an automatic fallback to HackerTarget passive DNS on timeouts |
|
|
64
|
+
| `asn_lookup` | Autonomous System Number (ASN) and network ownership lookup — identifies hosting provider, ISP, organization, geolocation, and infrastructure ownership for domains or IP addresses |
|
|
65
|
+
| `full_recon` | Runs all 7 core tools in parallel and returns combined results for Claude to analyze |
|
|
66
|
+
| `cve_lookup` | Search NVD for known CVEs by software name and version (no API key required) |
|
|
67
|
+
| `ip_reputation` | Check if an IP is flagged as malicious via AbuseIPDB (api key requied) |
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## 📸 Demo
|
|
71
|
+
|
|
72
|
+
### Single tool — CVE lookup
|
|
73
|
+
```
|
|
74
|
+
You: Look up CVEs for apache 2.4.49
|
|
75
|
+
|
|
76
|
+
Claude: Found 2 critical CVEs for Apache 2.4.49:
|
|
77
|
+
CVE-2021-41773 (Score: 9.8 CRITICAL) — Path traversal vulnerability
|
|
78
|
+
allowing remote code execution if CGI is enabled. Actively exploited
|
|
79
|
+
in the wild...
|
|
80
|
+
```
|
|
81
|
+
<div align="center">
|
|
82
|
+
<picture>
|
|
83
|
+
<img alt="CVE Lookup tool" src=".github/images/single_tool.png" width="100%" , height="70%">
|
|
84
|
+
</picture>
|
|
85
|
+
</div>
|
|
86
|
+
|
|
87
|
+
### Full recon
|
|
88
|
+
```
|
|
89
|
+
You: Do a complete security recon on reddit.com
|
|
90
|
+
|
|
91
|
+
Claude: [calls full_recon → runs 6 tools in parallel → delivers full analysis]
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
<div align="center">
|
|
95
|
+
<picture>
|
|
96
|
+
<img alt="Full recon tool" src=".github/images/full_recon1.png" width="100%" height="70%">
|
|
97
|
+
</picture>
|
|
98
|
+
</div>
|
|
99
|
+
|
|
100
|
+
<div align="center">
|
|
101
|
+
<picture>
|
|
102
|
+
<img alt="Full recon tool" src=".github/images/full_recon2.png" width="100%" height="70%">
|
|
103
|
+
</picture>
|
|
104
|
+
</div>
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## 📋 Prerequisites
|
|
109
|
+
|
|
110
|
+
- **Python 3.12+** — [download](https://www.python.org/downloads/)
|
|
111
|
+
- **Claude Desktop** — [download](https://claude.ai/download)
|
|
112
|
+
- **Nmap** — required for port scanning ([download](https://nmap.org/download.html))
|
|
113
|
+
- **Git** — [download](https://git-scm.com/)
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## ⚙️ Installation
|
|
118
|
+
|
|
119
|
+
### Step 1 — Clone the repository
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
git clone https://github.com/gaoharimran29-glitch/AynOps
|
|
123
|
+
cd AynOps
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Step 2 — Install Python dependencies
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
pip install -r requirements.txt
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Step 3 — Install Nmap
|
|
133
|
+
|
|
134
|
+
**Windows:**
|
|
135
|
+
1. Download from [nmap.org/download.html](https://nmap.org/download.html) and run the installer
|
|
136
|
+
2. Manually add Nmap to PATH:
|
|
137
|
+
- Press `Win + S` → search **"Environment Variables"**
|
|
138
|
+
- Under **System Variables** → find **Path** → click **Edit**
|
|
139
|
+
- Click **New** → add `C:\Program Files (x86)\Nmap`
|
|
140
|
+
- Click OK on all windows
|
|
141
|
+
3. Restart your terminal and verify:
|
|
142
|
+
```powershell
|
|
143
|
+
nmap --version
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
**Mac:**
|
|
147
|
+
```bash
|
|
148
|
+
brew install nmap
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
**Linux:**
|
|
152
|
+
```bash
|
|
153
|
+
sudo apt install nmap
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### Step 4 — Connect to Claude Desktop
|
|
157
|
+
|
|
158
|
+
Open your Claude Desktop config file:
|
|
159
|
+
|
|
160
|
+
| OS | Path |
|
|
161
|
+
|---|---|
|
|
162
|
+
| Windows | `%APPDATA%\Claude\claude_desktop_config.json` |
|
|
163
|
+
| Mac | `~/Library/Application Support/Claude/claude_desktop_config.json` |
|
|
164
|
+
| Linux | `~/.config/Claude/claude_desktop_config.json` |
|
|
165
|
+
|
|
166
|
+
Add this configuration:
|
|
167
|
+
|
|
168
|
+
**Windows:**
|
|
169
|
+
```json
|
|
170
|
+
{
|
|
171
|
+
"mcpServers": {
|
|
172
|
+
"cybersecurity": {
|
|
173
|
+
"command": "C:\\full\\path\\to\\AynOps\\.venv\\Scripts\\python.exe",
|
|
174
|
+
"args": ["C:\\full\\path\\to\\AynOps\\server.py"],
|
|
175
|
+
"env": {
|
|
176
|
+
"ABUSEIPDB_API_KEY": "your-api-key-here",
|
|
177
|
+
"IP_API_KEY": "your-api-key-here"
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
**Mac/Linux:**
|
|
185
|
+
```json
|
|
186
|
+
{
|
|
187
|
+
"mcpServers": {
|
|
188
|
+
"cybersecurity": {
|
|
189
|
+
"command": "/full/path/to/AynOps/.venv/bin/python3",
|
|
190
|
+
"args": ["/full/path/to/AynOps/server.py"],
|
|
191
|
+
"env": {
|
|
192
|
+
"ABUSEIPDB_API_KEY": "your-api-key-here",
|
|
193
|
+
"IP_API_KEY": "your-api-key-here"
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
> ⚠️ Always use the **full absolute path** to your `.venv` Python executable — not just `python` or `python3`. Claude Desktop may use a different Python installation otherwise.
|
|
201
|
+
|
|
202
|
+
> **Note:** `ABUSEIPDB_API_KEY` is only required for the `ip_reputation` tool. Get a free key at [abuseipdb.com](https://www.abuseipdb.com). `IP_API_KEY` is only required for the `asn_lookup` tool. get a free key at [ipapi.com](https://ipapi.com/)
|
|
203
|
+
|
|
204
|
+
### Step 5 — Restart Claude Desktop
|
|
205
|
+
|
|
206
|
+
Fully quit and reopen Claude Desktop — closing the window is not enough. Check the system task manager and quit from there.
|
|
207
|
+
|
|
208
|
+
Verify tools are connected by asking Claude:
|
|
209
|
+
|
|
210
|
+
```
|
|
211
|
+
What cybersecurity tools do you have available?
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
Claude should list all tools.
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## 🚀 Usage
|
|
219
|
+
|
|
220
|
+
### Basic tool usage
|
|
221
|
+
|
|
222
|
+
```
|
|
223
|
+
Do a WHOIS lookup on example.com
|
|
224
|
+
Run DNS enumeration on github.com
|
|
225
|
+
Scan ports on scanme.nmap.org
|
|
226
|
+
Inspect the SSL certificate of stripe.com
|
|
227
|
+
Detect the tech stack of wordpress.org
|
|
228
|
+
Look up CVEs for apache 2.4.49
|
|
229
|
+
Look up CVEs for log4j 2.14.1
|
|
230
|
+
Check the reputation of IP 1.2.3.4
|
|
231
|
+
ASN Lookup for google.com
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
### Port scan types
|
|
235
|
+
|
|
236
|
+
| Type | Description | Speed |
|
|
237
|
+
|---|---|---|
|
|
238
|
+
| `basic` | Top 100 ports | Fast (~5s) |
|
|
239
|
+
| `service` | Service & version detection | Medium (~15s) |
|
|
240
|
+
| `os` | OS detection (requires admin) | Medium |
|
|
241
|
+
| `full` | All 65535 ports | Slow (~5min) |
|
|
242
|
+
| `vuln` | Vulnerability scripts | Slow (~30s) |
|
|
243
|
+
|
|
244
|
+
```
|
|
245
|
+
Scan scanme.nmap.org with service detection
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
### Full recon
|
|
249
|
+
|
|
250
|
+
```
|
|
251
|
+
Do a complete security recon on reddit.com
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
Claude will run all core tools in parallel and deliver a full security analysis.
|
|
255
|
+
|
|
256
|
+
### Follow-up analysis
|
|
257
|
+
|
|
258
|
+
```
|
|
259
|
+
Based on the recon, what are the top security risks?
|
|
260
|
+
What do the open ports mean from an attacker's perspective?
|
|
261
|
+
Is this SSL configuration strong enough for a financial services company?
|
|
262
|
+
Cross-reference the open ports with known CVEs for the detected services.
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
## ⚠️ Legal & Ethical Usage
|
|
266
|
+
|
|
267
|
+
> **Only scan domains and IPs you own or have explicit written permission to scan.**
|
|
268
|
+
|
|
269
|
+
- All tools use **public data** — safe on any domain
|
|
270
|
+
- Port scanning should only target **your own infrastructure** or authorized systems
|
|
271
|
+
- The only public host officially permitted for Nmap testing is `scanme.nmap.org`
|
|
272
|
+
- Unauthorized port scanning may be illegal in your jurisdiction
|
|
273
|
+
|
|
274
|
+
Intended for:
|
|
275
|
+
- Security researchers
|
|
276
|
+
- Penetration testers (on authorized targets)
|
|
277
|
+
- Developers auditing their own infrastructure
|
|
278
|
+
- Students learning cybersecurity concepts
|
|
279
|
+
|
|
280
|
+
---
|
|
281
|
+
|
|
282
|
+
## 🗂️ Project Structure
|
|
283
|
+
|
|
284
|
+
```
|
|
285
|
+
├── .github/ # GitHub Actions workflows and templates
|
|
286
|
+
├── tests/ # Unit tests
|
|
287
|
+
├── tools/ # MCP tool implementations
|
|
288
|
+
├── utils/ # Shared helper utilities
|
|
289
|
+
├── server.py # MCP server entry point
|
|
290
|
+
├── pyproject.toml # Project metadata and dependencies
|
|
291
|
+
├── requirements.txt # Python dependencies
|
|
292
|
+
├── mcp.json # MCP server metadata
|
|
293
|
+
├── glama.json # Glama MCP metadata
|
|
294
|
+
├── Dockerfile # Docker image definition
|
|
295
|
+
├── SECURITY.md # Security policy
|
|
296
|
+
├── CONTRIBUTING.md # Contribution guidelines
|
|
297
|
+
└── README.md # Project documentation
|
|
298
|
+
```
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
## Glama MCP Scoring
|
|
302
|
+
|
|
303
|
+
<div align="left">
|
|
304
|
+
|
|
305
|
+
<a href="https://glama.ai/mcp/servers/gaoharimran29-glitch/AynOps">
|
|
306
|
+
<img src="https://glama.ai/mcp/servers/gaoharimran29-glitch/AynOps/badges/card.svg" />
|
|
307
|
+
</a>
|
|
308
|
+
|
|
309
|
+
</div>
|
|
310
|
+
|
|
311
|
+
## 🤝 Contributing
|
|
312
|
+
|
|
313
|
+
Pull requests are welcome! Check [contributing.md](contributing.md) for guidelines and a list of open issues ready to pick up.
|
|
314
|
+
|
|
315
|
+
---
|
|
316
|
+
|
|
317
|
+
## 📜 License
|
|
318
|
+
|
|
319
|
+
MIT License — free to use, modify, and distribute.
|
|
320
|
+
|
|
321
|
+
---
|
|
322
|
+
|
|
323
|
+
## 👤 Author
|
|
324
|
+
|
|
325
|
+
Built by **Gaohar Imran**
|
|
326
|
+
- GitHub: [@gaoharimran29-glitch](https://github.com/gaoharimran29-glitch)
|
|
327
|
+
- LinkedIn: [Gaohar Imran](https://www.linkedin.com/in/gaohar-imran-5a4063379/)
|
|
328
|
+
|
|
329
|
+
---
|
|
330
|
+
|
|
331
|
+
> ⭐ If this project helped you, consider giving it a star on GitHub!
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
server.py,sha256=uBWaDvOmPCYqyrquA7oTmF865eS6B3bXjsfL_M_bRhY,803
|
|
2
|
+
aynops-1.1.0.dist-info/licenses/LICENSE,sha256=DOEq9nv6tjxrDy5nFigEz10zfAnPToV3nCzaotSOXCY,1090
|
|
3
|
+
aynops-1.1.0.dist-info/METADATA,sha256=hgH3RAnTDRsKoybiopEsqAScPtfW3CYpJrfHSSWYxuM,11148
|
|
4
|
+
aynops-1.1.0.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
|
|
5
|
+
aynops-1.1.0.dist-info/top_level.txt,sha256=StKOSmRhvWS5IPcvhsDRbtxUTEofJgYFGOu5AAJdSWo,7
|
|
6
|
+
aynops-1.1.0.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Gaohar Imran
|
|
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 @@
|
|
|
1
|
+
server
|
server.py
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
from fastmcp import FastMCP
|
|
2
|
+
from tools.whois_tool import whois_lookup
|
|
3
|
+
from tools.dns_tool import dns_enumeration
|
|
4
|
+
from tools.portscan_tool import port_scan
|
|
5
|
+
from tools.ssl_tool import ssl_inspect
|
|
6
|
+
from tools.techstack_tool import tech_stack_detect
|
|
7
|
+
from tools.asn_tool import asn_lookup
|
|
8
|
+
from tools.fullrecon_tool import full_recon
|
|
9
|
+
from tools.cve_tool import cve_lookup
|
|
10
|
+
from tools.iprep_tool import ip_reputation
|
|
11
|
+
from tools.crt_sh_tool import cert_transparency
|
|
12
|
+
|
|
13
|
+
mcp = FastMCP("AynOps")
|
|
14
|
+
|
|
15
|
+
mcp.tool()(whois_lookup)
|
|
16
|
+
mcp.tool()(dns_enumeration)
|
|
17
|
+
mcp.tool()(port_scan)
|
|
18
|
+
mcp.tool()(ssl_inspect)
|
|
19
|
+
mcp.tool()(tech_stack_detect)
|
|
20
|
+
mcp.tool()(asn_lookup)
|
|
21
|
+
mcp.tool()(full_recon)
|
|
22
|
+
mcp.tool()(cve_lookup)
|
|
23
|
+
mcp.tool()(ip_reputation)
|
|
24
|
+
mcp.tool()(cert_transparency)
|
|
25
|
+
|
|
26
|
+
if __name__ == "__main__":
|
|
27
|
+
mcp.run()
|