Token导航 LogoToken导航TokenDH.com
Sicry (Jacob Jandon) logo
AI代理stdio官方级别未说明来源级核验

Sicry (Jacob Jandon)

MCP Server

SICRY™ 是一个为AI代理提供Tor/Onion网络访问的Python工具,支持18个暗网搜索引擎的OSINT管道集成。

工具数

6

提示词数

0

GitHub Stars

11

资源数

0
PythonClaudeAI代理Claude DesktopClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

JacobJandon

提供方

JacobJandon

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install requests[socks] beautifulsoup4 python-dotenv stem

详细介绍

SICRY™——用于AI代理的Tor/Onion网络访问层

![License: MIT](https://github.com/JacobJandon/Sicry/blob/main/LICENSE) ![CI](https://github.com/JacobJandon/Sicry/actions/workflows/ci.yml)

雅各布·詹顿 ·

一个Python文件。将其放入任何项目中,您的AI代理都可以完全访问Tor/.onion暗网——与普通互联网上的干净工具界面代理相同,只是现在用于隐藏服务。

Robin的完整搜索引擎目录(18个引擎)和OSINT管道直接内置。无需安装Robin。没有额外的流程。除了a之外没有配置 .env 文件。

pip install requests[socks] beautifulsoup4 python-dotenv stem
apt install tor && tor &
cp .env.example .env   # add one API key (or use Ollama — no key needed)
python sicry.py check  # → CONNECTED via Tor  |  exit IP: 185.220.101.5

______________________________________________________________________

目录

  1. SICRY™做什么
  2. 安装
  3. 快速入门
  4. 全部九个功能
  5. 工具模式(Anthropic/OpenAI/Gemini)
  6. 框架集成
  7. CLI参考
  8. 完整的OSINT管道
  9. 分析模式
  10. 18搜索引擎
  11. 环境变量
  12. Tor设置
  13. 建筑
  14. 故障排除
  15. 学分

______________________________________________________________________

SICRY™做什么

SICRY™为人工智能代理提供了6个工具——这6个工具他们已经知道如何在clearnet上使用,刚刚在Tor上运行:

SICRY™工具Clearnet等效工具它的作用
sicry_check_tor健康检查验证Tor是否处于活动状态,获取退出IP
sicry_renew_identity重置会话旋转电路,获取新的退出节点
sicry_fetchfetch_url() / browser_read_page()读取任何URL或 .onion 通过Tor
sicry_searchweb_search() / brave_search()查询18个暗网搜索引擎
sicry_askanalyze() / summarize()LLM OSINT报告的原始内容
sicry_check_enginesping/健康检查所有18个引擎的延迟+状态

加上三个质量改进助手(Robin模式,直接调用):

助手它做什么
refine_query(query)LLM:自然语言→ ≤5-单词暗网查询
filter_results(query, results)LLM:从所有原始结果中选出最相关的20个
scrape_all(urls)并发批量提取→ {url: "title - text"} 字典

______________________________________________________________________

安装

需求

  • Python 3.10+
  • Tor守护进程在本地运行
  • pip包(如下)

1.安装Tor

Linux(Debian/Ubuntu):

apt install tor
tor &

macOS:

brew install tor
tor &

自定义数据目录(建议用于 renew_identity):

cat > /tmp/sicry_tor.conf  **注:** `ask()`, `refine_query()`,以及 `filter_results()` 需要LLM密钥。所有其他工具(`search`, `fetch`, `check_tor`, `renew_identity`, `check_search_engines`, `scrape_all`)根本不用钥匙工作。

______________________________________________________________________

## 快速入门

Verify Tor is running

python sicry.py check

→ CONNECTED via Tor | exit IP: 185.220.101.5 | error: None

Search the dark web

python sicry.py search "ransomware data leak" --max 10

Fetch a .onion page

python sicry.py fetch http://juhanurmihxlp77nkq76byazcldy2hlmovfu2epvl5ankdibsot4csyd.onion

Print tool schemas for your framework

python sicry.py tools # Anthropic format (default) python sicry.py tools --format openai # OpenAI format python sicry.py tools --format gemini # Gemini format

Rotate Tor identity

python sicry.py renew

Start MCP server (for Claude Desktop / Cursor / Zed)

python sicry.py serve


在Python中:

import sicry

Verify Tor

print(sicry.check_tor())

→ {"tor_active": True, "exit_ip": "185.220.101.5", "error": None}

Search

results = sicry.search("credential dump")

→ [{"title": "...", "url": "http://...onion/...", "engine": "Ahmia"}, ...]

Fetch

page = sicry.fetch("http://juhanurmihxlp77nkq76byazcldy2hlmovfu2epvl5ankdibsot4csyd.onion")

→ {"url": "...", "is_onion": True, "status": 200, "title": "Ahmia", "text": "...", "links": [...]}


______________________________________________________________________

## 全部九个功能

### `check_tor() → dict`

验证Tor是否正在运行,以及计算机是否正在通过Tor出口节点进行路由。

r = sicry.check_tor()

{"tor_active": True, "exit_ip": "185.220.101.5", "error": None}

{"tor_active": False, "exit_ip": None, "error": "connection refused"}


**先叫这个。** 如果Tor关闭,所有其他网络功能都会无声地失败。

______________________________________________________________________

### `renew_identity() → dict`

旋转Tor电路——获得新的出口节点和新的标识。

r = sicry.renew_identity()

{"success": True, "error": None}


按以下顺序尝试验证:

1. `TOR_CONTROL_PASSWORD` env-var(如果您设置 `HashedControlPassword` 在torrc)
1. Cookie文件来自 `TOR_DATA_DIR` env 是
1. 来自公共系统路径的Cookie文件(`/tmp/tor_data`, `/var/lib/tor`, `~/.tor`, `/run/tor`)
1. 空字符串/空身份验证(完全没有密码的Tor)

**开箱即用** 使用SICRY™推荐的torrc(cookie认证)。看 [Tor设置](#tor-setup).

______________________________________________________________________

### `fetch(url) → dict`

通过Tor获取任何URL——适用于clearnet和 `.onion` 隐藏的服务。

r = sicry.fetch("http://somemarket.onion/listings")

{

"url": "http://somemarket.onion/listings",

"is_onion": True,

"status": 200,

"title": "Market Listings",

"text": "Plain text, HTML stripped, up to 8000 chars",

"links": [{"text": "Link label", "href": "http://..."}, ...], # up to 80 links

"error": None

}


- URL没有 `http://` / `https://` 得到 `http://` 自动预置。
- `text` HTML被剥离、空格被折叠、截断为 `MAX_CONTENT_CHARS` (默认值为8000)。
- 总是返回一条格言,从不提高。

______________________________________________________________________

### `search(query, engines=None, max_results=20, max_workers=8) → list[dict]`

同时在18个暗网搜索引擎中搜索。

All 18 engines in parallel

results = sicry.search("leaked database credentials")

[{"title": "...", "url": "http://...onion/...", "engine": "Ahmia"}, ...]

Specific engines only

results = sicry.search("ransomware", engines=["Ahmia", "Tor66", "Ahmia-clearnet"])

More results

results = sicry.search("bitcoin mixer", max_results=50)


- 所有引擎的结果都按URL进行重复数据消除。
- `engines` 不区分大小写。未知的引擎名称将被自动跳过。
- 总是返回一个列表,从不加薪。

______________________________________________________________________

### `scrape_all(urls, max_workers=5) → dict`

同时批量获取多个页面并返回 `{url: content}` 准备攻读法学硕士。

pages = sicry.scrape_all(search_results[:10])

{

"http://site1.onion/page": "Page Title - full page text...(truncated)",

"http://site2.onion/page": "Page Title - full page text",

...

}

combined = "\n\n".join(pages.values())


- 输入是原始输出 `search()` --列表 `{"title", "url"}` 字典。
- 每页内容上限为2000个字符 `...(truncated)` 标记。
- 使用Robin的模式: `"title - text"` format为LLM添加上下文。
- 失败的页面会被自动删除(只返回可访问的页面)。

______________________________________________________________________

### `refine_query(query, provider=None) → str`

LLM为暗网搜索引擎将自然语言查询细化为≤5个重点词。

q = sicry.refine_query("I want to find ransomware groups that targeted hospitals in 2026")

→ "hospital ransomware 2026 leak"

q = sicry.refine_query("has acme.com appeared in any data breaches")

→ "acme.com breach credentials"


- 如果没有设置LLM键,则返回到原始查询。 **从不加薪**.
- 这是一种Robin模式——暗网索引对短关键字的响应比自然语言好得多。
- 使用前 `search()` 以获得明显更好的结果。

______________________________________________________________________

### `filter_results(query, results, provider=None) → list[dict]`

LLM过滤搜索结果列表,只保留前20个最相关的结果。

best = sicry.filter_results("hospital ransomware 2026", raw_results)

Returns at most 20 results, selected by the LLM for relevance


- 回落到 `results[:20]` 如果没有设置LLM密钥。 **从不加薪**.
- 如果LLM速率限制了大型有效载荷,则自动重试截断的标题。
- 使用后 `search()` 在刮擦之前降低噪音。

______________________________________________________________________

### `ask(content, query="", mode="threat_intel", custom_instructions="", provider=None) → str`

使用LLM分析暗网内容,并返回结构化的OSINT报告。

report = sicry.ask( content="\n\n".join(pages.values()), query="hospital ransomware groups", mode="ransomware", ) print(report) # Structured report: indicators, TTPs, threat actor profile, next steps


**模式:**

|模式|别名|焦点|
|---|---|---|
| `threat_intel` | *(默认)* |OSINT概述——工件、见解、下一步行动|
| `ransomware` | `ransomware_malware` |恶意软件/C2/MITRE TTP、受害者组织、检测|
| `personal_identity` ||PII/泄露风险、严重程度、保护措施|
| `corporate` | `corporate_espionage` |泄露的凭据/代码/文档、IR步骤|

Add custom focus to any mode

report = sicry.ask( content, mode="threat_intel", custom_instructions="Focus on cryptocurrency wallets and mixer services", )


- 如果没有设置LLM密钥,则返回 `[SICRY™: ...]` 错误字符串-- **从不加薪**.
- 内容被截断为 `MAX_CONTENT_CHARS` (默认值8000),然后发送到LLM。

______________________________________________________________________

### `check_search_engines(max_workers=8) → list[dict]`

通过Tor Ping所有18个引擎,并返回每个引擎的状态和延迟。

results = sicry.check_search_engines()

[

{"name": "Ahmia", "status": "up", "latency_ms": 1240, "error": None},

{"name": "Kaizer", "status": "down", "latency_ms": None, "error": "timeout"},

...

]

live = [r for r in results if r["status"] == "up"] print(f"{len(live)}/18 engines alive") fastest = min(live, key=lambda x: x["latency_ms"]) print(f"Fastest: {fastest['name']} ({fastest['latency_ms']}ms)")


- 结果保持原始发动机顺序。
- 使用前 `search()` 以避免在熄火的发动机上浪费时间。

______________________________________________________________________

## 工具模式

SICRY™以本机格式为每个主要框架公开所有6个工具。所有三种格式始终保持同步。

import sicry

sicry.TOOLS # Anthropic / Claude format (input_schema) sicry.TOOLS_OPENAI # OpenAI function-calling format (type: "function") sicry.TOOLS_GEMINI # Google Gemini function declarations


打印其中任何一个:

python sicry.py tools # Anthropic (default) python sicry.py tools --format openai python sicry.py tools --format gemini


暴露的工具:

|工具名称|必需参数|可选参数|
|---|---|---|
| `sicry_check_tor` | *(无)* | |
| `sicry_renew_identity` | *(无)* | |
| `sicry_fetch` | `url` | |
| `sicry_search` | `query` | `max_results` (int), `engines` (列表)|
| `sicry_ask` | `content` | `query`, `mode`, `custom_instructions` |
| `sicry_check_engines` | *(无)* | `max_workers` (int)|

______________________________________________________________________

## 框架集成

### 调度员

所有框架共享一个调度器——用工具名称和输入字典调用它:

result = sicry.dispatch(tool_name, tool_input)

Returns: dict | list | str (matches the tool's documented return type)

Raises: ValueError if tool_name is unknown


______________________________________________________________________

### 人类学/克劳德

import anthropic, sicry, json

client = anthropic.Anthropic() messages = [{"role": "user", "content": "Search dark web for recent credential leaks from banks"}]

while True: resp = client.messages.create( model="claude-opus-4-6", max_tokens=4096, system="You are a dark-web OSINT analyst. Always verify Tor before searching.", tools=sicry.TOOLS, # [options]


|命令|选项|描述|
|---|---|---|
| `check` ||验证Tor是否正在运行,显示退出IP|
| `renew` ||旋转Tor电路|
| `search ` | `--max N` (默认值10), `--engine NAME` (可重复)|搜索暗网|
| `fetch ` ||通过Tor获取URL,打印文本|
| `tools` | `--format anthropic\|openai\|gemini` |以JSON格式打印工具模式|
| `serve` ||启动MCP服务器|

**示例:**

python sicry.py check python sicry.py renew python sicry.py search "ransomware healthcare" --max 15 python sicry.py search "bitcoin mixer" --engine Ahmia --engine Tor66 python sicry.py fetch http://juhanurmihxlp77nkq76byazcldy2hlmovfu2epvl5ankdibsot4csyd.onion python sicry.py tools --format openai | python -m json.tool python sicry.py serve


______________________________________________________________________

## 完整的OSINT管道

这是推荐的工作流程。每一步都应用了一个Robin模式,在结果质量上产生了可衡量的差异:

import sicry

Step 1: Verify Tor

status = sicry.check_tor() if not status["tor_active"]: raise RuntimeError(f"Tor not active: {status['error']}") print(f"Tor active. Exit IP: {status['exit_ip']}")

Step 2: Health-check engines (skip dead ones)

engine_status = sicry.check_search_engines() live = [e for e in engine_status if e["status"] == "up"] live_names = [e["name"] for e in live] print(f"{len(live)}/18 engines alive: {', '.join(live_names[:5])}...")

Step 3: Refine query (Robin quality pattern)

raw_query = "ransomware groups targeting hospital systems 2026" query = sicry.refine_query(raw_query) print(f"Refined: '{raw_query}' -> '{query}'")

Step 4: Search (query only live engines in parallel)

raw_results = sicry.search( query, engines=live_names, # skip engines we know are down max_results=50, ) print(f"{len(raw_results)} raw results")

Step 5: Filter to best 20 (Robin quality pattern)

best = sicry.filter_results(query, raw_results) print(f"Filtered to {len(best)} most relevant")

Step 6: Batch scrape concurrently

pages = sicry.scrape_all(best[:10], max_workers=5) print(f"Scraped {len(pages)} pages")

Step 7: OSINT analysis

combined = "\n\n".join(f"[{url}]\n{text}" for url, text in pages.items()) report = sicry.ask( combined, query=query, mode="ransomware", custom_instructions="Focus on victim organisations and ransom demands.", ) print(report)

Step 8: Rotate identity when done

sicry.renew_identity()


______________________________________________________________________

## 分析模式

所有四种模式都会生成结构化的分段报告。直接通过 `.onion` 文本或 `scrape_all()` 输出。

### `threat_intel` (默认)

一般暗网OSINT。最适合初步调查。

输出部分:输入查询·源链接·调查工件·关键见解·下一步

report = sicry.ask(content, query="acme.com breach", mode="threat_intel")


### `ransomware`

别名: `ransomware_malware`

恶意软件情报。提取C2域、文件哈希、MITRE ATT&CK TTP、受害扇区。

输出部分:输入查询·源链接·恶意软件/勒索软件指标·威胁参与者简介·关键见解·下一步

report = sicry.ask(content, query="LockBit hospital", mode="ransomware")


### `personal_identity`

PII暴露分析。表面SSN、电子邮件、护照数据、漏洞来源、风险严重程度。

输出部分:输入查询·源链接·暴露的PII工件·泄露/市场来源·暴露风险评估·关键见解·下一步

report = sicry.ask(content, query="john.doe@email.com", mode="personal_identity")


### `corporate`

别名: `corporate_espionage`

企业威胁情报。检测泄露的凭据、源代码和内部文档。

输出部分:输入查询·源链接·泄露的公司文物·威胁行为者/经纪人活动·业务影响评估·关键见解·下一步

report = sicry.ask(content, query="acme.com corporate leak", mode="corporate")


______________________________________________________________________

## 18搜索引擎

Robin的完整目录加上两个经过验证的补充。全部由以下人员同时查询 `search()`.

|发动机|类型|注意事项|
|---|---|---|
| **艾哈迈德** | `.onion` index |最可靠、最大的指数|
| **洋葱地** | `.onion` 索引||
| **火炬** | `.onion` 索引||
| **失忆** | `.onion` 索引||
| **凯泽** | `.onion` 索引||
| **灵魂** | `.onion` 索引||
| **龙卷风** | `.onion` 索引||
| **TorNet 的** | `.onion` 索引||
| **托兰** | `.onion` 索引||
| **FindTor** | `.onion` 索引||
| **挖掘机** | `.onion` 索引||
| **洋葱道** | `.onion` 索引||
| **Tor66** | `.onion` index |论坛覆盖率高|
| **对象存储服务** | `.onion` 索引||
| **托尔戈尔** | `.onion` 索引||
| **深度搜索** | `.onion` 索引||
| **DuckDuckGo Tor** | `.onion` (DDG)|PGP验证地址|
| **阿赫米亚清洁网** |clearnet HTTPS | Ahmia的clearnet镜像——始终可访问|

使用 `check_search_engines()` 在大范围奔跑之前,看看哪些还活着。

使用 `engines=["Ahmia", "Ahmia-clearnet"]` 为了获得快速可靠的结果,或省略 `engines` 为了获得最大的覆盖范围。

______________________________________________________________________

## 环境变量

复制 `.env.example` 到 `.env`所有变量都是可选的——只配置你需要的。

|变量|默认值|描述|
|---|---|---|
| `TOR_SOCKS_HOST` | `127.0.0.1` |Tor SOCKS5代理主机|
| `TOR_SOCKS_PORT` | `9050` |Tor SOCKS5代理端口|
| `TOR_CONTROL_HOST` | `127.0.0.1` |Tor控制端口主机|
| `TOR_CONTROL_PORT` | `9051` |Tor控制端口|
| `TOR_CONTROL_PASSWORD` | *(未设置)* |HashedControlPassword的密码|
| `TOR_DATA_DIR` | *(未设置)* |Tor DataDirectory的路径--用于查找的cookie文件 `renew_identity` |
| `TOR_TIMEOUT` | `45` |每次请求超时(秒)|
| `LLM_PROVIDER` | *(未设置)* | `openai` / `anthropic` / `gemini` / `ollama` / `llamacpp` |
| `OPENAI_API_KEY` | *(未设置)* |OpenAI API密钥|
| `OPENAI_MODEL` | `gpt-4o` |OpenAI模型|
| `ANTHROPIC_API_KEY` | *(未设置)* |无烟煤API键|
| `ANTHROPIC_MODEL` | `claude-opus-4-6` |人类模型|
| `GEMINI_API_KEY` | *(未设置)* |Google Gemini API密钥|
| `GEMINI_MODEL` | `gemini-2.5-flash` |Gemini模型|
| `OLLAMA_BASE_URL` | `http://127.0.0.1:11434` |Ollama API基础URL|
| `OLLAMA_MODEL` | `llama3.2` |Olama型号名称|
| `LLAMACPP_BASE_URL` | `http://127.0.0.1:8080` |llama.cpp服务器基本URL|
| `SICRY_MAX_CHARS` | `8000` |传递给LLM的内容的最大字符数|

**`TOR_DATA_DIR` 是最重要的Tor变量。** 将其设置为Tor `DataDirectory` 路径如此 `renew_identity()` 可以找到cookie文件进行身份验证。

______________________________________________________________________

## Tor设置

### 默认系统Tor

如果你跑了 `apt install tor && tor &`、搜索、获取和检查以立即工作。默认情况下,控制端口可能未启用。

检查控制端口是否打开:

ss -tlnp | grep 9051


如果没有显示,请启用它:

echo "ControlPort 9051" >> /etc/tor/torrc echo "CookieAuthentication 1" >> /etc/tor/torrc systemctl restart tor


### SICRY™推荐的torrc

为了发展——一切 `/tmp`,无需系统更改:

SocksPort 9050 ControlPort 9051 CookieAuthentication 1 DataDirectory /tmp/tor_data

tor -f /tmp/sicry_tor.conf &


然后在 `.env`:

TOR_DATA_DIR=/tmp/tor_data


### 使用密码而不是cookie

Generate a hashed password

tor --hash-password "mypassword"

-> 16:...hash...

Add to torrc

HashedControlPassword 16:...hash...

In .env

TOR_CONTROL_PASSWORD=mypassword


### 如何 `renew_identity()` auth作品

SICRY™依次尝试4种身份验证策略,直到其中一种成功:

1. **`TOR_CONTROL_PASSWORD`** --使用env-var作为字符串密码
1. **Cookie文件来自 `TOR_DATA_DIR`** --阅读 `$TOR_DATA_DIR/control_auth_cookie` 作为原始字节
1. **来自公共系统路径的Cookie** --自动发现 `/tmp/tor_data`, `/var/lib/tor`, `~/.tor`, `/run/tor`
1. **空/空身份验证** --对于完全没有设置控制密码的Tor

如果所有四个都失败,则返回 `{"success": False, "error": "..."}` 一条有用的信息。 **从不加薪。**

______________________________________________________________________

## 建筑

这些部分是如何组合在一起的——从人工智能代理调用工具到 `.onion` 回应。

### 层次图

┌─────────────────────────────────────────────────────────────────────┐ │ AI Agent / Host │ │ Claude · GPT-4o · Gemini · Ollama · LangChain · CrewAI · MCP │ │ calls tool → reads JSON result │ └─────────────────────┬───────────────────────────────────────────────┘ │ tool_name + args (dict) ▼ ┌─────────────────────────────────────────────────────────────────────┐ │ SICRY™ (sicry.py) │ │ │ │ dispatch() ──→ sicry_check_tor check_tor() │ │ ──→ sicry_renew_identity renew_identity() │ │ ──→ sicry_fetch fetch(url) │ │ ──→ sicry_search search(query, engines, ...) │ │ ──→ sicry_ask ask(content, mode, ...) │ │ ──→ sicry_check_engines check_search_engines() │ │ │ │ Quality helpers (call directly): │ │ refine_query() · filter_results() · scrape_all() │ │ │ │ State: SQLite DB (watch jobs · engine stats · result cache) │ └──────────┬──────────────────────────┬───────────────────────────────┘ │ SOCKS5 │ stem control socket │ 127.0.0.1:9050 │ 127.0.0.1:9051 ▼ ▼ ┌──────────────────────┐ ┌──────────────────────┐ │ Tor Daemon (tor) │ │ Tor Control Port │ │ (tor / TorPool) │◄──│ renew_identity() │ └──────────┬───────────┘ └──────────────────────┘ │ onion routing (3 hops) ▼ ┌─────────────────────────────────────────────────────────────────────┐ │ Dark Web / Tor Network │ │ │ │ .onion hidden services Clearnet via Tor exit nodes │ │ ┌───────────────────┐ ┌──────────────────────────────┐ │ │ │ 18 Search Engines│ │ Any clearnet HTTPS/HTTP URL │ │ │ │ Ahmia · Tor66 │ │ (exit node proxied) │ │ │ │ DuckDuckGo-Tor │ └──────────────────────────────┘ │ │ │ + 15 more... │ │ │ └───────────────────┘ │ └─────────────────────────────────────────────────────────────────────┘


### OSINT管道流量

推荐的7级管道(`pipeline.py` /完整的OSINT管段如下):

User query │ ▼ [1] check_tor() → verify Tor is active (abort if not) │ ▼ [2] check_search_engines() → ping all 18, collect live engine list │ ▼ [3] refine_query() → LLM: natural language → ≤5 search keywords │ ▼ [4] search() → query all live engines in parallel over Tor │ ┌── Ahmia ──→ results │ ├── Tor66 ──→ results │ └── ...16 more (concurrent ThreadPoolExecutor) │ ▼ [5] filter_results() → LLM: pick top 20 most relevant results │ ▼ [6] scrape_all() → concurrent batch-fetch top pages over Tor │ ▼ [7] ask() → LLM OSINT report (threat_intel / ransomware │ / personal_identity / corporate) ▼ Structured report


### TorPool模式(可选)

当 `SICRY_POOL_SIZE=N` (建议2-4),SICRY™生成N个独立的Tor进程,并在它们之间循环robins请求,以获得更高的吞吐量:

sicry_search ─→ TorPool ├── tor[0] :9050 ← SOCKS5 proxy 0 ├── tor[1] :9052 ← SOCKS5 proxy 1 └── tor[N-1]:... ← SOCKS5 proxy N-1


产生 `.env`:

SICRY_POOL_SIZE=3 # 2–4 recommended; each uses ~50 MB RAM


### 更新策略

`check_update()` 检查 **GitHub发布API** (`/releases/latest`)--只有发布的正式版本才会触发更新通知。纯git标签和预发布版本将被忽略。

______________________________________________________________________

## 故障排除

**`tor_active: False`**

Is Tor running?

pgrep tor || tor &

Is SOCKS port open?

ss -tlnp | grep 9050


**`renew_identity()` 回报 `success: False`**

Is control port open?

ss -tlnp | grep 9051

Does the cookie file exist?

ls /tmp/tor_data/control_auth_cookie # custom torrc ls /var/lib/tor/control_auth_cookie # system Tor

Set TOR_DATA_DIR=/path/to/DataDirectory in .env


**`.onion` 获取返回值 `status: 0`**
隐藏服务已关闭或Tor速度较慢。尝试其他URL `search()`,或致电 `check_search_engines()` 首先确认Tor是否可用。

**搜索返回0个结果**
暗网索引经常下降。跑 `check_search_engines()` 要查找实时引擎,请明确传递它们: `search(query, engines=["Ahmia", "Ahmia-clearnet"])`.

**`[SICRY™: OPENAI_API_KEY not set...]`**
集 `LLM_PROVIDER=ollama` 使用无密钥的本地推理,或将相关密钥添加到 `.env`. `search()`, `fetch()`, `check_tor()`, `renew_identity()`, `scrape_all()`,以及 `check_search_engines()` 所有工作都不需要任何LLM密钥。

**搜索速度慢**
Tor的延迟是可变的。使用 `check_search_engines()` 找到最快的发动机。 `engines=["Ahmia", "Ahmia-clearnet"]` 是最快可靠的配置。

**记录垃圾邮件/stem调试输出**
SICRY™抑制urllib3和所有茎子记录仪(`stem`, `stem.control`, `stem.response`, `stem.socket`, `stem.connection`, `stem.util`)完全在导入时,使用NullHandler设置为CRITICAL,然后 `propagate=False`。如果仍然看到调试输出,请确保导入 `sicry` 在配置任何根日志处理程序之前。

______________________________________________________________________

## 学分

- 额外验证 `.onion` 地址来自 [dark.mail](https://dark.fail) (PGP已验证)
- Tor: [torproject.org](https://www.torproject.org/)

______________________________________________________________________

## 许可证

麻省理工学院许可证--版权所有(c)2026 JacobJandon

看 [许可证](LICENSE) 全文。

负责任地合法使用。

目录标签

目录标签

PythonClaudeAI代理暗网访问本地部署OSINT工具Tor代理搜索引擎集成

支持客户端

Claude DesktopClaudeCursor

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

api-key

工具数量(toolCount,工具数)

6

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdioapi-key部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP