OutSend
Find local businesses, enrich them with emails and socials, and run lead pipelines from your AI.
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"outsend": {
"url": "https://outsend.xyz/mcp"
}
}
}Remote-Endpunkte
https://outsend.xyz/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (13)
🟢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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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"}]}
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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).
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"type": "object",
"properties": {
"since_id": {
"type": "integer",
"minimum": 0
},
"types": {
"type": "array",
"items": {
"type": "string"
}
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
}
}Community
Nachweis