原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

Mosta Net

作者:apolocine版本 2.0.42i★ –i在你的电脑上运行
注册名称io.github.apolocine/mosta-net

安装

概览

作者提供的说明(英文原文)

1 MCP server, 13 databases, zero config. Multi-protocol transport with Auth + RBAC.

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 在你的电脑上运行
  • 传输方式: stdio
  • 分类: 其他

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

  • 基础检查:1 项中通过 1 项
  • 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
  • 注册中心没有列出需要填写的密钥。

你需要

  • npm已安装 Node.js(用于 npx 命令)

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json

{
  "mcpServers": {
    "mosta-net": {
      "command": "npx",
      "args": [
        "-y",
        "@mostajs/net"
      ]
    }
  }
}

在终端中运行这条命令

claude mcp add mosta-net -- npx -y @mostajs/net

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "mosta-net": {
      "command": "npx",
      "args": [
        "-y",
        "@mostajs/net"
      ]
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "mosta-net": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@mostajs/net"
      ]
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。

你的选择通过 Cookie 保存在这台设备上,无需账户。

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 apolocine 验证,该账户拥有此仓库

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

与“其他”中的其他服务器比较i

  • 星标数多于此分类中其他 32718 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 32718 个服务器的 5% 更新
  • 基础检查结果等于或优于此分类中其他 32718 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

Mosta Net 安全吗?

它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(2.0.42)于7个月前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。

有什么可以替代它?

同一分类中有:Spec Driven Development, Remote Desktop Commander, MemberVault MCP by usefulapi

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Spec Driven Development

作者:formulahendry

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

在你的电脑上运行★ 440MIT14个月前更新
安装

Remote Desktop Commander

作者:desktop-commander

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

在云端运行★ 211前天更新
安装

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

@mostajs/net — Octonet

One schema, 11 transports, 13 databases, multi-tenant auth — out of the box.

Schema-driven multi-protocol API server for the @mostajs ecosystem. Built with TypeScript on Fastify, designed for polyglot consumption (14 native NetClients).

Author : Dr Hamid MADANI \ Homepage : octonet.amia.fr · mcp.amia.fr


The socket board. @mostajs/orm connects to 13 databases; Octonet

(@mostajs/net) re-exposes the same entities over 11 transports (REST,

WebSocket, gRPC, MQTT, AMQP…); NetClient then fans out to **18 language

clients** — so any external app plugs into your data, in any runtime.


Table of Contents

  1. What is Octonet
  2. Try in 2 clicks (T1 sandbox)
  3. 3-tier onboarding model
  4. 11 transports
  5. 13 databases
  6. Multi-tenant authentication
  7. Generic scope registry
  8. Multi-project support
  9. Quick start (self-host)
  10. Configuration (.env)
  11. API endpoints reference
  12. Architecture
  13. Boot sequence
  14. 14 polyglot NetClients
  15. Production deploy (amia.fr)
  16. License

What is Octonet

Octonet (@mostajs/net) is a Node.js multi-transport server that exposes a single @mostajs/orm schema as 11 different network protocols simultaneously : REST, GraphQL, WebSocket, SSE, JSON-RPC, MCP, gRPC, tRPC, OData, NATS, Arrow Flight.

The same User entity is reachable as :

curl https://octonet.amia.fr/api/v1/User              # REST

curl https://octonet.amia.fr/graphql -d '{"query":...}' # GraphQL wscat -c wss://octonet.amia.fr/ws # WebSocket curl -N https://octonet.amia.fr/mcp # MCP (Claude Desktop)

… 7 more

Backed by @mostajs/orm (13 SGBD dialects). Backed by @mostajs/rbac + @mostajs/auth + @mostajs/api-keys for multi-tenant identity. Backed by @mostajs/mproject for multi-project routing.

Octonet is the second cerebral lobe of the @mostajs trilogy :

  • #1 — `@mostajs/orm` : data persistence (13 databases)
  • #2 — Octonet : multi-protocol transport (11 wire protocols)
  • #3 — NetClients polyglottes : 14 native client libraries (Java, .NET, Python, Go, Swift, Kotlin, Dart, Rust, PHP, Ruby, Elixir, Lua, Delphi, Unity)

Try in 2 clicks (T1 sandbox)

The fastest way to test Octonet from any of the 14 runtimes :

  1. Open https://octonet.amia.fr/try
  2. Pick an alias (e.g. alice-42)
  3. Get an apikey scoped to your sandbox
curl -X POST https://octonet.amia.fr/try \

-H "Content-Type: application/json" \ -d '{"alias":"alice-42"}'

Response:

{ "status": "ok", "data": { "alias": "alice-42", "projectSlug": "sandbox-alice-42", "apiKey": "sk_test_…(64 chars, shown ONCE)", "permissions": { "projects":["sandbox-alice-42"], "operations":["read","write"], "transports":["rest","mcp"] }, "expiresAt": "2026-05-02T18:38:19.920Z", "quota": { "reqPerDay": 500 }, "exampleCurl": "curl https://octonet.amia.fr/api/v1/sandbox-alice-42/User -H \"X-API-Key: sk_test_…\"", "mcpUrl": "https://octonet.amia.fr/mcp" } }

Your sandbox is :

  • A private SQLite file (isolated from other aliases)
  • Pre-seeded with User, Product, Order entities
  • Read+write CRUD via REST and MCP
  • 500 requests/day quota
  • TTL 7 days (auto-deleted if idle)
  • Free, no email required, anti-abuse rate-limited (10 sandboxes/h/IP)

Use the apikey in any of the 14 NetClients :

# Java / .NET / Python / Go / etc.

export MOSTAJS_NET_URL=https://octonet.amia.fr export MOSTAJS_NET_API_KEY=sk_test_…


3-tier onboarding model

TierCibleAuthQuotaUse case
T1 — Sandbox publique /try"I want to test in 10 minutes"alias seul (pas d'email)500 req/jour, TTL 7jdémo NetClients, intégration tests
T2 — Compte enregistré octocloud.amia.fr"j'utilise vraiment, gratuit"email + mot de passe10 000 req/jourapps personnelles, side-projects
T3 — Self-host npx @mostajs/net init"tes données chez toi"admin localaucuneenterprise, on-premise, AGPL

11 transports

Auto-generated from your registered schemas. Toggle each via env var (default : all enabled).

#TransportEndpointUse caseNotes
1REST/api/v1/{Entity} · /api/v1/{project}/{Entity}universel15 routes par entité (CRUD + count + search + aggregate + bulk + relations)
2GraphQL/graphql (POST)front-end richesschéma + GraphiQL IDE auto-générés via mercurius
3WebSocketwss://…/wstemps réelevents entity.created/updated/deleted/upserted broadcast
4SSE/events (GET stream)mobile / browser-friendlyserver-sent events
5JSON-RPC/rpc (POST)EVM-adjacent, classicJSON-RPC 2.0 + method discovery
6MCP/mcp (POST/GET SSE)agents IA (Claude, ChatGPT)15 tools/entité auto-générés (listed on mcp.so)
7gRPC:50051inter-services low-latency.proto auto-généré, 6 RPCs/entité
8tRPC/trpc/{Entity}.{op}TypeScript fullstacktype generation côté client
9OData/odata/{Collection} (+ $metadata)SAP/Microsoft DynamicsOData v4 ($filter, $select, $orderby)
10NATSmostajs.{Entity}.{op}pub/sub edgerequest-reply messaging
11Arrow Flight/arrow/*analytics columnairestreaming zero-copy

Le même schéma, 11 portes d'entrée différentes, 0 codegen.


13 databases

Persistence dialects fournis par @mostajs/orm :

CatégorieBasesDialect ID
SQL mainstreamPostgreSQL, MySQL, MariaDB, SQLitepostgres, mysql, mariadb, sqlite
SQL enterpriseOracle, SQL Server, DB2, SAP HANA, HSQLDB, Sybaseoracle, mssql, db2, hana, hsqldb, sybase
NewSQL / CloudCockroachDB, Google Cloud Spannercockroachdb, spanner
NoSQLMongoDBmongodb

Switch dialect = changer 1 ligne d'env :

DB_DIALECT=postgres → DB_DIALECT=mongodb

SGBD_URI=postgresql://… → SGBD_URI=mongodb://…


Multi-tenant authentication

Octonet utilise un middleware d'authentification basé sur API keys avec scopes (orienté machine-to-machine) + RBAC pour la gestion humaine. L'orchestrateur agnostique vit dans @mostajs/auth/lib/check-request.ts.

Flux d'auth d'une requête
HTTP Request

│ ▼ authGuard (Fastify adapter) │ ▼ checkRequest (@mostajs/auth — framework-agnostic) │ ├─ extract X-API-Key from header / Bearer token / ?apikey= ├─ resolveApiKey (@mostajs/api-keys) — DB lookup + bcrypt verify ├─ isScopeAuthorized (@mostajs/api-keys) — check scope.values │ for each (scope, value) pair : │ checks: [{scope:'projects', value:slug}, │ {scope:'operations', value:'read'|'write'|'admin'}, │ {scope:'transports', value:'rest'|'mcp'|...}] ├─ touchApiKey — fire-and-forget : lastUsedAt, usageCount, lastIp │ ▼ ormHandler (entité CRUD) ─→ sanitizer (strip password/hash/tokens) │ ▼ HTTP Response

Scope-based permissions (generic, extensible)

Une apikey a la shape :

{

permissions: { scopes: { projects: ['my-project','demo'] | '*', // declared by @mostajs/mproject operations: ['read','write','admin'] | '*', // declared by @mostajs/orm transports: ['rest','graphql','mcp'] | '*', // declared by @mostajs/net // anything: any module can register a new scope }, rateLimit: 500, } }

@mostajs/api-keys ne connaît PAS les noms projects/operations/transports — c'est volontaire. Chaque module enregistre ses scopes au boot via registerScope(dialect, {name, label, …}). Le check est générique : isScopeAuthorized(perms, scope, value).

HTTP status mapping
CasHTTP codeBody
Pas d'apikey401{error: {code:'UNAUTHORIZED', message:'API key required…'}}
Apikey invalide / révoquée401{error: {code:'UNAUTHORIZED', message:'Invalid or revoked API key'}}
Apikey valide hors scope403{error: {code:'FORBIDDEN', message:'API key not authorized for X="Y"'}}
Apikey OK200/201{status:'ok', data: …} (sanitized — no password/hash)
MCP fallback (compat mcp.so)

L'endpoint /mcp autorise un fallback automatique sur l'apikey labelée public-default quand aucune clé n'est présentée — préserve la compat avec mcp.so / Claude Desktop. La clé publique est read-only sur le projet `default` uniquement → écritures bloquées.

Sanitizer

Les champs password, hash, verifyToken, resetToken, apiKeyHash, secret, privateKey sont automatiquement strippés de toutes les réponses JSON par un middleware global. Aucun risque de leak à travers /api/v1/User?limit=1.


Generic scope registry

Le catalogue des scopes vit en base de données du projet accueillant (pas de fichier JSON, pas de constantes hardcodées) :

-- Auto-créées au boot via @mostajs/api-keys

CREATE TABLE api_key_scopes ( id, name, label, description, icon, cardinality, valuesSource ('static' | 'dynamic'), dynamicSourceRef );

CREATE TABLE api_key_scope_values ( id, scopeName, value, label, sortOrder, metadata );

Chaque module enregistre ses scopes au boot :

import { registerScope } from '@mostajs/api-keys/server'

// Dans mosta-net/src/server.ts (boot) await registerScope(dialect, { name: 'transports', label: 'Network transports', cardinality: 'low', valuesSource: 'static', staticValues: [ {value:'rest', sortOrder:1}, {value:'graphql', sortOrder:2}, // … 9 more ], })

await registerScope(dialect, { name: 'projects', label: 'Projects', cardinality: 'high', valuesSource: 'dynamic', dynamicSourceRef: 'Project.slug', // queried at runtime })

L'admin UI charge le catalogue dynamique via GET /api/api-keys/scopes et rend une matrice (composant React ApiKeyScopeMatrix dans @mostajs/api-keys/components/).


Multi-project support

Via @mostajs/mproject — N bases de données isolées sur le même serveur.

Routes path-prefix
# Default project (DB_DIALECT + SGBD_URI au boot)

curl http://localhost:4488/api/v1/User

Project nommé 'analytics'

curl http://localhost:4488/api/v1/analytics/events

Ou via header (équivalent)

curl http://localhost:4488/api/v1/events -H "X-Project: analytics"

Ajouter un projet à l'exécution
curl -X POST http://localhost:4488/api/projects \

-H "X-API-Key: " \ -d '{ "name": "analytics", "dialect": "mongodb", "uri": "mongodb://localhost:27017/analytics",

只显示了开头部分;其余内容请在仓库中阅读

问 PopNx