BoJ-server
BoJ-server is a unified MCP server consolidating development, cloud, communication, browser automation, research, and ML tooling into a single endpoint.
Development & Version Control
GitHub – Manage repos, issues, PRs, code search, file access, and GraphQL queries
GitLab – Manage projects, issues, merge requests, CI/CD pipelines, and push mirrors
Cloud Services
Cloudflare – Workers, D1 databases, KV namespaces, R2 buckets, DNS zones/records
Vercel – Projects, deployments, domains, env vars, logs, and serverless functions
Verpex (cPanel) – Domains, DNS, email accounts, databases, SSL, cron jobs, and metrics
Communication
Gmail – Send, read, search emails, and manage labels
Google Calendar – List/create events and check free/busy availability
Browser Automation (Firefox)
Navigate URLs, click elements, type text, read page content, take screenshots, manage tabs, and execute arbitrary JavaScript
Machine Learning (Hugging Face)
Search models/datasets, get model info, run inference, and list spaces
Academic Research (Semantic Scholar)
Search papers, get citations/references, and find author information
Local Multi-Agent Coordination
Peer discovery, collision-free task claiming, role-based supervision (master/journeyman/apprentice), typed message envelopes, watchdog timers, and track-record management
Server Management
Check health status, list 100+ pluggable cartridges across trust tiers, view the cartridge matrix, get cartridge details, and invoke cartridge operations directly
Security includes rate limiting, prompt-injection detection, error sanitization, and formally verified core components in Idris2.
Integrates Git as a core capability domain through formally verified cartridges, enabling AI agents to interact with repositories and manage source control via the server's unified 2D matrix architecture.
boj-server
BoJ (Bundle of Joy) is a unified MCP server that consolidates all hyperpolymath tooling into a single endpoint — GitHub, GitLab, Cloudflare, Vercel, Verpex, Gmail, Calendar, browser automation, research, ML, and 115 open-source cartridges.
Install
BoJ ships as an MCP server over stdio. Every snippet below uses the published npm package; replace npx -y @hyperpolymath/boj-server@latest with one of the following from a local clone:
# Preferred — Deno (no install step; fetches imports on first run)
deno run -A /path/to/boj-server/mcp-bridge/main.js
# Bun (also zero-install)
bun /path/to/boj-server/mcp-bridge/main.js
# Node — works, but Deno is the project's documented runtime
node /path/to/boj-server/mcp-bridge/main.jsThe bridge has zero runtime dependencies (see package.json) so no install step is ever required, regardless of runtime.
Most cartridges require the BoJ REST backend running on http://localhost:7700 — see Backend below.
Claude Code (CLI)
claude mcp add boj-server -- npx -y @hyperpolymath/boj-server@latestClaude Desktop
Edit claude_desktop_config.json:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"boj-server": {
"command": "npx",
"args": ["-y", "@hyperpolymath/boj-server@latest"],
"env": { "BOJ_URL": "http://localhost:7700" }
}
}
}Restart Claude Desktop after saving.
Gemini CLI
This repo ships a gemini-extension.json — install it directly:
gemini extensions install https://github.com/hyperpolymath/boj-serverOr add to ~/.gemini/settings.json:
{
"mcpServers": {
"boj-server": {
"command": "npx",
"args": ["-y", "@hyperpolymath/boj-server@latest"],
"env": { "BOJ_URL": "http://localhost:7700" }
}
}
}GitHub Copilot (VS Code)
VS Code 1.99+ supports MCP servers natively. Add to workspace .vscode/mcp.json:
{
"servers": {
"boj-server": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@hyperpolymath/boj-server@latest"],
"env": { "BOJ_URL": "http://localhost:7700" }
}
}
}For user-level (all workspaces): Command Palette → MCP: Add Server → Command (stdio) → paste npx -y @hyperpolymath/boj-server@latest. Toggle BoJ on in the Copilot Chat agent picker.
Cursor
Workspace: .cursor/mcp.json. User-global: ~/.cursor/mcp.json.
{
"mcpServers": {
"boj-server": {
"command": "npx",
"args": ["-y", "@hyperpolymath/boj-server@latest"],
"env": { "BOJ_URL": "http://localhost:7700" }
}
}
}Or use Settings → MCP → Add new MCP server.
Cline (VS Code extension)
Settings → Cline → MCP Servers → Edit MCP Settings:
{
"mcpServers": {
"boj-server": {
"command": "npx",
"args": ["-y", "@hyperpolymath/boj-server@latest"],
"env": { "BOJ_URL": "http://localhost:7700" }
}
}
}Windsurf (Codeium Cascade)
Edit ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"boj-server": {
"command": "npx",
"args": ["-y", "@hyperpolymath/boj-server@latest"],
"env": { "BOJ_URL": "http://localhost:7700" }
}
}
}Continue.dev
In ~/.continue/config.yaml:
mcpServers:
- name: boj-server
command: npx
args: ["-y", "@hyperpolymath/boj-server@latest"]
env:
BOJ_URL: http://localhost:7700Zed
Settings (~/.config/zed/settings.json):
{
"context_servers": {
"boj-server": {
"command": {
"path": "npx",
"args": ["-y", "@hyperpolymath/boj-server@latest"],
"env": { "BOJ_URL": "http://localhost:7700" }
}
}
}
}Generic stdio (any MCP client)
The minimum spec is command: npx, args: ["-y", "@hyperpolymath/boj-server@latest"], transport stdio. Optional env: BOJ_URL (default http://localhost:7700).
This repo's .mcp.json is a working reference config.
Backend
Most cartridges (GitHub/GitLab/Cloud/ML/Browser/CodeSeeker/etc.) call the BoJ REST API. Two options:
Run BoJ locally — clone this repo and
just run(see QUICKSTART-USER.adoc). REST API on port 7700.Inspectable mode only — without the backend,
boj_health,boj_menu,boj_cartridges, andboj_cartridge_infostill respond from the offline manifest fallback, so MCP clients can introspect the server without running anything else. Side-effectful tools will return{error, hint}until the backend is up.
Verify
After install, ask the LLM: "Use the boj_health tool." You should get {status: "ok", uptime_s, version} when the backend is up, or a structured hint when it's offline.
Glama listing: https://glama.ai/mcp/servers/hyperpolymath/boj-server
Related MCP server: OrigeneMCP
Scope
115 cartridges, organized across the domains below. Each cartridge is a formally verified Idris2 ABI + Zig FFI + Deno/JS adapter triple, reachable through a single MCP endpoint. Click any section to expand.
Cartridge | Description |
| GitHub REST API — repos, issues, PRs, search |
| GitLab REST API — projects, issues, MRs |
| GitHub Actions — workflows, runs, jobs, artifacts, secret rotation |
| Multi-forge git operations (GitHub, GitLab, Gitea, Bitbucket) |
Bridge-level tools: boj_github_* (14), boj_gitlab_* (8) — 22 explicit tools. Auth via GITHUB_TOKEN / GITLAB_TOKEN env vars.
Cartridge | Description |
| Multi-cloud session manager (AWS / GCP / Azure / DO / Vercel) |
| AWS gateway — session-based auth, per-region slots, throttle management |
| GCP gateway — project-scoped auth, quota tracking, multi-service routing |
| Cloudflare v4 — Workers, D1, KV, R2, DNS, zone settings, SSL/TLS |
| DigitalOcean — droplets, volumes, domains, SSH keys, snapshots, databases |
| Hetzner Cloud — servers, volumes, firewalls, networks, snapshots, floating IPs |
| Fly.io Machines v1 — apps, machines, volumes, secrets, regions, IPs, certs |
| Linode/Akamai — instances, volumes, domains, NodeBalancers, StackScripts |
| Railway GraphQL v2 — projects, services, deployments, env, domains, logs |
| Render REST v1 — services, deploys, env groups, custom domains, jobs |
Bridge-level tools: boj_cloud_cloudflare, boj_cloud_vercel, boj_cloud_verpex. Other providers reachable via boj_cartridge_invoke.
Cartridge | Description |
| Universal SQL/NoSQL gateway across multiple engines |
| PostgreSQL — full transaction support, connection pooling, query lifecycle |
| MongoDB — collection-level CRUD, aggregation pipelines, sessions |
| Redis — KV, sorted sets, pub/sub, streams, Lua scripting |
| Neo4j — graph database query and write |
| ClickHouse — columnar queries, bulk inserts, real-time analytics |
| DuckDB — in-process analytics over Parquet/CSV/JSON/Arrow |
| ArangoDB — AQL queries, multi-model documents, graph traversals |
| Turso libSQL — edge SQLite, multi-DB, embedded replica sync |
| Supabase — Postgres, Auth, Storage, Edge Functions |
| Neon — serverless Postgres, branch management, query execution |
| VeriSimDB — verified simulation database with formal drift detection |
Cartridge | Description |
| Build / create / start / stop / remove via Podman or Docker |
| Docker Hub — image search, repos, tag listing, manifests |
| Kubernetes — namespace-scoped CRUD with lifecycle management |
| Stapeln stack manager — Chainguard-base composable container layers |
| Vordr integrity monitor — BLAKE3 tamper-detection on container images |
Cartridge | Description |
| Buildkite — pipelines, builds, jobs, artifacts |
| CircleCI — pipelines, workflows, jobs, artifacts |
| Laminar — minimalist CI/CD pipeline management |
| Hypatia — neurosymbolic CI security/quality/compliance scanner |
| Unified observability — metrics, logs, traces |
| Grafana — dashboards, panel queries, alert rules, annotations |
| Prometheus — PromQL instant + range queries, alerts, targets |
| Sentry — issues, events, projects, releases, deployments |
Cartridge | Description |
| Gmail + Google Calendar — send, read, search, labels, events, free/busy |
| Slack — messages, channels, threads, search, users |
| Discord — messages, channel history, guilds, reactions |
| Telegram Bot API — messages, chats, inline queries, updates |
| Matrix — messages, room join/leave, history, membership |
| Unified notify — Email, SMS, WhatsApp, Slack, Telegram, Discord |
Bridge-level tools: boj_comms_gmail, boj_comms_calendar.
Cartridge | Description |
| Docs — document retrieval, content, search, headings, comments |
| Sheets — metadata, cell ranges, named ranges, sheet listing |
| Notion — pages, databases, blocks |
| Obsidian vault — note search, content, backlinks, tags, graph |
| Linear — issues, projects, cycles, labels |
| Jira — projects, issues, sprints, workflows |
| Todoist — tasks, projects, completion, labels |
| Airtable — bases, table schemas, record CRUD |
| Zotero — library search, items, collections, tags |
| Academic workflow — Zotero integration, citations, paper review |
Cartridge | Description |
| Hugging Face + others — search, model info, inference, spaces, datasets |
| Anthropic Messages API — Claude models, token counting, multi-turn |
| Specialized AI-agent management for dev teams |
| Task classifier — recommends opus/sonnet/haiku per task |
| LLM advisor for the ECHIDNA formal-verification engine |
| OODA-loop agent session enforcer |
| Multi-instance peer discovery + typed envelopes + supervision (21 tools) |
| Persistent local memory for Claude, Cursor, Codex (13 tools, no cloud) |
Bridge-level tool: boj_ml_huggingface. coord_* tools (21) wire through local-coord-mcp — see the dedicated section below.
Cartridge | Description |
| Firefox automation via Marionette — navigate, click, type, screenshot, exec JS |
| Native desktop windows — panel loading, JS bridge |
Bridge-level tools: boj_browser_* (7) — navigate, click, type, read_page, screenshot, tabs, execute_js.
Cartridge | Description |
| CodeSeeker — vector + BM25 + path-tier fused via RRF; KG traversal; Graph-RAG |
| Enterprise code intelligence — graph-based analysis for AI-assisted dev |
| Semantic Scholar / OpenAlex — papers, citations, references, authors |
| Public dataset access for LLM apps |
| Biomedical platform — 600+ tools/databases (ChEMBL, PubChem, FDA, OpenTargets) |
Bridge-level tools: boj_codeseeker, boj_research.
Cartridge | Description |
| Generic Language Server Protocol 3.17 gateway — spawn any LSP server |
| Generic Debug Adapter Protocol gateway |
| Generic Build Server Protocol 2.x gateway |
| Multi-language session manager — Eclexia, AffineScript, BetLang, Ephapax |
| Toolchain orchestrator — mint/provision/configure language toolchains |
| Cross-domain LSP router across all 12 poly-*-lsp servers |
| AffineScript — type check, parse, format, lint, compile, hover, definition |
| AffineScript → typed-wasm at Level 7/10 ownership soundness |
| npm — search, metadata, versions, downloads, dependency analysis |
| PyPI — Python packages, search, metadata, versions, downloads |
| crates.io — Rust crates, search, metadata, versions, downloads |
| Hackage — Haskell packages |
| Hex.pm — Elixir/Erlang packages |
| opam — OCaml packages |
Plus opsm-mcp (Odds-and-Sods Package Manager) routes search/install/dep-resolution across all of the above.
Cartridge | Description |
| Secrets management — Vault, SOPS, env-vault |
| Vault CLI credential broker — execute, list, verify, rotate |
| Sanctify — PHP lint + deviation detection |
| panic-attacker static analysis — dangerous patterns, banned constructs, drift |
| Vext — signed-message verification, attestation chains |
| Rokur — Svalinn secrets GUI authorisation layer |
| DNS security — DoQ, DoH, DNSSEC, CAA |
Cartridge | Description |
| Terraform / OpenTofu lifecycle — plan → apply → destroy with state lifecycle |
| Conflow — configuration management |
| Bofig — evidence graph query for investigative workflows |
| Proof verification — Lean, Coq, Agda, Isabelle, Idris2, Z3, more |
| Neural-symbolic harmonisation — symbolic truth overrides neural probability |
| Ephapax — proof-compiler query tools for formal verification |
| PMPL licence chain verification + artefact hashing |
Cartridge | Description |
| Self-health — status, ping, uptime |
| gitbot-fleet gate compliance tracker |
| Reposystem — managed repos, health, mirrors, RSR compliance |
| oo7 agent meta-language — parse/run/trace/build/test/lint |
| K9 contract regeneration (k9iser generate/validate/apply) |
| IDApTIK game server administration |
| Burble WebRTC server administration |
| Game server admin + configuration drift |
| Aerie environment lifecycle manager |
| DNS lookup cartridge |
| Fireflag — extension-to-MCP mapping and discovery |
| Type-theory learning system — classification + learner evaluation |
| CivicConnect community engagement platform |
Plus feedback-mcp (feedback collection + sentiment), ssg-mcp (Hugo/Zola/Astro/Casket), ums-mcp (Universal Map Specification level editor).
Bridge-level tools (41 exposed)
A subset of cartridges have explicit boj_<domain>_<verb> tools at the bridge for highest-frequency operations. Everything else is reachable via boj_cartridge_invoke:
5 core:
boj_health,boj_menu,boj_cartridges,boj_cartridge_info,boj_cartridge_invoke3 cloud:
boj_cloud_verpex,boj_cloud_cloudflare,boj_cloud_vercel2 comms:
boj_comms_gmail,boj_comms_calendar1 ML:
boj_ml_huggingface7 browser:
boj_browser_navigate,boj_browser_click,boj_browser_type,boj_browser_read_page,boj_browser_screenshot,boj_browser_tabs,boj_browser_execute_js14 GitHub + 8 GitLab
1 CodeSeeker, 1 research
21 coord (see below)
Set BOJ_TOOL_SCOPE=core to advertise only the discovery surface; explicit tools remain reachable via boj_cartridge_invoke regardless.
Local-coord-mcp at a glance
Localhost multi-agent bus on 127.0.0.1:7745. Lets multiple Claude / Gemini / Codex / Vibe sessions on the same machine discover each other, claim tasks without collision, and operate under a supervision model (master approves; journeyman executes; apprentice stays gated).
Highlights:
Peer registration with
client_kind,variant(model id —opus-4.7,flash-2.5,leanstral), capability class/tier/prover-strengths —coord_register,coord_set_variant,coord_set_capabilities,coord_get_peer_capabilities.Typed envelopes validated at the bridge via Nickel contracts (
coord-messages.ncl) —coord_send,coord_send_gated.Task claims with role-based watchdog TTL (apprentice 30s / journeyman 5m / master none), heartbeats via
coord_progress, auto-release + explicitcoord_sweep_watchdog.Track-record + reassignment —
coord_report_outcome,coord_get_affinities,coord_scan_suggestions(emitsoverclaimfyi +driftwarn envelopes on confidence/affinity divergence).Supervision —
coord_review,coord_approve,coord_reject,coord_promote_to_master,coord_transfer_master.Observability —
coord_healthsnapshot of peer/quarantine/claim/reject state.
Formally verified core in Idris2 (cartridges/local-coord-mcp/abi/LocalCoord/); Zig FFI; Deno/Node MCP bridge with input hardening (rate limiting, prompt-injection detection with unicode-normalisation, error sanitisation).
Parallel agents and git
"Claim tasks without collision" is a task-level guarantee, not a git-level one. coord_claim ensures two peers never own the same task-id at the same time; it does not lock files, branches, or the working tree. If two journeymen claim different tasks that happen to touch the same file, vanilla git merge conflicts can still occur.
The supported pattern for parallel work is:
Branch-per-claim + per-peer worktree.
just coord-worktree <task-id>claims the task and provisions an isolatedgit worktreeat../<repo>-worktrees/<task>on branchagent/<peer-id>/<task>, so two journeymen on the same checkout never share a working tree. The recipe is a thin wrapper overcoord-tui's shell helper of the same name — both refuse to provision when the claim is refused by the backend.Advisory path-claims.
coord_claim_taskaccepts an optionalpathsarray declaring the working-tree files the claim expects to touch. The bridge keeps an in-memory map of active path-claims and annotates the response withpath_overlapwarnings (segment-aware prefix match) when another active claim covers any of those paths. Advisory by design: warnings never block the claim — the Idris2-verified backend remains the source of truth for task ownership, and this layer is the early-warning signal that lets the holder split the task, hand off, or accept the merge cost knowingly.Master-gated integration.
coord_approveis the serialisation point: the master peer reviews, rebases or asks the journeyman to rebase, and merges in a defined order. Two approved branches that conflict are resolved at this step, not in the cartridge.Drift signal, not lock.
coord_scan_suggestionsemitsdriftwarn envelopes when affinities or confidence diverge — that's an advisory signal to re-route or split a task, not a hard lock against file overlap.
What local-coord-mcp does not do today: hard file-range locks, automatic rebase, or conflict resolution. The path-overlap layer is a hint, not a mutex — two journeymen can still both proceed against overlapping files and conflict at merge. Those final steps stay with the master peer (or human integrator), in line with the supervision model. If you need stricter isolation than path-claims + worktrees, partition tasks by directory before issuing them.
Glama AAA posture
This server targets Glama's AAA tier. Posture:
Inspectable —
.mcp.json+ rootpackage.jsonbinentry + shebang; offline manifest fallback so cloud inspection works without the REST backend (seemcp-bridge/lib/offline-menu.js).Tool Definition Quality — every tool carries purpose, usage guidance, behavioural transparency (side effects, returns, errors), and parameter semantics with enums, ranges, and patterns. A coherence test enforces a minimum description floor so the server-level score (60% mean + 40% min) cannot regress — see
mcp-bridge/tests/dispatch_test.js.Server Coherence — one tool ↔ one verb; consistent
boj_<domain>_<action>andcoord_<action>naming; the same test asserts the bridge tool list matches the cartridge manifest so nothing advertised is un-dispatched (or vice versa).Security — PR #27 hardening: rate limiting, size caps, prompt-injection detection with unicode-confusable normalisation, error sanitisation (strips paths, stack traces, env vars). SHA-pinned workflow actions.
Formal —
cartridges/local-coord-mcp/abi/LocalCoord/*.idrIdris2 ABI + proof obligations (P-01..P-07).
Run the coherence tests:
npm testCiting
If you use BoJ Server in academic work, citation metadata is in CITATION.cff. GitHub renders a "Cite this repository" button in the sidebar from this file.
Per-release DOIs are available via Zenodo. To enable them:
Log in to zenodo.org with your GitHub account.
Account → GitHub → flip the boj-server repository toggle to on.
Cut a new GitHub release; Zenodo auto-archives it and mints a DOI.
Add the DOI badge to this README:
[](https://doi.org/10.5281/zenodo.XXXXXXX)Update the
doi:field inCITATION.cffto match.
License
MPL-2.0 — see LICENSE.
Maintenance
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/hyperpolymath/boj-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server