Oppora AI | AI Outbound Sales Agent for Automated Outreach
Automate outreach with Oppora's Outbound AI sales agent. Build end-to-end workflows like n8n to find leads, send emails, auto-reply, and book meetings hands free.
https://oppora.ai/Connect straight to this server’s public endpoint.
https://api.oppora.ai/mcpWe add this server to your workspace, walk through sign-in once, then open Studio with tools ready to run.
Last probed Sep 14, 2026 · api.oppora.ai
51tools discovered
Showing 25 of 51 from the live probe.
Discover Companies
Search Oppora's global company database to find companies matching industry, size, location, revenue, funding, growth, etc. Costs 5 data credits per non-empty call. USE WHEN: User wants to find companies by industry, location, size, funding stage, revenue bracket, or growth signals. IMPORTANT RULES (will fail or return zero results if wrong values): • industry: MUST call get_available_industries first for exact names (~435 values). Misspelt names match nothing. • hq_country: MUST call get_
List My Saved Companies
Companies the user has already saved into their lists in Oppora. Free. USE WHEN: User asks 'show my companies' / 'what's in list X' / 'find a company I saved' / wants to operate on previously-saved companies rather than discover new ones. IMPORTANT RULES (same value formats as discover_companies): • industry: EXACT names from get_available_industries • size: ONLY '2-10','11-50','51-200','201-500','501-1000','1001-5000','5001-10000','10001+' • list_id: if set, scope to one list. Get list
My Lists
Show all the user's lists in Oppora — total list count, each list's name, how many companies are saved, how many leads are saved, and a direct URL to open it. Free. USE WHEN: User asks ANY of these: • 'show my lists' / 'my lists' / 'how many lists do I have' • 'what lists exist' / 'list my account' / 'show my workspace' • 'what are my lists' / 'give me my lists' / 'list all lists' ALSO call this before any tool that needs a list_id — it is the ONLY way to discover valid list IDs. Never gu
Create List
Create a new list in Oppora, or return the existing one if a list with that exact name already exists for this user in this org. Idempotent on name (case-insensitive, per-user-per-org). USE WHEN: User wants a new list to save companies/leads into. ALWAYS use the returned `id` as `list_id` for follow-up tool calls — never guess the id from the name. Args: • name str — required, the list display name Returns TOON: { id, name, is_existing, message, list_url }
Create Companies Bulk
Bulk-upsert companies into Oppora's DB and optionally add them to a list in one step. Free — credits are charged at discovery/enrichment time, not on save. Same dedup as the manual UI: matches existing rows by name / linkedin / website / domain (case-insensitive); creates only the missing ones. USE WHEN: You have company data from somewhere other than `discover_companies` — web scrapes, news search, user-pasted lists, spreadsheet imports. For Oppora-DB searches, use `discover_companies` instead
Add Companies to List
Add one or more EXISTING Oppora companies into one of the user's lists. Costs 1 data credit per company added. Already-in-list companies are skipped WITHOUT charge. USE WHEN: You already have Oppora company IDs (from `discover_companies`, `create_companies_bulk`, or `list_my_saved_companies`) and want to add them to a specific list. IMPORTANT RULES: • list_id: REQUIRED. Get from `my_lists`. • company_ids: list of Oppora company IDs (integers) — the `id` field returned by `discover_companie
Remove Companies from List
Bulk-remove companies from one of the user's lists. Free. USE WHEN: User wants to unsave companies. Does NOT delete the Company records — only removes the list membership. IMPORTANT RULES: • list_id: REQUIRED. Get from `my_lists`. • company_ids: Oppora company IDs — get them from list_my_saved_companies. Args: • list_id int — required, from my_lists • company_ids list[int] — required, Oppora company IDs Returns TOON: { list_id, removed, removed_company_ids, not_in_list_company_ids, l
Get Available Industries
Return all valid industry names (~435) accepted by the `industry` and `exclude_industries` filters on discover_companies and list_my_saved_companies. Free. USE WHEN: ALWAYS call this BEFORE using the `industry` filter — exact spelling is required; mis-spelt industry names match zero results. Returns TOON: { industries[N]: [...], count }
Get Available Countries
Return all valid countries with their ISO 3-alpha codes. Free. USE WHEN: ALWAYS call this BEFORE using the `hq_country` filter on discover_companies. IMPORTANT: Pass the `iso_alpha3` field (NOT the `name`) to discover_companies.hq_country. Example: for 'United States', pass 'USA' — not the string 'United States'. Returns TOON: { countries[N]{name,iso_alpha3}, count }
Get Available Company Types
Return all valid company types accepted by the `company_type` filter on discover_companies. Free. USE WHEN: ALWAYS call this BEFORE using the `company_type` filter. Common values include 'Privately Held', 'Public Company', 'Nonprofit', 'Partnership', 'Self-Employed', 'Sole Proprietorship'. Returns TOON: { company_types[N]: [...], count }
Get Available Last Funding Round Types
Return all valid funding round types accepted by the `last_funding_round_type` filter on discover_companies. Free. USE WHEN: ALWAYS call this BEFORE using the `last_funding_round_type` filter. Values are lowercase + underscore — e.g. 'seed', 'series_a', 'series_b', 'pre_seed', 'angel'. Returns TOON: { last_funding_round_types[N]: [...], count }
Search Locations
Autocomplete cities / regions for the `location` filter on discover_companies. Free. USE WHEN: User mentions a location and you need its canonical name. Returns up to 20 matches. Use the `value` field from a returned match as the `location` filter argument. IMPORTANT: `location` is city/state, NOT country. For country filtering, use `hq_country` (ISO 3-alpha, see get_available_countries). Args: • query str — required, partial city/region name ('san fran', 'london') Returns TOON: { query, l
Discover People
Search Oppora's global people database to find professionals by job title, company, location, skills, department, seniority, intent signals, and exclusions. Costs 10 data credits per non-empty call. Mirrors discover_companies but for people. USE WHEN: User wants to find decision-makers, executives, or any people with specific titles/skills at specific companies or in specific industries. IMPORTANT RULES (will fail or return zero results if wrong values): • departments: MUST call get_availabl
List My Saved Leads
Leads the user has saved into their lists. Free. USE WHEN: User asks 'show my leads' / 'who's in list X' / wants to operate on saved leads. The returned `lead_id` is safe to pass to add_leads_to_list / remove_leads_from_list. IMPORTANT: `list_id` (when provided) MUST come from `my_lists`. Args: • list_id int | None — scope to one list (omit for all lists) • status str | None — filter by lead status (e.g. 'Contacted', 'Replied', 'Interested', 'Unsubscribed') • page int — 1-indexed (defau
Create Leads Bulk
Bulk-upsert leads into Oppora's DB and optionally add them to a list in one step. Free — credits are charged at discovery/enrichment time, not on save. Dedup priority: email → linkedin → first_name+last_name+company. Companies referenced by `company_name` are auto-created if missing. USE WHEN: You have lead data from somewhere other than `discover_people` — web scrapes, news search, user-pasted contact lists, email-resolved leads. For Oppora-DB searches, use `discover_people` (it already auto-s
Add Leads to List
Add one or more EXISTING Oppora leads into one of the user's lists. Costs 1 data credit per lead added. Already-in-list leads are skipped WITHOUT charge. If credits exhaust mid-batch, partial success is reported. USE WHEN: You already have Oppora lead IDs (from `discover_people`, `create_leads_bulk`, or `list_my_saved_leads`) and want to add them to a specific list. IMPORTANT RULES: • list_id: REQUIRED. Get from `my_lists`. • lead_ids: Oppora lead IDs (integers). The `id` field on rows ret
Remove Leads from List
Bulk-remove leads from one of the user's lists. Free. Does NOT delete the Lead records — only removes list membership (and the per-list ListLeadContact override row). IMPORTANT: `list_id` from `my_lists`; `lead_ids` from `list_my_saved_leads`. Args: • list_id int — required • lead_ids list[int] — required Returns TOON: { list_id, removed, removed_lead_ids, not_in_list_lead_ids, list_url }
Get Available Departments
Return all valid department names accepted by discover_people's `departments` filter. Free. USE WHEN: ALWAYS call this BEFORE using the `departments` filter on discover_people. Exact spelling required. Returns TOON: { departments[N]: [...], count }
Get Available Management Levels
Return all valid management-level names accepted by discover_people's `management_levels` filter. Free. USE WHEN: ALWAYS call this BEFORE using the `management_levels` filter. Common values include 'C-Level', 'VP', 'Director', 'Manager', 'Senior', 'Entry'. Returns TOON: { management_levels[N]: [...], count }
Email Search
Find a single email address for a person. Costs 1 contact credit ONLY on success (status='valid' or 'risky' AND email returned). Free if no email is found. USE WHEN: You know a person's name AND their company's website domain — and you need their email. IMPORTANT RULES: • You MUST provide a name (first_name+last_name OR full_name). • You MUST provide the company domain (e.g. 'stripe.com'). • Free-text company names and LinkedIn URLs are NOT accepted — they lead to wrong-company matches.
Email Verifier
Verify the deliverability of a single email address. Two modes: • 'standard' — fast SMTP/syntax check. Costs 1 `max_email_verify_per_month` credit on success. • 'advanced' — deep SMTP verification (handles catch-all, risky domains). Costs 1 `max_risky_Verification_per_month` credit on success. Use after standard returns 'unknown' or 'risky'. USE WHEN: You have an email and need to know if it'll bounce before you send to it. Credit is charged only when a status is returned. Args: • email
Phone Search
Find a single phone number for a person. • DB cache hits are FREE (credit_charged=0, source='oppora_db'). We already paid when the phone was first resolved. • External provider hits charge 1 phone credit on success (phone returned with status='valid'). Free if no phone is found. USE WHEN: You need a person's phone and have their LinkedIn (or their name + company/domain as a fallback). IMPORTANT RULES: • linkedin_url is the most accurate signal — prefer it. • If no linkedin_url, you MU
List Campaigns
List the user's email campaigns with key stats (sent/opened/clicked/replied/bounced/unsubscribed) and open + reply rate. Free. USE WHEN: User asks 'what campaigns do I have' / 'show my campaigns' / 'how is campaign X doing' (use without status filter to see everything). Args: • status str | None — filter: 'draft', 'active', 'paused', or 'completed' • search str | None — fuzzy match on campaign name • page int — 1-indexed (default 1) • limit int — 1-100 (default 25) Returns TOON: { tot
Get Campaign
Get full details for a single campaign — full configuration plus a stats snapshot. Free. USE WHEN: User asks about a specific campaign by name or ID, or you need to see its templates / schedule / lists / accounts before suggesting changes. IMPORTANT: pass campaign_id OR campaign_name (one is required). Use list_campaigns first if you don't know the ID. Args: • campaign_id int | None • campaign_name str | None — case-insensitive exact match Returns TOON with full campaign config + nested
Get Campaign Report
Detailed funnel report for one campaign: sent → opened → clicked → replied, plus bounce/rejected/unsubscribe counts and rates. Optional date range. Free. USE WHEN: User asks 'how is campaign X performing' / 'show me the numbers for last week' / 'what's the reply rate'. Args: • campaign_id int — required • start_date str | None — 'YYYY-MM-DD' inclusive • end_date str | None — 'YYYY-MM-DD' inclusive Returns TOON: { campaign_id, campaign_name, status, range{start,end}, funnel{sent,opened,c
Get your MCP into directories
A working endpoint is step one. Directory coverage is the coordinated launch across ChatGPT, Claude, Cursor, the MCP Registry, and community indexes.
Directory coverage for brandsAutomate outreach with Oppora's Outbound AI sales agent. Build end-to-end workflows like n8n to find leads, send emails, auto-reply, and book meetings hands free.
Use the MCP endpoint listed on this page in your MCP client configuration. One-click install pills support Claude, Cursor, VS Code, and other hosts. Copy the remote MCP URL if your client needs a manual entry.
Operate Oppora AI | AI Outbound Sales Agent for Automated Outreach? Verify ownership to take over this directory entry.
This server appears in the MCPBundles directory. Verify you operate it to take over the listing — name, description, logo, contact email, and skill content. We email a 6-digit code to a maintainer address your server publishes in /.well-known/security.txt or /.well-known/mcpbundles.json. Free, takes about a minute.
MCPBundles probed 51 tools on the live server. The tool list on this page reflects what was discovered at the last refresh — connect your client to see the full set available to your session.
Oppora AI | AI Outbound Sales Agent for Automated Outreach may require signing in to the provider before tools can run. Connect through MCPBundles or your MCP client and complete any provider login when prompted.
MCPBundles is an independent platform built on the open Model Context Protocol standard. Not affiliated with Anthropic PBC or Claude.