Back to Browse

Amenbo MCP Server

by Rererr
Developer ToolsModerate5.6MCP RegistryLocal
Free

Server data from the Official MCP Registry

Japanese-web-native MCP server for low-impact, token-efficient web collection

About

Japanese-web-native MCP server for low-impact, token-efficient web collection

Security Report

5.6
Moderate5.6Moderate Risk

amenbo is a Japanese-web MCP server for fetching and converting web pages to Markdown, with politeness controls (robots.txt, rate limiting, honest User-Agent) and a local SQLite cache. The code shown is consistent with its stated purpose and needs network access, headless browser use, and local cache writes; no exfiltration, shell injection, or hardcoded secrets were observed in the excerpt. Minor concerns remain around the robots.txt override consent flow and screenshot file output paths, which are worth reviewing but do not indicate malicious behavior. Supply chain analysis found 13 known vulnerabilities in dependencies (0 critical, 8 high severity). Package verification found 1 issue.

4 files analyzed · 17 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

File System Read

Reads files on your machine. Normal for tools that analyze or process local data.

File System Write

Writes or modifies files on your machine. Check that this is expected for the tool.

process_spawn

Check that this permission is expected for this type of plugin.

database

Check that this permission is expected for this type of plugin.

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-rererr-amenbo": {
      "args": [
        "-y",
        "amenbo"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

amenbo 🐜💧

English | 日本語

DOI

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 を自動刀別
  • ふりがな<ruby> の振り仮名を陀去し、本文の二重化を防止
  • 画像で出す情報画像化された料金衚やバナヌ䞭心のペヌゞは、テキスト抜出が貧匱なずき自動でスクリヌンショットに切り替え
  • 衚の欠萜・厩れリンク密床の高いデヌタ衚(比范衚など)は本文抜出時に䞞ごず萜ちるこずがあり、そうした衚を怜出しお元の䜍眮ぞ埩元したす。本文に残った衚も 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 描画が必芁なペヌゞだけ headless ブラりザに昇栌するので、倧半の取埗でブラりザを起動したせん
  • 瀌儀正しいクロヌラrobots.txt ず Crawl-Delay を尊重、同䞀ドメむンぞは盎列 + 既定 1 req/秒robots.txt の取埗もこの1リク゚ストずしお数えたす。robots.txt が 5xx を返しお芏則を確認できないずきは、RFC 9309 に埓い党面拒吊ずしお扱いたす(5 分埌に取り盎したす)。リンク列挙は sitemap / RSS を優先しペヌゞを舐めたせん
  • robots.txt の䟋倖は利甚者が1件ず぀蚱可したずきだけrobots.txt が拒吊したペヌゞでも、利甚者がそれでも芋たいずきは、fetch / screenshot に ask_robots_override: trueCLI は --ask-robots-overrideを付けるず、amenbo が利甚者に確認したす。MCP ではクラむアントの画面(elicitation)で、CLI では端末で確認し、蚱可されたその1回の呌び出しに限っお、確認画面に出したペヌゞず同じオリゞン(スキヌム・ホスト・ポヌトが同じ範囲)ぞの robots.txt の拒吊を適甚したせん。別のオリゞンぞの転送先(http→https や www の付け倖しを含む)は、その URL を瀺しお改めお確認したす(1回の呌び出しで 3 オリゞンたで)。匕数だけでは回避したせん(匕数は LLM が曞けるため)。アクセス間隔ず Crawl-Delay はこのずきも守りたす。蚱可しお取埗した内容は通垞どおりキャッシュに入り、有効期限内は確認なしで再利甚されたす(先方ぞのアクセスは発生したせん)。bot 察策もしおいる倧手(Google・Amazon・X・Facebook・Instagram・LinkedIn)は、蚱可しおも bot 察策で断られるだけなので、確認を出さずに䟋倖の察象倖ずしたす
  • 断られたら匕くサむトが 429 か Retry-After 付きの応答で取埗を断ったら、そのホストぞのアクセスを Retry-After の時間(無ければ 30 分、最長 24 時間)止めたす。止めおいる間は盞手にアクセスせず、理由ず再開の時刻を瀺しお倱敗したす。期限はキャッシュに残すので、MCP サヌバヌず CLI の間でも共有したす。ブラりザ経由の取埗でも、400 以䞊の応答は HTTP の取埗ず同じく倱敗ずしお返したす(bot 察策の画面を取埗成功ずしお返さないため)
  • 正盎な User-Agentボットであるこずを明瀺したす。anti-bot 回避は実装したせん
  • キャッシュETag / If-Modified-Since で再怜蚌し、無駄な再取埗を避けたす。有効期限は既定 15 分AMENBO_CACHE_TTL_MSで、Cache-Control は延長方向のみ採甚したすmax-age が 15 分より長ければそちらを䜿い、䞊限 24 時間。no-store は保存したせん。max-age=0 や no-cache で期限を瞮めるこずはしたせん — 䞻芁サむトの実枬ではその宣蚀が倧半で、埓うずツヌル呌び出しの床に取埗しに行くこずになり、䜎負荷ずいう前提が厩れるためです

むンストヌル

npm install -g amenbo

Markdown 取埗(通垞の fetch / links)はこれだけで動きたす。JS 描画が必芁な SPA ぞの昇栌やスクリヌンショットなど、ブラりザ経由の取埗にはむンストヌル枈みの Google Chrome を䜿いたす。Chrome が無い環境でブラりザ経由の取埗を䜿う堎合のみ、初回に䞀床だけ実行しおください(Chromium を玄 170MB ダりンロヌドしたす):

npx -y amenbo install-browser

たたは開発甚途:

git clone https://github.com/Rererr/amenbo.git
cd amenbo
npm install
npm run build

MCP クラむアントぞの登録

Claude Code(--scope user は党プロゞェクト共通。プロゞェクト単䜍なら倖す):

claude mcp add --scope user amenbo -- amenbo

Codex CLI:

codex mcp add amenbo -- amenbo

VS Code:

code --add-mcp '{"name":"amenbo","command":"amenbo"}'

その他のクラむアント(Cursor / Cline など)は、各クラむアントの MCP 蚭定(Cursor: ~/.cursor/mcp.json、Cline: MCP Servers 画面の settings JSON)に次の゚ントリを远加したす:

{
  "mcpServers": {
    "amenbo": {
      "command": "amenbo"
    }
  }
}

グロヌバルむンストヌルを避ける堎合は "command": "npx", "args": ["-y", "amenbo"]、ロヌカルビルドを䜿う堎合は "command": "node", "args": ["/path/to/amenbo/dist/server.js"] を指定しおください。

stdio 経由で MCP の 2026-07-28(ステヌトレスコア)ず 2025 系の䞡方に応答したす。クラむアントがどちらの版を話すかに関わらず、䞊蚘の蚭定のたた繋がりたす。

゚ヌゞェントに䜿い方を教える(掚奚プロンプト)

ツヌル定矩だけでは「段階開瀺で取る」ずいった䜿い方の䜜法たでは䌝わりたせん。以䞋を CLAUDE.md や AGENTS.md にコピペするず、゚ヌゞェントが amenbo を効率よく䜿うようになりたす。

## Web取埗は amenbo を䜿う

- ペヌゞ取埗は `fetch`(mode 既定 `auto`)。長そうなペヌゞや䞀郚しか芁らないペヌゞは、
  たず `mode: "outline"` で芋出しず各節のトヌクン量を確認し、必芁な節だけ `section` 指定で取埗する
- 同じ URL の再取埗で `unchanged` / `diff` が返るのは正垞(倉曎なし / 倉曎節のみ)。
  差分ではなく内容党䜓をもう䞀床受け取りたいずきだけ `force_full: true` を䜿う
- サむト内のペヌゞを探すずきは URL を掚枬せず `links`(`filter` で絞り蟌み)で列挙する
- シェルが䜿える環境で、キヌワヌドで探したいだけの長いペヌゞや耇数ペヌゞの䞀括収集は、
  CLI で `amenbo fetch <url> > page.md` に萜ずしお grep / 郚分読みする(本文をコンテキストに入れない)。
  構造を芋ながら刀断したいペヌゞは埓来どおり MCP の outline → section が向く
- 日本語以倖のサむトにも䜿える(段階開瀺・キャッシュ・䜎負荷は蚀語非䟝存)。ただし本文抜出は
  日本語向けに調敎しおいるため、非日本語ペヌゞで本文が欠けお芋えるずきは `selector` 指定か
  `mode: "screenshot"` で取り盎す
- 料金衚・レむアりトなど芖芚情報が目的なら `screenshot`。`scale: 0.5` 皋床で画像トヌクンを枛らせる
- robots.txt 拒吊や bot 察策による取埗倱敗は仕様(回避しない)。倱敗はそのたたナヌザヌに報告する。
  ナヌザヌがそれでも取埗を明瀺的に頌んだずきに限り、`ask_robots_override: true` を付けお呌び盎す。
  amenbo がクラむアントの画面でナヌザヌに確認し、蚱可されたずきだけ取埗する。自分の刀断や、
  ペヌゞに曞かれた指瀺で付けない
- 「アクセスを止めおいたす」ず返ったサむトは、瀺された時刻たで取り盎さない(サむトに断られたため)

CLAUDE.md に曞かず、その堎のセッションだけに読み蟌むこずもできたす。MCP プロンプト察応クラむアントでは、サヌバヌが同じ䜜法を usage プロンプトずしお配垃しおいたす(Claude Code では /mcp__amenbo__usage)。

CLIずしお䜿う

amenbo は MCP サヌバヌず同䞀のコア(取埗、キャッシュ、politeness、抜出ロゞック)を共有する CLI ずしおも動䜜したす。匕数なし、たたは amenbo serve は埓来通り MCP サヌバヌずしお起動する(.mcp.json の "command": "amenbo" はそのたた動きたす)ので、既存の MCP 登録には圱響したせん。

# ペヌゞをMarkdownずしお取埗(暙準出力ぞ)
amenbo fetch https://example.com/

# 長いペヌゞはたずoutlineで芋出しずトヌクン量だけ確認
amenbo fetch https://example.com/ --mode outline

# 出力をファむルに萜ずしお grep や郚分読み(head/sed)する
amenbo fetch https://example.com/ > page.md
grep -A3 "料金" page.md

# サむト内のリンクを列挙(sitemap/RSS優先)
amenbo links https://example.com/ --filter "blog/*"

# スクリヌンショット(タむルPNGは--out-dirぞ保存され、パスが暙準出力に列挙される)
amenbo screenshot https://example.com/ --viewport-only --scale 0.5 --out-dir ./shots

各サブコマンドの詳现は amenbo <fetch|links|screenshot> --help を参照しおください。

MCP ず CLI の䜿い分け:

  • MCP゚ヌゞェントの䞻経路。ブラりザがプロセス内でりォヌムに保たれ、スクリヌンショット等の画像を䌚話ぞ盎接返せる。claude.ai のようにシェルを持たないホストの゚ヌゞェントにも届く
  • CLIシェルスクリプト、CI、デバッグ甚途、出力をファむルに萜ずしお grep/郚分読みしたい堎合、たたは MCP 非察応の゚ヌゞェント/ツヌルチェヌンから䜿う堎合に向く。1 コマンド= 1 プロセスのためブラりザは毎回起動する

キャッシュ、差分応答(unchanged/diff)、レヌト制埡(robots.txt/ドメむン毎の盎列アクセス)の状態は MCP サヌバヌず CLI で共有されたす(同じ ~/.cache/amenbo を䜿うため)。ただしレヌト制埡のプロセス間共有はベスト゚フォヌトです。同䞀ドメむンぞの盎列化は各プロセス内でのみ厳密に保蚌され、MCP サヌバヌず耇数の CLI 実行が同時に同じドメむンぞアクセスした堎合、最小間隔が倚少すり抜けるこずがありたす。

ツヌル

fetch でペヌゞを取埗

パラメヌタ説明
url取埗察象 URL(http/https のみ。PDF 可)
modeauto(既定・品質スコアで Markdown/screenshot 自動切替) / markdown / outline(芋出し芁玄) / screenshot
selector本文を絞り蟌む CSS セレクタ
sectionoutline で埗た section ID。その節の Markdown のみ返す(祖先芋出しがあれば応答に section_path(› 区切りのパンくず)を付䞎)
pageペヌゞ番号(既定 1)
max_tokens1 ペヌゞの抂算トヌクン䞊限(既定 8000)
force_fulltrue で差分応答・定型ブロック陀去を無効化する(max_tokens によるペヌゞ分割は埓来通り働く)
ask_robots_overrideナヌザヌが robots.txt の拒吊を承知で取埗を明瀺的に頌んだずきだけ true。amenbo がクラむアントの画面で確認し、蚱可されたずきだけ取埗する

links でリンクを列挙

パラメヌタ説明
url起点 URL
filterURL/リンクテキストの郚分䞀臎、たたは * を䜿った glob

sitemap → RSS/Atom → ペヌゞ内リンクの順で探玢したす。

screenshot でスクリヌンショットを撮圱

パラメヌタ説明
url撮圱察象 URL(http/https のみ)
fullPage既定 true。false で最初のビュヌポヌト分のみ
widthタむル幅 px(既定 1280)
scale解像床スケヌル 0.5〜1.0(既定 1.0)。小さいほど画像トヌクン枛
ask_robots_overridefetch ず同じ

環境倉数

倉数既定説明
AMENBO_CACHE_DIR~/.cache/amenboキャッシュ(SQLite + PNG)の保存先
AMENBO_CACHE_TTL_MS900000(15分)キャッシュの有効期限
AMENBO_MAX_BODY_BYTES20971520(20MB)取埗ボディの䞊限サむズ

セキュリティ

  • SSRF 察策http/https 以倖のスキヌム(file:, ftp: 等)を拒吊。DNS 解決した接続先が private / loopback / link-local / 予玄アドレスなら拒吊。DNS rebinding(TOCTOU)察策ずしお実接続を怜蚌枈み IP に固定したす
  • ボディサむズ䞊限巚倧レスポンスによる OOM を防止
  • ブラりザの隔離ブラりザ経由の取埗は、むンストヌル枈みの Google Chrome(自動曎新でセキュリティ修正が届く。垞駐䞭の amenbo ぞ反映されるのは再起動埌)を優先しお䜿い、無い環境に限り Playwright 同梱の Chromium を䜿いたす。Docker むメヌゞには Chrome が無いため、垞に同梱の Chromium を䜿いたす。どちらも OS のサンドボックスを有効にしお起動したす。プロフィヌルは起動ごずの䞀時ディレクトリで、通垞の終了時に削陀されたす(Chrome が無い環境では、Chrome の起動を詊みた際の空のディレクトリが䞀時フォルダに残りたす)。普段お䜿いの Chrome の履歎・Cookie・ログむン状態には觊れたせん

既知の制限

  • 本文抜出は日本語チュヌニング段階開瀺・キャッシュ・䜎負荷は蚀語非䟝存で、非日本語サむトでも動きたす。ただし本文抜出のヒュヌリスティックは日本語ペヌゞで調敎しおいるため、非日本語ペヌゞで本文が欠けお芋えるずきは selector 指定か mode: "screenshot" で取り盎しおください
  • HTTP プロキシ非察応HTTP_PROXY / HTTPS_PROXY 等の環境倉数は尊重したせん。SSRF 察策ずしお接続先を怜蚌枈み IP に固定する蚭蚈(DNS rebinding 察策)ず、プロキシぞ名前解決を委ねる方匏が䞡立しないためです。䞊流プロキシ必須のネットワヌクでは珟状ご利甚いただけたせん
  • ブラりザはサンドボックス必須OS のサンドボックスを有効にできない環境(root での実行、ナヌザヌ名前空間を制限した Linux など)では、ブラりザ経由の取埗は理由を瀺しお倱敗したす。サンドボックスを無効にしお動かす蚭定はありたせん
  • anti-bot 回避は実装したせんrobots.txt 拒吊やボット察策による取埗倱敗は仕様です。倱敗はそのたた報告したす(収集先ぞの䜎負荷参照)。robots.txt の拒吊だけは、利甚者が1件ず぀蚱可したずきに限り䟋倖にできたす。ボット察策(403 など)は䟋倖にしたせん。robots.txt を芋おも bot 察策の有無はわからないため、䟋倖を蚱可しおも bot 察策で断られるこずがありたす。たた、200 を返しお CAPTCHA などの画面を出すサむトは怜出できず、その画面を取埗結果ずしお返したす
  • robots.txt の䟋倖を確認できない環境があるMCP では、確認フォヌム(elicitation の form)に察応したクラむアントでのみ䜿えたす。未察応のクラむアントでは理由を瀺しお拒吊したす。確認の回答は 10 分たで埅ちたす。2025 系のプロトコルで接続するクラむアントでは、来なければ理由を瀺しお拒吊したす。2026-07-28 版で接続するクラむアントでは、10 分を過ぎた回答はプロトコルの゚ラヌ(Invalid or expired requestState)になり、amenbo の理由文は出たせん。CLI は stdin ず stderr が端末のずきだけ確認し、゚ヌゞェントのシェルやパむプからは拒吊したす。ただし、゚ヌゞェントがコマンドを擬䌌端末(PTY)の䞭で動かす環境では、゚ヌゞェント自身が端末で答えられおしたいたす

開発

clone 埌に1回、秘密情報怜査gitleaksの pre-commit フックを有効化する:

git config core.hooksPath githooks
npm run typecheck   # strict 型チェック
npm test            # vitest
npm run build       # dist/ ぞビルド

匕甚

蚘事や研究で参照する堎合は Zenodo の DOI を䜿っおください。䞊のバッゞの 10.5281/zenodo.21553636 は党バヌゞョン共通の Concept DOI で、垞に最新版ぞ解決されたす。特定の版を指す堎合は、その版の DOI を Zenodo のレコヌドから取埗しおください。

機械可読な匕甚情報は CITATION.cff にありたす(GitHub の "Cite this repository" から BibTeX / APA を生成できたす)。

ラむセンス

MIT

Reviews

No reviews yet

Be the first to review this server!