Skip to main content
Glama
ArtificiallyLTD

Business Data MCP Server

README.md
# Business Data MCP Server

Gov contracts, jobs, LinkedIn and company data as tools for AI agents. Hosted on Apify: [apify.com/artificially/business-data-mcp](https://apify.com/artificially/business-data-mcp)

One **MCP server** that gives Claude, ChatGPT, Cursor and any other AI agent **13 business data tools**: US federal contract opportunities and awards, EU public tenders, jobs from Google Jobs, LinkedIn and company career sites, LinkedIn company and person profiles, Y Combinator startups, company contact details, website tech stacks, PDF text extraction and Google Trends.

Each tool runs one of our dedicated [Artificially](https://apify.com/artificially) Actors on your Apify account and returns compact JSON sized for an agent's context window.

**Built by [Artificially](https://apify.com/artificially)** | Follow us on [X @artificially_io](https://x.com/artificially_io)

## Why this MCP server

- **One connection, 13 tools** – no need to add each Actor separately. The agent sees clear tool names, short descriptions and small, typed inputs.
- **Agent-friendly output** – every tool asks the underlying Actor for its compact output, keeps result counts small by default and caps the response size, so answers fit in the context window.
- **Handles slow runs** – long runs report progress; if a run is still going when the wait limit is reached, the tool returns what is ready plus a `runId`, and the agent calls `get_run_results` later.
- **Clear errors** – failed runs, missing credit, blocked domains and unreadable documents come back as short messages the agent can act on.
- **You only pay for results** – no extra fee for the MCP layer (see Pricing).

## Tools

| Tool | What it does | Backed by |
| --- | --- | --- |
| `search_gov_contract_opportunities` | Open US federal solicitations, RFPs and sources sought on SAM.gov by keyword, NAICS, agency, set-aside and date | [SAM.gov Opportunities Scraper](https://apify.com/artificially/samgov-opportunities-scraper) |
| `search_awarded_federal_contracts` | Awarded US federal contracts (winners, amounts, agencies) from USAspending.gov | [US Federal Contracts Scraper](https://apify.com/artificially/us-contracts-scraper) |
| `search_eu_tenders` | EU/EEA public tenders and contract awards from TED by keyword, country, CPV and notice type | [EU Tenders Scraper](https://apify.com/artificially/eu-tenders-scraper) |
| `search_company_career_jobs` | Open roles from company career sites (Greenhouse, Lever, Ashby, Workable and more) | [Career Site Jobs Scraper](https://apify.com/artificially/career-site-jobs-scraper) |
| `search_google_jobs` | Google Jobs search results aggregated from job boards and company sites | [Google Jobs Scraper](https://apify.com/artificially/google-jobs-scraper) |
| `search_linkedin_jobs` | Public LinkedIn job postings by keywords, location, date, workplace type and seniority | [LinkedIn Jobs Scraper](https://apify.com/artificially/linkedin-jobs-scraper) |
| `get_linkedin_company` | LinkedIn company pages: website, industry, size, employees, followers, HQ, funding | [LinkedIn Company Scraper](https://apify.com/artificially/linkedin-company-scraper) |
| `get_linkedin_profiles` | Public LinkedIn person profiles: headline, current company, experience, education | [LinkedIn Profile Scraper](https://apify.com/artificially/linkedin-profile-scraper) |
| `find_yc_companies` | Y Combinator startups by keyword, batch, industry, status and hiring, optionally with founders | [Y Combinator Scraper](https://apify.com/artificially/ycombinator-scraper) |
| `get_company_contacts` | Emails, phone numbers, social profiles and contact pages from company websites | [Company Contact Extractor](https://apify.com/artificially/company-contact-extractor) |
| `detect_website_tech_stack` | Technologies a website uses: CMS, ecommerce, analytics, CDN, email provider, frameworks | [Website Tech Stack Detector](https://apify.com/artificially/website-tech-stack-detector) |
| `extract_pdf_text` | Clean text or Markdown from public PDF and Word (.docx) URLs, with optional OCR | [PDF Text Extractor](https://apify.com/artificially/pdf-text-extractor) |
| `google_trends` | Google Trends interest over time, regions and related queries, or what is trending now | [Google Trends Scraper](https://apify.com/artificially/google-trends-scraper) |
| `get_run_results` | Fetch or page through results of a run started by any tool above | – |

## Setup

You need an [Apify account](https://console.apify.com/sign-up) and your [Apify API token](https://console.apify.com/settings/integrations). The server uses the Streamable HTTP transport at this endpoint:

```
https://artificially--business-data-mcp.apify.actor/mcp
```

Send your token as `Authorization: Bearer <YOUR_APIFY_TOKEN>`. The exact URL is also shown on the Actor's **Endpoints** tab in Apify Console.

### Claude Code

```bash
claude mcp add --transport http business-data \
  https://artificially--business-data-mcp.apify.actor/mcp \
  --header "Authorization: Bearer <YOUR_APIFY_TOKEN>"
```

### Cursor, VS Code, Windsurf and other MCP clients

```json
{
  "mcpServers": {
    "business-data": {
      "url": "https://artificially--business-data-mcp.apify.actor/mcp",
      "headers": { "Authorization": "Bearer <YOUR_APIFY_TOKEN>" }
    }
  }
}
```

### Claude (claude.ai and Claude Desktop) via Apify's MCP server

Claude's custom connectors sign in with OAuth, so connect through [Apify's hosted MCP server](https://mcp.apify.com), which loads this server's tools for you:

Settings → Connectors → Add custom connector, and paste:

```
https://mcp.apify.com?tools=artificially/business-data-mcp
```

The same URL works in any client that supports remote MCP servers with OAuth. Tools then appear with an `artificially--business-data-mcp--` prefix.

### Clients without remote HTTP support

Use the `mcp-remote` bridge:

```json
{
  "mcpServers": {
    "business-data": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote",
        "https://artificially--business-data-mcp.apify.actor/mcp",
        "--header", "Authorization: Bearer <YOUR_APIFY_TOKEN>"
      ]
    }
  }
}
```

## Example prompts

- "Find open SAM.gov cybersecurity solicitations for NAICS 541512 set aside for small businesses, due in the next 30 days."
- "Who won the largest Department of Veterans Affairs cloud contracts since 2024, and for how much?"
- "List open German public tenders for software development with deadlines at least two weeks away."
- "Which engineering roles are Stripe, Notion and Airbnb hiring for in London right now?"
- "Search Google Jobs and LinkedIn for remote senior data engineer jobs posted this week."
- "Get the LinkedIn company pages of OpenAI and Anthropic and compare headcount and followers."
- "List YC W25 fintech startups that are hiring, with their founders."
- "Find the contact emails and LinkedIn pages for these 10 domains, then tell me which of them run Shopify."
- "Read this RFP PDF and summarize the evaluation criteria and deadlines."
- "Compare Google Trends interest for 'claude' and 'chatgpt' in the US over the last 12 months."

## Pricing

**You pay each underlying Actor's per-result price, and nothing extra for the MCP layer.**

- Every tool call starts one run of the matching Artificially Actor on your Apify account, billed under that Actor's own pay-per-event pricing (for example, per company, per job or per document). Check each Actor's Store page (linked in the Tools table) for current prices.
- Tools use small default limits (usually 10-20 results) and pass them to the Actor, so a typical call costs cents.
- The MCP server itself runs in Apify Standby mode with 256 MB of memory. Its small platform usage while connected is billed to your account like any Actor run; it stops automatically when idle.
- Apify's free plan includes monthly credit that covers plenty of tool calls to try it out.

## How it works

1. Your MCP client calls a tool, for example `find_yc_companies` with `{"batches": ["W24"], "limit": 5}`.
2. The server starts `artificially/ycombinator-scraper` with `compactOutput: true` and `maxResults: 5`, using your own Apify token, so the run appears in your Apify Console.
3. It waits for the run (up to 2-3 minutes depending on the tool, with progress notifications), then returns the dataset items as compact JSON:

```json
{
  "actor": "artificially/ycombinator-scraper",
  "runId": "jGdWwQx1J5blfxiom",
  "status": "SUCCEEDED",
  "itemCount": 5,
  "statusMessage": "Saved 5 Y Combinator companies (248 match in the directory). Reached maxResults.",
  "items": [
    { "name": "Indemni", "website": "http://www.indemni.com", "oneLiner": "Cargo Theft and Fraud Prevention Platform", "batch": "Winter 2024", "status": "Active", "teamSize": 7, "isHiring": false }
  ]
}
```

If the run is not finished in time, the response contains the items saved so far, a `note` and the `runId`; the agent calls `get_run_results` to get the rest. Responses are capped at about 40,000 characters, with the remainder available through `get_run_results` and `offset`.

## FAQ

**Do I need to start the Actor manually?** No. It runs in Standby mode: the first request starts it automatically and it shuts down after a period of inactivity. Starting it from the Console's Start button does nothing useful.

**Can I use my own Actor inputs?** Each tool exposes the most useful inputs. For full control, run the underlying Actor directly or add it to [Apify's MCP server](https://mcp.apify.com) by name.

**Is LinkedIn data scraped while logged in?** No. Only public pages visible to logged-out visitors are read.

**Where do I report issues or request tools?** Open an issue on the Actor's **Issues** tab.