Prototipo · Versión preliminar: todos los servidores del registro oficial, sincronizados cada 30 minutos. Las reseñas y las cuentas llegarán en una etapa posterior.
PopNx MCPServidores MCP para quienes usan IA · explicados con palabras sencillas

Bag Epl MCP

de malkreideversión 1.0.4i★ –iSe ejecuta en tu computadora
Nombre en el registroio.github.malkreide/bag-epl-mcp

Instalar

Resumen

Descripción del creador (original en inglés)

BAG EPL: Spezialitätenliste, medication and reimbursement data

Los tres pilares de PopNx MCP

Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.

Qué puedes hacer con él

Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.

  • Conexión: Se ejecuta en tu computadora
  • Transporte: stdio
  • Categoría: Otros

Instalación

Elige la app de IA que usas y copia la configuración.

Antes de instalar

Necesitas

  • PyPIuv de Python instalado (para el comando uvx)

¿Qué app usas?

Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.

Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json

{
  "mcpServers": {
    "bag-epl": {
      "command": "uvx",
      "args": [
        "bag-epl-mcp"
      ]
    }
  }
}

Ejecuta esto en tu terminal

claude mcp add bag-epl -- uvx bag-epl-mcp

Abrir en Cursor

O copia la configuración tú

Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json

{
  "mcpServers": {
    "bag-epl": {
      "command": "uvx",
      "args": [
        "bag-epl-mcp"
      ]
    }
  }
}

Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.

Abrir en VS Code

O copia la configuración tú

Pégalo en .vscode/mcp.json de tu proyecto

{
  "servers": {
    "bag-epl": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "bag-epl-mcp"
      ]
    }
  }
}

Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.

Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.

Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.

Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.

Qué puede hacer

Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.

Revisiones básicasi

Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 7 nov 2026

  • ✓ Superada

    El creador coincide con el repo

    El nombre en el registro se verificó con la cuenta de GitHub malkreide, dueña del repo

  • … Aún sin revisar

    Sigue en mantenimiento

    Todavía no hemos leído este repo en GitHub

  • … Aún sin revisar

    Tiene licencia

    Todavía no hemos leído este repo en GitHub

  • – No aplica

    El endpoint responde

    Este se ejecuta en tu computadora; no hay endpoint en internet

  • – No aplica

    Inicio de sesión con OAuth

    Se ejecuta en tu computadora y usa ajustes locales en su lugar

  • … Aún sin revisar

    Sin instrucciones ocultas en las descripciones de herramientas

    Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet

Comparado con otros en Otrosi

  • Más estrellas que el 0% de los otros 32680 servidores de esta categoría
  • Publicado en el registro más recientemente que el 50% de los otros 32680 servidores de esta categoría
  • Revisiones básicas iguales o mejores que el 100% de los otros 32680 servidores de esta categoría

Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.

Preguntas frecuentes

¿Es seguro Bag Epl MCP?

Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.

¿Qué claves o códigos necesita?

El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.

¿Se ejecuta en mi computadora o en la nube?

Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).

¿Sigue en mantenimiento?

El repo de GitHub cambió por última vez –, y la última versión (1.0.4) llegó al registro hace 40 días.

¿Qué apps pueden usarlo?

Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Python (uv) en tu computadora.

¿Qué puedo usar en su lugar?

En la misma categoría: Spec Driven Development, Remote Desktop Commander, EmbeddedCI BenchPod

Alternativas

Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.

Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi

Spec Driven Development

de formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

Se ejecuta en tu computadora★ 440MITActualizado hace 14 meses
Instalar

Remote Desktop Commander

de desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

Se ejecuta en la nube★ 211Actualizado anteayer
Instalar

EmbeddedCI BenchPod

de embeddedci-com

Drive a BenchPod hardware-in-the-loop bench: power, flash, UART, I2C, CAN, analog and logic.

Se ejecuta en tu computadoraActualizado hoy
Instalar

README del creador

Abrir el README

Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.

\U0001f1e8\U0001f1ed Part of the [Swiss Public Data MCP Portfolio](https://github.com/malkreide)

\U0001f48a bag-epl-mcp

MCP Server for the Swiss BAG electronic benefits platform (ePL) — Spezialitaetenliste, GGSL, MiGeL

\U0001f1e9\U0001f1ea Deutsche Version

Demo

Overview

bag-epl-mcp enables AI models to answer questions about mandatory health insurance coverage in Switzerland — in natural language, grounded in real data.

ListPurposeLegal basis
Spezialitaetenliste (SL)Compulsory-insurance medicationsKVG Art. 52
GGSLMedications for congenital disorders (IV)IVG Anhang
MiGeLMedical devices & aidsKLV Art. 20

Anchor query: *"Is this medication covered by mandatory health insurance?"* → epl_sl_suche: Live lookup in the Spezialitaetenliste (SL) → More use cases by audience →


Features

  • \U0001f48a 6 tools, 2 resources, 2 prompts for Swiss health insurance data
  • \U0001f50d `epl_sl_suche` — search the Spezialitaetenliste for medications
  • ⚖️ `epl_rechtskontext` — legal context with Fedlex links
  • \U0001f513 No API key required — all data publicly accessible
  • ☁️ Dual transport — stdio (Claude Desktop) + Streamable HTTP (cloud)
  • \U0001f4da Prompt templates for insurance coverage checks and school health queries

Prerequisites

  • Python 3.11+
  • uv (recommended) or pip

Installation

# Clone the repository

git clone https://github.com/malkreide/bag-epl-mcp.git cd bag-epl-mcp

Install

pip install -e .

or with uv:

uv pip install -e .

Or with uvx (no permanent installation):

uvx bag-epl-mcp

Quickstart

# stdio (for Claude Desktop) — default, opens no network ports

python -m bag_epl_mcp.server

Streamable HTTP (cloud) — transport selected via env var

MCP_TRANSPORT=streamable-http MCP_HOST=0.0.0.0 MCP_PORT=8000 \ pip install -e ".[http]" && python -m bag_epl_mcp.server

Transport & host are configured exclusively via environment variables

(MCP_TRANSPORT, MCP_HOST, MCP_PORT). The default is stdio bound to

nothing; MCP_HOST defaults to 127.0.0.1 and should only be set to

0.0.0.0 inside a container/cloud environment.

Try it immediately in Claude Desktop:

*"Is Methylphenidate (Ritalin) covered by mandatory health insurance?"*

*"Which laws regulate admission to the Spezialitaetenliste?"*

*"Is a wheelchair covered by mandatory insurance?"*


Configuration

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{

"mcpServers": { "bag-epl": { "command": "python", "args": ["-m", "bag_epl_mcp.server"] } } }

Or with uvx:

{

"mcpServers": { "bag-epl": { "command": "uvx", "args": ["bag-epl-mcp"] } } }

Cloud Deployment (Streamable HTTP for browser access)

Render.com (recommended):

  1. Push/fork the repository to GitHub
  2. On render.com: New Web Service → connect GitHub repo
  3. Build command: pip install -e ".[http]"
  4. Set the following environment variables:
  • MCP_TRANSPORT=streamable-http
  • MCP_HOST=0.0.0.0 (required so the container accepts external traffic)
  • MCP_PORT=8000 (or Render's $PORT)
  • *(optional)* MCP_CORS_ORIGINS='["https://claude.ai"]' to extend the browser CORS allow-list
  • *(optional)* OpenTelemetry tracing is on by default but a no-op unless the tracing deps are installed — build with pip install -e ".[http,otel]" and point OTEL_EXPORTER_OTLP_ENDPOINT at your collector. Set MCP_OTEL_ENABLED=0 to disable.
  1. Start command: python -m bag_epl_mcp.server
  2. In claude.ai under Settings → MCP Servers, add: https://your-app.onrender.com/mcp

Security note: the server exposes only public, read-only data and uses no

authentication. See docs/SECURITY.md for the threat

model (egress allow-list, host binding, Lethal-Trifecta assessment).


Available Tools

ToolDescription
epl_sl_sucheSearch the Spezialitaetenliste for compulsory-insurance medications
epl_ggsl_abfrageCheck GGSL coverage for congenital disorders
epl_migel_sucheSearch the MiGeL for medical devices & aids
epl_gesuchseingaengeList pending SL admission requests (transparency)
epl_rechtskontextLegal context for coverage questions (WZW criteria)
epl_server_infoServer status and API phase information
Example Use Cases
QueryTool
*"Is Ritalin covered by insurance?"*epl_sl_suche
*"Which medications for congenital disorder GG-313?"*epl_ggsl_abfrage
*"Is a wheelchair covered?"*epl_migel_suche
*"Which laws regulate the SL?"*epl_rechtskontext

Architecture

Data flow (Phase 1):

                         bag-epl-mcp (FastMCP)

┌────────────┐ MCP ┌───────────────────────────────┐ HTTPS GET ┌──────────────────┐ │ MCP Client │◀───────▶│ tools (read-only) │─────────────▶│ sl.bag.admin.ch │ │ (Claude │ stdio / │ ├─ epl_sl_suche │ egress │ www.bag.admin.ch │ │ Desktop, │ Stream- │ ├─ epl_ggsl_abfrage │ allow-list │ www.fedlex... │ │ claude.ai)│ able │ ├─ epl_migel_suche │◀─────────────│ (public OGD) │ │ │ HTTP │ ├─ epl_gesuchseingaenge │ (no auth) └──────────────────┘ │ │ │ ├─ epl_rechtskontext │ │ │ │ └─ epl_server_info │ structured JSON logs → stderr └────────────┘ │ resources: epl://uebersicht …│ │ prompts: epl_kassenpflicht…│ └───────────────────────────────┘

Phase roadmap (details in docs/ROADMAP.md):

Phase 1 (current)  → legal context + entry points, no data retrieval

Phase 2 (planned) → FHIR/IDMP API, once publicly accessible Phase 3 (vision) → MiGeL + AL via ePL-FHIR

What Phase 1 does, and what it does not. Five of the six tools make no network request at all — there is exactly one outgoing HTTP call in the whole module. They return the legal basis and an entry point, and they now say so. The previous wording, "XML/XLSX downloads + SL website access", advertised a capability with no code path behind it; on 2026-08-08 it was removed rather than implemented, because the underlying source is not machine-readable.

That one HTTP call goes to sl.bag.admin.ch/api/search and receives HTTP 200 with `text/html` — the 51 KB Angular shell. A freely invented path under the same prefix returns the identical response, byte for byte: there is no API at that address. Previously the resulting JSON parse error was caught by a bare except Exception and turned into the claim "the SL database API is not publicly documented" — a statement about the BAG's publishing practice, derived from a parser error. The tool now reports what was measured.

The SL front end calls https://epl.bag.admin.ch/api/sl/ instead, on a different host. That host answers 401 without authentication — but it answers 401 for invented paths too, so this does not establish that any particular route exists. It is deliberately not on the egress allow-list: without verifiable access, adding it would be a grant on suspicion.

MCP protocol version: 2026-07-28 natively, 2025-11-25 as the initialize handshake ceiling. epl_server_info reports the revision the calling connection actually negotiated — derived from the request, not written down here a second time. See MCP Protocol Version for both eras. SDK updates are proposed monthly via Dependabot; the protocol version is reviewed on every mcp SDK bump — see the versioning policy in docs/ROADMAP.md.


Safety & Limits

  • Read-only: All tools perform HTTP GET requests only — no data is written, modified, or deleted.
  • No personal data: The server accesses public regulatory lists (SL, GGSL, MiGeL). No personally identifiable information (PII) is processed or stored.
  • No medical advice: This server provides informational access to regulatory data only. For medical or legal decisions, always consult the official BAG sources and qualified professionals.
  • Rate limits: The SL website (sl.bag.admin.ch) is a public Angular SPA; the server enforces a 30s timeout per request. Use limit parameters conservatively.
  • Data freshness: Phase 1 tools link to live BAG sources. No caching is performed by this server.
  • Links are measured, not assumed: the addresses handed out as "official source" are re-checked by scripts/record_fixtures.py on every run, together with a control request to an invented path. Two BAG pages previously handed out (.../Arzneimittel/geburtsgebrechen-spezialitaetenliste.html and .../Arzneimittel/gesuchseingaenge.html) answered HTTP 404 on 2026-08-08 and were replaced by the entry point that verifiably resolves — not by a guessed replacement URL.
  • Legal references are checked against the register: every SR number the server prints is resolved to its ELI via the Fedlex SPARQL endpoint. This detour is necessary: Fedlex's web front end is a single-page app that answers HTTP 200 with the same byte count for *any* ELI, including an invented one. That is how a wrong GgV link (eli/cc/1986/40_40_40, no register entry) went unnoticed; the correct ELI is eli/cc/1986/46_46_46.
  • Data licence (OGD-CH): The underlying BAG/Fedlex data is Swiss Open Government Data, licensed CC BY 4.0. Tool outputs carry a source / provenance block (JSON) or a source-and-licence footer (Markdown) so attribution is preserved.
  • Structured output: every tool returns both a human-readable Markdown/JSON block (content) and a typed structuredContent validated against a per-tool output schema, so MCP clients can consume results programmatically without parsing prose.
  • Terms of service: Data is subject to the ToS of sl.bag.admin.ch, bag.admin.ch, and fedlex.admin.ch.
  • No guarantees: This is a community project, not affiliated with the BAG or any government entity. Availability depends on upstream sources.

MCP Protocol Version

This server speaks two protocol eras over the same endpoint. The client's first request on a connection decides which one applies; a later claim from the other era is refused.

EraRevisionWho reaches it
initialize handshake2024-11-05 … `2025-11-25`What today's clients speak. The server answers with the revision asked for, or with the 2025-11-25 ceiling when the request asks for something newer.
Per-request envelope`2026-07-28`A request carrying the 2026-07-28 _meta envelope opens a modern connection.

Both revisions are pinned in tests/test_protocol_version.py and asserted against the

Solo se muestra el principio; lee el resto en el repo

Pregunta a PopNx