dispatch (misospace/dispatch) is an MCP server listed on the M8ven Trust Index. It scores 74 out of 100, grade C. It declares 13 tools. No publisher has claimed this listing.
Harness-agnostic Kanban and work dispatch for AI agents working GitHub Issues and PRs.
Emerging. No concerning findings. Grades remain capped until the project builds reputation through adoption. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.
How we verified
Verified is a snapshot. Live keeps it current, and builds your track record.
⚡ Connect GitHub → continuous verification on every pushwhy connect →Who stands behind it
misospace
Source: github_repo_search
Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →
Install from
The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.
These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.
resolve_issueResolve a Dispatch issue by repo full name and issue number. Returns issue ID, title, URL, labels, status, and lane classification.
claim_issueClaim a Dispatch issue for an agent. Adds the agent/* label on GitHub and in the local cache. Use force=true to override existing assignments. If agentName is omitted, falls back to DISPATCH_AGENT_NAME env var. Error if neither is set — do not use generic identities like 'Dispatch MCP'.
unclaim_issueRelease an agent's claim on a Dispatch issue: removes the agent/* label, releases the lease (and AgentWork records on the operator path), and reports the resulting status in the response. Status handling: status/in-progress flips to status/ready, so it is immediately re-claimable; status/blocked fli…
get_queueFetch an agent's ranked work queue (PR-fix items first, then ranked issues). Optionally filter by lane. If agentName is omitted, falls back to DISPATCH_AGENT_NAME env var.
list_issuesList Dispatch-tracked issues with optional filters: repo, status (backlog|ready|in-progress|in-review|done), lane, agent, priority. Open issues only unless includeClosed.
list_pr_fixesList queued PR-fix items (CI failures, CHANGES_REQUESTED reviews, merge conflicts) awaiting a fix push. Optionally filter by lane (e.g. 'NORMAL', 'ESCALATED') or include BLOCKED items.
mark_pr_fixMark a PR-fix queue item's outcome after working it: status one of 'fixed', 'blocked', 'stale', or 'ignored', with an optional note. Writes an audit row.
requeue_pr_fixReturn a BLOCKED pr-fix item to QUEUED with its attempt counter reset, so the loop works it again. Refuses if the upstream PR is already merged or closed. Writes an audit row.
run_groomerTrigger a hosted groomer run immediately instead of waiting for the scheduled cron: grooms one backlog candidate into a claimable lane. Optionally target a specific issue via repoFullName + issueNumber. Rate-limited server-side.
set_issue_statusSet the status label on a Dispatch issue (e.g. 'in-progress', 'in-review', 'done', 'blocked'). Transitions the status/ label on GitHub and in the local cache. Setting 'blocked' requires a non-empty blockedReason and parks the issue out of agent circulation until a human or targeted groomer run revis…
claim_workConvenience tool that resolves, claims, and sets status on an issue in one call. Returns a compact task contract with issue context for the agent to work against. Automatically refreshes the issue from GitHub if not found in cache (refreshBeforeClaim defaults to true). If agentName is omitted, falls…
refresh_issueRefresh a single issue from GitHub and upsert it into the Dispatch cache. Useful for syncing newly-created issues before claiming them.
sync_repoSync all open issues for a specific tracked repository. Faster than a full sync when you only need one repo updated.
AUTH_URLPublic base URL used to construct the OIDC callback (/api/auth/callback/...). Optional; falls back to NEXTAUTH_URL. Set this when Dispatch sits behind a reverse proxy that rewrites the public origin.DISPATCH_AGENT_NAMEDisplay name used by the agent when posting heartbeats. Defaults to the host's HOSTNAME env var.DISPATCH_AGENT_TOKENBearer token for agent API authenticationDISPATCH_AUTH_MODEAuthentication mode: "basic" (HTTP Basic Auth), "oidc" (OIDC/SSO), "disabled" (no auth, local development only — see [Operational Notes](#operational-notes)), or unset (legacy mode)DISPATCH_AUTH_PASSWORDPassword for Basic Auth — required when DISPATCH_AUTH_MODE=basicDISPATCH_AUTH_USERNAMEUsername for Basic Auth — required when DISPATCH_AUTH_MODE=basicDISPATCH_CI_FAILURE_LABELSComma-separated labels applied to those issues. Defaults to type/bug,status/ready. Set to an empty string to apply none.DISPATCH_CLOSED_ISSUE_RETENTION_DAYSDays that a closed issue is kept before /api/issues/prune-closed is allowed to remove it. Defaults to 30.DISPATCH_DATABASE_URLAlternative database URL alias — used if DATABASE_URL is not setDISPATCH_DEFERRAL_TTL_DAYSDISPATCH_DONE_RETENTION_DAYSDays that a done issue is kept before the issue list endpoint filters it out. Defaults to 7.DISPATCH_EXCLUDED_LABELSComma-separated label names excluded from triage, grooming, and queue calculations. Useful for hiding labels like wontfix or duplicate from the operator UI.DISPATCH_GROOMER_COMMENT_COOLDOWN_HOURSSuppresses repeated hosted-groomer comments on the same issue. Defaults to 24.DISPATCH_GROOMER_DRY_RUNDefaults to true; when true, returns a mutation plan without GitHub or DB writes.DISPATCH_GROOMER_MAX_CONTEXT_BYTESIssue context budget sent to the model. Defaults to 8192.DISPATCH_GROOMER_MAX_CONTEXT_FILESMaximum files included in repository context. Defaults to 5.DISPATCH_GROOMER_MAX_DIR_ENTRIESDISPATCH_GROOMER_MAX_FILE_BYTESMaximum bytes per fetched file snippet. Defaults to 4096.DISPATCH_GROOMER_MAX_ROUNDSDISPATCH_GROOMER_MAX_SEARCHESMaximum GitHub code searches per grooming run. Defaults to 3.DISPATCH_GROOMER_MAX_SEARCH_RESULTSDISPATCH_GROOMER_MAX_TOOL_CALLSDISPATCH_GROOMER_MODELModel name sent to the chat completions API. Required when hosted grooming is enabled.DISPATCH_GROOMER_REPO_CONTEXT_ENABLEDEnables bounded GitHub API repository context. Defaults to false.DISPATCH_GROOMER_TIMEOUT_MSLLM request timeout. Defaults to a scaled value of 60s + 5s/KB of maxContextBytes, clamped to 60s–300s.DISPATCH_GROOMER_TOKENOptional bearer token for scheduled/admin groomer invocations.DISPATCH_GROOMER_TOOL_LOOP_ENABLEDDISPATCH_HOSTED_GROOMER_ENABLEDEnables POST /api/groomer/run when set to true or 1. Defaults to disabled.DISPATCH_LANE_CONFIG_JSON2 } }. Tiers render as prioritized columns in the queue UI. When unset, lanes are auto-derived from labels prefixed with lane/.DISPATCH_LESSON_FEED_ENABLEDOpt-in gate for the lesson feed (#970). When unset, or anything other than the literal string "true", extractLessonFromFixOutcome() in src/lib/lesson-feed.ts returns no_lesson without making any LLM call. The pr-fix queue no longer fires the feed automatically — deployments that want their own downstream (dedupe via lessonAlreadyCovered + open an AGENTS.md PR) must enable this env var and wire the call themselves.DISPATCH_LESSON_FEED_MODELModel for the lesson feed. Takes precedence over DISPATCH_GROOMER_MODEL and OPENAI_MODEL.DISPATCH_LLM_API_KEYLLM provider API key. Required when hosted grooming is enabled.DISPATCH_LLM_BASE_URLOpenAI-compatible base URL, without /chat/completions. Required when hosted grooming is enabled.DISPATCH_OIDC_CLIENT_IDOIDC client ID — required when DISPATCH_AUTH_MODE=oidcDISPATCH_OIDC_CLIENT_SECRETOIDC client secret — required when DISPATCH_AUTH_MODE=oidc. Never exposed to the browser.DISPATCH_OIDC_ISSUEROIDC provider issuer URL (e.g., https://auth.example.com). Discovery URLs ending in /.well-known/openid-configuration are also accepted for compatibility. Required when DISPATCH_AUTH_MODE=oidcDISPATCH_QUEUE_AGING_DAYS_PER_TIERComma-separated numbers (days) defining the aging buckets per queue tier. The first entry applies to the highest-priority tier, the second to the next, and so on. Issues older than the matching bucket are highlighted in the queue UI.DISPATCH_QUEUE_AGING_MAX_TIERSMaximum number of aging buckets the queue UI will render, regardless of how many entries DISPATCH_QUEUE_AGING_DAYS_PER_TIER contains.DISPATCH_SYNC_LOCK_MAX_AGE_MSMaximum age (ms) before a stale sync lock is considered abandoned and may be reclaimed by a new sync run. Defaults to 1_800_000 (30 minutes).DISPATCH_URLBase URL of your Dispatch instance (used by outbound clients and MCP bridge)GITHUB_APP_IDYour GitHub App's numeric IDGITHUB_APP_INSTALLATION_IDThe installation ID for the GitHub App on your org/repoGITHUB_APP_PRIVATE_KEYPEM-formatted private key (supports real newlines and escaped \n form)GITHUB_REPOSITORIESBootstrap seed config for repos to track. Accepts comma-separated or newline-separated values (e.g., myorg/repo1,myorg/repo2 or myorg/repo1 on separate lines). Repos can also be managed via Dispatch UI or /api/automation/repos after initial setup.GITHUB_TOKENGitHub Personal Access Token or GitHub App token (fallback when GitHub App auth is not configured)NEXTAUTH_SECRETSecret for NextAuth.js JWT signing — required when DISPATCH_AUTH_MODE=oidc. Generate with: node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"NEXTAUTH_URLPublic Dispatch base URL used by NextAuth to derive callback URLs. Set this in OIDC deployments.OPENAI_API_KEYThe lesson feed shares DISPATCH_LLM_API_KEY and DISPATCH_LLM_BASE_URL with the hosted groomer; and OPENAI_BASE_URL are retained only as legacy fallbacks.OPENAI_BASE_URLThe lesson feed shares DISPATCH_LLM_API_KEY and DISPATCH_LLM_BASE_URL with the hosted groomer; OPENAI_API_KEY and are retained only as legacy fallbacks.OPENAI_MODELModel for the lesson feed. Takes precedence over DISPATCH_GROOMER_MODEL and OPENAI_MODEL.PR_FIX_MAX_ATTEMPTSPR_FOLLOWUP_BOT_IDENTITIESComma-separated bot logins whose PR events are ingested (default github-actions[bot]). Example: github-actions[bot],dependabot[bot].PR_FOLLOWUP_BRANCH_OWNERSComma-separated GitHub logins considered the canonical owner of a followup branch. Used to suppress "needs author" nudges.DATABASE_URLNEXT_PUBLIC_DISPATCH_VERSIONTool annotations
No tools have read-only/destructive annotations
Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.
All four hints declared on every tool
13/13 tools missing one or more hints — resolve_issue (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); claim_issue (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); unclaim_issue (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +10 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.
For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.
License file
No license file
Add a LICENSE file (MIT, Apache-2.0, etc.).
Tool test coverage
Only 3/13 tools referenced in tests (23%)
Write tests that reference each tool by name so every tool has at least one test.
No arbitrary install scripts
Has postinstall/preinstall script — runs arbitrary code on npm install
Remove postinstall/preinstall hooks unless they’re essential.
Dependency freshness
1/17 production deps stale: @dnd-kit/utilities@2023-11-06 (2.9y)
Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.
[](https://m8ven.ai/mcp/misospace/dispatch)?variant=verified to the badge URL.Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.
https://m8ven.ai/api/mcp/tool-check