Nexian MCP Hub
Nexian MCP Hub is a multi-tenant MSP integration platform that lets each tenant connect third-party systems and expose normalized, AI-safe tools through a single remote MCP server.
Monorepo layout
apps/web: Next.js admin and end-user appapps/api: backend API for auth, tenant management, connectors, OAuth callbacks, and audit APIsapps/mcp: remote MCP server with bearer-token protected HTTP endpointspackages/core: shared domain types, security primitives, MCP models, validation helperspackages/connectors: provider adapters and normalized tool implementationsprisma: Postgres schema and seed-ready modelsdocker: local container assetsdocs: architecture, deployment, and security notes
Local setup
- Install Node.js 22+ and
pnpm. - Copy
.env.exampleto.envand fill in provider credentials. - Start infrastructure:
docker compose up -d
- Install dependencies:
pnpm install
- Generate Prisma client and run migrations:
pnpm db:generate
pnpm db:migrate
- Start the stack:
pnpm dev
Vercel deployment
Deploy the apps/web Next.js app as the Vercel project.
Recommended Vercel settings:
- Root Directory:
apps/web - Install Command:
pnpm install - Build Command:
pnpm build - Output Directory: leave empty for Next.js auto-detection
Environment variables to set in Vercel:
NEXT_PUBLIC_API_URLNEXT_PUBLIC_MCP_URLAPI_URLAPP_URL
This repo keeps apps/api and apps/mcp as separate Node services. For production, deploy those on a container host and point the Vercel frontend to them via environment variables.
Railway deployment
Use Railway for the backend split:
apps/apion Railwayapps/mcpon Railwayapps/webon Vercel
The practical setup guide is in:
docs/railway-vercel-deploy.md
Important production env relationships:
APP_URLshould be your Vercel web URLAPI_URLshould be your Railway API URLMCP_URLshould be your Railway MCP URLHALOPSA_REDIRECT_URIshould point to the Railway API callback URLNEXT_PUBLIC_API_URLin Vercel should point to the Railway API URLNEXT_PUBLIC_MCP_URLin Vercel should point to the Railway MCP invoke URLSESSION_SECRETmust match between the API and MCP services
Product architecture
- Web users authenticate with the platform and act within a tenant workspace.
- Connected accounts are stored per tenant and user, with access and refresh tokens encrypted at rest.
- The API owns OAuth callback handling, token refresh, policy checks, audit logging, and connector lifecycle.
- The MCP server validates
Authorization: Bearer <token>on every HTTP request and routes each tool call through tenant-aware policies. - Provider-specific logic stays inside adapters; only normalized tools are exposed externally.
Version 1 connector scope
- HaloPSA
- Microsoft 365 / SharePoint
- HubSpot as CRM
- IT Glue as documentation / KB
Guardrails
- Read-heavy tools first
- Safe writes only for low-risk workflows such as draft ticket creation and internal notes
- No destructive writes in v1
- All tool invocations generate audit events
Next implementation milestones
- Wire real auth and persistence into the API module skeletons.
- Add Prisma migrations and database client bootstrapping.
- Replace connector placeholders with live provider SDK or REST integrations.
- Add integration tests for OAuth, token refresh, and MCP tool execution.