Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Octoport

БесплатноНе проверен

A self-hosted MCP hub that unifies multiple MCP server configurations behind a single local endpoint, with a web dashboard for management, live tool-call loggin

GitHubEmbed

Описание

A self-hosted MCP hub that unifies multiple MCP server configurations behind a single local endpoint, with a web dashboard for management, live tool-call logging, and per-person access tokens.

README

One local MCP endpoint for every AI coding tool. 8 arms, 1 port.

Your MCP servers are configured in four different places — Claude Code, Cursor, Claude Desktop, Windsurf — each with its own copy of the same JSON, the same API keys, the same drift. octoport is a tiny self-hosted hub that pulls them all behind one endpoint: run one command, and manage everything else from the web dashboard.

Claude Code ─┐
Cursor      ─┼──▶  http://127.0.0.1:6286/mcp  ──▶  all your MCP servers
Windsurf    ─┘         (octoport)

Quickstart — one command, then it's all web

npx octoport up --open

The dashboard walks you through the rest:

  1. Import — octoport scans your Claude Code / Claude Desktop / Cursor / Windsurf / VS Code configs and shows every MCP server it found. Pick and import.
  2. Connect — copy one snippet per client (shown in the wizard).
  3. Clean up — remove the now-duplicate direct entries from your client configs. A timestamped backup of every file is written first, and the octoport connection itself is never touched. Restart running clients after.

From then on: add/edit/toggle servers, watch the live tool-call log, create per-person access tokens, and export JSONL — all in the dashboard. New servers propagate to every connected client live (tools/list_changed), no restarts.

Until the npm package is published, run from source: git clone https://github.com/nullarch/octoport && cd octoport && npm install && npm run build && node dist/cli.js up --open

Start at login:

octoport autostart          # launchd (macOS) / systemd --user (Linux)
octoport autostart --remove

Port 6286 is "OCTO" on a phone keypad. Change it with octoport up --port <n>.

What you get

  • One endpoint — N clients × M servers becomes 1 × M.
  • Live call log — exactly which tools your agents called, with what, how long it took, and which token (person/machine) made the call. SQLite under the hood, JSONL export.
  • Named access tokens — one per person or machine. Revoking a token kills its live sessions on the spot.
  • Process supervision — stdio servers run as child processes with crash isolation and backoff restart, plus a restart button in the dashboard.
  • Local security by default127.0.0.1 binding, Host/Origin validation (DNS-rebinding protection), and a per-install bearer token baked into every connection snippet. The MCP Inspector RCE (CVE-2025-49596) happened because a localhost tool skipped exactly these three.

Remote access (optional, explicit)

octoport never exposes itself beyond loopback unless you say so, twice.

Recommended: Tailscale. Keep the default loopback bind on the machine that runs octoport, or bind the tailnet address; either way nothing touches the public internet:

octoport up --host 100.x.y.z --allow-host hub.tailnet-name.ts.net --behind-proxy

Reverse proxy (Caddy) with a real domain. octoport does not terminate TLS — your proxy does:

# Caddyfile
hub.example.com {
  reverse_proxy 127.0.0.1:6286
}
octoport up --allow-host hub.example.com --behind-proxy

Then connect clients with https://hub.example.com/mcp and a token from the dashboard. Rules enforced at startup: a non-loopback bind refuses to start without at least one --allow-host and --behind-proxy. X-Forwarded-Host is deliberately ignored — the allowlist matches the real Host header.

Small team setup: run octoport on a shared box behind Tailscale, create one named token per teammate in Settings, and the call log becomes a team-level "which agent did what" record.

Honest scope: every token is full-admin. Any token opens the dashboard, reads server configs (including env secrets), and can create or revoke other tokens. Token names exist for log attribution, not access control — hand one out exactly like you'd hand out SSH access to the box.

Commands

Command What it does
octoport up [--open] [--port <n>] [--host <addr>] [--allow-host <h>] [--behind-proxy] Start the hub
octoport autostart [--remove] Start at login (launchd/systemd)
octoport import [--dry-run] CLI import (the wizard does this too)
octoport connect [client] Print connection snippets
octoport logs [--limit <n>] [--jsonl [file]] Inspect or export the call log
octoport token [--rotate] List tokens / rotate the default token

What octoport is not

  • Not an enterprise governance product. No SSO, no SCIM, no compliance claims. It's a personal/small-team tool; the log is yours.
  • Not a context optimizer for Claude Code. Claude Code ships native MCP tool search; octoport doesn't compete with it.
  • Not magic. Tool names are namespaced server__tool (capped at 48 chars with deterministic hashing) and routed through a mapping table — never string-parsed back.

Known limitations (v0.2)

  • Tools only: resources and prompts are not yet aggregated.
  • Legacy bidirectional flows (old-spec sampling/elicitation initiated by a downstream server) fail with a clear error instead of being relayed.
  • autostart requires a permanent install (npm i -g octoport or a repo checkout) — refuses to point launchd at an ephemeral npx cache.
  • Windows: hub works, autostart not yet.

Maintenance firewall

MIT-licensed, provided as is. No support guarantees, no response-time promises, PRs may or may not be merged, and the project may be archived at any time. If it's useful, use it; if you need guarantees, fork it.

Development

npm install
npm test          # 47 tests: unit + E2E (client → hub → fixture stdio server)
npm run build
node dist/cli.js up --open

from github.com/nullarch/octoport

Установка Octoport

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/nullarch/octoport

FAQ

Octoport MCP бесплатный?

Да, Octoport MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Octoport?

Нет, Octoport работает без API-ключей и переменных окружения.

Octoport — hosted или self-hosted?

Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.

Как установить Octoport в Claude Desktop, Claude Code или Cursor?

Открой Octoport на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Octoport with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории development