Server definition
- Hash
- sha256:a4f361b5b224eae27b4a5a105880c7108ef0389b871ce45c6cd46b36d9f166af
- What it is
- What a remote MCP server returned when asked what it offers: 13 tools
The blob, as servednamed by its sha256
{
"instructions": "outsend extracts B2B prospecting data (Google Maps + enrichment). Start with list_modules. Jobs are ASYNC: create, then poll get_job until done, then get_job_results (preview + download link — never paste thousands of rows). Estimate big scrapes first with estimate_scrap; use stop_at when the user wants ~N results.",
"tools": [
{
"description": "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.",
"inputSchema": {
"properties": {
"email_mode": {
"description": "Only for enrichment=emails. Default normal.",
"enum": [
"normal",
"deep"
],
"type": "string"
},
"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": {
"description": "A job with status=done",
"type": "string"
}
},
"required": [
"enrichment",
"source_job_id"
],
"type": "object"
},
"name": "create_enrichment_job",
"outputSchema": null
},
{
"description": "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.\nExample definition:\n{\"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\"}]}",
"inputSchema": {
"properties": {
"definition": {
"description": "{nodes: [{id, type, config}], edges: [{id, from, to}]} — edge keys are \"from\"/\"to\", not source/target",
"properties": {
"edges": {
"items": {
"type": "object"
},
"type": "array"
},
"nodes": {
"items": {
"type": "object"
},
"type": "array"
}
},
"required": [
"nodes"
],
"type": "object"
},
"name": {
"maxLength": 100,
"type": "string"
}
},
"required": [
"definition"
],
"type": "object"
},
"name": "create_pipeline",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"country": {
"description": "ISO3, default FRA",
"type": "string"
},
"extra_columns": {
"items": {
"enum": [
"gps",
"departement",
"region"
],
"type": "string"
},
"type": "array"
},
"max_per_phone": {
"minimum": 0,
"type": "integer"
},
"queries": {
"items": {
"type": "string"
},
"maxItems": 20,
"minItems": 1,
"type": "array"
},
"scrap_mode": {
"enum": [
"fast",
"normal",
"ultra"
],
"type": "string"
},
"stop_at": {
"minimum": 1,
"type": "integer"
},
"zones": {
"items": {
"type": "string"
},
"maxItems": 50,
"minItems": 1,
"type": "array"
}
},
"required": [
"queries",
"zones"
],
"type": "object"
},
"name": "create_scrap_job",
"outputSchema": null
},
{
"description": "Turn a finished job or pipeline into recurring monitoring: outsend re-runs it every N days and computes the diff (new / removed / modified places).",
"inputSchema": {
"properties": {
"frequency_days": {
"maximum": 90,
"minimum": 1,
"type": "integer"
},
"name": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"source_job_id": {
"type": "string"
},
"source_pipeline_id": {
"type": "string"
}
},
"required": [
"name",
"frequency_days"
],
"type": "object"
},
"name": "create_veille",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"country": {
"description": "ISO3 country code, default FRA",
"type": "string"
},
"queries": {
"description": "Business types, e.g. ['plombier', 'electricien']",
"items": {
"type": "string"
},
"maxItems": 20,
"minItems": 1,
"type": "array"
},
"scrap_mode": {
"enum": [
"fast",
"normal",
"ultra"
],
"type": "string"
},
"stop_at": {
"description": "Stop after N unique places (recommended when the user gives a number)",
"minimum": 1,
"type": "integer"
},
"zones": {
"description": "Cities, departments, regions or 'France'",
"items": {
"type": "string"
},
"maxItems": 50,
"minItems": 1,
"type": "array"
}
},
"required": [
"queries",
"zones"
],
"type": "object"
},
"name": "estimate_scrap",
"outputSchema": null
},
{
"description": "Account event feed (job.completed, pipeline.completed, veille.run_completed…). Cursor-based: pass back last_id as since_id.",
"inputSchema": {
"properties": {
"limit": {
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"since_id": {
"minimum": 0,
"type": "integer"
},
"types": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"name": "get_events",
"outputSchema": null
},
{
"description": "Status, counters and download URL of a job.",
"inputSchema": {
"properties": {
"job_id": {
"type": "string"
}
},
"required": [
"job_id"
],
"type": "object"
},
"name": "get_job",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"job_id": {
"type": "string"
},
"limit": {
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"offset": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"job_id"
],
"type": "object"
},
"name": "get_job_results",
"outputSchema": null
},
{
"description": "Machine contract for building pipelines: valid block types, per-block config schema, and chaining rules. Use before create_pipeline.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "get_pipeline_schema",
"outputSchema": null
},
{
"description": "The account's recent jobs, newest first.",
"inputSchema": {
"properties": {
"limit": {
"maximum": 50,
"minimum": 1,
"type": "integer"
}
},
"type": "object"
},
"name": "list_jobs",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "list_modules",
"outputSchema": null
},
{
"description": "The account's pipelines with status.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "list_pipelines",
"outputSchema": null
},
{
"description": "The account's recurring monitors.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "list_veilles",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:a4f361b5b224eae27b4a5a105880c7108ef0389b871ce45c6cd46b36d9f166af | sha256sum