@burdenoff/mcp-libs
v2026.805.2
Published
Modular MCP SDK shared across all Burdenoff product MCPs (vibecontrols, botlit, fluidgrids, bigconsole, healthybowl, workspaces). Each module exports an McpModule contract; product MCPs become thin shells that pick which modules to mount.
Maintainers
Readme
@burdenoff/mcp-libs
Modular MCP SDK shared across all Burdenoff product MCPs.
Each module under src/modules/<name>/ exports an McpModule. Product MCPs become thin shells (~125 lines) that pick which modules to mount, build an McpContext, pick a transport, and ship the binary.
Status — 1.0.0
23 modules cover the full surface of vibecontrols-app's microfrontends (~317 tools / 7 resources / 7 prompts):
| Domain | Modules |
|---|---|
| Identity | auth (full surface incl. mfa, api-keys, sso, delegations), rbac, organizations, tours |
| Workspace primitives | workspaces, groups, tags, files, conversations, security |
| Operations | integrations, channels, scheduler, export, notifications, support, products, devportal |
| Commerce | billing, store |
| Product surface | vibecontrols (rich; 16 sub-entities), sandbox, health |
Mounted in 6 product MCPs: vibecontrols, botlit, fluidgrids, bigconsole, healthybowl, workspaces — each consumes the same 23-module catalogue with product-prefixed tool names via mcpToolName(productName, …).
Install
bun add @burdenoff/mcp-libs @modelcontextprotocol/sdk graphql graphql-request zodFor HTTP transport:
bun add express corsQuick start (product MCP shell)
#!/usr/bin/env node
import { buildContext, createMcpServer } from '@burdenoff/mcp-libs/core';
import { startStdioServer, startHttpServer } from '@burdenoff/mcp-libs/transports';
import authModule from '@burdenoff/mcp-libs/modules/auth';
import vibecontrolsModule from '@burdenoff/mcp-libs/modules/vibecontrols';
// ... import the rest of the 23 modules as needed
import pkg from '../package.json' with { type: 'json' };
const ctx = buildContext({
productName: 'vibecontrols',
productVersion: pkg.version,
serverName: 'vibecontrols-mcp',
serverVersion: pkg.version,
defaults: {
configDirName: 'vibecontrols-mcp',
oidcClientId: 'burdenoff_mcp_vibecontrols',
workspaceEndpointDefault: 'http://localhost:4003/workspaces/graphql',
globalEndpointDefault: 'http://localhost:4000/global/graphql',
httpPortDefault: 3000,
},
});
const server = createMcpServer(ctx, [authModule, vibecontrolsModule], {
name: 'vibecontrols-mcp',
version: pkg.version,
});
await startStdioServer(server, ctx);Repository layout
src/core/—McpModule,McpContext, error classes, gql client, auth, config, output helpers.src/transports/— stdio + HTTP transport factories (express dynamic-imported).src/modules/<name>/— one folder per module:index.ts(McpModule export),tools.ts,resources.ts(optional),prompts.ts(optional),operations.ts.
See CLAUDE.md for the full architecture, hard rules, and adding-a-module guide.
License
UNLICENSED — Burdenoff Consultancy Services Pvt. Ltd.
