Atlas / MCP servers / shrec / AIWorkHub

AIWorkHubBLOCK

mcp/shrec/aiworkhub

Open-source, local-first control plane for multi-model AI coding agents in VS Code and MCP: task DAGs, source intelligence, durable context and evidence-based review.

Verdict
BLOCK
Grade
F
Trust score
44 /100
Exposed tools
165 106r · 56w · 3d
Transport
stdio
License
MIT
Stars
9
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

The open-source control plane for multi-model AI coding agents. Plan work, delegate it to coding models, preserve project context and accept changes only when the evidence passes.

AIWorkHub is an open-source, local-first multi-model AI coding agent orchestrator for VS Code and MCP. It coordinates Codex, Claude, Copilot, DeepSeek and GLM workers through dependency-aware task graphs, durable project memory, source-code intelligence and evidence-based review. Each Git repository remains an isolated AI engineering workspace; no AIWorkHub cloud account or HTTP service is required. Visit the AIWorkHub product site or follow the getting-started guide.

The whole system

Read from source at commit e66b56bc4fd2OBSERVED · 2026-10-10
Advertisement
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code
claude mcp add aiworkhub --env AIWORKHUB_CLAUDE_AUTH_STATE_FILE=${AIWORKHUB_CLAUDE_AUTH_STATE_FILE} --env AIWORKHUB_MANAGER_SEAT_TOKEN=${AIWORKHUB_MANAGER_SEAT_TOKEN} --env AIWORKHUB_SECRET_PROBE=${AIWORKHUB_SECRET_PROBE} --env AIWORKHUB_TOOLCHAIN_AUTHORITY_HMAC_KEY=${AIWORKHUB_TOOLCHAIN_AUTHORITY_HMAC_KEY} -- npx -y [email protected]
claude-desktop
{
  "mcpServers": {
    "aiworkhub": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "AIWORKHUB_CLAUDE_AUTH_STATE_FILE": "${AIWORKHUB_CLAUDE_AUTH_STATE_FILE}",
        "AIWORKHUB_MANAGER_SEAT_TOKEN": "${AIWORKHUB_MANAGER_SEAT_TOKEN}",
        "AIWORKHUB_SECRET_PROBE": "${AIWORKHUB_SECRET_PROBE}",
        "AIWORKHUB_TOOLCHAIN_AUTHORITY_HMAC_KEY": "${AIWORKHUB_TOOLCHAIN_AUTHORITY_HMAC_KEY}"
      }
    }
  }
}
03

Exposed tools (165)

106 read · 56 write · 3 destructive. Blast radius: 3 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.

ToolRiskDescription
aiworkhub_agent_accept_previewreadREAD-ONLY: what would block accept_review right now, before any work.
aiworkhub_agent_collect_resultreadREAD-ONLY: collect bounded worker output and review-readiness evidence.
aiworkhub_agent_list_processesreadREAD-ONLY: summarize latest processes; use detail=
aiworkhub_agent_task_statusreadREAD-ONLY: inspect one launched process and its authoritative task card.
aiworkhub_claude_callback_ackwriteWRITE: acknowledge one exact callback batch returned to this same
aiworkhub_claude_callback_waitreadBLOCKING READ/CLAIM: wait for a callback for this verified Claude
aiworkhub_completion_inboxreadREAD-ONLY: combined completion-inbox facts for Codex orchestration.
aiworkhub_contract_consistency_checkreadREAD-ONLY: detect managed provider/worker instruction drift.
aiworkhub_dashboard_openapireadreturn {
aiworkhub_dashboard_snapshotreadreturn {
aiworkhub_dashboard_static_manifestreadreturn {
aiworkhub_dispatcher_ensure_startedreadIdempotently ensure exactly one callback dispatcher is running for
aiworkhub_dispatcher_healthreadREAD-ONLY: dispatcher running/stopped, selected coordinator target,
aiworkhub_dispatcher_stopwriteStop and unregister the active repository
aiworkhub_dispatcher_watchdogreadDetect and auto-recover a down-but-expected callback dispatcher.
aiworkhub_environment_preflightreadREAD-ONLY: unified repository/policy/Source Graph/provider readiness.
aiworkhub_eval_artifact_gatereadREAD-ONLY: recompute registered eval verdicts from retained rows.
aiworkhub_known_bug_scanreadREAD-ONLY: scan bounded changed paths for known bug patterns.
aiworkhub_launch_queue_audit_summary_readonlyreadREAD-ONLY: summarize the append-only B119 launch-queue audit JSONL log.
aiworkhub_launch_queue_describe_readonlyreadREAD-ONLY: describe a launch INTENT via the disabled B119 launch_queue_contract.
aiworkhub_launch_queue_evaluate_readonlyreadREAD-ONLY: evaluate a launch request via the disabled B119 launch_queue_contract.
aiworkhub_manager_ai_memory_getreadMANAGER READ: exact active canonical AI Memory lookup.
aiworkhub_manager_ai_memory_relatedreadMANAGER READ: bounded related canonical AI Memory lookup.
aiworkhub_manager_ai_memory_searchreadMANAGER READ: bounded canonical AI Memory search.
aiworkhub_manager_ai_memory_writewriteMANAGER WRITE: remember, update, supersede, or archive canonical memory.
aiworkhub_manager_ai_memory_write_intentwritePropose a bounded AI Memory mutation for explicit verified-manager disposition.
aiworkhub_manager_bootstrapreadCALL FIRST: mandatory repository manager contract and callback workflow.
aiworkhub_manager_context_graph_event_writewriteMANAGER WRITE: append one exact current-thread conversation event.
aiworkhub_manager_context_graph_rangereadMANAGER READ: retrieve an exact bounded transcript range around one event.
aiworkhub_manager_context_graph_rebuildwriteMANAGER WRITE: rebuild derived graph state from the immutable ledger.
aiworkhub_manager_context_graph_relatedreadMANAGER READ: retrieve bounded deterministic relations for one graph node.
aiworkhub_manager_context_graph_searchreadMANAGER READ: search exact transcript-backed Context Graph evidence.
aiworkhub_manager_context_importwriteMANAGER: dry-run, apply or rollback one explicit repo-local legacy context store.
aiworkhub_manager_context_write_intent_disposewriteMANAGER WRITE: explicitly accept or reject one worker proposal.
aiworkhub_manager_context_write_intentswriteMANAGER READ: inspect authenticated worker context-write proposals.
aiworkhub_manager_kb_getreadMANAGER READ: exact canonical KB entry lookup.
aiworkhub_manager_kb_relatedreadMANAGER READ: bounded canonical KB relation lookup.
aiworkhub_manager_kb_searchreadMANAGER READ: bounded canonical KB search.
aiworkhub_manager_kb_writewriteMANAGER WRITE: upsert, ingest, supersede, or archive canonical KB data.
aiworkhub_manager_kb_write_intentwritePropose a bounded KB mutation for explicit verified-manager disposition.
aiworkhub_manager_learning_commitwriteMANAGER WRITE: persist and project one verified Learning Commit.
aiworkhub_manager_loop_closewriteMANAGER WRITE: release the backend and lock at shutdown, without a model turn.
aiworkhub_manager_loop_continuewriteMANAGER WRITE: continue one saved manager conversation.
aiworkhub_manager_loop_discarddestructiveMANAGER WRITE: delete one saved manager conversation.
aiworkhub_manager_loop_ensurewriteMANAGER WRITE: attach to the repository
aiworkhub_manager_loop_eventsreadMANAGER READ: bounded session events, for incremental client polling.
aiworkhub_manager_loop_newwriteMANAGER WRITE: close the current conversation and open a fresh passive one.
aiworkhub_manager_loop_renamewriteMANAGER WRITE: rename one saved manager conversation.
aiworkhub_manager_loop_restorewriteMANAGER WRITE: load the last manager conversation. Does not create one.
aiworkhub_manager_loop_rotatewriteMANAGER WRITE: close the session with a handoff, in the background.
aiworkhub_manager_loop_sendwriteMANAGER WRITE: run one manager turn in the background.
aiworkhub_manager_loop_startwriteMANAGER WRITE: open the repository
aiworkhub_manager_loop_statusreadMANAGER READ: the active session, whether a turn is running, queued owner sends, and the last turn
aiworkhub_manager_needfix_draftreadREAD-ONLY: draft the NeedFixes one request
aiworkhub_manager_needfix_markdown_commitwriteMANAGER WRITE: commit an exact Markdown preview as captured items only.
aiworkhub_manager_needfix_markdown_previewreadMANAGER READ: preview bounded captured NeedFix candidates from Markdown.
aiworkhub_manager_recipe_listreadMANAGER READ: bounded identity/contract listing of persisted recipes.
aiworkhub_manager_recipe_registerwriteMANAGER WRITE: register and persist one caller-defined tool recipe.
aiworkhub_manager_recipe_runwriteMANAGER EXECUTE: run one PERSISTED recipe and return a bounded digest.
aiworkhub_manager_recipe_seed_canonicalwriteMANAGER WRITE: install the catalogue of this repository
aiworkhub_manager_recipe_seed_planreadMANAGER READ: which catalogue entries THIS project would be seeded.
aiworkhub_manager_recipe_showreadMANAGER READ: one persisted recipe in its exact canonical manifest form.
aiworkhub_manager_recipe_usagereadMANAGER READ: which registered recipes are actually used, and by whom.
aiworkhub_manager_sdlc_case_createwriteCreate one repository-bound SDLC case under verified manager authority.
aiworkhub_manager_sdlc_case_create_for_taskwriteCreate the SDLC case bound to one canonical task under verified manager authority.
aiworkhub_manager_sdlc_case_for_taskreadREAD-ONLY: bounded case packet bound to one canonical task, or a typed unknown.
aiworkhub_manager_sdlc_case_getreadREAD-ONLY: bounded repository-bound case packet.
aiworkhub_manager_sdlc_outcome_metricsreadREAD-ONLY: bounded outcome metrics from canonical task/review events.
aiworkhub_manager_sdlc_stage_packetreadREAD-ONLY: one bounded repository-bound stage packet.
aiworkhub_manager_sdlc_stage_recordreadAppend one bounded stage receipt under verified manager authority.
aiworkhub_manager_semantic_edit_applywriteMANAGER EDIT: replace exactly one prepared, hash-bound range.
aiworkhub_manager_semantic_edit_preparewriteMANAGER EDIT: bind one verified file range before changing it.
aiworkhub_manager_session_current_statereadMANAGER READ: bounded canonical Session Manager current state.
aiworkhub_manager_session_writewriteMANAGER WRITE: append one audited canonical Session Manager event.
aiworkhub_manager_session_write_intentwritePropose a bounded Session event for explicit verified-manager disposition; never writes canonical context directly.
aiworkhub_manager_skill_activatewriteMANAGER WRITE: activate a proposed skill, evidence-gated and fail-closed.
aiworkhub_manager_skill_add_evidencewriteMANAGER WRITE: append one MANAGER evidence entry to a skill version.
aiworkhub_manager_skill_evidence_sweepwriteMANAGER WRITE: backfill learning-commit evidence for every recorded commit.
aiworkhub_manager_skill_minereadMANAGER READ: mine the correction record into gated skill PROPOSALS.
aiworkhub_manager_skill_proposewriteMANAGER WRITE: register and persist one proposed skill.
aiworkhub_manager_skill_retirement_reportreadMANAGER READ: measure every stored skill against its own failure class.
aiworkhub_manager_skill_usagereadMANAGER READ: per-skill usage statistics, measured from the stored record.
aiworkhub_manager_source_graph_queryreadMANAGER CODE DISCOVERY: use first and continuously before built-in file search.
aiworkhub_manager_task_decomposition_previewreadMANAGER READ: validate a Source Graph-grounded child-DAG proposal.
aiworkhub_manager_workforce_catalogreadMANAGER READ: configured models joined to observed canonical outcomes.
aiworkhub_manager_workforce_rankreadMANAGER READ: explainable cheapest-capable routing from current evidence.
aiworkhub_manager_workforce_upsertwriteMANAGER WRITE: audited bounded upsert of one repository worker model.
aiworkhub_prompt_bundle_ab_reportreadREAD-ONLY: evaluate preregistered matched A/B provider-usage rows.
aiworkhub_quality_calibration_reportwriteREAD-ONLY: run the deterministic positive/negative gate matrix.
aiworkhub_quality_evidence_packetreadREAD-ONLY: full canonical evidence packet -- profile, declared
aiworkhub_quality_gate_ratchetreadREAD-ONLY: report new quality identities and no-net-growth overflow.
aiworkhub_quality_profilereadREAD-ONLY: zero-config detected languages/declared/installed tools.
aiworkhub_quality_run_checkswriteRun repo-declared .aiworkhub/quality.json build/test/lint/typecheck
aiworkhub_repo_currentreadREAD-ONLY: exact current repository, binding source, and manager route.
aiworkhub_repo_listreadREAD-ONLY: bounded live repository identities available to this manager.
aiworkhub_repo_switchreadMANAGER OPERATION: atomically switch to one live manager-owned repo_id.
aiworkhub_review_packetreadREAD-ONLY: ONE bounded review packet for a ``review_ready`` candidate.
aiworkhub_risk_mode_precision_benchreadREAD-ONLY: per-mode/language precision from adjudicated registered rows.
aiworkhub_router_known_repositoriesreadREAD-ONLY: bounded shared registry of live AIWorkHub repository routes.
aiworkhub_runtime_coverage_importwriteWRITE-GATED: atomically project repo-local coverage into Source Graph.
aiworkhub_runtime_coverage_previewreadREAD-ONLY: parse a repo-local coverage.py JSON artifact.
aiworkhub_session_token_profilereadREAD-ONLY: observed provider tokens plus separately-labelled prompt bytes.
aiworkhub_source_graph_ensure_startedreadIdempotently ensure exactly one Source Graph indexing daemon is
aiworkhub_source_graph_healthreadREAD-ONLY: Source Graph indexing daemon health for the active
aiworkhub_source_graph_refresh_nowdestructiveForce one bounded incremental (or first-ever full) Source Graph
aiworkhub_source_graph_retrieval_evalwriteREAD-ONLY: run registered precision@k/MRR cases through manager MCP wrapper.
aiworkhub_source_graph_stopwriteStop and unregister the active repository
aiworkhub_storage_recover_stranded_worktreesreadRecover retained worktrees stranded outside every reclamation path.
aiworkhub_suite_profilewriteExecute one repo-declared quality check repeatedly; shell is never used.
aiworkhub_supervisor_loop_statusreadREAD-ONLY: derive supervisor_state + error taxonomy for a task_id.
aiworkhub_task_audit_log_readwriteRead-only: inspect write-gate audit log summaries.
aiworkhub_task_auto_pickup_dryrunreadREAD-ONLY: preview which task auto_pickup WOULD claim for a runner/topic.
aiworkhub_task_codex_handoffreadREAD-ONLY: Codex-ready HANDOFF report for review-queue tasks.
aiworkhub_task_codex_handoff_markdownreadREAD-ONLY: Codex-ready HANDOFF report rendered as compact Markdown.
aiworkhub_task_collision_guardwriteRun the task collision guard for active cards.
aiworkhub_task_cost_ledgerreadREAD-ONLY: bounded cost summary, with opt-in detailed dimensions.
aiworkhub_task_healthwriteCheck parent AIWorkHub task queue health and write-gate state.
aiworkhub_task_listreadList task cards by status and optional topic.
aiworkhub_task_pending_for_runnerreadReturn pending cards for a specific runner as raw output plus parsed JSONL rows.
aiworkhub_task_plan_snapshotreadREAD-ONLY: bounded Plan-DAG summary, or the complete DAG with ``full``.
aiworkhub_task_queue_requestwriteWRITE-GATED: append a disabled launch-queue request.
aiworkhub_task_review_queuereadList tasks waiting for Codex review.
aiworkhub_task_review_summarizereadREAD-ONLY: Inspect review queue, group tasks by topic/runner, return Codex review checklist.
aiworkhub_task_showreadShow a single task card by task_id.
aiworkhub_task_stale_recovery_recommendreadREAD-ONLY: recommend recovery actions for stale processing tasks.
aiworkhub_task_template_listreadMANAGER READ: list the bounded repository-bound template registry.
aiworkhub_task_template_showreadMANAGER READ: show one exact short or full template ID, fail closed.
aiworkhub_task_usage_reportreadReturn task usage report, optionally filtered.
aiworkhub_vscode_lm_worker_toolwritePRIVATE BRIDGE: execute one active GLM call with worker-scoped audit authority.
aiworkhub_worker_ai_memory_getreadBounded AI Memory exact-key lookup.
aiworkhub_worker_ai_memory_relatedreadBounded AI Memory related-entry lookup.
aiworkhub_worker_ai_memory_searchreadBounded AI Memory search.
aiworkhub_worker_ai_memory_write_intentwriteSubmit a bounded AI Memory proposal for explicit manager review.
aiworkhub_worker_kb_getreadBounded KB exact-key lookup.
aiworkhub_worker_kb_relatedreadBounded KB related-entries lookup.
aiworkhub_worker_kb_searchreadBounded KB full-text search.
aiworkhub_worker_kb_write_intentwriteSubmit a bounded KB proposal for explicit manager review.
aiworkhub_worker_quality_review_submitwriteSubmit findings for the exact bound anti-anchored packet.
aiworkhub_worker_semantic_edit_applywriteApply replacement-only code to an immutable prepared target.
aiworkhub_worker_semantic_edit_exception_declarewriteRecord a path changed WITHOUT the semantic editor, and why.
aiworkhub_worker_semantic_edit_preparewriteBind one Source Graph-selected line range
aiworkhub_worker_session_current_statereadBounded Session Manager current-state for this task
aiworkhub_worker_session_write_intentwriteSubmit a bounded Session proposal for explicit manager review.
aiworkhub_worker_source_graph_queryreadBounded Source Graph discovery for this task.
handle_latereadreturn True
handle_statusreadreturn True
needfix_archivereadExplicitly archive (soft, audited, restorable) a NeedFix.
needfix_convertwriteCommit the exact previewed workforce-bound task conversion.
needfix_countreadBounded count of NeedFix entries.
needfix_eventsreadList events for a NeedFix entry.
needfix_link_existing_taskreadManager-only: atomically link a NeedFix to an existing, finished, accepted task.
needfix_listreadList repo-scoped NeedFix entries (bounded).
needfix_preview_convertreadPreview an explicit workforce-bound task conversion.
needfix_purgedestructiveAudited hard delete of an already-archived NeedFix.
needfix_reopen_superseded_task_linkreadManager-only: reopen a NeedFix whose exact linked task was superseded.
needfix_restorereadExplicitly restore an archived NeedFix.
needfix_showreadShow one NeedFix by id.
roadmap_addwriteManager-only Roadmap proposal; does not create or launch a task.
roadmap_eventsreadList bounded audit events for one Roadmap outcome.
roadmap_link_taskreadLink one existing canonical task to a Roadmap outcome.
roadmap_listreadList bounded repository Roadmap outcomes.
roadmap_showreadShow one Roadmap outcome.
roadmap_snapshotreadJoin bounded Roadmap outcomes to canonical Task-DAG lifecycle.
roadmap_transitionreadManager-only guarded Roadmap lifecycle transition.
statusreadreturn True
04

Trust audit

BLOCKgrade F · trust 44/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryWARN
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfaceWARN
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (6 observation(s))
Network
declared (5 observation(s))
Shell
declared (6 observation(s))
Dependencies
pinned
Secrets in source
found

Findings (25)

HIGHCode injection · code.deserialize · CWE-78, CWE-94, CWE-95
src/aiworkhub/known_bug_scanner.py:118
"warning", "deserialization", "unserialize() requires a trusted-type boundary"),
Why it matters. deserialises untrusted bytes into live objects
Fix. use json or yaml.safe_load
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
src/aiworkhub/known_bug_scanner.py:86
re.compile(r"\beval\s*\("), "warning", "code_injection", "eval() requires a trusted-input proof"),
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
src/aiworkhub/known_bug_scanner.py:116
"warning", "code_injection", "eval() requires a trusted-input proof"),
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
MEDIUMInventory / provenance · inv.binary · CWE-1104
.aiworkhub/kb/knowledge.sqlite
knowledge.sqlite
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMInventory / provenance · inv.binary · CWE-1104
.aiworkhub/tasking/roadmap.sqlite
roadmap.sqlite
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMInventory / provenance · inv.binary · CWE-1104
.aiworkhub/tasking/skills.sqlite
skills.sqlite
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMInventory / provenance · inv.binary · CWE-1104
.aiworkhub/tasking/tool_recipes.sqlite
tool_recipes.sqlite
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMCode injection · code.dynamic_import · CWE-78, CWE-94, CWE-95
src/aiworkhub/declared_invariants.py:147
module = __import__(f"aiworkhub.{module_name}", fromlist=[module_name])
MEDIUMCode injection · code.dynamic_import · CWE-78, CWE-94, CWE-95
src/aiworkhub/worker_workspace.py:3625
opencode_auth = __import__(qualified, fromlist=["project_opencode_auth"])
MEDIUMObfuscation / stealth · obf.anti_debug · CWE-506, CWE-94
src/aiworkhub/worker_workspace.py:441
"ptrace",
MEDIUMHard-coded secrets · secret.aws · CWE-798, CWE-321
tests/test_terminal_collect_truth.py:1394
"AKIAABCDEFGHIJKLMNOP",
MEDIUMHard-coded secrets · secret.aws · CWE-798, CWE-321
tests/test_terminal_collect_truth.py:1402
"aws_access_key_id=AKIAABCDEFGHIJKLMNOP "
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
tests/test_aiworkhub_canonical_task_engine_b852.py:359
def _coordinator_env(tmp_path, monkeypatch, token="s3cr3t-coordinator-token"):
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
tests/test_aiworkhub_selected_task_live_output_b855.py:115
secret = "abcd1234efgh5678ijkl9012mnop"  # 28 chars, alnum-only
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
tests/test_process_launcher.py:718
secret = "xai-secret-must-never-appear"
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
tests/test_provider_refusal_classification.py:449
secret = "sk_live_SUPERSECRET123456789"
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
tests/test_review_orchestrator.py:1091
secret = "sk-provider-secret-material"
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
tests/test_external_qualification.py:1648
"-----BEGIN RSA PRIVATE KEY-----",
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
tests/test_skill_registry.py:1266
("skill_registry.secret_rejected", {"avoid_rules": ["-----BEGIN PRIVATE KEY-----"]}),
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
tests/test_terminal_collect_truth.py:532
"-----BEGIN RSA PRIVATE KEY-----\n"
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
tests/test_terminal_collect_truth.py:1013
"-----BEGIN RSA PRIVATE KEY-----\nSECRETKEYMATERIAL\n-----END RSA PRIVATE KEY-----"
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
tests/test_terminal_collect_truth.py:1404
"-----BEGIN RSA PRIVATE KEY-----\nSECRETKEYMATERIAL\n-----END RSA PRIVATE KEY-----"
MEDIUMHard-coded secrets · secret.slack · CWE-798, CWE-321
tests/test_external_qualification.py:1647
"xoxb-0123456789-abcdefghij",
MEDIUMHard-coded secrets · secret.stripe · CWE-798, CWE-321
tests/test_provider_refusal_classification.py:449
secret = "sk_live_SUPERSECRET123456789"
MEDIUMFilesystem / path · mcp.destructive_tools · CWE-22, CWE-59
aiworkhub_manager_loop_discard, aiworkhub_source_graph_refresh_now, needfix_purge
Why it matters. 3 tool(s) can delete or overwrite
Fix. prefer a read-only mode or scoped tokens; the page states the blast radius

Gates applied: no_behavioural_pass.

Audited 2026-10-10 · audit v0.4.1 · source sha e66b56bc4fd2full audit observations/trust-audit/mcp-server/shrec__aiworkhub.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-10e66b56bc4fd2BLOCKF44first audit
06

Questions

What is the AIWorkHub MCP server?

Open-source, local-first control plane for multi-model AI coding agents in VS Code and MCP: task DAGs, source intelligence, durable context and evidence-based review.

What tools does AIWorkHub expose?

165 in total: 106 read-only, 56 that write, and 3 that can delete or overwrite (aiworkhub_manager_loop_discard, aiworkhub_source_graph_refresh_now, needfix_purge). Every one is listed on this page with its risk.

Is AIWorkHub safe to connect to an agent?

No — not without reading the findings first. The audit graded it F (44/100) and found 3 critical or high issues in the source. Each one is listed on this page with the file and line it is on. Separately from the audit: 3 of its tools can destroy data, so scope the token you give it to what you actually need.

What credentials does AIWorkHub need?

It reads AIWORKHUB_CLAUDE_AUTH_STATE_FILE, AIWORKHUB_MANAGER_SEAT_TOKEN, AIWORKHUB_SECRET_PROBE, AIWORKHUB_TOOLCHAIN_AUTHORITY_HMAC_KEY, ANTHROPIC_API_KEY, CLAUDE_CODE_OAUTH_TOKEN, COPILOT_PROVIDER_API_KEY, GITHUB_TOKEN and GIT_ASKPASS from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does AIWorkHub run?

It speaks stdio, so it runs as a local process your client starts. It is published on npm as aiworkhub at 0.12.41.

How current is this page?

The grade is for one exact copy of the source (e66b56bc4fd2), read on 2026-10-10. The repository is watched and re-audited when it changes.

Advertisement