Skip to content

Repository files navigation

Quad4 MCP toolkit

ci gosec race mcp-inspector release go version license

Small standalone MCP servers and Skills for agents working on Reticulum and MeshChatX. Go, stdlib-first, stdio transport, safe read-only defaults.

Server Purpose
rns RNS manual, zen, forum/GitHub community, rngit, read-only rn* probes
reticulum-go Reticulum-Go docs at reticulum-go.quad4.io: searchable, section-aware, fetch
memory Persistent agent memory: notes, people, RNS destinations, tasks, fuzzy recall
meshchatx MeshChatX docs, scaffolding, god-file detection, split plans, surface snapshots, opt-in GitHub issue tools (env-token gated)
context Token-efficient code access: outlines, symbol reads, repo maps
agents Repo skills, conventions, module ownership, file tree
no-slop Anti-slop linter for text, diffs, files, directories
bug-hunter Hotspots, TOCTOU, attack surface, complexity, regression mining
ci-security GitHub Actions + Dockerfile scanning, action pinning, YAML lint
i18n Locale keys, coverage, usage, hardcoded strings
workspace Taskfile list/run, git status/log/diff, test mapping and runs
lxmf Local Reticulum state: config, storage, known destinations
lxmfy LXMFy docs, bot scaffolding, diagnostics, and test guidance
micron Micron parsing, linting, rendering, extraction, search, templates, and syntax reference
gateway Multiplexes all servers behind tools/tool_schema/invoke. One config entry, tiny tool surface.
mediawiki MediaWiki Action API on one configured wiki: search, pages, backlinks, categories; solves Anubis PoW natively, Cloudflare via optional FlareSolverr

Install

MCP servers

git clone git@github.com:Quad4-Software/ai.git
cd ai
make all
make gosec
make install

make install prints a single client mcp.json entry for gateway plus a generated quad4-mcp.json for the gateway to consume. Copy the gateway entry into your MCP client config, then place the gateway config at ~/.config/mcp/quad4-mcp.json. The gateway lazily spawns the other servers behind one compact tool surface.

make mcp-config   # regenerate dist/mcp.json and dist/quad4-mcp.json
make server-json  # generate registry server.json files per server
make inspector    # smoke test every built server for tools/list

Prebuilt binaries are also attached to each GitHub release.

Agent skills

Skills live in .agents/skills/ and follow the Agent Skills specification. Install them into your agent with the skills.sh CLI:

npx skills add Quad4-Software/ai

Useful flags:

npx skills add Quad4-Software/ai --list            # preview available skills
npx skills add Quad4-Software/ai --skill micron    # install only one skill
npx skills add Quad4-Software/ai -g                # global install

Skill groups are defined in skills.sh.json, for example MCP toolkit (build, test, security, release, style), Reticulum (mesh networking, LXMF, tooling, interface operation), self-hosted stack, security, and SurrealDB.

Gateway

Point your client at gateway instead of the individual servers. It spawns each configured command server lazily, exposes a compact tool index, and fetches full schemas only on demand. External servers in the same config (docker-based, etc.) are proxied too.

To share one gateway across every client window, use shared daemon mode: register the gateway with args ["--attach"], which bridges each window's stdio to a single long-lived daemon on an owner-only unix socket (auto-started on first connect). See mcp/gateway/README.md.

One manifest source

mcp-servers.json is the single source of truth for every server. The scripts/gen-configs.py tool reads it to emit the client mcp.json, the gateway quad4-mcp.json, and per-server registry server.json files. The mcp-servers.json list also drives the skills.sh descriptions.

Design

  • Newline-delimited JSON-RPC 2.0 over stdio. MCP protocol 2025-11-25.
  • Malformed input returns a parse error, never a crash.
  • A panicking tool handler returns isError content. The server lives.
  • Tool failures return error text naming the required arguments.
  • Filesystem access is path-jailed to the repo root. Secrets redacted.
  • No arbitrary command execution anywhere.

Config

Each server is one binary. Add to ~/.config/mcp/mcp.json under mcpServers, for example:

"rns": {"command": "/path/ai/mcp/rns/rns"},
"context":  {"command": "/path/ai/mcp/context/context",
             "env": {"MCP_REPO_ROOT": "/path/to/repo"}}

Use memory to persist destinations, learned facts, and todo items.

License: 0BSD

skills.sh

Releases

Used by

Contributors

Languages