Atlas / MCP servers / parnmanas / awb-agent-manager

awb-agent-managerBLOCK

mcp/parnmanas/ai-workflow-board
Verdict
BLOCK
Grade
F
Trust score
44 /100
Exposed tools
200 136r · 84w · 20d
Transport
stdio · streamable-http
License
—
Stars
2
01

Overview

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

Run AI CLI sessions on your own machines, give agents a queue of work, and follow the results in one place.

AWB is a self-hosted platform for working with AI agents. Start with a native CLI session, turn work into tickets when you need a queue and an audit trail, or give a larger mission to a team. The browser is your work interface; your Runtime Hosts run the CLIs and hold their native session history.

Each ticket has one assignee, a fixed status, tags, and an optional project. Ready tickets start automatically when that assignee has capacity. Agents use MCP (Model Context Protocol) to read instructions, report results, and update work. Despite the project name, there are no configurable board or column objects: Tickets offers a kanban view of fixed statuses and a list view.

Work pages combine the accounts you can access. Accounts govern ownership, membership, credentials, execution policy, and budgets; you do not need to switch accounts to find your work.

Contents

  • What you can do
  • How the pieces fit together
  • Install the AWB server
  • Connect your first Runtime Host
  • Run your first session
  • Automate work with tickets and projects
  • Give a mission to a team
  • Connect an external MCP client
  • Configuration and operations
  • Troubleshooting
  • Development
  • Documentation

What you can do

Read from source at commit d32bac6f405fOBSERVED · 2026-10-12
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 ai-workflow-board --env AGENT_API_KEY=${AGENT_API_KEY} --env ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} --env ANTHROPIC_AUTH_TOKEN=${ANTHROPIC_AUTH_TOKEN} --env API_KEYS_LEAK_PORT=${API_KEYS_LEAK_PORT} -- npx -y ai-workflow-board
claude-desktop
{
  "mcpServers": {
    "ai-workflow-board": {
      "command": "npx",
      "args": [
        "-y",
        "ai-workflow-board"
      ],
      "env": {
        "AGENT_API_KEY": "${AGENT_API_KEY}",
        "ANTHROPIC_API_KEY": "${ANTHROPIC_API_KEY}",
        "ANTHROPIC_AUTH_TOKEN": "${ANTHROPIC_AUTH_TOKEN}",
        "API_KEYS_LEAK_PORT": "${API_KEYS_LEAK_PORT}"
      }
    }
  }
}
03

Exposed tools (200)

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

ToolRiskDescription
AWBreadboard-less
Accountread
Deploywriteships prod
ModelreadModels reported by this Runtime Host’s session adapter.
OAuthread
OrganizationreadSeparate existing owner
PersonalreadDefault ownership account
Smartreadslower
Wread
a-very-long-command-name-for-testingreadA long command description
add_chat_message_attachmentwriteUpload a file into a chat room using the shared attachment storage backend. Pass returned attachment_id in send_chat_room_message.attachment_ids.
add_chat_participantswriteAdd participants to an existing chat room (group or DM). Inviting into a DM promotes it to a group in place — same room id and history, and the promotion CANNOT be undone. Already-active participants are skipped silently (idempotent). Fails on rooms outside the caller\
add_commentwriteAdd one ticket comment
add_orchestration_notewriteRecord a note on the mission timeline — your reasoning for a decision, a risk you are tracking, or
add_ticket_attachmentwriteAttach a file directly to a ticket (NOT through Resources — distinct from comment attachments).
add_ticket_prerequisiteswriteBlock this ticket until the specified prerequisite ticket(s) are done.
answer_questionreadAnswer a previously-asked question. Creates a comment with type=answer and parent_id pointing at the question; the parent question auto-resolves so the ticket no longer shows it as open. The original question must exist on the same ticket and have type=question.\n\n
answer_session_permissionread${WHO} Passes the user
answer_session_questionread${WHO} Passes the user
archive_ticketreadArchive a ticket. Sets archived_at=now; the ticket is excluded from the ticket list and from dispatch.
ask_questionreadAsk a question on a ticket — creates a comment with type=question, status=open. The ticket creator (or @mentioned user) is notified. Use this when you are blocked and need a human answer before continuing; the ticket detail UI surfaces the open question prominently.\n\n
attach_qa_artifactreadAttach one or more artifact Resource ids (video/image/dump) to a QaRun at the run level
attach_security_artifactreadAttach one or more artifact Resource ids (report/SBOM/dump) to a SecurityRun at the run level.
await_ci_runwriteRegister a durable wait on ONE external GitHub Actions run (typically the Merging workflow\
awb-webread
botread
cancel_ci_waitreadCancel an active CI wait registered by
claim_ticketreadCompatibility verb: AWB already moves a ticket to in_progress when it dispatches it to you.
clear_current_taskdestructiveClear this agent\
clipboard_readreadRead the system clipboard as text. Cross-OS: PowerShell on Windows, pbpaste on macOS, wl-paste / xclip / xsel on Linux.
clipboard_writewriteWrite text to the system clipboard. Useful when the agent has prepared a code snippet / answer for a human to paste somewhere the agent cannot directly type into.
compactreadCompact the context
complete_action_runwriteReport the outcome of an Action Run and close the loop back to the ticket that
complete_orchestration_missionreadEnd a mission you orchestrate. Use status
complete_qa_runwriteFinalize a QaRun with an overall status (passed if every step passed, else failed/error)
complete_security_runwriteFinalize a SecurityRun.
correct_confirmed_ticket_duplicatereadCorrect a previously confirmed false-positive canonical link: clears the link (an audited data correction) and, when the ticket is queued or in progress, wakes its assignee. The canonical ticket is never modified.
create_accountwriteCreate an ownership account for permissions, credentials and execution policy
create_api_keywriteCreate a new API key for MCP authentication, scoped to your account. The raw key is returned ONLY in this response — save it immediately.
create_automation_schedulewriteCreate a account schedule — a general-purpose
create_channelwriteCreate a notification channel (e.g. Discord)
create_chat_roomwrite
create_child_ticketwriteCreate a child ticket (a checklist item) under a parent ticket. Children are worked by the parent\
create_orchestration_missionwriteTeams and their rosters are authored by humans in the AWB UI — this tool cannot create or join a team.
create_qa_scenariowriteCreate a QA scenario.
create_qa_schedulewriteCreate a QA schedule — an automatic trigger that kicks a SEQUENTIAL batch (start_qa_batch) when
create_security_profilewriteCreate a security-inspection profile.
create_security_schedulewriteCreate a security schedule — an automatic trigger that fires when due.
create_ticketwriteCreate a ticket. A ticket is done end-to-end by ONE agent (
create_userwriteCreate a new user
decide_ticket_duplicatereadResolve an ambiguous chat-ticket match. Link it to a listed canonical candidate, or keep it independent so it is worked normally.
delete_accountdestructiveDelete an ownership account and its tickets and projects (cannot delete the last account)
delete_actiondestructiveDelete an action and all its run history (rooms + messages + runs).
delete_api_keydestructivePermanently delete an API key from your account
delete_automation_scheduledestructiveDelete a account schedule. Does NOT touch the chat rooms it already opened.
delete_channeldestructiveDelete a notification channel
delete_chat_message_attachmentdestructiveDiscard a chat attachment that has NOT been sent yet. Mirrors DELETE
delete_child_ticketdestructiveDelete a child ticket
delete_functiondestructiveDelete a account-authored Function. Built-in Functions cannot be deleted.
delete_qa_scenariodestructiveDelete a QA scenario and cascade-delete all its runs (and the chat room each run created).
delete_qa_scheduledestructiveDelete a QA schedule. Does NOT touch the QaRunBatches it already started.
delete_resourcedestructiveDelete a resource by ID. Also removes its vector embedding if one exists.
delete_security_profiledestructiveDelete a security-inspection profile and cascade-delete all its runs (and the chat room each run created).
delete_security_scheduledestructiveDelete a security schedule. Does NOT touch the SecurityRunBatches it already started.
delete_ticketdestructiveDelete a ticket and all its children and comments
delete_ticket_attachmentdestructiveRemove a file attachment from a ticket. The ticket itself is left unchanged.
delete_userdestructiveDelete a user
dirty-flag-checkwriteprimary write
embed_resourceswriteTrigger embedding generation for all resources in a account that do not yet have embeddings.
example_one_line_toolreaddesc
execute_functionwriteExecute a Function by stable key or ID and persist an auditable run. Use idempotency_key when the Function requires it.
fake-reporead
fetch_github_inforeadFetch metadata about a GitHub repository (description, README, file tree, topics).
find_unity_logsreadResolve canonical Unity log paths for the host OS (Editor.log, Editor-prev.log, crash dir, Hub log). When
flush-independencereadprimary
focus_windowreadBring the first visible window matching
fooread
get_accountreadGet an ownership account with its settings and open-ticket counts per status
get_actionreadGet a single action by ID with the full prompt template.
get_api_keyreadGet details of a single API key by ID (must belong to your account)
get_automation_schedulewriteGet a single account schedule by id (target agent, task prompt, cadence, next/last run, last room id).
get_chat_room_messagesreadRead the message history of a chat room the agent participates in.
get_functionreadGet a Function definition by ID, including executor config and JSON input/output schemas.
get_latest_artifactreadFreshness read for the build registry: does an
get_my_ticketsreadTickets assigned to the calling agent (its runtime identity), newest first. Archived tickets are excluded.
get_orchestration_missionreadRead the live state of an orchestration mission you orchestrate: objective, current plan with every
get_orchestration_stepwriteRe-read a step assigned to you: the work order, the mission objective it serves, and the reported
get_privileged_command_resultreadFetch the outcome of a
get_projectreadGet one project: repository url, default branch, use_pr, instructions, default assignee and
get_qa_batchreadGet a sequential QA batch: ordered scenario_ids + run_ids, current_index/total progress, status
get_qa_runwriteGet a single QA run with its step_results and accumulated artifact_resource_ids.
get_qa_scenarioreadGet a single QA scenario by id (includes its step definitions).
get_qa_schedulewriteGet a single QA schedule by id (scope, cadence, next/last run, last batch id).
get_recent_activityreadGet the global recent activity feed across all tickets
get_resourcereadGet one inherited resource by ID with full content (including file_data if present).
get_security_batchreadGet a sequential security batch: ordered profile_ids + run_ids, current_index/total progress,
get_security_profilereadGet a single security-inspection profile by id (includes its checklist + incremental baseline).
get_security_runwriteGet a single security run with its findings and accumulated artifact_resource_ids.
get_security_schedulewriteGet a single security schedule by id (scope, cadence, next/last run, last batch id).
get_ticketreadGet a single ticket with its children, comments, project (incl. main clone folder per host), assignee and prerequisites.
get_ticket_activityreadGet activity log for a specific ticket
get_ticket_attachmentreadFetch a single ticket attachment INCLUDING the base64 file_data so the caller can decode the binary.
get_userreadGet a single user by ID
gh-botread
graph_blast_radiusreadBounded reverse reachability from a node in an Ontology Graph (
graph_call_pathreadShortest confidence-floored path between two nodes in an Ontology Graph, via application-orchestrated
graph_find_symbolreadResolve a symbol by name inside an Ontology Graph — exact name, then exact qualified_name, then a bounded
graph_module_summaryreadCompact, aggregated summary of one directory/module/file in an Ontology Graph: top symbols by centrality
graph_neighborsreadBounded forward reachability from a node in an Ontology Graph (src->dst, depth-capped, confidence-floored).
graph_refreshread현재 작업 중인 티켓의 기존 온톨로지 그래프를 비동기로 1회 재빌드합니다.
graph_statusreadResolve (or auto-provision) the Ontology Graph for a (resource_id, folder_path) and report its build status.
idreadTarget agent ID
keep_chat_session_alivereadDeclare that THIS agent\
kill_processdestructiveKill a process by pid or by name regex. Default uses SIGTERM (graceful); pass
launch_processreadLaunch a program on the host. Returns the pid (when available). The launched process is detached by default so it outlives the agent-manager; pass
list_accountsreadList all accounts
list_action_runsreadList runs for an action (most recent first), capped at limit.
list_actionsreadList reusable Actions in a account.
list_api_keysreadList API keys in your account (key values are masked). Shows name, scope, agent, status, usage stats.
list_archived_ticketsreadList archived (soft-deleted) tickets of a account. Pagination via cursor + limit; optional q filters by title / id / tag (case-insensitive).
list_automation_schedulesreadList reusable Account schedules.
list_channelsreadList all notification channels (Discord etc.)
list_chat_room_participantsreadList the participants of a chat room the agent participates in, with the exact mention token
list_chat_roomsreadList the chat rooms the agent actively participates in, scoped to the caller\
list_claude_backend_profilesreadList safe Claude backend profile metadata. Profiles are instance-global — there is no per-account assignment or default. Credential references and secrets are omitted. DB-backed, full-scope Agent MCP only.
list_function_runsreadList auditable Function execution records for a account, optionally filtered by Function or ticket.
list_functionsreadList executable Functions resolved by Account → Global key precedence.
list_my_orchestration_stepsreadList orchestration steps currently assigned to you that have not been reported yet. Use this to recover
list_orchestration_graph_templatesreadList the built-in execution-graph templates you can pass to submit_orchestration_plan as
list_orchestration_missionsreadTeams and their rosters are authored by humans in the AWB UI; this tool only reads missions. List
list_orchestration_teamsreadTeams and their rosters are authored by humans in the AWB UI — this tool only reads them. List the
list_pending_session_requestsread${WHO} Lists the permission requests and questions that Agent Sessions driven by the user you are talking with are
list_processesreadList running processes on the host (pid, name, cpu, mem_kb, ppid, user when available).
list_projectsreadList the projects (repositories) of a account, each with its main clone folder per Runtime Host (
list_qa_runswriteList runs for a QA scenario, newest first (history). Each run carries status, step_results,
list_qa_scenariosreadList reusable QA scenarios in a account.
list_qa_schedulesreadList reusable QA schedules in a account.
list_repo_branchesreadList branches of a Project\
list_resourcesreadList inherited Global and Account resources.
list_screensreadEnumerate attached monitors with their virtual-desktop position, size, scale, and primary flag. Coordinates are in the same space
list_security_profilesreadList reusable security-inspection profiles in a account.
list_security_runswriteList runs for a security-inspection profile, newest first (history). Each run carries status,
list_security_schedulesreadList reusable security schedules in a account.
list_session_prompt_proposalsread${WHO} Lists your own proposals that are still open (pending = waiting for the user, queued = approved and
list_ticket_attachmentsreadList all file attachments on a ticket. Returns metadata only (no file_data) — call get_ticket_attachment to download the bytes.
list_ticket_prerequisitesreadList the prerequisite tickets blocking a ticket. Each row carries the prereq\
list_ticketsreadList root tickets of a account, filtered by status / tags (AND) / project / assignee / text. Returns
list_usersreadList all registered users
list_windowsreadList visible windows on the host with their pid, title, and geometry.
lostreadnever flushed
managerread
mouse_clickreadClick at absolute screen coordinates (x, y). Use with prior
mouse_movewriteMove the mouse cursor to absolute screen coordinates without clicking. Useful to hover before screenshotting (some IDE/editor surfaces only render tooltips on hover).
move_ticketwriteChange a root ticket
nested-innerreadnested
nested-outerreadnested
nonblocking-probewriteconcurrent primary write during ontology population
os_inforeadReport basic info about the host the agent-manager is running on (platform, hostname, user, OS release, arch, cpu count, memory, DISPLAY / WAYLAND_DISPLAY).
patch_orchestration_graphwriteChange part of the execution graph of a running mission you orchestrate, without resubmitting the whole
pathreadAbsolute path on the agent machine
pend_ticketreadUse ONLY when human input is required AND no registered Action can resolve the blocker.
persistedreadflushed
propose_session_promptread${WHO} Proposes a prompt for another Agent Session to work on next — e.g. after a work report says a session
propose_skill_changewriteCreate a pending, human-reviewed AWB skill proposal. This never publishes, assigns, approves, or mutates a skill version.
qa_run_heartbeatwriteEmit a lightweight liveness heartbeat for a running QaRun — SEPARATE from record_qa_step.
read_file_tailreadRead the tail of a text file (default last 8 KiB, max 1 MiB). Use to inspect Unity Editor.log, build logs, error logs, etc., without paging through the whole file.
record_decisionreadRecord a decision on a ticket — creates a comment with type=decision. Use this for resolved trade-offs, scope choices, or anything future readers should be able to find without scrolling the full discussion. Decisions render with a distinctive style and survive comment-filter toggles by default.\n\n
record_outreach_classificationreadReport the classification result for one outreach inbound item back to the dispatch
record_qa_stepwriteRecord one step result on a running QaRun. Upload the step\
record_security_findingreadRecord one finding on a running SecurityRun. Re-recording the same finding id overwrites it.
refresh_security_checklistreadRefresh a security profile\
register_build_artifactwriteRecord a build in the registry so the next run (any scenario on the same repo+commit) can
release_ticketreadCompatibility verb from the lock era — tickets are no longer locked. Always returns { released: false }.
remove_ticket_prerequisitedestructiveRemove a single prerequisite link from a ticket. When the last open link is removed, the ticket auto-unblocks (
reopen_orchestration_missionreadBring a FINISHED mission (completed / failed / cancelled) back to life so you can continue it.
report_build_failurereadReport a build FAILURE as a first-class event. Records a
report_deploymentwriteTell AWB that an ENVIRONMENT is now live on a specific commit — the
report_orchestration_progressreadHeartbeat for a long-running step assigned to you. Records a progress line on the mission timeline and
report_orchestration_stepreadReport the FINAL result of a step assigned to you. This is what unblocks every step that depends on
request_privileged_commandwriteAsk a human operator to run ONE command as root on the Runtime Host that supervises you.
request_ticket_unpend_approvalwritePost a Resume (Unpend) approval card to a chat room. This tool never clears pending_user_action.
reviewreadReview the working tree
review-branchreadReview a branch
revoke_api_keydestructiveRevoke (deactivate) an API key in your account. The key remains in DB but can no longer authenticate.
run_actionwriteDispatch a Run for an action. Creates a new chat room with the target agent,
run_automation_schedule_nowwriteManually dispatch a account schedule\
run_qa_schedule_nowwriteManually dispatch a QA schedule\
run_security_schedule_nowwriteManually fire a security schedule right now (ignores enabled; does NOT disturb the automatic
save_actionwriteCreate or update an action. Provide
save_functionwriteCreate or update a Account Function. Global Functions are managed by authenticated admins from the Functions menu. Provide id to update.
save_projectwriteCreate (omit project_id) or update a project.
save_resourcewriteCreate or update a resource. If
screenshotreadCapture a full-screen screenshot of the host the agent-manager is running on.
search_actionsreadText search across action name, description, and prompt template within a account.
search_chat_messagesreadFull-text search chat messages across the account, scoped to rooms the agent actively participates in.
search_githubreadSearch GitHub for repositories, code, or issues using the GitHub Search API.
search_resourcesreadSearch resources using semantic vector similarity (when embedding API configured) or text matching (fallback).
send_chat_room_messagewriteSend a message to a chat room. The agent must be an active participant in the room.
send_keyswriteSend keystrokes to the currently-focused window (or focus a window first by passing
send_session_prompt_proposalwrite${WHO} Sends a proposal the user just approved by talking to you (
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 (12 observation(s))
Network
declared (11 observation(s))
Shell
declared (5 observation(s))
Dependencies
not all pinned
Secrets in source
found

Findings (25)

HIGHNetwork egress · net.metadata_ip · CWE-200, CWE-319
apps/server/src/common/ssrf-guard.ts:80
['169.254.0.0', 16],    // link-local — 클라우드 메타데이터(169.254.169.254) 포함
Why it matters. cloud metadata endpoint: the classic SSRF credential grab
HIGHNetwork egress · net.metadata_ip · CWE-200, CWE-319
apps/server/src/modules/security/security-seed-profiles.ts:135
'URLs. An attacker-controlled URL can target internal services (169.254.169.254, localhost, ' +
Why it matters. cloud metadata endpoint: the classic SSRF credential grab
MEDIUMInventory / provenance · inv.binary · CWE-1104
apps/client/android/gradle/wrapper/gradle-wrapper.jar
gradle-wrapper.jar
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMInsecure crypto · crypto.weak_random · CWE-327, CWE-338
apps/server/src/modules/security/security-seed-profiles.ts:197
'flag Math.random() for anything security-relevant — and secret comparisons should be ' +
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
Dockerfile:141
CMD wget -qO- http://127.0.0.1:7701/api/health | grep -q '"status":"ok"' || exit 1
MEDIUMHard-coded secrets · secret.anthropic · CWE-798, CWE-321
apps/agent-manager/test/agent-session-runner.test.mjs:527
assert.equal((await wrapped.capture()).CLAUDE_CODE_OAUTH_TOKEN, 'sk-ant-oat-first-halfsecond-half', 'interior whitespace stripped');
MEDIUMHard-coded secrets · secret.anthropic · CWE-798, CWE-321
apps/agent-manager/test/agent-session-runner.test.mjs:537
const msg = 'API Error: Headers.append: "Bearer sk-ant-oat01-AAAAbbbbCCCCdddd1234\n more" is an invalid header value; api_key="sk-live-abcdefghijklmnopqrstuvwxyz"';
MEDIUMHard-coded secrets · secret.anthropic · CWE-798, CWE-321
apps/agent-manager/test/launch-spec-recorder.test.mjs:18
const SECRET = 'sk-ant-api03-RECORDER-SECRET';
MEDIUMHard-coded secrets · secret.anthropic · CWE-798, CWE-321
apps/agent-manager/test/launch-spec.test.mjs:24
const SECRET = 'sk-ant-api03-SUPERSECRETVALUE';
MEDIUMHard-coded secrets · secret.anthropic · CWE-798, CWE-321
apps/agent-manager/test/permission-policy-matrix.test.mjs:107
const secret = 'sk-ant-api03-verysecrettoken';
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
apps/agent-manager/test/account-scope-compat.test.mjs:75
await store.writeAgentCredential(agentId, { credential_id: 'existing-credential', provider: 'claude_api_key', fields: { api_key: 'fixture-provider-key' } });
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
apps/agent-manager/test/agent-context-contract.test.mjs:179
relatedTickets: [{ password: 'related-object-secret' }],
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
apps/agent-manager/test/agent-context-contract.test.mjs:180
recentDecisions: [{ nested: { token: 'decision-object-secret' } }],
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
apps/agent-manager/test/agent-context-contract.test.mjs:181
unresolvedQuestions: [{ values: [{ api_key: 'question-object-secret' }] }],
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
apps/agent-manager/test/agent-manager-commands.test.mjs:186
const apiKey = 'sk-invalid-config-secret';
MEDIUMHard-coded secrets · secret.github · CWE-798, CWE-321
apps/server/test/migration-credential-reencrypt.test.mjs:50
const plaintext = 'ghp_realGitHubPersonalAccessToken1234567890';
MEDIUMFilesystem / path · mcp.destructive_tools · CWE-22, CWE-59
clear_current_task, delete_account, delete_action, delete_api_key, delete_automation_schedule, delete_channel, delete_chat_message_attachment, delete_child_ticket, delete_function, delete_qa_scenario,
Why it matters. 20 tool(s) can delete or overwrite
Fix. prefer a read-only mode or scoped tokens; the page states the blast radius
LOWInventory / provenance · inv.suspicious_name · CWE-1104
apps/server/test/event-registry-payload-parity-guard.test.mjs
event-registry-payload-parity-guard.test.mjs
Why it matters. member named after an attack tool
Fix. remove or justify
LOWCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
apps/agent-manager/test/pi-adapter.test.mjs:275
new Function(content.replace('export default async function', 'const _f = async function'));
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
apps/agent-manager/src/lib/cli-adapters/claude.ts:52
const bytes = createHash('sha1')
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
apps/agent-manager/src/lib/clis/antigravity/index.ts:5
import { AntigravityCliAdapter } from '../../cli-adapters/antigravity.js';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
apps/agent-manager/src/lib/clis/antigravity/index.ts:6
import { BYPASS_ONLY_PERMISSION_CAPABILITIES } from '../../permission-policy.js';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
apps/agent-manager/src/lib/clis/antigravity/index.ts:7
import { requestCapabilities } from '../../runtime/domain/capabilities.js';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
apps/agent-manager/src/lib/clis/claude/index.ts:10
import { ClaudeCliAdapter } from '../../cli-adapters/claude.js';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
apps/agent-manager/src/lib/clis/claude/index.ts:11
import { TIER_FLAG_PERMISSION_CAPABILITIES } from '../../permission-policy.js';

Gates applied: no_behavioural_pass.

Audited 2026-10-12 · audit v0.4.1 · source sha d32bac6f405ffull audit observations/trust-audit/mcp-server/parnmanas__ai-workflow-board.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-12d32bac6f405fBLOCKF44first audit
06

Questions

What tools does awb-agent-manager expose?

200 in total: 136 read-only, 84 that write, and 20 that can delete or overwrite (clear_current_task, delete_account, delete_action, delete_api_key, delete_automation_schedule). Every one is listed on this page with its risk.

Is awb-agent-manager safe to connect to an agent?

No — not without reading the findings first. The audit graded it F (44/100) and found 2 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: 20 of its tools can destroy data, so scope the token you give it to what you actually need.

What credentials does awb-agent-manager need?

It reads AGENT_API_KEY, ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN, API_KEYS_LEAK_PORT, AWB_API_KEY, AWB_VOICE_KEY, CLAUDE_CODE_MAX_CONTEXT_TOKENS, CLAUDE_CODE_MAX_OUTPUT_TOKENS, CLAUDE_CODE_OAUTH_TOKEN, DB_PASS, DEEPSEEK_API_KEY and ENCRYPTION_KEY 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 awb-agent-manager run?

It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as ai-workflow-board.

How current is this page?

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

Advertisement