World Monitor
Real-time global intelligence on conflict, markets, energy, trade, shipping and cyber. 104 tools.
MCP server that dispatches physical-world tasks to humans through a unified API
Elige la app de IA que usas y copia la configuración.
Pasó 2/2 revisiones · Funciona en tu computadora
Primero: ¿qué IA usas?
Elige tu app y los pasos aparecen abajo.
Funciona con Claude, pero hay que preparar algo antes
Necesitas una clave de Human Dispatch MCP (créala en el sitio del autor) · Instala Node.js en tu computadora primero (una sola vez) · Solo en la app de Claude para computadora (Windows o Mac), no en la web ni en el móvil
Una sola vez; sirve para todos los servidores que necesitan Node.js
Abre el sitio del autor, crea una cuenta y una clave de API para el siguiente paso. Consulta precios y planes gratis en su sitio.
Cómo obtener la clave está en el README del autor, más abajo
SettingsDeveloperEdit Config
{
"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"
}
}
}
}Pega la clave solo en el campo de la app; nunca en un chat ni se la envíes a nadie
Usa Human Dispatch MCP y dime qué puedes hacer por mí; luego muéstrame una cosa✓ Si Claude dice que está usando Human Dispatch MCP o muestra una herramienta de Human Dispatch MCP en la respuesta, ya está conectado
Nombres de menú comprobados con la ayuda de Anthropic el 11 nov 2026 · tu pantalla puede variar un poco según la versión
ChatGPT todavía no puede conectar Human Dispatch MCP
Human Dispatch MCP se instala en tu computadora, pero ChatGPT solo conecta servidores que funcionan en la web
A · Usa una app que pueda conectar Human Dispatch MCP
B · Otros en Otros que funcionan con ChatGPT
Elegidos entre los más usados de la misma categoría, solo los que se conectan con una dirección y sin clave
Funciona con Claude Code, pero hay que preparar algo antes
Necesitas una clave de Human Dispatch MCP (créala en el sitio del autor) · Instala Node.js en tu computadora primero (una sola vez)
Una sola vez; sirve para todos los servidores que necesitan Node.js
Abre el sitio del autor, crea una cuenta y una clave de API para el siguiente paso. Consulta precios y planes gratis en su sitio.
Cómo obtener la clave está en el README del autor, más abajo
Mac: pulsa Command+Espacio y escribe Terminal · Windows: abre PowerShell
claude mcp add --scope user 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-mcpCambia “your-value” por tu clave antes de pulsar Enter
Pega la clave solo en el campo de la app; nunca en un chat ni se la envíes a nadie
Deberías ver Human Dispatch MCP en la lista como conectado
Usa Human Dispatch MCP y dime qué puedes hacer por mí; luego muéstrame una cosa✓ Si Claude Code dice que está usando Human Dispatch MCP o muestra una herramienta de Human Dispatch MCP en la respuesta, ya está conectado
Nombres de menú comprobados con la ayuda de Anthropic el 11 nov 2026 · tu pantalla puede variar un poco según la versión
Funciona con Cursor, pero hay que preparar algo antes
Necesitas una clave de Human Dispatch MCP (créala en el sitio del autor) · Instala Node.js en tu computadora primero (una sola vez)
Una sola vez; sirve para todos los servidores que necesitan Node.js
Abre el sitio del autor, crea una cuenta y una clave de API para el siguiente paso. Consulta precios y planes gratis en su sitio.
Cómo obtener la clave está en el README del autor, más abajo
En la configuración de Human Dispatch MCP, RENTAHUMAN_API_KEY, MTURK_ACCESS_KEY_ID, MTURK_SECRET_ACCESS_KEY, MTURK_SANDBOX, MANUAL_WEBHOOK_URL está vacío; añade tu clave y guarda
Pega la clave solo en el campo de la app; nunca en un chat ni se la envíes a nadie
Usa Human Dispatch MCP y dime qué puedes hacer por mí; luego muéstrame una cosa✓ Si Cursor dice que está usando Human Dispatch MCP o muestra una herramienta de Human Dispatch MCP en la respuesta, ya está conectado
Nombres de menú comprobados con la ayuda de Cursor el 11 nov 2026 · tu pantalla puede variar un poco según la versión
Funciona con VS Code, pero hay que preparar algo antes
Necesitas una clave de Human Dispatch MCP (créala en el sitio del autor) · Instala Node.js en tu computadora primero (una sola vez)
Una sola vez; sirve para todos los servidores que necesitan Node.js
Abre el sitio del autor, crea una cuenta y una clave de API para el siguiente paso. Consulta precios y planes gratis en su sitio.
Cómo obtener la clave está en el README del autor, más abajo
En la configuración de Human Dispatch MCP, RENTAHUMAN_API_KEY, MTURK_ACCESS_KEY_ID, MTURK_SECRET_ACCESS_KEY, MTURK_SANDBOX, MANUAL_WEBHOOK_URL está vacío; añade tu clave y guarda
Pega la clave solo en el campo de la app; nunca en un chat ni se la envíes a nadie
Usa Human Dispatch MCP y dime qué puedes hacer por mí; luego muéstrame una cosa✓ Si VS Code dice que está usando Human Dispatch MCP o muestra una herramienta de Human Dispatch MCP en la respuesta, ya está conectado
Nombres de menú comprobados con la ayuda de VS Code el 11 nov 2026 · tu pantalla puede variar un poco según la versión
Otras apps que usan MCP, como Windsurf, Zed o Gemini CLI, añaden servidores de forma distinta. Míralo en la lista de apps
Ver todas las apps que usan MCP →
La configuración JSON está en “Para desarrolladores”, abajo
Claude Code
claude mcp add --scope user 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-mcpClaude Desktop (claude_desktop_config.json)
{
"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"
}
}
}
}Cursor (~/.cursor/mcp.json)
{
"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"
}
}
}
}VS Code (mcp.json)
{
"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"
}
}
}
}RENTAHUMAN_API_KEY secreto envMTURK_ACCESS_KEY_ID secreto envMTURK_SECRET_ACCESS_KEY secreto envMTURK_SANDBOX envMANUAL_WEBHOOK_URL envEsta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Según cómo se conecta este servidor y la documentación de cada app, comprobado el 10 nov 2026.
Se ejecutan en tu computadora en
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 12 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub zyntarasystems, dueña del repo
Último cambio de código: hace 6 meses
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Pregunta, comparte un consejo o avisa de que no funciona. Ordenado por lo que la gente marcó como útil.
Aún no hay publicaciones. Sé la primera persona en preguntar o compartir.
Lo publicado aquí lo escriben usuarios, no el equipo de PopNx.
Aún no hay reseñas
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 2 de 2 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
Debes completar: RENTAHUMAN_API_KEY, MTURK_ACCESS_KEY_ID, MTURK_SECRET_ACCESS_KEY
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez hace 6 meses, y la última versión (0.2.2) llegó al registro hace 7 meses.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Node.js en tu computadora.
En la misma categoría: World Monitor, Claude Flow, Windmill
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:↓ Descargas por semanai★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
Real-time global intelligence on conflict, markets, energy, trade, shipping and cyber. 104 tools.
AI orchestration with hive-mind swarms, neural networks, and 87 MCP tools for enterprise dev.
Run Windmill scripts and flows and manage jobs, schedules, resources and variables.
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
🌐 [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.
# Clone and install
git clone https://github.com/zyntarasystems/human-dispatch-mcp.git cd human-dispatch-mcp npm install
cp .env.example .env
npm run build node dist/index.js
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.
human_list_backends to see webhook_provider and manualhuman_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 }
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.
{
"mcpServers": { "human-dispatch": { "command": "npx", "args": ["human-dispatch-mcp"] } } }
Note: HTTP transport binds to
127.0.0.1only. 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_TOKENset. AllPOST /mcprequests must includeAuthorization: Bearer. The/callbacks/task/:taskIdendpoint 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" } } } }
| Tool | Description |
|---|---|
human_dispatch_task | Submit a task to be completed by a human worker via the best matching provider |
human_get_task_status | Poll the current status, worker info, and proof submissions for a task |
human_cancel_task | Cancel a pending or in-progress task |
human_list_tasks | List tasks with filters (status, backend, category) and pagination |
human_list_backends | Show available backends, their configuration status, and capabilities |
human_register_provider | Register a webhook provider to receive dispatched tasks |
human_list_providers | List registered providers with stats and filters |
human_remove_provider | Deregister a webhook provider |
┌─────────────┐
│ 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 │ │ │ └────────────┘ │ └──────────────────────────────────────┘
Any business can register as a provider to receive AI-dispatched tasks. Here's how:
Your endpoint receives POST requests with these headers:
| Header | Description |
|---|---|
x-dispatch-signature | sha256= — HMAC-SHA256 of the request body using your shared secret |
X-Dispatch-Event | Event type: task.new, task.cancel, or provider.verify |
X-Dispatch-TaskId | UUID of the task |
task.new eventsRequest 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" }
provider.verify eventsWhen 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.
POST to http:// /callbacks/task/ with headers:
x-provider-id: Your provider UUIDx-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" }
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.
The router automatically picks the best backend based on:
preferred_backends and fallback_chain are honored firstmanual backend is always available as the ultimate fallbackimport 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()
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 })
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())
| Variable | Default | Description |
|---|---|---|
TRANSPORT | stdio | Transport mode: stdio or http |
PORT | 3000 | HTTP 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 |
This server processes outbound HTTP requests on behalf of its callers and is intended to run inside trusted infrastructure. The relevant guarantees:
MCP_AUTH_TOKEN is mandatory; the server refuses to start without it. Bearer comparison is constant-time (timingSafeEqual).POST /mcp. The transport rejects requests whose Host header points at anything other than the configured loopback.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.x-dispatch-signature over the raw request bytes before parsing JSON. A per-provider token bucket limits callback flood (30 burst, 5/sec sustained).completed, failed, or `ca