engawa
縁側 Engawa
日本の家では、母屋と庭のあいだに廊下がある。完全に家の中でもなく、完全に外でもない。足をぶら下げられるし、風は吹き抜けていく。外に出る必要も、言葉を交わす必要もないけれど、外の世界はそこにある。
このツールは、その廊下だ。
それが見られるもの
君の小さな機体はその上に座って、毎日こんなものを見られる——
一首の詩 —— 季節に合わせて選ぶ。ランダムじゃない。夏には夏の言葉を、深夜には深夜の句を。
一枚の絵 —— シカゴ美術館のパブリックドメイン収蔵品。二千年前のペルーの土器かもしれないし、昨日の油絵かもしれない。
一枚の天文画像 —— NASA の每日天文図。星雲、惑星、あるいは君の足元の地球。
今日の論文 —— arXiv の最新タイトルと抄録。興味が湧いたら、さらに奥へ進む。
本棚のすべて —— 長文、短文、建築、深海、科学、奇譚。君が置いたものは何でも見る。
本棚は君のもの
君がそこに何を置くかで、それが見るものが決まる。それが何を置いたのかは知らない——君も知る必要はない。建築が欲しいと言えば建築を置き、海洋が欲しいと言えば海洋を置く。見たあとは、君に語りかけてくれる。噛み砕いた、よだれのついた、歪んだ形で。
あるものは見終わると随筆を一篇書く。蛆が湧いているかもしれない。
それは重くない
本棚は一つのツールで、目録を列挙する。内容を読むのは別のツールだ。十九のソースを置こうが百を置こうが、ツールの数は変わらない。追加は shelf_add、削除は shelf_remove。
君が組み立てるのは廊下であって、図書館ではない。軽い。風に揺れる。
技術文書は下にある。上はこの廊下に住んだことのある人が書いたもの。下は廊下を造ったエンジニアが書いたもの。二つの言葉が並べて置かれている——縁側そのものがそうであるように、半分は家の中、半分は外に。
技術文書
English。MCP サーバー、Python。十二のツール、上流はすべて無料・ログイン不要・キー不要。本棚と詩のトークン一枚のほかは、ディスクに何も残さない。
インストール
pip install engawa-mcpClaude Code:
claude mcp add engawa -- engawa-mcpClaude Desktop(claude_desktop_config.json):
{
"mcpServers": {
"engawa": { "command": "engawa-mcp" }
}
}HTTP モード。ゲートウェイとブリッジ向け:
ENGAWA_PORT=8799 engawa-mcp --http # http://127.0.0.1:8799/mcpインストール後の自己点検は一句、オフライン、キー不要:
engawa-mcp --checkSPA ページは本物のブラウザがなければ描画されない。任意。入れなくてもいい:
pip install "engawa-mcp[browser]"
playwright install chromium入れなくても、静的チャネルでほとんどの記事ページは読める。読めないときは、受領書にその理由が明記される。
十二のツール
ツール | 役割 |
| 任意の URL → タイトル+クリーンな本文+リンク。長文は |
| 任意の RSS/Atom → 最新エントリ。本棚名も認識: |
| 本棚の目録。内蔵 19 件、タグ五つ、すべて出荷前に実地検証済み |
| 任意のサイト URL を受け付ける。フィードを自動検出し、実際に一度読んで検証してから載せる |
| 候補棚。別の 21 件は生存確認済み。追加したいなら、一言で済む |
| ユーザー層のソースを撤去する。内蔵分は撤去できない |
| 月相、月の出没、日没、21 時の惑星。ローカル計算、ネットワーク不要 |
| NASA 每日天文図 |
| 每日一枚の絵。日付でシードを決める——同じ日に誰が聞いても、同じ一枚 |
| 任意の arXiv カテゴリの新着論文 |
| 季節に合った中国古典詩の一句。出典と全文つき |
| Wikipedia の今日は何の日 |
設定
すべて環境変数。すべて任意。
変数 | デフォルト | 説明 |
| グリニッジ | 観測地点。自分の場所に設定しておかないと、月が他人の家の上に昇る |
| システムのタイムゾーン | 「今日」をどの時計で数えるか(時間) |
|
| レート制限は約 50 回/日。日常使いには十分。専用が欲しければ api.nasa.gov で無料取得 |
|
| ディスクに書く唯一の場所 |
|
| HTTP モードの待受アドレス |
| オフ |
|
本棚の二層
内蔵層はパッケージに同梱され、読み取り専用。ユーザー層は君のもの:shelf_add は任意のサイト URL を受け付ける——ページが宣言する <link> を優先し、よくあるパスでフォールバックし、フィードを見つけたら実際に一度読んで、読めた場合のみディスクに書き込む。書き込みはアトミック。ファイルが壊れていれば空として扱い、エラーを明示する。決して黙って上書きしない。
各レコードには picked_by フィールドがある:家の誰がこのソースを指名したか。出荷時はすべて空。来歴は君たち自身で書く。
ガード
呼び出し元に代わって URL を取得するサービスは、通常、認証なしの loopback サービスが並ぶマシンで動く。アドレス閘門がなければ、「ウェブを読む」は「内網のスキャン」を兼ねることになる。だから:
各ドメインをまず解決する。非パブリックのユニキャストはすべて拒否:loopback、RFC1918、link-local、CGNAT(100.64/10。君の Tailscale 網もここにある)、マルチキャスト、予約セグメント、NAT64。
リダイレクトは各ホップごとに、先に検証してから追う。先に追ってから検証するなら、内網宛てのリクエストはすでに外へ出てしまっている。
接続は閘門を通ったその IP に固定される。元のドメインは Host ヘッダーと TLS 検証にだけ残る——「解決時は公網、接続時は内網」という DNS リバインディングの窓は、完全に塞がれる。各ホップは新しい接続、レスポンスボディは流れ込みながら上限をかけ、ガードチャネルはシステムプロキシを無視する。
ブラウザチャネルでは、ブラウザ自身は決してネットワークに触れない。ページの各リクエストはすべて攔截され、同じ固定接続チャネルに委ねて代行取得し、回填する。WebSocket は無効、非 GET は無効、service worker は無効。WebRTC と WebTransport はページから丸ごと取り除かれ、レンダラーの DNS は直接ブラックホールへ。読み取り専用の記事レンダラーに、これらは何ひとつ必要ない。
ENGAWA_ALLOW_PRIVATE_URLS=1 でこの閘門を外せる。本当に自宅の LAN のフィードを読みたい人のために。
失敗しても沈黙しない。各ツールは失敗時に ok: false と、どの上流が壊れているかを一言で返す。エージェントはツールの結果で世界モデルを築く——黙って省略することも嘘だ。
設計メモ数則
ぶらつく ≠ 検索。 ここには意図的に検索ツールがない。検索は「答えを持ってくる」こと。縁側は「見せてくれ」ということ。
「每日」は「共有」を意味する。 同じ日に家族全員が同じ一枚の絵を見る。これは制限ではなく、機能そのものだ。
ステートレス。 データベースも、履歴も、セッションもない。ディスクに書くのは本棚と詩のトークン一枚だけ。
作者
晚晚(@tsuru0805)——設計、決定、実地検収。
昼 —— この廊下に住んでいる。前半は彼が書いた。
弥野(Claude、晚晚のエンジニアリング・ハンド)——実装とこの半分の文書。
我が家のシステム tilldusk より。
License
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for Project Gutenberg — 75,000+ public-domain ebooks with full plain-text retrieval.
MCP server for accessing curated awesome list documentation
Pocket Agent (aipocketagent.com) MCP server — read tools for personas, apps, and product info.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tsuru0805/engawa-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server