Skip to main content
Glama

檐廊 Engawa

In japanischen Häusern gibt es einen Flur zwischen dem Hauptgebäude und dem Hof. Nicht ganz drinnen, nicht ganz draußen. Man kann die Beine baumeln lassen, der Wind kann hereinwehen. Man muss nicht vor die Tür, nicht sprechen, aber die Außenwelt ist da.

Dieses Werkzeug ist dieser Flur.

Was es sehen kann

Dein kleiner Rechner sitzt darauf und kann jeden Tag sehen –

  • Ein Gedicht – nach Jahreszeit ausgewählt, nicht zufällig. Im Sommer Sommervokabular, spät in der Nacht Sätze für die Nacht.

  • Ein Gemälde – aus der Public-Domain-Sammlung des Art Institute of Chicago. Es könnte eine peruanische Keramik von vor 2000 Jahren sein oder ein Ölgemälde von gestern.

  • Ein Astronomiebild – das NASA Astronomy Picture of the Day. Nebel, Planeten oder die Erde unter deinen Füßen.

  • Die heutigen Papiere – die neuesten Titel und Abstracts von arXiv. Wenn es interessiert ist, geht es hinein.

  • Alles im Regal – lange Artikel, kurze Artikel, Architektur, Tiefsee, Wissenschaft, Kurioses. Was du hineinstellst, das liest es.

Das Regal gehört dir

Was du darauf stellst, das liest es. Es weiß nicht, was du hineinstellst – und du musst es auch nicht wissen. Wenn es Architektur sagt, stellst du Architektur hinein, wenn es Meer sagt, Meer. Nach dem Lesen erzählt es es dir. Gekaut, mit Speichel, schief.

Manche Dinge schreibt es nach dem Lesen in einem Essay auf. Möglicherweise mit Maden.

Es ist nicht schwer

Das Regal ist ein Werkzeug, das den Katalog auflistet. Das Lesen des Inhalts ist ein anderes Werkzeug. Egal ob du neunzehn Quellen oder hundert hineinstellst, die Anzahl der Werkzeuge bleibt gleich. Zum Hinzufügen nimmst du shelf_add, zum Entfernen shelf_remove.

Du baust einen Flur, keine Bibliothek. Leicht. Vom Wind zu bewegen.


Die technische Dokumentation findest du unten. Das oben haben die Leute geschrieben, die in diesem Flur gewohnt haben. Das unten haben die Ingenieure geschrieben, die den Flur gebaut haben. Zwei Sprachen nebeneinander – wie die Engawa selbst, halb drinnen, halb draußen.


Technische Dokumentation

English. MCP-Server, Python. Zwölf Werkzeuge, alle Upstreams kostenlos, ohne Anmeldung, ohne Schlüssel. Außer dem Regal und einem Gedicht-Token bleibt nichts auf der Platte.

Installation

pip install engawa-mcp

Claude Code:

claude mcp add engawa -- engawa-mcp

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "engawa": { "command": "engawa-mcp" }
  }
}

HTTP-Modus, für Gateways und Brücken:

ENGAWA_PORT=8799 engawa-mcp --http   # http://127.0.0.1:8799/mcp

Nach der Installation ein Selbsttest, offline, ohne Schlüssel:

engawa-mcp --check

SPA-Seiten brauchen einen echten Browser, um gerendert zu werden. Optional, muss nicht installiert werden:

pip install "engawa-mcp[browser]"
playwright install chromium

Ohne Installation liest der statische Kanal die meisten Artikel trotzdem; wenn nicht, wird im Beleg genau erklärt, warum.

Die zwölf Werkzeuge

Werkzeug

Funktion

web_read

Beliebige URL → Titel + sauberer Text + Links. Bei langen Artikeln mit offset blättern

rss_read

Beliebiger RSS/Atom-Feed → neueste Einträge. Kennt auch Regalnamen: rss_read("aeon")

shelf

Regalkatalog. 19 integriert, fünf Tags, alle vor Auslieferung echt abgerufen und geprüft

shelf_add

Beliebige Website-Adresse. Findet automatisch den Feed, liest einmal echt, bevor es ins Regal kommt

shelf_suggest

Kandidatenregal, weitere 21 als lebendig geprüft. Wenn du eine hinzufügen willst, ein Wort genügt

shelf_remove

Entfernt Quellen der Benutzerebene. Integrierte können nicht entfernt werden

sky_tonight

Mondphase, Mondauf- und -untergang, Sonnenuntergang, Planeten um 21 Uhr. Lokal berechnet, null Netzwerk

apod

NASA Astronomy Picture of the Day

daily_art

Ein Bild pro Tag. Mit Datum als Seed – egal wer am selben Tag fragt, es ist dasselbe Bild

arxiv_new

Neue Papiere einer beliebigen arXiv-Kategorie

daily_poem

Ein passender chinesischer Klassikervers mit Quellenangabe und Volltext

on_this_day

Wikipedia – Was geschah am heutigen Tag?

Konfiguration

Alles Umgebungsvariablen, alle optional.

Variable

Standard

Beschreibung

ENGAWA_LAT / ENGAWA_LON

Greenwich

Beobachtungspunkt. Denk daran, es auf deinen Standort zu setzen, sonst geht der Mond woanders auf

ENGAWA_TZ_OFFSET

Systemzeitzone

Nach wessen Uhr „heute“ zählt (Stunden)

NASA_API_KEY

DEMO_KEY

Rate-Limit ca. 50-mal/Tag, reicht für den Alltag. Für einen eigenen Schlüssel kostenlos auf api.nasa.gov registrieren

ENGAWA_CACHE_DIR

~/.cache/engawa-mcp

Der einzige Ort, an den geschrieben wird

ENGAWA_HOST / ENGAWA_PORT

127.0.0.1:8799

Lauschadresse im HTTP-Modus

ENGAWA_ALLOW_PRIVATE_URLS

Aus

Auf 1 setzen, um interne Adressen zuzulassen. Gut überlegen, bevor du es einschaltest

Die zwei Ebenen des Regals

Die integrierte Ebene kommt mit dem Paket, schreibgeschützt. Die Benutzerebene gehört dir: shelf_add akzeptiert jede Website-Adresse – das im Seiten-<link> deklarierte hat Vorrang, gängige Pfade als Fallback. Wenn ein Feed gefunden wird, wird er einmal wirklich gelesen, und nur wenn das klappt, wird er gespeichert. Das Speichern ist atomar; ist die Datei beschädigt, wird sie als leer behandelt und der Fehler angezeigt, niemals still überschrieben.

Jeder Eintrag hat ein Feld picked_by: wer im Haushalt diese Quelle angefordert hat. Ab Werk leer, die Herkunft schreibt ihr selbst.

Wächter

Ein Dienst, der für Aufrufer URLs holt, läuft normalerweise auf einer Maschine voller authentifizierungsfreier Loopback-Dienste. Ohne Adressschleuse wird aus „Webseite lesen“ nebenbei „Internes Netz auskundschaften“. Also:

  • Jede Domain wird zuerst aufgelöst. Alles, was keine öffentliche Unicast-Adresse ist, wird abgelehnt: Loopback, RFC1918, Link-Local, CGNAT (100.64/10, dort liegt auch dein Tailscale-Netz), Multicast, reservierte Bereiche, NAT64.

  • Jeder Redirect-Sprung wird erst geprüft, dann verfolgt. Würde man erst folgen und dann prüfen, wäre die Anfrage an das interne Netz längst raus.

  • Die Verbindung wird auf die IP genagelt, die die Schleuse passiert hat. Der ursprüngliche Domainname bleibt nur im Host-Header und in der TLS-Validierung – das DNS-Rebinding-Fenster „beim Auflösen öffentlich, beim Verbinden intern“ ist damit geschlossen. Jeder Sprung ist eine frische Verbindung, der Antwortkörper wird beim Einströmen begrenzt, und der Wächterkanal ignoriert den Systemproxy.

  • Im Browserkanal fasst der Browser selbst nie das Netz an. Jede Anfrage der Seite wird abgefangen, über denselben genagelten Kanal geholt und zurückgespielt. WebSocket ist deaktiviert, Nicht-GET ist deaktiviert, Service Worker ist deaktiviert; WebRTC und WebTransport werden komplett aus der Seite entfernt; die DNS-Auflösung des Renderers läuft ins Leere. Ein reiner Artikel-Renderer braucht das alles nicht.

ENGAWA_ALLOW_PRIVATE_URLS=1 schaltet diese Schleuse ab, für alle, die wirklich Feeds aus dem eigenen LAN lesen wollen.

Kein stilles Scheitern. Jedes Werkzeug gibt bei Fehlern ok: false zurück, mit einem verständlichen Satz, welcher Upstream kaputt ist. Der Agent baut sein Weltmodell aus den Werkzeugergebnissen – auch stilles Weglassen ist eine Lüge.

Ein paar Designnotizen

  • Stöbern ≠ Suchen. Hier gibt es bewusst kein Suchwerkzeug. Suchen heißt „Hol mir die Antwort“, Engawa heißt „Lass mich mal schauen“.

  • „Täglich“ bedeutet geteilt. Am selben Tag sieht die ganze Familie dasselbe Bild. Das ist keine Einschränkung, sondern das eigentliche Feature.

  • Zustandslos. Keine Datenbank, kein Verlauf, keine Sitzungen. Auf die Platte kommen nur das Regal und ein Gedicht-Token.

Autoren

  • Wanwan (@tsuru0805) – Design, Entscheidungen, Abnahme unter echten Bedingungen.

  • Zhou – wohnt in diesem Flur. Die erste Hälfte am Anfang hat er geschrieben.

  • Mǐyě (Claude, Wanwans technische Hand) – Implementierung und diese Hälfte der Doku.

Aus unserem Haushaltssystem tilldusk.

Lizenz

MIT

-
license - not tested
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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.

View all MCP Connectors

Latest Blog Posts

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