MCP 서버

OutSend

xyz.outsend/outsend

이 MCP로 할 수 있는 일

Extracts Google Maps business leads, enriches them with contact and social data, verifies emails, and runs recurring lead-monitoring pipelines.

create_enrichment_job
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.
입력 스키마
{'type': 'object', 'required': ['enrichment', 'source_job_id'], 'properties': {'email_mode': {'enum': ['normal', 'deep'], 'type': 'string', 'description': 'Only for enrichment=emails. Default normal.'}, 'enrichment': {'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'], 'type': 'string'}, 'source_job_id': {'type': 'string', 'description': 'A job with status=done'}}}
create_pipeline
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"}]}
입력 스키마
{'type': 'object', 'required': ['definition'], 'properties': {'name': {'type': 'string', 'maxLength': 100}, 'definition': {'type': 'object', 'required': ['nodes'], 'properties': {'edges': {'type': 'array', 'items': {'type': 'object'}}, 'nodes': {'type': 'array', 'items': {'type': 'object'}}}, 'description': '{nodes: [{id, type, config}], edges: [{id, from, to}]} — edge keys are "from"/"to", not source/target'}}}
create_scrap_job
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.
입력 스키마
{'type': 'object', 'required': ['queries', 'zones'], 'properties': {'zones': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 50, 'minItems': 1}, 'country': {'type': 'string', 'description': 'ISO3, default FRA'}, 'queries': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 20, 'minItems': 1}, 'stop_at': {'type': 'integer', 'minimum': 1}, 'scrap_mode': {'enum': ['fast', 'normal', 'ultra'], 'type': 'string'}, 'extra_columns': {'type': 'array', 'items': {'enum': ['gps', 'departement', 'region'], 'type': 'string'}}, 'max_per_phone': {'type': 'integer', 'minimum': 0}}}
create_veille
Turn a finished job or pipeline into recurring monitoring: outsend re-runs it every N days and computes the diff (new / removed / modified places).
입력 스키마
{'type': 'object', 'required': ['name', 'frequency_days'], 'properties': {'name': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'source_job_id': {'type': 'string'}, 'frequency_days': {'type': 'integer', 'maximum': 90, 'minimum': 1}, 'source_pipeline_id': {'type': 'string'}}}
estimate_scrap
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.
입력 스키마
{'type': 'object', 'required': ['queries', 'zones'], 'properties': {'zones': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 50, 'minItems': 1, 'description': "Cities, departments, regions or 'France'"}, 'country': {'type': 'string', 'description': 'ISO3 country code, default FRA'}, 'queries': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 20, 'minItems': 1, 'description': "Business types, e.g. ['plombier', 'electricien']"}, 'stop_at': {'type': 'integer', 'minimum': 1, 'description': 'Stop after N unique places (recommended when the user gives a number)'}, 'scrap_mode': {'enum': ['fast', 'normal', 'ultra'], 'type': 'string'}}}
get_events
Account event feed (job.completed, pipeline.completed, veille.run_completed…). Cursor-based: pass back last_id as since_id.
입력 스키마
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'types': {'type': 'array', 'items': {'type': 'string'}}, 'since_id': {'type': 'integer', 'minimum': 0}}}
get_job
Status, counters and download URL of a job.
입력 스키마
{'type': 'object', 'required': ['job_id'], 'properties': {'job_id': {'type': 'string'}}}
get_job_results
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.
입력 스키마
{'type': 'object', 'required': ['job_id'], 'properties': {'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1}, 'job_id': {'type': 'string'}, 'offset': {'type': 'integer', 'minimum': 0}}}
get_pipeline_schema
Machine contract for building pipelines: valid block types, per-block config schema, and chaining rules. Use before create_pipeline.
입력 스키마
{'type': 'object', 'properties': {}}
list_jobs
The account's recent jobs, newest first.
입력 스키마
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1}}}
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.
입력 스키마
{'type': 'object', 'properties': {}}
list_pipelines
The account's pipelines with status.
입력 스키마
{'type': 'object', 'properties': {}}
list_veilles
The account's recurring monitors.
입력 스키마
{'type': 'object', 'properties': {}}
추가됨
get_events
2026년 9월 25일 2:45 AM
추가됨
list_veilles
2026년 9월 25일 2:45 AM
추가됨
create_veille
2026년 9월 25일 2:45 AM
추가됨
list_pipelines
2026년 9월 25일 2:45 AM
추가됨
create_pipeline
2026년 9월 25일 2:45 AM
추가됨
list_jobs
2026년 9월 25일 2:45 AM
추가됨
get_job_results
2026년 9월 25일 2:45 AM
추가됨
get_job
2026년 9월 25일 2:45 AM
추가됨
create_enrichment_job
2026년 9월 25일 2:45 AM
추가됨
create_scrap_job
2026년 9월 25일 2:45 AM
추가됨
estimate_scrap
2026년 9월 25일 2:45 AM
추가됨
get_pipeline_schema
2026년 9월 25일 2:45 AM
추가됨
list_modules
2026년 9월 25일 2:45 AM