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

Register MCP

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

Instalar

Resumen

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

Zefix commercial register with a company-UID join to amtsblattportal.ch (SHAB + cantonal gazettes)

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": {
    "register": {
      "command": "uvx",
      "args": [
        "register-mcp"
      ]
    }
  }
}

Ejecuta esto en tu terminal

claude mcp add register -- uvx register-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": {
    "register": {
      "command": "uvx",
      "args": [
        "register-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": {
    "register": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "register-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 32709 servidores de esta categoría
  • Publicado en el registro más recientemente que el 50% de los otros 32709 servidores de esta categoría
  • Revisiones básicas iguales o mejores que el 100% de los otros 32709 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 Register 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 (0.7.0) llegó al registro hace 41 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, SwarmMemo

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

SwarmMemo

de Hugo0

Talk with agent swarms: rooms, private messages and paid tasks for AI agents

Se ejecuta en la nubeActualizado 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.

🇨🇭 Part of the [Swiss Public Data MCP Portfolio](https://github.com/malkreide)

register-mcp

MCP Server for the Swiss Federal Commercial Register (Zefix/Handelsregister), with a company-UID join to the official gazettes (SHAB + cantonal Amtsblätter)

🇩🇪 Deutsche Version


Overview

register-mcp provides AI-native access to two Swiss federal data sources, joined on the UID, all without authentication:

SourceDataAPI
Zefix (Handelsregister)Swiss companies, legal forms, registered-office dataZefixREST v1
AmtsblattportalEverything published about a specific company (by its UID): HR mutations, calls to creditors, bankruptcyamtsblattportal.ch v1

The two sources share one key — the UID. The value is in the join: Zefix tells you whether a company exists; the gazette tells you what has been published about it.

The gazette access here is deliberately company-scoped only — keyed on a company UID or a specific publication id. There is no free-text / person-name gazette search in this server; that would be a profiling tool over the gazette's person-data rubrics (bankruptcy, debt-collection, inheritance). Broad Amtsblatt platform search (procurement, cantonal notices, full-text) is proposed as a separate amtsblatt-mcp — see docs/amtsblatt-mcp-proposal.md and the Data Protection & Scope section below.

Designed for Swiss public administration use cases: vendor verification, contract partner due diligence, and supplier onboarding — all via natural language queries.

Anchor demo query: *"Before we sign a framework agreement with Lehrmittelverlag Zürich AG: is the company active in the commercial register, what is its UID and stated purpose — and, via that UID, what has the official gazette published about it (HR mutations, calls to creditors, any bankruptcy)?"*

That single question walks the whole tool chain across both sources:

zefix_search_company  →  zefix_verify_company  →  gazette_company_publications(uid=…)  →  gazette_get_publication(id=…)

Features

  • 🏛️ 9 tools across two sources — company search & verification (Zefix) + the company-scoped gazette join (SHAB/cantonal)
  • 🔗 `gazette_company_publications` — the UID join: everything published about a company
  • 🛡️ Data-protection-safe by construction — the only gazette entry points are UID- or id-scoped; no person-name search entry exists (see *Data Protection & Scope*)
  • 🔍 `zefix_verify_company` — quick active/dissolved status check
  • 🌐 Bilingual output (Markdown / JSON) with per-source attribution + provenance
  • 🔓 No API key required — open data from zefix.admin.ch and amtsblattportal.ch
  • ☁️ Transports — stdio (Claude Desktop) + Streamable HTTP at /mcp (cloud, native MCP spec 2026-07-28); SSE kept for existing deployments

Prerequisites

  • Python 3.11+
  • uv (recommended) or pip

Installation

# Clone the repository

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

Install

pip install -e .

or with uv:

uv pip install -e .

Or with uvx (no permanent installation):

uvx register-mcp

Quickstart

# stdio (for Claude Desktop)

python -m register_mcp.server

Streamable HTTP (cloud deployment, endpoint /mcp) — MCP_API_KEY is REQUIRED

MCP_API_KEY=$(openssl rand -hex 32) MCP_TRANSPORT=streamable-http PORT=8000 \ python -m register_mcp.server

HTTP / Cloud Deployment

Two HTTP transports are available:

MCP_TRANSPORTEndpointProtocol revisions
streamable-http (container default)POST /mcp2026-07-28 per-request envelope and the initialize handshake up to 2025-11-25
sseGET /sse + POST /messages/handshake era only — kept so existing deployments keep working

streamable-http runs stateless with JSON responses: no Mcp-Session-Id, no session held in a single process, so a second instance needs no sticky sessions.

⚠️ Upgrade note (0.7.0): the container image and compose.yaml now

default to streamable-http. Clients configured with …/sse must switch to

…/mcp, or the deployment sets MCP_TRANSPORT=sse explicitly.

With either HTTP transport, the server enforces:

  • Bearer-token auth — set MCP_API_KEY to a secret string. Clients must send Authorization: Bearer on every request. Missing or wrong → HTTP 401. The server refuses to start without MCP_API_KEY set.
  • Rate limiting — sliding window per bearer-token hash. Defaults: 60 req / 60 s. Tunable via MCP_RATE_LIMIT and MCP_RATE_WINDOW. Exceeding the limit returns HTTP 429 with Retry-After.
  • Structured JSON logging — every tool call emits one line to stderr with tool, status, latency_ms. Auth failures and rate-limit events are logged at WARNING level. Configure verbosity with LOG_LEVEL (default INFO).
  • Reference-data cache — Zefix legal-forms are cached for 24h (LEGAL_FORMS_TTL seconds) to avoid an extra upstream call per tool invocation.
  • Egress allow-list — outbound HTTP is restricted to www.zefix.admin.ch and amtsblattportal.ch via an httpx request hook that also fires on redirects. A Location header pointing elsewhere raises EgressDenied and is never followed. Override with MCP_ALLOWED_HOSTS=host1,host2 (comma-separated, lower-case).

⚠️ Upgrade note (0.2.x → 0.3.0): amtsblattportal.ch was added to the

default allow-list when the gazette tools shipped. If your deployment

pins MCP_ALLOWED_HOSTS, that value overrides the default entirely —

add amtsblattportal.ch to it, or every gazette_* call will raise

EgressDenied.

  • Optional OpenTelemetry tracing — install with pip install register-mcp[otel] and set OTEL_EXPORTER_OTLP_ENDPOINT (e.g. http://otel-collector:4318/v1/traces). Without the extra or without the env var the server stays silent — no hard dependency on the OTel SDK.

For multi-instance deployments, place a real gateway (Cloudflare, Railway internal networking, an API-Gateway with Redis-backed rate limiting) in front of the in-memory limiter, which is per-process by design.

Container deployment

A minimal multi-stage Dockerfile ships with the repo. The image runs as a non-root mcp user; dependencies are resolved from uv.lock (uv sync --frozen), so the build is reproducible.

docker build -t register-mcp:local .

docker run --rm -p 8000:8000 \ -e MCP_API_KEY="$(openssl rand -hex 32)" \ register-mcp:local

→ Streamable HTTP on http://localhost:8000/mcp

For local iteration there is a compose.yaml with read_only, cap_drop: ALL and no-new-privileges:

MCP_API_KEY=$(openssl rand -hex 32) docker compose up --build

See SECURITY.md for hardening notes (egress restriction, key rotation, SIEM forwarding).

Try it immediately in Claude Desktop:

*"Is Lehrmittelverlag Zürich AG active in the commercial register?"*

*"Look up the company with UID CHE-108.954.978"*

*"List all Swiss legal forms"*


Configuration

Claude Desktop

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

{

"mcpServers": { "register": { "command": "python", "args": ["-m", "register_mcp.server"] } } }

Or with uvx:

{

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

Config file locations:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
Cloud Deployment (Streamable HTTP for browser access)

For use via claude.ai in the browser (e.g. on managed workstations without local software):

Render.com (recommended):

  1. Push/fork the repository to GitHub
  2. On render.com: New Web Service → connect GitHub repo
  3. Set start command python -m register_mcp.server and the environment variables MCP_TRANSPORT=streamable-http and MCP_API_KEY= (Render provides PORT)
  4. In claude.ai under Settings → MCP Servers, add: https://your-app.onrender.com/mcp

💡 *"stdio for the developer laptop, Streamable HTTP for the browser."*


Available Tools

Zefix — commercial register (6):

ToolDescription
zefix_search_companiesSearch companies by name, canton, legal form
zefix_get_companyFull company profile by internal EHRAID
zefix_get_company_by_uidCompany lookup by UID (CHE-xxx.xxx.xxx)
zefix_verify_companyQuick active/dissolved status check
zefix_list_legal_formsAll Swiss legal forms with IDs
zefix_list_municipalitiesSwiss municipalities with BFS IDs

Amtsblattportal — the company-scoped gazette join (3):

ToolDescription
gazette_company_publicationsThe UID join. All gazette publications for a company UID, newest first, optional (validated) rubric/time filters
gazette_get_publicationSingle publication incl. XML full text, defensively parsed (by publication id)
gazette_source_statusReachability of both sources + cache ages (rubrics, legal forms)

The prefix is gazette_, not shab_, because the source covers SHAB and the cantonal gazettes. Every entry point is UID- or id-scoped — see Data Protection & Scope. Broad, non-company gazette search (procurement, cantonal full-text) is scoped to the separate amtsblatt-mcp.

Example Use Cases
QueryTool
*"Is Lehrmittelverlag Zürich AG active?"*zefix_verify_company
*"Look up CHE-108.954.978"*zefix_get_company_by_uid
*"Find companies named Migros in canton ZH"*zefix_search_companies
*"What has been published about CHE-116.115.052?"*gazette_company_publications
*"Show the full official text of that HR deletion notice"*gazette_get_publication
*"Are both data sources reachable right now?"*gazette_source_status

Architecture

                                                          ┌──────────────────────────────┐

┌────▶│ Zefix (Handelsregister) │ │ │ www.zefix.admin.ch │ ┌─────────────────┐ ┌──────────────────────────┴─┐ │ ZefixREST/api/v1 │ │ Claude / AI │────▶│ register-mcp │ └──────────────────────────────┘ │ (MCP Host) │◀────│ (MCP Server) │ ┌──────────────────────────────┐ └─────────────────┘ │ 9 Tools (zefix_ + gazette_) ├──▶│ Amtsblattportal │ │ stdio | HTTP /mcp | SSE │ │ amtsblattportal.ch/api/v1 │ │ Egress allow-list │ │ SHAB + cantonal gazettes │ │ No authentication required │ └──────────────────────────────┘ └──────────────────────────────┘ join key: UID (CHE-XXX.XXX.XXX)

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

Pregunta a PopNx