Skip to main content
Glama

MCP Hub — 올인원 MCP 서버 및 커넥터 생태계

AI 클라이언트를 위한 단일 엔드포인트로 MCP(Model Context Protocol) 커넥터를 통합하는 자체 호스팅 허브입니다. 앱 스토어 스타일의 웹 UI, 원클릭 설치, 실시간 로그 및 상태 모니터링을 제공합니다.

Claude Desktop / Cursor ──Bearer key──▶  ┌─────────────────────┐
                                        │   MCP Hub (:3000)    │──▶ github (npx)
                                        │  /mcp   /api  Web UI │──▶ postgres (npx)
Web browser ──session cookie──▶         └─────────┬───────────┘──▶ slack (npx) …
                                                  ▼
                                            PostgreSQL 16

빠른 시작

A. 로컬 / 일반 Docker

cp .env.example .env
# edit .env — set POSTGRES_PASSWORD (and optionally MASTER_ENCRYPTION_KEY / SESSION_SECRET)
docker compose up -d --build

B. Portainer(웹 편집기)

  1. Stacks → Add stack → Web editor로 이동하여 portainer-stack.yml을 붙여넣습니다.

  2. 배포 전에 환경 변수 POSTGRES_PASSWORD를 추가합니다(Environment variables 아래).

  3. 배포합니다 — 이미지는 Docker Hub(xeniak10/mcp-hub:latest)에서 가져오므로 빌드가 필요 없습니다.

http://:3000을 엽니다 — 첫 방문 시 관리자 계정을 생성하라는 메시지가 표시됩니다(부트스트랩). 그런 다음:

  1. Marketplace로 이동하여 예: GitHub을 설치하고 토큰을 붙여넣으면 커넥터의 하위 프로세스가 백그라운드에서 시작됩니다.

  2. Settings로 이동하여 API 키를 생성합니다.

  3. AI 클라이언트를 허브에 연결합니다:

{
  "mcpServers": {
    "hub": {
      "url": "http://localhost:3000/mcp",
      "headers": { "Authorization": "Bearer mcp_YOUR_KEY" }
    }
  }
}

모든 커넥터 도구는 github__create_issue, postgres__query, …와 같이 네임스페이스로 구분되어 표시됩니다.

Related MCP server: CbetaMCP

제공 기능

  • Marketplace — 개발자용 내장 커넥터 71개(GitHub, GitLab, Postgres, Kubernetes, Sentry…) 비즈니스 팀용 커넥터 — CRM(Salesforce, HubSpot, Pipedrive), ERP/회계(Odoo, QuickBooks, Xero), 헬프데스크(Zendesk, Freshdesk, ServiceNow), 커뮤니케이션(Microsoft 365, Email IMAP/SMTP, Twilio, Slack, Teams files), 생산성(Google Sheets, Notion, Airtable) 및 관찰 가능성(Dynatrace). 원클릭 설치, 스키마 기반 구성 양식, 허브 컨테이너 내부의 npx/uvx를 통한 백그라운드 종속성 시작. 검색, 카테고리 필터 및 정렬(공식 우선 / 가장 많이 설치된 순 / 이름순).

  • 커뮤니티 커넥터 저장소 — Marketplace("Community repos" 섹션)에 공개 GitHub 저장소 URL을 붙여넣으면 해당 저장소의 모든 유효한 커넥터 매니페스트가 가져와지고 검증되어 카탈로그에 병합됩니다(community:owner/repo/<id> 네임스페이스, 데이터 볼륨에 오프라인 캐시). 저장소 루트의 index.json은 파일을 명시적으로 나열하며, 그렇지 않으면 루트 수준의 *.json 파일이 탐색됩니다. 새 항목은 허브를 다시 시작한 후 나타납니다.

  • 사용자 정의 커넥터 — JSON 매니페스트를 ./connectors/(또는 connectors 볼륨)에 넣으면 다시 시작 후 마켓플레이스에 나타납니다. connectors/example.json.example을 참조하세요.

  • 대시보드 — 실시간 상태 배지(실행 중 / 시작 중 / 오류 / 중지됨), 통계 타일, 인스턴스 검색, 확인을 통한 일괄 모두 다시 시작 / 모두 중지.

  • 커넥터 상세 — 인라인 인스턴스 이름 변경, 시각적 구성 편집기, 실행 중인 프로세스를 통한 실시간 도구 미리보기(tools/list) 및 클릭하여 복사하는 도구 이름, 실시간 로그 뷰어(WebSocket tail)와 레벨/텍스트 필터, 팔로우 모드 및 로그 다운로드.

  • 라이트 & 다크 테마 — 사이드바에서 전환, 브라우저별로 유지.

  • 키보드 단축키/ 검색 포커스 · g d 대시보드 · g m 마켓플레이스 · g s 설정 · Esc 대화상자 닫기/검색 흐림.

  • PWA 지원 — 설치 가능한 매니페스트 + SVG 파비콘.

  • 백업 및 복원 — 설치된 모든 커넥터와 구성을 JSON 파일로 원클릭 내보내기, 가져오기를 통해 새 인스턴스에서 복원(설정 페이지).

  • 계정 관리 — 비밀번호 변경(다른 모든 기기 로그아웃), IP/사용자 에이전트가 포함된 활성 세션 목록, 모든 세션 해지.

  • 오류 알림ERROR_WEBHOOK_URL을 설정하면 커넥터가 오류 상태에 들어갈 때마다 허브가 JSON 알림을 POST합니다(Slack, Discord, Teams, 일반 수신기와 호환, 커넥터당 5분 쿨다운).

  • Watchdog — 충돌한 프로세스는 지수 백오프로 다시 시작되고, 30초마다 상태 핑, 부팅 복구는 재시작 전에 활성화된 모든 것을 복원합니다.

  • 업데이트 — 설정에서 현재 버전을 표시하고 6시간마다(또는 지금 확인 시) GitHub 릴리스 / Docker Hub 태그를 확인합니다. 새 버전이 게시되면 배포 유형에 맞는 정확한 업그레이드 명령을 원클릭으로 복사할 수 있습니다.

  • 선택적 자동 업데이트docker compose --profile autoupdate up -d로 Watchtower 사이드카를 활성화하면 매시간 최신 xeniak10/mcp-hub 이미지를 가져와 앱 컨테이너만 다시 생성합니다(레이블 범위가 지정되어 데이터베이스에는 절대 영향을 주지 않습니다).

  • 모니터링 및 운영 — 가동 시간 프로브를 위한 인증 없는 GET /healthz, GET /api/meta는 버전 + git 커밋을 보고합니다(설정 바닥글에 표시). /mcp의 API 키 트래픽은 키당 분당 120회로 제한됩니다.

  • 보안 — 저장 시 AES-256-GCM 암호화 구성, argon2id 비밀번호, 쿠키 세션, 해시된 API 키, 로그인 속도 제한, 감사 로그.

구성

변수

필수

설명

POSTGRES_PASSWORD

번들된 PostgreSQL의 비밀번호

MASTER_ENCRYPTION_KEY

openssl rand -hex 32. 비어 있으면 /app/data/master.key에 자동 생성

SESSION_SECRET

비어 있으면 부팅마다 무작위(재시작 시 사용자 로그아웃)

APP_PORT

호스트 포트(기본값 3000)

LOG_RETENTION_LINES

커넥터당 링 버퍼 크기(기본값 5000)

LOG_RETENTION_DAYS

로그 보존 기간(기본값 7)

ERROR_WEBHOOK_URL

커넥터가 오류 상태에 들어갈 때 JSON 알림을 POST할 URL

볼륨: pgdata(데이터베이스), app-data(마스터 키 + 상태), npx-cache(커넥터 종속성 캐시 — 재시작 속도 유지).

업데이트

허브는 자체 컨테이너를 교체할 수 없으므로 업데이트는 호스트에서 한 줄로 수행됩니다:

docker compose pull app && docker compose up -d --no-deps --force-recreate app

(설정 → 업데이트에서 새 버전이 있을 때 이 명령을 복사해 줍니다. Portainer에서는 Stack → Pull and redeploy를 사용하세요.) 완전히 자동으로 하고 싶으신가요?

docker compose --profile autoupdate up -d

그러면 허브 옆에 Watchtower가 시작됩니다. 매시간 Docker Hub를 확인하고 최신 이미지가 있으면 앱 컨테이너를 다시 생성합니다(--cleanup은 이전 이미지를 제거). 데이터는 볼륨에 있으므로 업데이트는 무손실입니다.

개발

npm install
npm run dev        # server (watch) + web (vite dev server on :5173, proxied /api + /mcp)
npm run typecheck  # all workspaces
npm run build      # shared → server → web

스택: npm workspaces · Fastify 5 · @modelcontextprotocol/sdk · PostgreSQL 16 · Vite + React 18 + Tailwind CSS v4 + TanStack Query.

레이아웃

packages/
  shared/   types shared by server & web (manifests, API DTOs, WS events)
  server/   Fastify app: auth, registry (connector manifests), ConnectorManager,
            unified /mcp proxy, log pipeline, SQL migrations
  web/      React SPA served statically by the server in production

커넥터 추가

재빌드 없이(권장): connectors/example.json.exampleconnectors/<your-id>.json으로 복사하고 매니페스트를 작성한 후({env.NAME} 자리 표시자 + JSON 스키마 구성 양식이 있는 명령 argv) 허브를 다시 시작합니다. 잘못된 파일은 로그에 경고와 함께 건너뛰어지며, 내장 커넥터와 충돌하는 사용자 정의 ID는 무시됩니다.

GitHub 저장소에서: Marketplace → Community reposowner/repo(또는 전체 github.com URL)를 붙여넣습니다. 허브는 저장소 루트에서 index.json(파일 경로 배열)을 가져오거나 루트 수준의 *.json 파일로 대체하고, 각각을 볼륨 매니페스트와 동일한 스키마로 검증한 후 community:owner/repo/<id> ID로 캐시합니다. 따라서 내장 커넥터를 가릴 수 없으며 첫 번째 가져오기 후에도 오프라인에서 계속 작동합니다. 같은 섹션에서 저장소를 관리/제거할 수 있으며, 변경 사항은 다음 재시작 시 적용됩니다.

내장: packages/server/src/registry/connectors/<id>.ts를 만들고 ConnectorManifest를 내보낸 다음 src/registry/index.ts에 등록합니다. 재빌드 후 즉시 마켓플레이스에 나타납니다.

REST API 요약

엔드포인트

인증

설명

GET /healthz

활성 프로브(DB 핑만, 세부 정보 없음)

POST /api/auth/bootstrap · login · logout

–/세션

최초 실행 계정, 로그인/로그아웃

GET /api/meta

세션

실행 중인 빌드의 {version, commit}

POST /api/auth/change-password

세션

비밀번호 변경, 다른 모든 세션 해지

GET /api/auth/sessions · DELETE /:id

세션

활성 세션 목록/해지

GET /api/marketplace

세션

설치 횟수가 포함된 카탈로그 항목

GET/POST /api/community/repos · DELETE /:repo

세션

커뮤니티 커넥터 저장소 관리

POST /api/connectors · PUT/DELETE /:id

세션

설치 / 이름 변경 / 제거

PUT /api/connectors/:id/config

세션

암호화된 구성 저장

POST /api/connectors/:id/enable·disable·restart

세션

수명 주기

POST /api/connectors/restart-all · stop-all

세션

일괄 작업

GET /api/connectors/:id/tools

세션

실행 중인 프로세스의 실시간 도구 목록

GET /api/logs/:id?after= + WS 스트림

세션

로그 테일

GET/POST /api/keys · DELETE /:id

세션

API 키 관리

GET /api/backup · POST /api/backup/restore

세션

구성 내보내기/가져오기

POST /mcp

Bearer 키 또는 세션

통합 MCP 엔드포인트(키당 분당 120회)

모든 변경 엔드포인트는 감사 로그에 기록됩니다.

참고 사항

  • 커넥터는 허브 컨테이너 내부의 하위 프로세스로 실행됩니다(npx -y pkg@version 또는 uvx). Docker 소켓은 마운트되지 않습니다. Python 기반 커넥터는 uvx가 필요하며 런타임 이미지에 설치되어 있습니다.

  • MCP 엔드포인트는 상태 비저장 Streamable HTTP(/mcp)입니다 — 모든 HTTP MCP 클라이언트가 작동합니다.

  • 리소스는 connector://<slug>/<original-uri>로 노출됩니다.

A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A modular, extensible FastAPI-based platform that aggregates multiple AI tools and microservices into a unified interface with standardized I/O formats, perfect for frontend integration or LLM system orchestration.
    4
    MIT
  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Intelligent routing service that selects optimal AI models based on capability requirements and normalizes input/output formats across multiple providers like OpenAI, Anthropic, Google, and others.
  • F
    license
    Not graded
    quality
    D
    maintenance
    A unified local API gateway providing caching, rate limiting, and full Model Context Protocol compatibility for AI agent integration. It enables users to aggregate multiple API endpoints into a single gateway with built-in observability and customizable eviction strategies.

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/xeniak123/mcp-hub'

If you have feedback or need assistance with the MCP directory API, please join our Discord server