Prototyp · Vorschau: alle Server aus der offiziellen Registry, alle 30 Minuten synchronisiert. Bewertungen und Benutzerkonten folgen in einem späteren Schritt.
PopNx MCPMCP-Server für alle, die KI nutzen · in einfachen Worten erklärt

Human Dispatch MCP

von zyntarasystemsVersion 0.2.2i★ –iLäuft auf deinem Computer
Name in der Registryio.github.zyntarasystems/human-dispatch-mcp

Installieren

Überblick

Beschreibung vom Entwickler (englisches Original)

MCP server that dispatches physical-world tasks to humans through a unified API

Die drei Säulen von PopNx MCP

Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.

Was du damit machen kannst

Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.

  • Verbindung: Läuft auf deinem Computer
  • Transport: stdio
  • Kategorie: Sonstiges
  • Das musst du eintragen: RENTAHUMAN_API_KEY, MTURK_ACCESS_KEY_ID, MTURK_SECRET_ACCESS_KEY

Installation

Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.

Bevor du installierst

  • Basischecks: 1 von 1 bestanden
  • Läuft auf deinem Computer mit den Rechten deines Benutzerkontos (Dateien, Netzwerk, Apps).
  • Das trägst du selbst ein: RENTAHUMAN_API_KEY, MTURK_ACCESS_KEY_ID, MTURK_SECRET_ACCESS_KEY, MTURK_SANDBOX, MANUAL_WEBHOOK_URL

Als geheim markierte Werte sind Schlüssel zu deinem Konto. Gib sie nie weiter und füge sie nie in einen Chat ein.

Du brauchst

  • npmNode.js installiert (für den Befehl npx)

Welche App nutzt du?

Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.

Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein

{
  "mcpServers": {
    "human-dispatch": {
      "command": "npx",
      "args": [
        "-y",
        "human-dispatch-mcp"
      ],
      "env": {
        "RENTAHUMAN_API_KEY": "your-value",
        "MTURK_ACCESS_KEY_ID": "your-value",
        "MTURK_SECRET_ACCESS_KEY": "your-value",
        "MTURK_SANDBOX": "your-value",
        "MANUAL_WEBHOOK_URL": "your-value"
      }
    }
  }
}

Führe das in deinem Terminal aus

claude mcp add human-dispatch --env RENTAHUMAN_API_KEY=your-value --env MTURK_ACCESS_KEY_ID=your-value --env MTURK_SECRET_ACCESS_KEY=your-value --env MTURK_SANDBOX=your-value --env MANUAL_WEBHOOK_URL=your-value -- npx -y human-dispatch-mcp

Trag die leeren Werte ein, bevor du ihn startest.

In Cursor öffnen

Oder kopier die Einstellungen selbst

In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen

{
  "mcpServers": {
    "human-dispatch": {
      "command": "npx",
      "args": [
        "-y",
        "human-dispatch-mcp"
      ],
      "env": {
        "RENTAHUMAN_API_KEY": "your-value",
        "MTURK_ACCESS_KEY_ID": "your-value",
        "MTURK_SECRET_ACCESS_KEY": "your-value",
        "MTURK_SANDBOX": "your-value",
        "MANUAL_WEBHOOK_URL": "your-value"
      }
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

In VS Code öffnen

Oder kopier die Einstellungen selbst

In .vscode/mcp.json in deinem Projekt einfügen

{
  "servers": {
    "human-dispatch": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "human-dispatch-mcp"
      ],
      "env": {
        "RENTAHUMAN_API_KEY": "your-value",
        "MTURK_ACCESS_KEY_ID": "your-value",
        "MTURK_SECRET_ACCESS_KEY": "your-value",
        "MTURK_SANDBOX": "your-value",
        "MANUAL_WEBHOOK_URL": "your-value"
      }
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.

Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.

Werte, die du selbst einträgst

  • RENTAHUMAN_API_KEY geheim env
    API key for the RentAHuman.ai backend
  • MTURK_ACCESS_KEY_ID geheim env
    AWS access key ID for the Amazon Mechanical Turk backend
  • MTURK_SECRET_ACCESS_KEY geheim env
    AWS secret access key for the Amazon Mechanical Turk backend
  • MTURK_SANDBOX env
    Set to "false" to use MTurk production environment (defaults to sandbox mode)
  • MANUAL_WEBHOOK_URL env
    Webhook URL for the manual backend to send task notifications

Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.

Was er kann

Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.

Basischecksi

Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 7. Nov. 2026

  • ✓ Bestanden

    Entwickler passt zum Repo

    Der Registry-Name wurde mit dem GitHub-Konto zyntarasystems bestätigt, dem das Repo gehört

  • … Noch nicht geprüft

    Wird noch gepflegt

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • … Noch nicht geprüft

    Hat eine Lizenz

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • – Nicht zutreffend

    Endpunkt antwortet

    Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet

  • – Nicht zutreffend

    Anmeldung mit OAuth

    Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen

  • … Noch nicht geprüft

    Keine versteckten Anweisungen in Tool-Beschreibungen

    Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen

Im Vergleich mit anderen in Sonstigesi

  • Mehr Sterne als 0 % der anderen 32545 Server in dieser Kategorie
  • Neuer in der Registry veröffentlicht als 6 % der anderen 32545 Server in dieser Kategorie
  • Basischecks gleich gut wie oder besser als bei 100 % der anderen 32545 Server in dieser Kategorie

Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.

Häufige Fragen

Ist Human Dispatch MCP sicher?

Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.

Welche Schlüssel oder Codes braucht er?

Das musst du eintragen: RENTAHUMAN_API_KEY, MTURK_ACCESS_KEY_ID, MTURK_SECRET_ACCESS_KEY

Läuft er auf meinem Computer oder in der Cloud?

Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).

Wird er noch gepflegt?

Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.2.2) kam vor 7 Monaten in die Registry.

Welche Apps können ihn nutzen?

Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Node.js auf deinem Computer.

Was kann ich stattdessen nutzen?

In derselben Kategorie: Spec Driven Development, Remote Desktop Commander, Python MCP

Alternativen

Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.

So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti

Spec Driven Development

von formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

Läuft auf deinem Computer★ 440MITAktualisiert vor 14 Monaten
Installieren

Remote Desktop Commander

von desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

Läuft in der Cloud★ 211Aktualisiert gestern
Installieren

Python MCP

von Files-com

Local-only Python MCP server for the Files.com API.

Läuft auf deinem ComputerAktualisiert heute
Installieren

README vom Entwickler

README öffnen

Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.

human-dispatch-mcp

🌐 [humandispatch.ai](https://humandispatch.ai) — Homepage & provider docs

A universal dispatch layer for AI-agent-to-human task routing — Any business (law firms, VA services, freelancers, agencies) can plug in via webhooks and start receiving AI-dispatched tasks in minutes.

Routes tasks to registered webhook providers with smart matching, fallback chains, and proof-of-completion tracking. Any service provider registers a webhook, and the router matches tasks to providers based on capabilities, region, and budget.

Quick Start

# Clone and install

git clone https://github.com/zyntarasystems/human-dispatch-mcp.git cd human-dispatch-mcp npm install

Configure (optional — works out of the box with manual fallback)

cp .env.example .env

Build and run

npm run build node dist/index.js

Testing with MCP Inspector

The easiest way to verify the server is working:

npx @modelcontextprotocol/inspector node dist/index.js

Open http://localhost:5173, enter the proxy session token shown in your terminal, and click Connect.

Test sequence:
  1. List backends — call human_list_backends to see webhook_provider and manual
  1. Register a provider — call human_register_provider:
{

"name": "Test Provider", "webhook_url": "https://webhook.site/your-uuid", "webhook_secret": "a-secret-that-is-at-least-32-chars-long!", "categories": ["digital_micro"], "task_types": ["digital"], "regions": ["*"], "min_budget_usd": 0, "max_budget_usd": 500, "max_concurrent_tasks": 10 }

  1. Dispatch a task — call human_dispatch_task with Raw JSON input mode:
{

"description": "Test task — verify the MCP server is routing correctly", "category": "digital_micro", "task_type": "digital", "budget": { "max_usd": 5, "currency": "USD" }, "deadline": { "complete_by": "2026-04-10T18:00:00Z", "urgency": "low" }, "proof_required": ["text_report"], "quality_sla": "low", "callback_url": null }

The task should route to your registered provider. If no providers match, it falls through to the manual backend.

MCP Client Configuration

Claude Desktop / Cursor / Any MCP Client
{

"mcpServers": { "human-dispatch": { "command": "npx", "args": ["human-dispatch-mcp"] } } }

HTTP Transport

Note: HTTP transport binds to 127.0.0.1 only. For remote access, place a TLS-terminating reverse proxy (e.g. nginx, Caddy) in front of the server. Never expose the port directly.

Required: HTTP transport refuses to start without MCP_AUTH_TOKEN set. All POST /mcp requests must include Authorization: Bearer . The /callbacks/task/:taskId endpoint uses HMAC-signature auth instead — providers do not see the bearer token.

{

"mcpServers": { "human-dispatch": { "command": "npx", "args": ["human-dispatch-mcp"], "env": { "TRANSPORT": "http", "PORT": "3000", "MCP_AUTH_TOKEN": "a-long-random-string-32-chars-or-more" } } } }

Tools Reference

ToolDescription
human_dispatch_taskSubmit a task to be completed by a human worker via the best matching provider
human_get_task_statusPoll the current status, worker info, and proof submissions for a task
human_cancel_taskCancel a pending or in-progress task
human_list_tasksList tasks with filters (status, backend, category) and pagination
human_list_backendsShow available backends, their configuration status, and capabilities
human_register_providerRegister a webhook provider to receive dispatched tasks
human_list_providersList registered providers with stats and filters
human_remove_providerDeregister a webhook provider

Architecture

┌─────────────┐

│ AI Agent │ │ (Claude, etc)│ └──────┬───────┘ │ MCP Protocol (stdio or HTTP) ▼ ┌──────────────────────────────────────┐ │ human-dispatch-mcp Server │ │ │ │ ┌────────────┐ ┌────────────────┐ │ │ │ Task Store │ │ Provider │ │ │ │ (in-memory)│ │ Registry │ │ │ └────────────┘ └───────┬────────┘ │ │ │ │ │ ┌────────────┐ ┌───────▼────────┐ │ │ │ Router │──│ Webhook │ │ │ │ (scoring) │ │ Provider │ │ │ └──────┬─────┘ │ Adapter │ │ │ │ └───────┬────────┘ │ │ │ │ │ │ │ ┌───────────▼─────────┐ │ │ │ │ Provider A (law) │ │ │ │ │ Provider B (VA) │ │ │ │ │ Provider C (photos) │ │ │ │ └─────────────────────┘ │ │ ▼ │ │ ┌────────────┐ │ │ │ Manual │ (always-on fallback) │ │ │ Adapter │ │ │ └────────────┘ │ └──────────────────────────────────────┘

For Service Providers

Any business can register as a provider to receive AI-dispatched tasks. Here's how:

1. Set up a webhook endpoint

Your endpoint receives POST requests with these headers:

HeaderDescription
x-dispatch-signaturesha256= — HMAC-SHA256 of the request body using your shared secret
X-Dispatch-EventEvent type: task.new, task.cancel, or provider.verify
X-Dispatch-TaskIdUUID of the task
2. Handle task.new events

Request body:

{

"payload_version": 1, "event": "task.new", "task_id": "uuid", "description": "What needs to be done", "category": "photo_video", "task_type": "physical", "location": { "address": "123 Main St", "region": "US" }, "budget": { "max_usd": 25, "currency": "USD" }, "deadline": { "complete_by": "2026-04-10T18:00:00Z", "urgency": "medium" }, "proof_required": ["photo", "gps_checkin"], "quality_sla": "medium" }

payload_version is the request-shape version; pin your parser to a known version and reject unknown ones. Today only 1 is sent.

Respond with:

{ "accepted": true, "external_id": "your-internal-id" }

Or reject:

{ "accepted": false, "reason": "Outside service area" }
Handle provider.verify events

When a provider is registered, the server immediately POSTs a provider.verify event to confirm the endpoint is reachable and willing. A 200 alone is not enough — your endpoint must return { "verified": true } in the JSON body. Anything else (missing field, false, non-JSON) marks verification as unreachable. This makes registration require explicit consent from your endpoint, not just URL reachability.

3. Report completion (HTTP transport only)

POST to http:// /callbacks/task/ with headers:

  • x-provider-id: Your provider UUID
  • x-dispatch-signature: sha256= of the body
{

"status": "completed", "proof": [ { "type": "photo", "url": "https://...", "submitted_at": "2026-04-10T12:00:00Z" } ], "actual_cost_usd": 20, "notes": "Task completed successfully" }

4. Verify HMAC signatures

Always verify incoming webhooks using your shared secret:

const crypto = require('crypto');

const expected = 'sha256=' + crypto.createHmac('sha256', secret).update(rawBody).digest('hex'); const valid = crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(signatureHeader));

HMAC canonicalization contract (load-bearing): the signature is computed over the exact bytes the request was POSTed with, not over a re-serialized JSON object. When you send a callback, sign the byte string you put on the wire — do not parse the body, re-stringify it, and sign that, because key ordering or whitespace may differ. Use JSON.stringify(payload) once, capture the resulting string, sign that string, send that string. The server applies the same rule on the receiving side: it captures the raw request body buffer before any JSON parser touches it.

Smart Routing

The router automatically picks the best backend based on:

  1. Agent preferences — preferred_backends and fallback_chain are honored first
  2. Provider matching — category, task type, region, and budget compatibility
  3. Reliability — providers with higher completion rates are tried first
  4. Speed — faster providers score higher
  5. Fallback — the manual backend is always available as the ultimate fallback

Example Agent Usage

Python with LangGraph
import asyncio

from langchain_mcp_adapters.client import MultiServerMCPClient

async def dispatch_photo_task(): async with MultiServerMCPClient({ "human": { "command": "node", "args": ["path/to/human-dispatch-mcp/dist/index.js"], "transport": "stdio", } }) as client: tools = client.get_tools()

Register a provider first

await client.call_tool("human_register_provider", { "name": "Photo Service Co", "webhook_url": "https://photos.example.com/webhook", "webhook_secret": "your-secret-that-is-at-least-32-characters", "categories": ["photo_video"], "task_types": ["physical"], "regions": ["US"], "min_budget_usd": 5, "max_budget_usd": 100, "max_concurrent_tasks": 20 })

Dispatch a task

result = await client.call_tool("human_dispatch_task", { "description": "Take a photo of the menu board at Starbucks on 5th Ave, NYC", "category": "photo_video", "task_type": "physical", "location": { "address": "5th Ave & 42nd St, New York, NY", "region": "US" }, "budget": {"max_usd": 15, "currency": "USD"}, "deadline": { "complete_by": "2026-01-15T18:00:00Z", "urgency": "medium" }, "proof_required": ["photo", "gps_checkin"], "quality_sla": "medium" }) print(result)

asyncio.run(dispatch_photo_task())

Environment Variables

VariableDefaultDescription
TRANSPORTstdioTransport mode: stdio or http
PORT3000HTTP port (when TRANSPORT=http)
MCP_AUTH_TOKEN—Bearer token required on every POST /mcp request when TRANSPORT=http. The HTTP transport refuses to start if unset.
MANUAL_WEBHOOK_URL—Webhook URL for manual task notifications
PROVIDERS_CONFIG—JSON array of provider objects to pre-seed on startup

Security

This server processes outbound HTTP requests on behalf of its callers and is intended to run inside trusted infrastructure. The relevant guarantees:

  • HTTP transport requires authentication. MCP_AUTH_TOKEN is mandatory; the server refuses to start without it. Bearer comparison is constant-time (timingSafeEqual).
  • DNS-rebinding protection is enabled on POST /mcp. The transport rejects requests whose Host header points at anything other than the configured loopback.
  • Outbound URL guard. Every webhook URL the server fetches (provider registration, MANUAL_WEBHOOK_URL, callback_url, proof URLs) goes through a structured validator: HTTPS only, no loopback, no RFC1918 / link-local / unique-local hosts, with a DNS resolution check at fetch time to defeat last-second rebinds. There is no opt-out — use a public tunnel (ngrok, cloudflared) for local testing.
  • Inbound callbacks are authenticated by HMAC, not by IP. Each provider registers its own webhook secret. The server verifies x-dispatch-signature over the raw request bytes before parsing JSON. A per-provider token bucket limits callback flood (30 burst, 5/sec sustained).
  • Terminal-state guard. Once a task reaches completed, failed, or `ca

Nur der Anfang wird gezeigt; den Rest findest du im Repo

PopNx fragen