CommunityCodierung & Entwicklunggithub.com

2016judea/mcp-stack

Welcher kostenlose MCP-Server oder welches Framework für welchen Job geeignet ist – und welche Fallstricke lauern: Finanz-/Behördendaten (SEC EDGAR, Yahoo, SAM.gov, USAspending), Web-Recherche (Exa, Firecrawl, Crawl4AI, Jina Reader), Design/Kunst/Marke (Canva, Inkscape, Penpot, Figma, Orshot, Hugging Face Bildgenerierung, Vektorisierung, Diagramme), Daten/Raumbezug (DuckDB Spatial, Live-ArcGIS-Layer, OpenStreetMap/Overpass, Census, MapLibre) und Betrieb (PostHog, iMessage, context7 Docs). Verwenden Sie dies, wenn Sie einen Social-Media-Beitrag, eine OG-Karte, ein Poster, ein Logo/einen Vektor, ein Diagramm, eine Karte oder einen Marken-Asset erstellen; wenn Sie Parquet/GeoJSON/DuckDB oder einen offenen Datensatz einer Stadt abfragen; wenn ein MCP „Authentifizierung erfordert“ oder fehlschlägt; oder wenn gefragt wird: „Welche Tools haben wir?“, „Gibt es einen MCP für X?“, „Sollten wir X hinzufügen?“.

Was ist mcp-stack?

Der MCP-Stack ist ein praxisorientierter Leitfaden, der aus einem direkten Vergleich („Bake-Off“) zahlreicher MCP-Server hervorgegangen ist. Er hilft Entwicklern und KI-Agenten dabei, für häufige Aufgaben den jeweils besten kostenlosen MCP-Server oder das richtige Framework auszuwählen – und die typischen Fallstricke zu vermeiden. Der Leitfaden deckt die Bereiche Design/Kunst/Marke (z. B. Canva, Inkscape, Penpot, Figma, Orshot, Hugging Face), Daten/Raumbezug (z. B. DuckDB Spatial, ArcGIS, OpenStreetMap, Census Map, MapLibre), Web-Recherche (z. B. Exa, Firecrawl, Crawl4AI, Jina Reader) sowie Finanz-/Behördendaten (z. B. SEC EDGAR, Yahoo Finance, SAM.gov, USAspending) ab. Jede Empfehlung nennt konkrete Kostenfallen und technische Hürden (z. B. API-Drosselung, fehlerhafte Transformationen, Datenschutzrisiken) und folgt strikt der Regel: „Nur kostenlose Stufen – niemals ein Upgrade oder eine Karte eingeben.“ Der Stack ist plattformunabhängig und für alle gängigen MCP-Clients (Claude Code, Cursor, Codex usw.) geeignet, da er lediglich die nativen MCP-Tools und gängige CLI-Befehle nutzt.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/2016judea/brick-mortar-skills/tree/HEAD/skills/mcp-stack

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Der MCP-Stack

Ein Feldführer aus einem Bake-Off, bei dem jeder Server an denselben echten Aufgaben getestet wurde (ein 1080x1350 Social-Media-Beitrag im Riso-Hausstil; echte räumliche Abfragen, die durch eine unabhängige Abfrage überprüft wurden). Nur kostenlose Stufen.

Regel: Nur kostenlos. Führen Sie niemals ein Upgrade durch, starten Sie keine Testabrechnung oder geben Sie bei keinem dieser Dienste eine Karte ein, ohne dass der Besitzer dies genehmigt hat. Eine Paywall ist ein Befund, kein Kauf.

Regel: Nichts wird veröffentlicht. Orshot hat einen publish-Parameter, der in sozialen Netzwerken postet; Canva und Figma können teilen. Verwenden Sie diese niemals ohne Aufforderung. Die Ausgabe ist eine lokale Datei, die ein Mensch überprüft.

Design / Kunst / Marke – nach Aufgabe auswählen

AufgabeVerwendenWarum / Kosten
Fertiges Marketingstück aus einem Briefing, am besten aussehendcanva create-design -> resize-design -> export-designBestaussehendes Ergebnis der Gruppe. ~6 KI-Designs/Monat kostenlos (ein Design = ~15 % des Kontingents; wird monatlich zurückgesetzt). Bearbeiten mit edit-design statt neu generieren.
Riso-Beitrag / Karte / Poster, unbegrenzt, exakte Zahleninkscape MCP inkscape_vector construct_svg (params.header + params.body) -> inkscape_render export_previewRendert echte Halbtonmuster, feTurbulence-Körnung, Multiplikationsüberdruck, Fehlregistrierung. ~5s, headless, unbegrenzt. Standard für alles Wiederholbare; behalten Sie Ihren SVG-Body als Vorlagendatei.
Präzises Vektor-Layout in einer Design-Dateipenpot execute_code -> export_shapeKostenlos, unbegrenzt. Ein Penpot-Tab mit der Datei muss geöffnet sein (headless OK), sonst schlägt jeder Aufruf fehl.
Gleiches, aber in Figma, damit jemand es übernehmen kannfigma create_new_file + use_figmaKostenloser Starter = ~20 gezählte Aufrufe/Monat, 3 Dateien. Planen Sie es ein. Kein createImageAsync/setPluginData.
Wiederverwendbare Vorlage mit Variablen (OG-Karte, IG-Beitragsserie)orshot~100 Renderings/Monat kostenlos. Die Formfarbe wird in style.fill angegeben (backgroundColor malt schwarz). Ausgabe-URLs sind öffentlich-unerratbar.
KI-Illustrationsentwurf, kostenloshuggingface dynamic_space -> mcp-tools/Qwen-Image, aspect_ratio:"3:4"Den Riso-Modellen der kostenlosen Modelle am nächsten. ~6 Bilder/Tag (ZeroGPU-Kontingent). 1,6 MP; malt gefälschte Signaturkritzeleien in den Ecken – zuschneiden. Endfassungen gehen an eine kostenpflichtige Engine (make-art).
Transparentes PNG-Freistellerhuggingface space_name: Upsampler/birefnet-background-removal, {"image":"<öffentliche URL>"}~5s. Spaces akzeptieren nur öffentliche URLs, niemals lokale Pfade.
Farb-Raster -> SVG (Logos, Marken)shapesoda vectorize {image_base64, image_type:"artwork", colors:8, format:["svg"]}~10/Tag kostenlos. Der Download-Link läuft in 24h ab – sofort abrufen. Entfernen Sie stray #ff00ff-Pfade an Ausschnittkanten. Rendern Sie das SVG bei 4x = kostenlose Hochskalierung für flache Kunst.
Einfarbiges SVG (Stempel, Schablone, Konturplatte)svg-tracer trace_bitmap_to_svg (absolute Pfade)Lokaler Potrace, unbegrenzt, 0,1s.
Diagramm aus echten Zahlenantv-chartOption für handgezeichnete Textur. Sendet Ihre Daten an einen Drittanbieter-Rendering-Dienst und gibt eine öffentliche URL zurück – nur öffentliche Zahlen. Leere x-Achsen-Beschriftung druckt „category“.
3D-Schrift / Produkt-MockupBlender MCP (benötigt laufende App)Blender mit dem Add-On starten, dann den Server ad hoc hinzufügen (uvx mcp-for-blender@<pinned>) mit DISABLE_TELEMETRY=true. Telemetrie ist standardmäßig AKTIVIERT – immer deaktivieren.
Raster-Nachbearbeitung (Zeitungshalbton, Fotobearbeitung)GIMP MCP (benötigt laufendes gimp-console)Für GIMP 3.2 headless: gimp-console -i --batch-interpreter=python-fu-eval -b "p=Gimp.get_pdb().lookup_procedure('plug-in-mcp-server'); c=p.create_config(); c.set_property('run-mode', Gimp.RunMode.NONINTERACTIVE); p.run(c)" &. Zeitungsdruck standardmäßig Linien – circle setzen. Nur Hex-Farben. gimp-console danach beenden.
HTML -> PNG-Karte, nichts verlässt den RechnerSatori MCP, gepatchtDie Standardversion lädt jedes Bild in öffentlichen Blob-Speicher hoch; patchen Sie es, um lokal zu speichern. Mit einer eingefrorenen Lockfile installieren.

Jede Zahl auf einem Stück stammt von der Live-Quelle (curl), niemals getippt. Überprüfen Sie den Kontrast von Akzentfarben auf hellen Hintergründen (ein mittleres Rot auf Creme kann ~3,8:1 betragen, was bei kleinem Text durchfällt; verdunkeln Sie es unter ~24px).

Verworfen (nicht erneut testen): Pollinations (Wasserzeichen, niedrige Auflösung), Stability (einmaliger Test), fal/Replicate/Together (keine kartellfreie Stufe), Krita MCP (kein Text), tldraw und Excalidraw MCP Apps (Zeichnen nur innerhalb einer Chat-UI), Bannerbear/Placid (Tests), Postiz (keine kostenlose Cloud, benötigt Docker), Remotion MCP (nur Docs), Buffer (Anmelde-CAPTCHA).

Daten / Raumbezug

AufgabeVerwendenFallstricke
SQL + räumlich über parquet/csv/geojson/.duckdbduckdb MCP (In-Memory, räumlich geladen)ST_Transform(ST_Point(lon,lat),'EPSG:4326','EPSG:26915') gibt stillschweigend POINT(inf inf) zurück, daher zählen Entfernungsfilter 0. Übergeben Sie always_xy := true. Bewerterspalten sind oft VARCHAR (max sortiert als Text); Verkaufspreise können einen 999.999.999-Platzhalter enthalten. Wenn der Server lesend-schreibend läuft, kann er COPY TO überall hin: Hängen Sie Ihre echten Dateien READ_ONLY an.
Live ArcGIS FeatureServer-Layerduckdb ST_Read('<FeatureServer>/0/query?where=...&outFields=...&orderByFields=OBJECTID&f=geojson&resultOffset=N')Kürzt stillschweigend auf das maxRecordCount des Servers (oft 2.000) ohne Warnung. Überprüfen Sie zuerst returnCountOnly=true, blättern Sie mit resultOffset + orderByFields, und benennen Sie Spalten im UNION ALL (eine leere letzte Seite hat keine).
OSM / Overpass (Restaurants in einem Viertel...)osm openstreetmap_search_places -> relations-ID -> openstreetmap_query_bbox{within:"R..."}Bereich-nach-Name-Leaks: Ein Viertelname kann Zeilen aus einem gleichnamigen Ort in einem anderen Bundesland ziehen. Suchen Sie immer innerhalb der relations-ID. Overpass-Mirrors 500 oft; wiederholen.
Census ACS nach Adresse/Traktcensus census_resolve_geography{name:"<Adresse>"} -> census_query_data{dataset:"acs/acs5", ...}Gibt MOE zurück (...M-Variablen) – melden. Benötigt einen kostenlosen CENSUS_API_KEY.
Karten-PNG rendern, um zu sehen, was Sie gebaut habenmaplibre render_styleHeadless Chrome, OpenFreeMap-Basiskarte, kein Schlüssel.

Verworfen: gis-mcp (88 Tools, DuckDB deckt es ab), das offizielle Census MCP (benötigt Docker+Postgres), Crawler-artige ArcGIS MCPs ohne Seitennummerierung, PostGIS (DuckDB deckt es ab).

Web-Recherche / Extraktion

AufgabeVerwendenFallstricke
„Wer leitet den Betrieb bei X“, Personen-/Unternehmensrechercheexa web_search_exaSchlüssellos. Findet oft die eigene Team-Seite eines Unternehmens, wo die generische Websuche nichts findet.
Schnelles Lesen einer bekannten Seiteexa web_fetch_exa {urls:[...]}Unter einer Sekunde aus seinem Index – zwischengespeichert und kein JS; veraltet möglich.
Exakte Phrasensuche, gerenderter Scrapefirecrawl~1.000 Credits/Monat kostenlos (scrape 1, search 2, JSON 5). JSON-Extraktion erfindet Felder – vertrauen Sie nur dem, was im zurückgegebenen markdown erscheint.
Gerenderter Crawl, unbegrenzt, Cloudflare-verborgene E-MailsCrawl4AI CLI crwl <url> -o markdownDekodiert data-cfemail, das curl übersieht. Batch: AsyncWebCrawler(...).arun_many.
JS-Seite mit nichts installiertemcurl https://r.jina.ai/<url>~20 req/min schlüssellos, 2-18s.
  • Einige Stadtportale stecken hinter Cloudflare, das von keinem Headless-Browser durchdrungen wird; deren ArcGIS REST-Layer hat normalerweise dieselben Daten.
  • E-Mail: Verwenden Sie die Adresse, die das Unternehmen auf seiner eigenen Website veröffentlicht, und überprüfen Sie dann den MX für diese genaue Domain. Verzeichnisse verstümmeln Domains (ein weggelassener oder hinzugefügter Buchstabe ist üblich). Postfach-Verifizierung ist von einer Heimverbindung aus normalerweise nicht möglich; Port 25 ist blockiert.
  • Verworfen: Reddit MCP (403 anonym – reddit-mining verwenden), browser-use (benötigt einen kostenpflichtigen LLM-Schlüssel), Browserbase (Telefonverifizierung). Tavily/Apify/Hunter/Brave stoppen alle bei einem CAPTCHA bei der Anmeldung – jeweils ein menschlicher Klick, falls gewünscht.

Finanz-/Behördendaten

AufgabeVerwendenFallstricke
Gemeldete Finanzdaten, aktuelles Quartalsec-edgar get_xbrl_concepts (pro Einreichung)EDGAR companyfacts (was die get_key_metrics vieler Tools lesen) kann ein Quartal hinterherhinken – es stoppt stillschweigend beim vorherigen Quartal. XBRL pro Einreichung erhält das aktuelle Quartal korrekt. Siehe sec-financials.
Kurse, Analysten-Hoch-/Herabstufungen, SchätzungenyfinanceAls unzuverlässig behandeln; Schlusskurs gegen die eigene Seite der Börse überprüfen, bevor Sie eine Zahl verwenden.
SAM.gov-Ausschreibungen, grants.gov, data.govEin schlüsselloses gov-Daten-MCPDer kostenlose SAM-Weg (SAMs eigene API benötigt login.gov MFA). Suchergebnisse lassen NAICS/Set-Aside aus – jede Bekanntmachung abrufen.
USAspending-ZuschüsseusaspendingFiltert nach Leistungsort, nicht nach Empfängerstandort – für „Empfänger in Bundesstaat X“ rufen Sie spending_by_award mit recipient_locations auf. „Award Amount“ ist lebenslang, nicht Geschäftsjahr.
10-jährige Treasury etc.schlüssellos curl "https://fred.stlouisfed.org/graph/fredgraph.csv?id=DGS10&cosd=<YYYY-MM-DD>"FRED hinkt der eigenen Kurve des Finanzministeriums um ~1 Tag hinterher.

Frameworks

  • Claude Agent SDK für geplante Headless-Agenten (z. B. ein uv-Skript, das das sec-edgar-MCP aufruft und JSON schreibt). Unter macOS launchd kann es ~/Desktop oder ~/Documents nicht lesen – legen Sie Dateien woanders ab.
  • promptfoo-Evaluierungen für ein Chat-Produkt: Führen Sie das echte System-Prompt durch claude -p mit deterministischen Asserts (verbotene Wörter, Wortbegrenzungen). Setzen Sie PROMPTFOO_DISABLE_TELEMETRY=1. Übergeben Sie das Prompt auf stdin (--tools "" verschluckt ein positionsbezogenes Prompt).
  • Observable Framework für Daten -> statische Website (Python-Loader via uv run). Ein wörtliches Analytics <script>-Tag zerstört den Build; injecten Sie es zur Laufzeit.
  • uv-Skripte (PEP 723 Inline-Deps) für jede kleine Pipeline.
  • Verworfen: Evidence.dev (jetzt ein anmeldegeschütztes Studio), Pydantic AI/DSPy für kleine Aufgaben (das SDK deckt es ab), schwere Anbieter-Plugins, die Tausende von Kontext-Token pro Sitzung kosten.

Betrieb

BedarfVerwendenHinweis
Einmalige Produktanalyse-Fragen („welche Events existieren“, Trichter)posthog (einzelnes exec-Tool)Dieselben Zahlen wie HogQL. Ein persönlicher API-Schlüssel kann Flags/Kohorten schreiben – halten Sie ihn schreibgeschützt.
Texte auf einem Mac lesenimessage MCPSchlägt rohes chat.db-SQL: dekodiert attributedBody, verwirft Tapbacks, löst Kontakte auf. Kein Sende-Tool. Anpinnen – einzelner Maintainer.
Aktuelle Bibliotheksdokumentecontext7Nennen Sie den Anbieter in der Abfrage, sonst wird die falsche Bibliothek aufgelöst.

Behalten Sie eine Fähigkeit, nicht das MCP, wenn das MCP für dieselbe Antwort langsamer und schwerer ist: Vercel (sein MCP hat ~240 Tools inkl. buy_domain; siehe vercel-api), Stripe (sein MCP redigkeit Kundennamen; siehe stripe-dashboard), GitHub (gh), Notion (curl; das gehostete MCP lehnt Integrationstoken ab), Apple Notes (apple-notes; MCPs liefern Lösch-Tools). Fügen Sie niemals ein E-Mail-Anbieter-MCP hinzu, das ein Sende-Tool enthält, wenn Ihre Regel ist, dass ein Mensch auf „Senden“ drückt.

Authentifizierungsstatus

  • OAuth-Server (canva, figma, orshot): wenn claude mcp list „Benötigt Authentifizierung“ sagt, führen Sie /mcp einmal in einer interaktiven Sitzung aus. Bewahren Sie Passwörter und Token im Schlüsselbund auf, niemals in einem Repository.
  • Widerrufen Sie jede OAuth-Genehmigung in den Einstellungen der jeweiligen Website -> Verbundene Apps.

Hinzufügen eines neuen MCP

Testen vor dem Registrieren: npx -y @modelcontextprotocol/inspector --cli <cmd> --method tools/list (den Server in ein Shell-Skript packen – der Inspector verschluckt -e und Server-Flags). Dann: Version anpinnen ([email protected]; Referenzserver nummerieren neu), die Tool-Liste auf Sende-/Lösch-/Veröffentlichungs-Tools lesen, Telemetrie-Standardeinstellungen überprüfen und eine Zeile oben mit dessen Fallstrick hinzufügen. Entfernen, wenn es seinen Platz nicht mehr verdient.

Individual skills in this repo

This repo contains 7 individual skills — each has its own dedicated page.

2016judea/ascii-charts

Build charts as plain Unicode-block text — bar, range, bullet, gap-bracket, star-histogram, heatmap, line, Venn, pie, donut and scatter — with a dependency-free Python script, for anywhere only monospace text survives (newsletter code blocks, Markdown, terminals, plain-text email, chat). Use when a chart has to embed as literal text instead of an image or a third-party chart service, or when you want a hand-made terminal look with no branding footer.

2016judea/buffett-checklist

Apply Warren Buffett's investment framework as a discipline lens when weighing a buy, hold, or sell decision — circle of competence, economic moat, owner earnings & intrinsic value, margin of safety, management/capital-allocation quality, and market psychology (Mr. Market, fear vs greed, temperament). Use when asked to "run this through Buffett", "what would Buffett say", "does this pass the moat test", "is this cheap enough", or for a second, more skeptical read on a name being evaluated or already held. This is a discipline overlay, not a replacement for a strategy — it applies the Buffett lens to how someone actually invests, rather than issuing generic advice.

2016judea/image-riff

Turn one or more reference images into original art in that reference's own visual language, then cut it to whatever surface it's for. Use when you paste or point at art and say "use this as the base image", "generate art from this", "riff on this", "some creative ideation with these images", "make me a channel banner / avatar / cover / plate", "wilder version of this", or want a spread of options off one piece of reference. This is the TASK skill; the engine is the `make-art` tool skill.

2016judea/leonardo

Draw the way Leonardo da Vinci drew — a study sheet, a notebook folio, a red-chalk or silverpoint study, a machine cutaway, a storm of vortices — in his real materials and page-logic, generated with the make-art engine and anchored on fifteen of his actual (public-domain) sheets. Use when you say "Leonardo", "da Vinci", "like his notebooks", "a codex page of X", "draw this as one of his study sheets", "sanguine", "silverpoint", or wants a design, diagram, or illustration in that hand. Also a reading guide to his notebooks (Richter's 1883 public-domain translation) for "what did Leonardo say about shadow / trees / water". This is a TASK skill; the engine is `make-art`.

2016judea/records-request

Get a specific record out of a US government office by public-records request — "request the assessor's model", "file a data practices request", "FOIA this", "open records request", "can we just ask the county for it", "who do I write to at <county>", "chase that request", "did they ever answer". Covers checking the website first, finding the right office and statute, the carve-out paragraph that makes a request answerable instead of refused, web-form traps (hidden character caps, WAFs that reject apostrophes), chasing (there is usually no deadline), whether what comes back may be republished, and parsing multi-year tables without silent errors.

2016judea/sms-native-product

Build a product whose interface is text messages rather than an app or a website — "no app, no website", "they just text a number", "chat with our agent natively in Text Messages", "can we do this over text", "an SMS bot", "a Telegram bot", "make it a group chat", "minimum viable friction". Fires equally when it has already gone wrong — "my campaign got rejected", "our number is blocked", "the texts aren't arriving", "why do I need to register". Covers the gate that decides whether such a product can send at all (US A2P 10DLC registration, SHAFT content rules, permanent rejection codes), group MMS from code, what each channel can't do, an architecture that survives losing the channel, and guarding model-rewritten user content.

2016judea/vertical-market-agent

Build a chat agent that knows one industry in one metro better than any general model because it carries a precomputed digest of real public records (or a mined review corpus) and can pull live records mid-conversation — finding the moat, building a byte-stable substrate, enumerating what the records can't, the data traps that produce plausible wrong numbers, deterministic math in tools, measured prompt cost and cache TTL, shipping as an ad destination, an off-sector ending, and a precomputed spatial "what is this next to" layer. Use when building a vertical AI agent grounded in records rather than general knowledge.

Verwandte Skills