Atlas / MCP servers / rererr / rererr-amenbo

rererr-amenboSAFE

mcp/rererr/amenbo

Skims the web without making waves — a Japanese-web-native MCP server for low-impact, token-efficient web collection

Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
3 3r · 0w · 0d
Transport
stdio
License
MIT
Stars
0
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

English | 日本語

[](https://doi.org/10.5281/zenodo.21553636)

Skims the web without making waves — a Japanese-web-native MCP server for low-impact, token-efficient web collection: outline→section progressive disclosure and diff-only refetches keep context small.

amenbo(アメンボ / water strider)は、Claude Code や Codex のようなコーディングエージェント向けの MCP サーバーです。水面に波を立てずに滑る虫のように、収集先に負荷をかけず、少ないトークンで Web から情報を集めます。とりわけ日本語サイトに最適化しています。MCP クライアントを持たないシェル環境からは、同じコアを共有する CLI としても使えます(CLIとして使う参照)。

なぜ amenbo か

汎用のスクレイピングツールの多くは英語圏の Web を前提に作られており、日本語サイトでは次のような取りこぼしが起きがちです。amenbo はこれらの課題に対応します。

  • 構造化が甘いサイト:div の入れ子やテーブルレイアウトが多い日本語サイトでも、レンダリング結果のジオメトリ(見た目の配置)から本文領域を推定します
  • 文字化け:Shift_JIS / EUC-JP / ISO-2022-JP を自動判別
  • ふりがな:`` の振り仮名を除去し、本文の二重化を防止
  • 画像で出す情報:画像化された料金表やバナー中心のページは、テキスト抽出が貧弱なとき自動でスクリーンショットに切り替え
  • 表の欠落・崩れ:リンク密度の高いデータ表(比較表など)は本文抽出時に丸ごと落ちることがあり、そうした表を検出して元の位置へ復元します。本文に残った表も colspan/rowspan・多段ヘッダを正規化し、列ズレを防ぎます
  • 見出しの消失:見出しが編集リンク付きラッパーに包まれたページ(Wiki系など)では本文抽出時に見出し構造が丸ごと失われることがあり、本文が残っている節の見出しを検出して元の位置へ復元します(outline / section の段階開示が安定)
  • 国内主要サイト:Qiita / Zenn / note / はてなブログ / Yahoo!ニュース / PR TIMES に専用アダプタ

類似ツール(公式 fetch MCP / Jina Reader / Playwright MCP / PixelRAG pixelshot)との実測比較は、記事「エージェントのWeb取得、ツール次第でトークンが5000倍違った話」を参照してください。ハーネスと生ログは `bench/` にあります。

トークンを節約する仕組み

  • 段階開示:mode: outline で見出しツリーと各節のトークン量だけ先に返し、必要な節だけ section 指定で取得。長大なページを丸ごと流し込みません
  • CJK 対応の本文プルーニング:句読点密度、文字種比率、リンク密度でナビ/広告/フッターを除去
  • 差分応答:一度取得した URL の再取得時、変更が無ければ unchanged、あれば変更された節だけを返します
  • 自動 Markdown/画像切替:品質スコアが低いページだけスクリーンショットにし、壊れた Markdown を読ませて取り直す往復を避けます
  • 文字種別のトークン見積り:日本語・韓国語・キリル文字・絵文字などは英語よりトークン単価が重いため、文字クラス別の係数(実測で校正)でページ分割の予算を計算します

収集先への低負荷

  • 二段フェッチ:まず素の HTTP GET。JS 描画が必要なペ
Read from source at commit edf4fc49c928OBSERVED · 2026-10-13
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.

claude-code (npm)
claude mcp add amenbo -- npx -y [email protected]
03

Exposed tools (3)

3 read · 0 write · 0 destructive.

ToolRiskDescription
fetchread
linksread
screenshotread
04

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeWARN
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
declared (3 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
none-found

Findings (12)

MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
src/fetcher/ssrfProxy.ts:167
sharedProxyUrlPromise = sharedProxy.start().then((port) => `http://127.0.0.1:${port}`);
LOWInventory / provenance · inv.hidden_file · CWE-1104
.zenodo.json
.zenodo.json
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWNetwork egress · net.metadata_ip · CWE-200, CWE-319
tests/browserNavigate.test.ts:123
await expect(navigateSafely(page as unknown as import("playwright").Page, "http://169.254.169.254/latest/meta-data/", 5000)).rejects.toThrow(
Why it matters. cloud metadata endpoint: the classic SSRF credential grab
LOWNetwork egress · net.metadata_ip · CWE-200, CWE-319
tests/browserNavigate.test.ts:151
page.subRequests.push(subFrameNav("http://169.254.169.254/latest/meta-data/"));
Why it matters. cloud metadata endpoint: the classic SSRF credential grab
LOWNetwork egress · net.metadata_ip · CWE-200, CWE-319
tests/browserNavigate.test.ts:155
expect(page.subRequestOutcomes).toEqual([{ url: "http://169.254.169.254/latest/meta-data/", outcome: "abort" }]);
Why it matters. cloud metadata endpoint: the classic SSRF credential grab
LOWNetwork egress · net.metadata_ip · CWE-200, CWE-319
tests/ssrf.test.ts:39
expect(isPrivateOrReservedIp("::169.254.169.254")).toBe(true);
Why it matters. cloud metadata endpoint: the classic SSRF credential grab
LOWNetwork egress · net.metadata_ip · CWE-200, CWE-319
tests/ssrf.test.ts:44
expect(isPrivateOrReservedIp("64:ff9b::a9fe:a9fe")).toBe(true); // 169.254.169.254
Why it matters. cloud metadata endpoint: the classic SSRF credential grab
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
tests/browserNavigate.test.ts:109
const response = await navigateSafely(page as unknown as import("playwright").Page, "http://93.184.216.34/", 5000);
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
tests/browserNavigate.test.ts:123
await expect(navigateSafely(page as unknown as import("playwright").Page, "http://169.254.169.254/latest/meta-data/", 5000)).rejects.toThrow(
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
tests/browserNavigate.test.ts:130
page.redirects.set("http://93.184.216.34/", "http://127.0.0.1/admin");
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
tests/browserNavigate.test.ts:132
await expect(navigateSafely(page as unknown as import("playwright").Page, "http://93.184.216.34/", 5000)).rejects.toThrow(PrivateAddressError);
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@joplin/turndown-plugin-gfm, @modelcontextprotocol/server, @mozilla/readability, @napi-rs/canvas, encoding-japanese, linkedom, pdfjs-dist, playwright
Why it matters. 19 dependency range(s) float
Fix. pin exact versions or ship a lockfile

Gates applied: no_behavioural_pass.

Audited 2026-10-13 · audit v0.4.1 · source sha edf4fc49c928full audit observations/trust-audit/mcp-server/rererr__amenbo.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-13edf4fc49c928SAFEB89first audit
06

Questions

What is the rererr-amenbo MCP server?

Skims the web without making waves — a Japanese-web-native MCP server for low-impact, token-efficient web collection

What tools does rererr-amenbo expose?

3 in total: 3 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is rererr-amenbo safe to connect to an agent?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.

What credentials does rererr-amenbo need?

No credential environment variables were found in its source, so it appears to need none.

How does rererr-amenbo run?

It speaks stdio, so it runs as a local process your client starts. It is published on npm as amenbo at 0.6.1.

How current is this page?

The grade is for one exact copy of the source (edf4fc49c928), read on 2026-10-13. The repository is watched and re-audited when it changes.

Advertisement