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

fmsg

de markmnlversión 1.5.1i★ –iComputadora o nube
Nombre en el registroio.github.markmnl/fmsg-mcp

Instalar

Resumen

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

Federated messaging with your fmsg hosting provider. Connect with OAuth or an API key.

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: Computadora o nube
  • Transporte: stdio, Streamable HTTP
  • Categoría: Otros
  • Debes completar: FMSG_API_URL, FMSG_API_KEY

Instalación

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

Antes de instalar

  • Revisiones básicas: 1 de 1 superadas
  • Se ejecuta en el servidor del creador: lo que le pidas pasa por su servidor.
  • Debes completar tú: FMSG_API_URL, FMSG_API_KEY, FMSG_DEFAULT_DOMAIN, FMSG_MCP_DOWNLOAD_DIR

Los valores marcados como secretos son llaves de tu cuenta. Nunca los compartas ni los pegues en un chat.

Necesitas

¿Qué app usas?

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

Funciona en Claude para web, escritorio y móvil:

  1. Abre Settings → Connectors
  2. Presiona Add custom connector
  3. Pega la dirección de abajo y presiona Add
  4. Si te pide iniciar sesión, inicia sesión en el servicio del creador
SettingsConnectors1+ Add2https://…3
https://{oauth_mcp_endpoint}

La dirección tiene partes {…} que solo tú conoces (como tu cuenta), así que cópiala y complétalas.

O ejecútalo en tu computadora

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

{
  "mcpServers": {
    "fmsg": {
      "command": "npx",
      "args": [
        "-y",
        "@markmnl/fmsg-mcp"
      ],
      "env": {
        "FMSG_API_URL": "your-value",
        "FMSG_API_KEY": "your-value",
        "FMSG_DEFAULT_DOMAIN": "your-value",
        "FMSG_MCP_DOWNLOAD_DIR": "your-value"
      }
    }
  }
}

Ejecuta esto en tu terminal

claude mcp add --transport http fmsg 'https://{oauth_mcp_endpoint}'

O ejecútalo en tu computadora

claude mcp add fmsg --env FMSG_API_URL=your-value --env FMSG_API_KEY=your-value --env FMSG_DEFAULT_DOMAIN=your-value --env FMSG_MCP_DOWNLOAD_DIR=your-value -- npx -y @markmnl/fmsg-mcp

Completa los valores vacíos antes de ejecutarlo.

La dirección tiene partes {…} que solo tú conoces (como tu cuenta), así que cópiala y complétalas.

O copia la configuración tú

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

{
  "mcpServers": {
    "fmsg": {
      "url": "https://{oauth_mcp_endpoint}"
    }
  }
}

O ejecútalo en tu computadora

Abrir en Cursor

O copia la configuración tú

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

{
  "mcpServers": {
    "fmsg": {
      "command": "npx",
      "args": [
        "-y",
        "@markmnl/fmsg-mcp"
      ],
      "env": {
        "FMSG_API_URL": "your-value",
        "FMSG_API_KEY": "your-value",
        "FMSG_DEFAULT_DOMAIN": "your-value",
        "FMSG_MCP_DOWNLOAD_DIR": "your-value"
      }
    }
  }
}

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ú.

La dirección tiene partes {…} que solo tú conoces (como tu cuenta), así que cópiala y complétalas.

O copia la configuración tú

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

{
  "servers": {
    "fmsg": {
      "type": "http",
      "url": "https://{oauth_mcp_endpoint}"
    }
  }
}

O ejecútalo en tu computadora

Abrir en VS Code

O copia la configuración tú

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

{
  "servers": {
    "fmsg": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@markmnl/fmsg-mcp"
      ],
      "env": {
        "FMSG_API_URL": "your-value",
        "FMSG_API_KEY": "your-value",
        "FMSG_DEFAULT_DOMAIN": "your-value",
        "FMSG_MCP_DOWNLOAD_DIR": "your-value"
      }
    }
  }
}

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ú.

ChatGPT solo se conecta a servidores en internet:

  1. Abre ChatGPT en la web → Settings → Connectors (Apps)
  2. Presiona Create o Add (en algunos planes primero hay que activar Developer mode en Advanced)
  3. Pega la dirección de abajo, ponle un nombre y guarda
  4. Si te pide iniciar sesión, inicia sesión en el servicio del creador
SettingsConnectors1+ Create2https://…3
https://{oauth_mcp_endpoint}

La dirección tiene partes {…} que solo tú conoces (como tu cuenta), así que cópiala y complétalas.

Los nombres de los menús pueden variar un poco según el plan y con el tiempo.

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

Valores que debes completar

  • FMSG_API_URL obligatorio env
    Base URL of your hosting provider's or self-hosted fmsg Web API
  • FMSG_API_KEY secreto obligatorio env
    fmsg API key (fmsgk_...) for the address to send as
  • FMSG_DEFAULT_DOMAIN env
    Optional: lets short names resolve to @name@
  • FMSG_MCP_DOWNLOAD_DIR env
    Optional local folder enabling streamed attachment saves over stdio

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

La dirección necesita tus propios valores, así que no podemos leer la lista de herramientas por ti.

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 6 nov 2026

  • ✓ Superada

    El creador coincide con el repo

    El nombre en el registro se verificó con la cuenta de GitHub markmnl, 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

    La dirección necesita datos de tu propia cuenta, así que no podemos revisarla por ti

  • – No aplica

    Inicio de sesión con OAuth

    La dirección necesita datos de tu propia cuenta, así que no podemos revisarla por ti

  • … Aún sin revisar

    Sin instrucciones ocultas en las descripciones de herramientas

    Aún sin revisar; leemos la lista de herramientas cuando revisamos el endpoint

Comparado con otros en Otrosi

  • Más estrellas que el 0% de los otros 32461 servidores de esta categoría
  • Publicado en el registro más recientemente que el 93% de los otros 32461 servidores de esta categoría
  • Revisiones básicas iguales o mejores que el 100% de los otros 32461 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 fmsg?

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?

Debes completar: FMSG_API_URL, FMSG_API_KEY

¿Se ejecuta en mi computadora o en la nube?

Funciona de las dos formas: instálalo en tu computadora o conéctate a la versión en la nube.

¿Sigue en mantenimiento?

El repo de GitHub cambió por última vez –, y la última versión (1.5.1) llegó al registro anteayer.

¿Qué apps pueden usarlo?

Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. Se conecta por URL, así que también funcionan las apps que aceptan servidores MCP remotos, como ChatGPT en modo desarrollador.

¿Qué puedo usar en su lugar?

En la misma categoría: Spec Driven Development, Remote Desktop Commander, dotnet-mcp

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 ayer
Instalar

dotnet-mcp

de Skymly

MCP server for .NET symbols, XAML, source generators, and restricted workspace edit

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.

fmsg-mcp

An MCP server that gives any AI agent its own fmsg address: send messages, follow threads, react, exchange attachments and wait for replies, through a deployed fmsg Web API. Connect through stdio in hosts such as Claude Code, Claude Desktop, Cursor and VS Code, or through HTTP using API-key headers or configured OAuth.

Use your choice of fmsg hosting provider, or self-host. No hosting provider or identity provider is built in.

  • stdio for local hosts: one address per server process, configured by two environment variables.
  • Streamable HTTP for shared or remote deployments: one endpoint serving many users, each authenticated by their own fmsg API key or OAuth connection.
  • The fmsg Web API client is exported for reuse: import { FmsgClient } from "@markmnl/fmsg-mcp/client".

1. Choose a connection

OAuth: connect and sign in

Get an OAuth-enabled MCP URL from your fmsg hosting provider, add it to your AI host, and sign in. You do not need an API key or a local installation for this connection. Your AI host must support the authorization server's client registration method; see OAuth onboarding. Operators can enable this with HTTP OAuth.

API key: use locally or over HTTP

You send as an fmsg address, authenticated by an API key (fmsgk_…) issued by your fmsg host:

  • Using a hosting provider? Create an account with an fmsg hosting provider and obtain an API URL and API key for the address your agent will use.
  • Self-hosting? Run the stack with fmsg-docker and issue a key with fmsg-webapi api-key create.

Use the API URL and key for local installation below, or use your provider's API-key MCP endpoint with an Authorization: Bearer fmsgk_... header. The endpoint must use the fmsg Web API that accepts your key.

An agent's key is usually for a sub-address such as @user_agent@example.com, owned by @user@example.com. The owner can switch to the sub-address in their client, but can only follow and reply to threads they are a participant of. So send_message, reply and create_draft add the owner as a recipient unless include_owner is false; whoami reports the owner.

MCP Registry

Find io.github.markmnl/fmsg-mcp in the official MCP Registry. The listing offers local npm installation and configurable remote connections for OAuth or API keys. For a remote connection, supply the MCP endpoint from your fmsg hosting provider or your own deployment; the registry input takes its hostname and path without the https:// prefix, such as mcp.example.com/mcp. OAuth sign-in is discovered from that endpoint; the API-key option additionally asks for your key. If your AI host cannot configure registry URL templates, add the full MCP URL directly instead.

2. Install

Requires Node.js 22 or later.

Claude Code
claude mcp add fmsg --scope user \

--env FMSG_API_URL=https://api.example.com \ --env FMSG_API_KEY=fmsgk_... \ -- npx -y @markmnl/fmsg-mcp

Then in any session: *"Send @bob@example.com a note about the release"*, *"What's in my fmsg inbox?"*, *"Wait for Bob's reply and answer it"*. /fmsg:chat, /fmsg:reply and /fmsg:send_file are available as prompts.

Claude Desktop, Cursor, VS Code and other stdio hosts

Add a server entry with the same command; only the config file differs:

{

"mcpServers": { "fmsg": { "command": "npx", "args": ["-y", "@markmnl/fmsg-mcp"], "env": { "FMSG_API_URL": "https://api.example.com", "FMSG_API_KEY": "fmsgk_..." } } } }

(Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code: .vscode/mcp.json under "servers" with "type": "stdio".)

Remote (Streamable HTTP) mode

Run one server for many users. Each client sends its own fmsg API key as a bearer token; the server exchanges it at the fmsg host and acts as that address. FMSG_API_KEY must not be set.

FMSG_API_URL=https://api.example.com FMSG_MCP_ALLOWED_HOSTS=mcp.example.com \

npx -y @markmnl/fmsg-mcp --http 0.0.0.0:8765

or

docker build -t fmsg-mcp --build-arg FMSG_MCP_COMMIT=$(git rev-parse HEAD) \ --build-arg FMSG_MCP_VERSION=$(git describe --tags --abbrev=0) . docker run -e FMSG_API_URL=https://api.example.com \ -e FMSG_MCP_ALLOWED_HOSTS=mcp.example.com -p 8765:8765 fmsg-mcp

The MCP endpoint is /mcp; /healthz reports liveness, the version and the commit. whoami reports the same, so a client can confirm which deploy it is talking to: npm run build records them from git, and the Docker build arguments above do so where the build has no git history (FMSG_MCP_COMMIT can also be set at run time). Use a client that supports an explicitly configured Authorization: Bearer fmsgk_... header. Each caller supplies its own key; a shared header means a shared fmsg identity. For browser sign-in without user API keys, configure HTTP OAuth: the operator supplies an issuer, resource URI and exchange client. Users add the public MCP URL in a host supporting that issuer's client registration method. FMSG_MCP_AUTH_MODE=oauth+api-key accepts both OAuth and API-key callers on the same URL.

For Claude Code over HTTP:

claude mcp add --transport http fmsg --scope user https://mcp.example.com/mcp \

--header "Authorization: Bearer fmsgk_..."

Deploy behind a TLS-terminating reverse proxy and set FMSG_MCP_ALLOWED_HOSTS to the public hostname when binding to a non-loopback address; startup fails without it. Browser clients on another origin also need FMSG_MCP_ALLOWED_ORIGINS containing exact origins, such as https://app.example.com. For loopback binds, loopback browser origins on any port work by default, including MCP Inspector at http://localhost:6274. Setting an explicit origin list replaces that loopback default. Allowed preflights need no credentials; actual MCP requests always require authentication. wait_for_message holds a request open for up to FMSG_MCP_WAIT_MAX_SECONDS (230), so give the proxy an idle timeout of at least 240 s. On SIGTERM the server ends open waits with an interrupted result that clients resume from, gives other requests 5 seconds to finish, and exits, well within a service manager's stop timeout. See the TLS reverse-proxy example for a loopback deployment with Caddy.

Tools

ToolWhat it does
whoamiThe address this server acts as, its owner if it is a sub-address, the public API URL (when known), the transport (stdio or http, which is Streamable HTTP), short-name defaults, and this server's version and commit
resolve_addressTurn a short name into @user@domain (directory, then default domain)
list_messagesInbox, newest first, with previews, attachment types and size (compressed marks a body sent deflated); reactions hidden and never counted as unread unless include_reactions
list_sentSent messages with per-recipient delivery state
get_messageOne message with headers, full text body, attachments, reactions and, for a reply, the root's thread_topic
get_threadThe lineage from the thread root to a message (scope: "lineage"; other replies in the thread are not included), with gaps for messages you cannot see, per-message flags and added recipients, the root's thread_topic, and a next step that never suggests replying to a terminal or no-reply message
send_messageStart a new thread; sends immediately (fmsg messages are immutable)
replyReply into a thread; reply-all by default, refuses terminal and no-reply parents
create_draftCreate an unsent message or reply (reply_to) that other fmsg clients can see; over HTTP with a public MCP URL, returns an authenticated upload URL for large attachments
send_draftSend a draft, with its attachments
delete_draftDiscard an unsent draft
add_recipientsAdd recipients to a sent message (add_to is a deprecated alias)
reactSet or clear your emoji reaction
indicateShow the other participants a short-lived status on a message, such as ⏳ while working on a reply or ✍️ while composing (FMSG-006 indicator; ttl 1–120 s, default 60), kept up until you reply, react or mark it read (up to 5 minutes); an empty emoji clears it. Reading a message never shows one
mark_readMark received messages read
download_attachmentFetch a small attachment inline: text as text, images as image blocks, other files as base64 resources; a wrong filename lists the names the message has
get_attachment_download_urlGet a credential-free URL and resource link for an authenticated binary download; with presigned: true, also a single-use link valid for 5 minutes that needs no Authorization header, with its size, sha256 and a curl command. HTTP only, requires a public MCP URL
get_attachment_upload_urlGet a single-use link valid for 5 minutes that PUTs one file of a given size and sha256 into a draft without the Authorization header, with a curl command; then send_draft. HTTP only, requires a public MCP URL
save_attachmentStream an attachment to the configured local folder; stdio only, enabled by FMSG_MCP_DOWNLOAD_DIR
delivery_statusPer-recipient delivery times and fmsg response codes (200 accepted; null when not recorded); for a received message, the host's own receipt records; via is to or add_to (added later)
wait_for_messageBlock until the next inbound message (WebSocket push), batched per thread, with thread context, skipped reactions and a next step that names messages from other threads (pending_ids) the cursor moved past

Every tool returns readable Markdown plus structuredContent. Ids are decimal strings. Message bodies are labelled as data from other parties, not instructions; structured results that carry other parties' words repeat that in untrusted_content_notice, since some hosts show the structured result instead of the text. Attachment types come from the host when it recorded one, otherwise from the filename extension, so every tool reports the same type, and every tool lists attachments in the same order (by filename). Addresses in the text are code spans, so they copy exactly (@bob_mcp@example.com, never with a Markdown escape); a backslash in an address is rejected. A message's size is the body size the host stores: for a received message with compressed true that is the compressed length, while your own sent messages keep the uncompressed length.

Output schema compatibility

Some MCP hosts cache each tool's outputSchema when the connector is added and validate every later result against that copy. Output schemas are therefore open and additive: objects accept unknown properties, values that may grow (statuses, transports, resolutions, delivery state) are strings whose current values are listed in their descriptions, and only fields present since 0.2.5 are required. Releases add fields and values; they do not remove or rename them. Schemas published by 0.2.6 and earlier were closed, so a host that cached one rejects results with newer fields (for example "must NOT have additional properties"); remove and re-add the connector once to refresh it.

Indicators

indicate shows

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

Pregunta a PopNx