CommunityProgramación y desarrollogithub.com

2016judea/mcp-stack

Guía de servidores MCP gratuitos para finanzas, datos gubernamentales, investigación web, diseño, datos espaciales y operaciones: qué usar, cuándo y qué trampas evitar.

¿Qué es mcp-stack?

El 'MCP Stack' es un campo práctico que evalúa servidores MCP gratuitos para tareas reales como publicaciones en redes sociales, consultas espaciales y extracción de datos. Prioriza herramientas sin costo, advierte sobre límites de uso y trampas comunes, y cubre áreas como diseño (Canva, Inkscape, Penpot), datos espaciales (DuckDB con extensiones, OpenStreetMap), investigación web (Exa, Firecrawl), finanzas (SEC EDGAR, Yahoo Finance) y operaciones (PostHog, iMessage). También incluye pautas para agregar nuevos MCP, manejar autenticación OAuth y evitar herramientas que publiquen o envíen sin autorización.

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

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

El Stack MCP

Una guía de campo de una competencia donde cada servidor se ejecutó en los mismos trabajos reales (una publicación social de 1080x1350 en estilo riso; preguntas espaciales reales verificadas por una consulta independiente). Solo niveles gratuitos.

Regla: solo gratuito. Nunca actualices, inicies un período de prueba o introduzcas una tarjeta en ninguno de estos sin que el propietario lo indique. Un muro de pago es un hallazgo, no una compra.

Regla: nada publica. Orshot tiene un parámetro publish que publica en redes sociales; Canva y Figma pueden compartir. Nunca los pases sin que te lo pidan. La salida es un archivo local que un humano revisa.

Diseño / arte / marca — elige según el trabajo

TrabajoUsaPor qué / costo
Pieza de marketing terminada a partir de un briefing, con el mejor aspectocanva create-design -> resize-design -> export-designMejor salida del conjunto. ~6 diseños IA/mes gratis (un diseño = ~15% de la cuota; se restablece mensualmente). Edita con edit-design en lugar de regenerar.
Publicación riso / tarjeta / póster, ilimitado, números exactosinkscape MCP inkscape_vector construct_svg (params.header + params.body) -> inkscape_render export_previewRenderiza patrones de semitono reales, grano feTurbulence, superposición multiplicativa, desregistro. ~5s, sin cabeza, ilimitado. Predeterminado para cualquier cosa repetible; mantén tu cuerpo SVG como archivo de plantilla.
Diseño vectorial preciso en un archivo de diseñopenpot execute_code -> export_shapeGratuito, ilimitado. Una pestaña de Penpot con el archivo debe estar abierta (sin cabeza está bien) o cada llamada falla.
Lo mismo, pero en Figma para que alguien lo recojafigma create_new_file + use_figmaStarter gratuito = ~20 llamadas contadas/mes, 3 archivos. Presupuesta. No tiene createImageAsync/setPluginData.
Plantilla reutilizable con variables (tarjeta OG, serie de publicaciones IG)orshot~100 renderizaciones/mes gratis. El color de la forma va en style.fill (backgroundColor pinta de negro). Las URL de salida son públicas pero no adivinables.
Borrador de ilustración IA, gratuitohuggingface dynamic_space -> mcp-tools/Qwen-Image, aspect_ratio:"3:4"Lo más cercano al riso de los modelos gratuitos. ~6 imágenes/día (cuota ZeroGPU). 1.6MP; pinta garabatos de firma falsos en las esquinas — recorta. Los finales van a un motor de pago (make-art).
Recorte PNG transparentehuggingface space_name: Upsampler/birefnet-background-removal, {"image":"<URL pública>"}~5s. Los Spaces aceptan solo URL públicas, nunca rutas locales.
Ráster color -> SVG (logotipos, marcas)shapesoda vectorize {image_base64, image_type:"artwork", colors:8, format:["svg"]}~10/día gratis. El enlace de descarga caduca en 24h — descarga inmediatamente. Elimina las rutas #ff00ff sobrantes en los bordes del recorte. Renderiza el SVG a 4x = ampliación gratuita para arte plano.
SVG de una tinta (sello, estarcido, placa clave)svg-tracer trace_bitmap_to_svg (rutas absolutas)potrace local, ilimitado, 0.1s.
Gráfico a partir de números realesantv-chartOpción de textura dibujada a mano. Envía tus datos a un servicio de renderizado de terceros y devuelve una URL pública — solo números públicos. El título del eje x vacío imprime "category".
Maqueta 3D de tipo / productoBlender MCP (necesita la aplicación abierta)Inicia Blender con el complemento, luego agrega el servidor ad hoc (uvx mcp-for-blender@<pinned>) con DISABLE_TELEMETRY=true. La telemetría está ACTIVADA por defecto — desactívala siempre.
Acabado ráster (semitono de periódico, edición de fotos)GIMP MCP (necesita gimp-console ejecutándose)Para GIMP 3.2 sin cabeza: 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)" &. El semitono de periódico predeterminado es líneas — configura circle. Solo colores hexadecimales. Mata gimp-console después.
HTML -> PNG tarjeta, nada sale de la máquinaSatori MCP, parcheadoLa versión original sube cada imagen a un almacenamiento de blobs público; parchéala para guardar localmente. Instala con un archivo de bloqueo congelado.

Cada número en una pieza proviene de la fuente en vivo (curl), nunca escrito. Verifica el contraste de los colores de acento en fondos claros (un rojo medio sobre crema puede ser ~3.8:1, lo que falla para texto pequeño; oscurécelo por debajo de ~24px).

Descartados (no vuelvas a probar): Pollinations (marca de agua, baja resolución), Stability (prueba única), fal/Replicate/Together (sin nivel gratuito sin tarjeta), Krita MCP (sin texto), aplicaciones tldraw y Excalidraw MCP (dibujan solo dentro de una interfaz de chat), Bannerbear/Placid (pruebas), Postiz (sin nube gratuita, necesita Docker), Remotion MCP (solo documentación), Buffer (CAPTCHA de registro).

Datos / espacial

TrabajoUsaTrampas
SQL + espacial sobre parquet/csv/geojson/.duckdbduckdb MCP (en memoria, con extensión espacial cargada)ST_Transform(ST_Point(lon,lat),'EPSG:4326','EPSG:26915') devuelve POINT(inf inf) silenciosamente, por lo que los filtros de distancia cuentan 0. Pasa always_xy := true. Las columnas del tasador suelen ser VARCHAR (max ordena como texto); los precios de venta pueden tener un marcador de posición 999,999,999. Si el servidor se ejecuta en modo lectura/escritura puede COPY TO en cualquier lugar: adjunta tus archivos reales como READ_ONLY.
Capa ArcGIS FeatureServer en vivoduckdb ST_Read('<FeatureServer>/0/query?where=...&outFields=...&orderByFields=OBJECTID&f=geojson&resultOffset=N')Trunca silenciosamente en maxRecordCount del servidor (a menudo 2,000) sin advertencia. Verifica primero con returnCountOnly=true, pagina con resultOffset + orderByFields, y nombra las columnas en UNION ALL (una última página vacía no tiene ninguna).
OSM / Overpass (restaurantes en un vecindario...)osm openstreetmap_search_places -> id de relación -> openstreetmap_query_bbox{within:"R..."}Fugas de área por nombre: un nombre de vecindario puede extraer filas de un lugar con el mismo nombre en otro estado. Busca siempre dentro del id de relación. Los espejos de Overpass 500 a menudo; reintenta.
Datos del Censo ACS por dirección/código de tractocensus census_resolve_geography{name:"<dirección>"} -> census_query_data{dataset:"acs/acs5", ...}Devuelve MOE (variables ...M) — infórmalo. Necesita una clave gratuita CENSUS_API_KEY.
Renderizar un mapa PNG para ver lo que construistemaplibre render_styleChrome sin cabeza, mapa base OpenFreeMap, sin clave.

Descartados: gis-mcp (88 herramientas, DuckDB lo cubre), el MCP oficial del Censo (necesita Docker+Postgres), MCP ArcGIS estilo rastreador sin paginación, PostGIS (DuckDB lo cubre).

Investigación web / extracción

TrabajoUsaTrampas
"Quién dirige operaciones en X", investigación de personas/empresasexa web_search_exaSin clave. A menudo encuentra la página de equipo de una empresa donde una búsqueda web genérica no encuentra nada.
Lectura rápida de una página conocidaexa web_fetch_exa {urls:[...]}Subsitio desde su índice — en caché y sin JS; es posible que esté desactualizado.
Búsqueda de frase exacta, extracción renderizadafirecrawl~1,000 créditos/mes gratis (extraer 1, buscar 2, JSON 5). La extracción JSON inventa campos — confía solo en lo que aparece en el markdown devuelto.
Rastreo renderizado, ilimitado, correos ocultos por CloudflareCrawl4AI CLI crwl <url> -o markdownDecodifica data-cfemail que curl se salta. Lote: AsyncWebCrawler(...).arun_many.
Página JS sin nada instaladocurl https://r.jina.ai/<url>~20 req/min sin clave, 2-18s.
  • Algunos portales municipales están detrás de Cloudflare que nada atraviesa sin cabeza; su capa REST de ArcGIS suele tener los mismos datos.
  • Correo electrónico: usa la dirección que la empresa publica en su propio sitio, luego verifica MX para ese dominio exacto. Los directorios alteran los dominios (una letra caída o añadida es común). La verificación a nivel de buzón generalmente no es posible desde una conexión doméstica; el puerto 25 está bloqueado.
  • Descartados: Reddit MCP (403 anónimo — usa reddit-mining), browser-use (necesita una clave LLM de pago), Browserbase (verificación telefónica). Tavily/Apify/Hunter/Brave se detienen en un CAPTCHA al registrarse — un clic humano cada uno si se desea.

Datos financieros / gubernamentales

TrabajoUsaTrampas
Estados financieros informados, último trimestresec-edgar get_xbrl_concepts (por presentación)EDGAR companyfacts (lo que leen muchas herramientas de get_key_metrics) puede estar un trimestre atrás — se detiene silenciosamente en el trimestre anterior. XBRL por presentación obtiene el último correctamente. Consulta sec-financials.
Precios, mejoras/revisiones de analistas, estimacionesyfinanceTrátalo como inestable; verifica un cierre contra la propia página del exchange antes de usar un número.
Oportunidades SAM.gov, grants.gov, data.govun MCP de datos gov sin claveLa ruta gratuita de SAM (la API de SAM necesita MFA de login.gov). Los resultados de búsqueda omiten NAICS/reserva — obtén cada aviso.
Adjudicaciones de USAspendingusaspendingFiltra por lugar de desempeño, no por ubicación del destinatario — para "destinatarios en el estado X" llama a spending_by_award con recipient_locations. "Monto de la adjudicación" es de por vida, no del año fiscal.
Tesoro a 10 años, etc.sin clave curl "https://fred.stlouisfed.org/graph/fredgraph.csv?id=DGS10&cosd=<YYYY-MM-DD>"FRED se retrasa ~1 día con respecto a la propia curva del Tesoro.

Marcos de trabajo

  • Claude Agent SDK para agentes autónomos programados (por ejemplo, un script uv que llama al MCP sec-edgar y escribe JSON). Bajo macOS launchd no puede leer ~/Desktop o ~/Documents — coloca los archivos en otro lugar.
  • promptfoo evaluaciones para un producto de chat: ejecuta el mensaje de sistema real a través de claude -p con aserciones deterministas (palabras prohibidas, límites de palabras). Establece PROMPTFOO_DISABLE_TELEMETRY=1. Pasa el mensaje por stdin (--tools "" se traga un mensaje posicional).
  • Observable Framework para datos -> sitio estático (cargadores Python a través de uv run). Una etiqueta literal <script> de analytics rompe la compilación; inyéctala en tiempo de ejecución.
  • uv scripts (dependencias inline PEP 723) para cada pipeline pequeño.
  • Descartados: Evidence.dev (ahora un estudio con inicio de sesión), Pydantic AI/DSPy para trabajos pequeños (el SDK lo cubre), complementos pesados de proveedores que cuestan miles de tokens de contexto por sesión.

Operaciones

NecesidadUsaNota
Preguntas únicas de análisis de producto ("qué eventos existen", embudos)posthog (herramienta única exec)Mismos números que HogQL. Una clave API personal puede escribir indicadores/cohortes — mantenla de solo lectura.
Leer textos en un Macimessage MCPSupera al SQL crudo de chat.db: decodifica attributedBody, descarta tapbacks, resuelve contactos. Sin herramienta de envío. Anclarlo — un solo mantenedor.
Documentación actual de bibliotecascontext7Nombra el proveedor en la consulta o resolverá la biblioteca incorrecta.

Mantén una habilidad, no el MCP, donde el MCP es más lento y pesado para la misma respuesta: Vercel (su MCP tiene ~240 herramientas incl. buy_domain; consulta vercel-api), Stripe (su MCP redacta nombres de clientes; consulta stripe-dashboard), GitHub (gh), Notion (curl; el MCP alojado rechaza tokens de integración), Apple Notes (apple-notes; los MCP incluyen herramientas de eliminación). Nunca agregues un MCP de un proveedor de correo electrónico que incluya una herramienta de envío si tu regla es que un humano presiona enviar.

Estado de autenticación

  • Servidores OAuth (canva, figma, orshot): si claude mcp list dice "Necesita autenticación", ejecuta /mcp una vez en una sesión interactiva. Mantén las contraseñas y tokens en el Llavero, nunca en un repositorio.
  • Revoca cualquier concesión OAuth en la configuración de ese sitio -> Aplicaciones conectadas.

Agregar un nuevo MCP

Prueba antes de registrar: npx -y @modelcontextprotocol/inspector --cli <cmd> --method tools/list (envuelve el servidor en un script de shell — el inspector se traga -e y las banderas del servidor). Luego: fija la versión ([email protected]; los servidores de referencia renumeran), lee la lista de herramientas en busca de herramientas de envío/eliminación/publicación, verifica los valores predeterminados de telemetría y agrega una fila arriba con su trampa. Elimínalo cuando deje de ganarse su lugar.

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.

Skills relacionados