プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のための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の3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: その他

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • レジストリには、入力が必要なキーは載っていません。

必要なもの

  • npmNode.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

  • このカテゴリのほかの32684件のうち0%よりスターが多い
  • このカテゴリのほかの32684件のうち5%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの32684件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Mosta Netは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(2.0.42)がレジストリに届いたのは7 か月前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。

代わりに使えるものは?

同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Master CSS

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Remote Desktop Commander

作者:desktop-commander

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

クラウドで動く★ 211一昨日更新
インストール

Master CSS

作者:master-co

Inspect Master CSS classes, generated CSS, and project stylesheets from your AI client.

パソコンで動く今日更新
インストール

作者の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に聞く