Commit Graph
8 Commits
Author SHA1 Message Date
mrcharles e2d4bb333c fix: enforce one-server-at-a-time workflow in agent protocol
Agents were attempting to build/validate multiple MCP servers in
parallel, leading to incomplete work that never finished. This adds
a mandatory rule: work on exactly one MCP/LSP server end-to-end
(build, handshake, live client invocation with real data, status
update, commit) before starting the next.

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-07-30 16:42:57 -05:00
mrcharles d4e9fd693f feat: add discourse-cli for Discourse forum integration
A standalone CLI container (following the redmine-cli pattern) that
lets AI agents and humans read, post, reply, search, and discuss on a
Discourse forum via the REST API. Uses three environment variables
(DISCOURSE_URL, DISCOURSE_API_KEY, DISCOURSE_API_USERNAME) for auth.

Commands: whoami, categories, cat-info, topics/ls, show, create, reply,
update, delete, search, notifications.

Fully validated end-to-end (10/10 checks) against a live Discourse
instance: credential auth, whoami, categories, topics, show, search,
and full write cycle (create + reply + update + delete).

Includes validate.sh for repeatable end-to-end testing using
containerized curl + the CLI image.

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-07-30 16:39:17 -05:00
mrcharles 9d6764be11 fix: add honest status reporting protocol to prevent false validation claims
AI agents were marking services as "validated" or "working" after only
running structural tests (build + --help) without any live interaction
against the real external system. This adds a mandatory section to
AGENTS.md that:

- Distinguishes "built", "structural test", and "validated" as distinct
  states with concrete examples
- Prohibits using "validated"/"working"/"done"/"complete" for credential-
  dependent services until a live operation succeeds
- Requires obtaining credentials and running real read/write operations
  before claiming completion
- Enforces todo-list honesty: items can only be marked completed when
  their acceptance criterion is actually met

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-07-30 16:39:07 -05:00
mrcharles 4ad44bbe9d fix: update Dockerfiles for upstream changes and build fixes
- gitea-mcp, mcp-grafana: bump Go from 1.24 to 1.26 (upstream go.mod
  now requires >= 1.26.x)
- proxmox-mcp: constrain requires-python to >=3.10 for fastmcp compat
- elasticsearch-mcp: add missing vendor repo to CloneVendorRepos.sh
  (elastic/mcp-server-elasticsearch)
- context7-mcp: add .npmrc to disable pnpm v10 strict built-deps check
- drawio-mcp: exclude dev-proxy package from build (upstream TS errors),
  build with pnpm v10 + .npmrc
- discourse-mcp, ghidra-mcp: remain blocked (upstream issues)
2026-07-30 15:47:30 -05:00
mrcharles b595e26d62 fix: add profile flags to all docker compose commands and complete env vars
All services in docker-compose.yml are behind profiles (dev/ops), but the
maintenance scripts called docker compose without --profile, so no services
were detected or built. Added --profile dev --profile ops to BuildAll.sh,
StatusCheck.sh, and all relevant maintenance.sh commands.

Also:
- Added missing env vars for 8 newer servers to .env.example (beszel, gitea,
  grafana, ha, limesurvey, linkwarden, superset)
- Fixed maintenance.sh validate to use validate-all.sh instead of nonexistent
  validate-mcp.sh
2026-07-30 12:15:49 -05:00
mrcharles b3a810ba07 fix: make all scripts resolve paths relative to repo root
CloneVendorRepos.sh and CleanVendor.sh resolved vendor/ relative to scripts/
instead of the repo root, so vendor repos were cloned to the wrong location
(scripts/vendor) and docker-compose builds (which expect ./vendor at repo
root) would fail. BuildAll.sh and StatusCheck.sh had the same issue, cd-ing
to scripts/ instead of the repo root before running docker compose.

Also updated validate-all.sh with the 10 newer MCP servers that were added
after the script was last maintained (firefly-iii, actual, paperless, beszel,
gitea, grafana, ha, limesurvey, linkwarden, superset) plus added missing
env vars for audiobook-mcp and drawio-mcp.
2026-07-30 12:12:43 -05:00
mrcharles 237f345582 fix: correct crush.json wrapper script paths
All wrapper script paths referenced /home/charles/Projects/ (previous
machine/user) instead of the actual /home/reachableceo/projects/. Every
LSP and MCP entry in crush.json was broken. Fixed 39 path references.
2026-07-30 12:12:17 -05:00
mrcharles b69e70e0a1 feat: add redmine-cli containerized CLI tool
Merge the redmine-cli work from the EnableAI repo into KNEL-AIMiddleware as the
canonical home for AI middleware. This is a standalone CLI (python-redmine 2.5.0)
that lists, shows, creates, updates, and closes Redmine issues via docker run.
Complements the existing mcp-redmine MCP server (protocol-native) with a
direct-invocation tool for interactive use.

Verified end-to-end against projects.knownelement.com: whoami, projects,
statuses, list, show, create, update, and close all tested successfully.

Also records host-cleanliness conventions (docker/tea only on host; custom
images to Gitea registry) in AGENTS.md, and adds a CLI Tools section to
STATUS.md.
2026-07-30 12:09:44 -05:00