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.
@@ -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,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (82.0.1)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -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()