Geektastic Server
БесплатноНе проверенA self-hosted MCP server with a web UI that integrates Geektastic Realms, enabling management of statblocks, campaigns, lore entries, and adventure modules thro
Описание
A self-hosted MCP server with a web UI that integrates Geektastic Realms, enabling management of statblocks, campaigns, lore entries, and adventure modules through MCP clients.
README
A self-hosted MCP (Model Context Protocol) server with a Web management UI that exposes the Geektastic Realms application to MCP clients (Claude Desktop/Code and others). Deploys as a Docker stack via Portainer, and is architected so additional applications can be plugged in over time.
- Integration: Geektastic Realms REST/HTTP API
- Stack: TypeScript full-stack (Node +
@modelcontextprotocol/sdkbackend, React UI) - MCP transport: Streamable HTTP (remote clients, bearer-token auth)
- Storage: PostgreSQL (Prisma ORM)
- Access: multi-user Web login with roles (admin + member), admin-managed accounts
- Web UI: connections & secrets, per-tool enable/disable, logs & monitoring, tool testing playground, user management
See ROADMAP.md for the full architecture, data model, and phased delivery plan.
Documentation
- Docs/ — the end-user & administrator manual: getting started, the admin guide (connections, tools, tokens, OAuth clients, users), the user guide, connecting an MCP client, the Geektastic Realms tools reference, and troubleshooting.
- Tech_Docs/ — engineering reference: architecture, data model, API reference, the MCP protocol implementation, OAuth 2.1, security, the connector SDK, deployment, and local development.
Status
Deployed and running (see CHANGELOG.md for the release history: the
initial scaffold, OAuth 2.1 support for Claude Desktop/Claude.ai, and a CSRF/session
fix). The Geektastic Realms connector is implemented against the real /api/v1/* API
(see geektastic-realms/Docs/API.md) — statblocks, campaigns, generic lore entries
(any category, with custom fields), and adventure modules (Acts/Chapters/Scenes/
Appendices, Encounters, Handouts). See ROADMAP.md for the full tool
list and what's still ahead (Roll Tables aren't exposed yet).
Repository layout
apps/server/ Node + Express backend: /api (management) and /mcp (Streamable HTTP)
apps/web/ React + Vite admin UI (built into apps/server/public)
packages/shared/ Types shared between server and web
packages/connectors/ AppConnector abstraction + the Geektastic Realms connector
Getting started
Copy the env template and fill in real values:
cp .env.example .envGenerate
APP_ENCRYPTION_KEYwithopenssl rand -hex 32, and a long randomSESSION_SECRET. Set a realADMIN_PASSWORD— it's only used to seed the first admin account on first run. SetPUBLIC_BASE_URLto this server's own externally-reachable origin (e.g.https://mcp.example.com) — required for OAuth discovery metadata (see "Connecting an MCP client" below).Install dependencies (requires Node 22+ and pnpm;
corepack enablewill provide pnpm):pnpm installGenerate the Prisma client and sync the schema to your Postgres instance:
pnpm prisma:generate pnpm prisma:pushNo Prisma migrations are checked in yet — see Known gaps below.
Run the server and web UI in dev mode (two terminals):
pnpm dev:server pnpm dev:webThe web dev server proxies
/apiand/healthtolocalhost:8080(seeapps/web/vite.config.ts).Or build and run everything as it will run in Docker:
pnpm build pnpm --filter @geektastic/server start
Docker / Portainer deployment
docker compose up -d --build
This builds the multi-stage Dockerfile (node:22-alpine) and starts it alongside the
official postgres:16-alpine image, per docker-compose.yml. Import the same
docker-compose.yml into Portainer as a Stack, and set the env vars from .env.example
in the stack's environment section. pgdata is a named volume, so config/secrets/users
persist across redeploys.
Connecting an MCP client
First, log in to the Web UI with the bootstrap admin and add a Geektastic Realms connection under Connections.
Claude Code CLI — uses a static Bearer token. Create one under Tokens (shown once, copy it), then:
claude mcp add --transport http geektastic https://<host>/mcp \
--header "Authorization: Bearer <token>"
Claude Desktop / Claude.ai (Custom Connector) — these only support OAuth 2.1, not a
raw header. Add a Custom Connector pointed at https://<host>/mcp; the server supports
Dynamic Client Registration, so Claude should register itself automatically and prompt
you to log in and approve access — no manual "OAuth Client ID" needed in the common
case. If a connector's setup screen doesn't attempt DCR and asks you to fill in a Client
ID manually, create one under OAuth Clients (name + Claude's redirect URI,
https://claude.ai/api/mcp/auth_callback) and paste the generated Client ID in.
scripts/verify-oauth.sh <host> <admin-username> <admin-password> simulates the full
OAuth flow via curl if you want to sanity-check the server side without a Claude.ai
account.
Known gaps / next steps
- No Prisma migration history yet. The container currently runs
prisma db pushon startup instead ofprisma migrate deploy(see the note inDockerfile). Once the schema is validated against a real database, runprisma migrate dev --name initlocally and commit the generatedapps/server/prisma/migrations/folder, then switch the Dockerfile back tomigrate deployfor safer, trackable schema changes. - Nothing has been
pnpm installed, type-checked, or run. Expect some rough edges (dependency versions, minor type errors) on the first real build — this was scaffolded without running installers, per the plan. - No automated tests yet.
Установка Geektastic Server
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/Geektasticdad/Geektastic-MCP-ServerFAQ
Geektastic Server MCP бесплатный?
Да, Geektastic Server MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Geektastic Server?
Нет, Geektastic Server работает без API-ключей и переменных окружения.
Geektastic Server — hosted или self-hosted?
Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.
Как установить Geektastic Server в Claude Desktop, Claude Code или Cursor?
Открой Geektastic Server на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
LibreOffice Tools
Enables AI agents to read, write, and edit Office documents via LibreOffice with token-efficient design. Supports multiple formats including DOCX, XLSX, PPTX, a
автор: passerbyflutterdannote/figma-use
Full Figma control: create shapes, text, components, set styles, auto-layout, variables, export. 80+ tools.
автор: dannoteLogo.dev
Search and retrieve company logos by brand or domain. Customize size, format, and theme to match your design needs. Accelerate design, prototyping, and content
автор: NOVA-3951PIX4Dmatic
Enables GUI automation for controlling PIX4Dmatic on Windows through MCP. Supports launching, focusing, capturing screenshots, sending hotkeys, clicking UI elem
автор: jangjo123Compare Geektastic Server with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории design
