stealthmole-mcp 1.0.0

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.
Files changed (3) hide show
  1. package/README.md +89 -0
  2. package/bin/cli.mjs +20 -0
  3. package/package.json +23 -0
package/README.md ADDED
@@ -0,0 +1,89 @@
1
+ # StealthMole MCP
2
+
3
+ Connect [Claude Desktop](https://claude.ai/download), [Cursor](https://cursor.sh), [Windsurf](https://codeium.com/windsurf), and other MCP clients to the [StealthMole](https://www.stealthmole.com) Threat Intelligence API.
4
+
5
+ ## Quick Start
6
+
7
+ ```json
8
+ {
9
+ "mcpServers": {
10
+ "stealthmole": {
11
+ "command": "npx",
12
+ "args": ["-y", "stealthmole-mcp"]
13
+ }
14
+ }
15
+ }
16
+ ```
17
+
18
+ Add this to your MCP client configuration file:
19
+
20
+ | Client | Config File |
21
+ |--------|-------------|
22
+ | Claude Desktop (macOS) | `~/Library/Application Support/Claude/claude_desktop_config.json` |
23
+ | Claude Desktop (Windows) | `%APPDATA%\Claude\claude_desktop_config.json` |
24
+ | Cursor | `.cursor/mcp.json` in your project root |
25
+ | Windsurf | `~/.codeium/windsurf/mcp_config.json` |
26
+
27
+ ## How It Works
28
+
29
+ 1. Run `npx stealthmole-mcp` (or your MCP client starts it automatically)
30
+ 2. A browser window opens for Keycloak authentication
31
+ 3. After login, the OAuth token is cached in `~/.mcp-auth/`
32
+ 4. The stdio-to-HTTP bridge connects your MCP client to the remote server
33
+
34
+ ## Requirements
35
+
36
+ - **Node.js 18+**
37
+ - A StealthMole account with API access
38
+
39
+ ## Available Tools
40
+
41
+ Once connected, your MCP client will have access to:
42
+
43
+ - **Dark Web Tracker** - Search dark web content by various indicators
44
+ - **Telegram Tracker** - Search Telegram content for threat intelligence
45
+ - **Credential Lookout** - Search for leaked credentials
46
+ - **Compromised Dataset** - Search compromised data from breaches
47
+ - **Combo Binder** - Search leaked ID/Password combinations
48
+ - **ULP Binder** - Search URL-Login-Password combinations
49
+ - **Ransomware Monitoring** - Track ransomware activities
50
+ - **Government Monitoring** - Monitor government sector threats
51
+ - **Leaked Monitoring** - Monitor enterprise data leaks
52
+
53
+ ## CLI Options
54
+
55
+ All `mcp-remote` flags are passed through:
56
+
57
+ ```bash
58
+ npx stealthmole-mcp --debug # Enable debug logging
59
+ npx stealthmole-mcp --port 3335 # Use custom callback port
60
+ ```
61
+
62
+ ## Advanced Usage
63
+
64
+ You can also use `mcp-remote` directly:
65
+
66
+ ```bash
67
+ npx mcp-remote https://mcp.stealthmole.com/mcp \
68
+ --static-oauth-client-info '{"client_id":"stealthmole_mcp_client","token_endpoint_auth_method":"none","redirect_uris":["http://127.0.0.1"]}'
69
+ ```
70
+
71
+ ## Troubleshooting
72
+
73
+ ### Reset authentication
74
+
75
+ ```bash
76
+ rm -rf ~/.mcp-auth/
77
+ ```
78
+
79
+ Then restart your MCP client to re-authenticate.
80
+
81
+ ### Connection issues
82
+
83
+ 1. Ensure Node.js 18+ is installed: `node --version`
84
+ 2. Try with debug logging: `npx stealthmole-mcp --debug`
85
+ 3. Check that your StealthMole account has API access
86
+
87
+ ## License
88
+
89
+ MIT
package/bin/cli.mjs ADDED
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/env node
2
+
3
+ const SERVER_URL = "https://mcp.stealthmole.com/mcp";
4
+ const CLIENT_INFO = JSON.stringify({
5
+ client_id: "stealthmole_mcp_client",
6
+ token_endpoint_auth_method: "none",
7
+ redirect_uris: ["http://127.0.0.1"],
8
+ });
9
+
10
+ // 서버 URL을 argv 첫 번째 인자로 주입
11
+ // mcp-remote의 proxy.js는 argv[2]를 서버 URL로 파싱
12
+ process.argv.splice(2, 0, SERVER_URL);
13
+
14
+ // 사용자가 직접 --static-oauth-client-info를 지정하지 않은 경우에만 주입
15
+ if (!process.argv.includes("--static-oauth-client-info")) {
16
+ process.argv.push("--static-oauth-client-info", CLIENT_INFO);
17
+ }
18
+
19
+ // mcp-remote 프록시 실행
20
+ await import("mcp-remote/dist/proxy.js");
package/package.json ADDED
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "stealthmole-mcp",
3
+ "version": "1.0.0",
4
+ "description": "StealthMole Threat Intelligence MCP client - connect Claude Desktop, Cursor, and other MCP clients to StealthMole API",
5
+ "bin": {
6
+ "stealthmole-mcp": "./bin/cli.mjs"
7
+ },
8
+ "type": "module",
9
+ "license": "MIT",
10
+ "dependencies": {
11
+ "mcp-remote": "~0.1.38"
12
+ },
13
+ "engines": {
14
+ "node": ">=18.0.0"
15
+ },
16
+ "keywords": [
17
+ "mcp",
18
+ "stealthmole",
19
+ "threat-intelligence",
20
+ "cybersecurity",
21
+ "model-context-protocol"
22
+ ]
23
+ }