OutSend

Find local businesses, enrich them with emails and socials, and run lead pipelines from your AI.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
100%
Integridad del esquema
66%
Calidad de los nombres
98%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~1,421Tokens (definiciones de herramientas)
~678 BTamaño de respuesta típico
Impacto moderado en la atención (1.11% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "outsend": {
      "url": "https://outsend.xyz/mcp"
    }
  }
}

Puntos de conexión remotos

https://outsend.xyz/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (13)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢list_modules

Catalog of outsend data modules: what each one needs and produces. Call this first to know what is possible. Modules listed as coming_soon cannot be launched.

Esquema de entrada

{
  "type": "object",
  "properties": {}
}
🟡get_pipeline_schema

Machine contract for building pipelines: valid block types, per-block config schema, and chaining rules. Use before create_pipeline.

Esquema de entrada

{
  "type": "object",
  "properties": {}
}
🟢estimate_scrap(queries, zones, country, stop_at, scrap_mode)

Estimate the cost (EF) and volume of a Google Maps extraction WITHOUT launching it. Always estimate before creating a large job. 1 EF = a full-France scrape for one query type.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "queries": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "maxItems": 20,
      "description": "Business types, e.g. ['plombier', 'electricien']"
    },
    "zones": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "maxItems": 50,
      "description": "Cities, departments, regions or 'France'"
    },
    "country": {
      "type": "string",
      "description": "ISO3 country code, default FRA"
    },
    "stop_at": {
      "type": "integer",
      "minimum": 1,
      "description": "Stop after N unique places (recommended when the user gives a number)"
    },
    "scrap_mode": {
      "type": "string",
      "enum": [
        "fast",
        "normal",
        "ultra"
      ]
    }
  },
  "required": [
    "queries",
    "zones"
  ]
}
🟡create_scrap_job(queries, zones, country, stop_at, scrap_mode, ...)

Launch a Google Maps extraction (async). Returns the job id immediately; poll get_job until status=done, then use get_job_results. When the user wants ~N results, set stop_at.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "queries": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "maxItems": 20
    },
    "zones": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "maxItems": 50
    },
    "country": {
      "type": "string",
      "description": "ISO3, default FRA"
    },
    "stop_at": {
      "type": "integer",
      "minimum": 1
    },
    "scrap_mode": {
      "type": "string",
      "enum": [
        "fast",
        "normal",
        "ultra"
      ]
    },
    "extra_columns": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "gps",
          "departement",
          "region"
        ]
      }
    },
    "max_per_phone": {
      "type": "integer",
      "minimum": 0
    }
  },
  "required": [
    "queries",
    "zones"
  ]
}
🟡create_enrichment_job(enrichment, source_job_id, email_mode)

Enrich the results of a finished job (async): find emails, scrape reviews, detect social networks, verify emails, tech stack, etc. Returns the new job id.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "enrichment": {
      "type": "string",
      "enum": [
        "ads_intelligence",
        "brand_assets",
        "dead_check",
        "emails",
        "legal_data",
        "legal_ids",
        "legal_mentions",
        "pagespeed",
        "phone_info",
        "phones_extra",
        "pricing",
        "reviews",
        "socials",
        "techstack",
        "verify_emails"
      ]
    },
    "source_job_id": {
      "type": "string",
      "description": "A job with status=done"
    },
    "email_mode": {
      "type": "string",
      "enum": [
        "normal",
        "deep"
      ],
      "description": "Only for enrichment=emails. Default normal."
    }
  },
  "required": [
    "enrichment",
    "source_job_id"
  ]
}
🟢get_job(job_id)

Status, counters and download URL of a job.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string"
    }
  },
  "required": [
    "job_id"
  ]
}
🟢get_job_results(job_id, limit, offset)

Preview of a finished job's rows (max 50 per call, paginate with offset) + total count + CSV download URL. Never dump thousands of rows into the conversation: show a sample, give the link.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    },
    "offset": {
      "type": "integer",
      "minimum": 0
    }
  },
  "required": [
    "job_id"
  ]
}
🟢list_jobs(limit)

The account's recent jobs, newest first.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    }
  }
}
🟡create_pipeline(name, definition)

Create AND start a multi-step pipeline (e.g. scrap → emails → verify_emails). Keep chains LINEAR (each block feeds the next). Edges use the keys "from" and "to" — NOT source/target. Call get_pipeline_schema first for the valid block types and their config fields. Returns pipeline id + initial job ids. Example definition: {"nodes": [{"id": "n1", "type": "scrap", "config": {"queries": ["plombier"], "zones": ["Lyon"], "stop_at": 500}}, {"id": "n2", "type": "emails", "config": {}}], "edges": [{"id": "e1", "from": "n1", "to": "n2"}]}

Esquema de entrada

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 100
    },
    "definition": {
      "type": "object",
      "description": "{nodes: [{id, type, config}], edges: [{id, from, to}]} — edge keys are \"from\"/\"to\", not source/target",
      "properties": {
        "nodes": {
          "type": "array",
          "items": {
            "type": "object"
          }
        },
        "edges": {
          "type": "array",
          "items": {
            "type": "object"
          }
        }
      },
      "required": [
        "nodes"
      ]
    }
  },
  "required": [
    "definition"
  ]
}
🟢list_pipelines

The account's pipelines with status.

Esquema de entrada

{
  "type": "object",
  "properties": {}
}
🟡create_veille(source_job_id, source_pipeline_id, name, frequency_days)

Turn a finished job or pipeline into recurring monitoring: outsend re-runs it every N days and computes the diff (new / removed / modified places).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "source_job_id": {
      "type": "string"
    },
    "source_pipeline_id": {
      "type": "string"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "frequency_days": {
      "type": "integer",
      "minimum": 1,
      "maximum": 90
    }
  },
  "required": [
    "name",
    "frequency_days"
  ]
}
🟢list_veilles

The account's recurring monitors.

Esquema de entrada

{
  "type": "object",
  "properties": {}
}
🟢get_events(since_id, types, limit)

Account event feed (job.completed, pipeline.completed, veille.run_completed…). Cursor-based: pass back last_id as since_id.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "since_id": {
      "type": "integer",
      "minimum": 0
    },
    "types": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  }
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada13 herramientas
requiere autenticaciónversión no registrada—