Corporate Deep Research MCP
**Corporate deep research for AI agents** — this MCP server gives Claude, GPT-4, and any MCP-compatible AI client instant access to 7 live corporate intelligence sources: SEC filings, stock market data, legal entity identifiers, customer reviews, consumer complaints, web research, and encyclopedic context. One tool call returns financial health scores, governance grades, reputation risk levels, and investment risk classifications across all dimensions simultaneously.
Maintenance Pulse
90/100Cost Estimate
How many results do you need?
Pricing
Pay Per Event model. You only pay for what you use.
| Event | Description | Price |
|---|---|---|
| tool-call | Per MCP tool invocation | $0.10 |
Example: 100 events = $10.00 · 1,000 events = $100.00
Connect to your AI agent
Add this MCP server to Claude Desktop, Cursor, Windsurf, or any MCP-compatible client.
https://ryanclinton--corporate-deep-research-mcp.apify.actor/mcp{
"mcpServers": {
"corporate-deep-research-mcp": {
"url": "https://ryanclinton--corporate-deep-research-mcp.apify.actor/mcp"
}
}
}Documentation
Corporate deep research for AI agents — this MCP server gives Claude, GPT-4, and any MCP-compatible AI client instant access to 7 live corporate intelligence sources: SEC filings, stock market data, legal entity identifiers, customer reviews, consumer complaints, web research, and encyclopedic context. One tool call returns financial health scores, governance grades, reputation risk levels, and investment risk classifications across all dimensions simultaneously.
Manual corporate due diligence takes a financial analyst 6-12 hours per company: pulling EDGAR filings, checking GLEIF LEI status, reading Trustpilot reviews, scanning CFPB complaint volumes, cross-referencing stock data. This server automates the entire intelligence-gathering and scoring pipeline. Your AI agent calls a single MCP tool, and the server fans out to 7 data sources in parallel, builds a corporate graph network, and returns structured analysis with actionable recommendations — in under 3 minutes.
⬇️ What corporate intelligence data can you access?
| Data Point | Source | Coverage |
|---|---|---|
| 📊 Business overview, competitors, market position | Company Deep Research | Web-wide intelligence |
| 📋 10-K, 10-Q, 8-K, proxy statements | EDGAR Filing Search | Full SEC database |
| 📈 Stock price, market cap, financial metrics | Finnhub Stock Data | Global equities |
| 🏢 Legal entity verification, parent/child hierarchy | GLEIF LEI Lookup | Global LEI registry |
| ⭐ TrustScore, review volume, rating trends | Trustpilot Review Analyzer | Trustpilot listings |
| ⚠️ Complaint volume, product categories, resolution status | CFPB Consumer Complaints | US financial complaints |
| 📖 Company history, controversies, notable events | Wikipedia Article Search | 6M+ articles |
| 🔗 Cross-source identity graph with edge weights | Corporate Network Builder | All 7 sources unified |
MCP Tools
| Tool | Price | Default Sources | Description |
|---|---|---|---|
map_corporate_intelligence | $0.04 | research, filings, stock, lei | Build a corporate graph network — nodes for companies, filings, stocks, and entities, edges showing relationships and connection weights |
assess_financial_health | $0.04 | research, filings, stock, lei | Score financial health (strong / stable / caution / distressed) from stock price signals, filing activity, and market cap logarithm |
detect_reputation_risk | $0.04 | research, reviews, complaints | Detect reputation risk (low / medium / high / critical) from Trustpilot review trends and CFPB complaint volume and category |
analyze_filing_patterns | $0.04 | filings, research | Analyze SEC filing frequency, form types, and anomaly score using standard deviation of inter-filing gaps |
score_corporate_governance | $0.04 | filings, lei, wikipedia | Grade governance quality A–F from disclosure completeness, 10-K/10-Q compliance, LEI status, and transparency indicators |
trace_corporate_identity | $0.04 | research, lei, stock, wikipedia | Cross-reference corporate identity across LEI, Wikipedia, and stock registries with alias detection and cross-ref score |
assess_investment_risk | $0.04 | research, filings, stock, lei, reviews, complaints | Multi-factor composite risk score (0–1) combining financial risk 30%, reputation risk 25%, governance risk 25%, market risk 20% |
generate_deep_research_report | $0.04 | all 7 sources | Full corporate intelligence report: key findings sorted by severity, overall risk level, and prioritized recommendations |
Why use Corporate Deep Research MCP for due diligence?
A mid-market M&A team spending 10 hours manually researching an acquisition target — EDGAR filings in one tab, Trustpilot in another, calling GLEIF's API separately — will miss the pattern: a spike in 8-K disclosures coinciding with rising CFPB complaints is a material risk signal. Manual research produces siloed data. This server produces a unified graph where the relationships between data points are as important as the data itself.
This MCP server is designed for AI workflows where the agent needs to reason over corporate intelligence, not just retrieve individual data points.
- Scheduling — attach to an Apify schedule to monitor portfolio companies weekly and alert when risk levels change
- API access — trigger from Python, JavaScript, n8n, or any HTTP client with a single POST request
- 5-minute TTL cache — repeated queries within 5 minutes return cached results, keeping costs predictable during iterative agent workflows
- Spending limits — set a maximum spend per Apify run; the server returns a structured error when the limit is reached so your agent can handle it gracefully
- Dual transport — supports both SSE (
/sse) and Streamable HTTP (/mcp) transports for maximum client compatibility - Parallel source fetching — all 7 data sources are fetched concurrently via
Promise.all, minimizing latency per tool call
Features
- 7-source corporate intelligence graph — research, EDGAR filings, Finnhub stock, GLEIF LEI, Trustpilot, CFPB, and Wikipedia are ingested simultaneously and linked into a unified
CorpNetworkwith typed nodes and weighted edges - Typed edge relationships — the network uses 6 edge types:
filed_by(0.8),trades_as(0.9),identified_by(0.7),reviewed_on(0.6),complained_about(0.7),described_in(0.5), allowing the agent to traverse corporate relationships - Financial health scoring formula —
healthScore = priceSignal × 0.3 + filingActivity × 0.3 + log10(marketCap)/12 × 0.4, producing a 0–1 score mapped to four health levels - Composite investment risk formula —
compositeRisk = financialRisk × 0.3 + reputationRisk × 0.25 + governanceRisk × 0.25 + marketRisk × 0.2, five risk levels from low to critical - Reputation risk triangulation — combines Trustpilot review score inversion (1 − avgRating), CFPB complaint volume (capped at 1.0 with 0.2/complaint), and a blended sentiment score
- Governance grading A–F — evaluates 10-K presence (+0.4), 10-Q presence (+0.3), filing type diversity (+0.1/type, max 0.3), LEI registration (+0.2), and Wikipedia presence (+0.1)
- Filing anomaly detection — calculates standard deviation of inter-filing gaps, then normalizes by mean gap to produce an anomaly score from 0 to 1 (>0.5 = anomalous)
- Corporate identity tracing — cross-references a company name across LEI, Wikipedia, and stock symbol to build an alias list and a cross-ref confidence score (max 1.0: LEI 0.4, Wikipedia 0.3, stock 0.3)
- Findings engine —
generate_deep_research_reportapplies 4 detection rules: complaint volume thresholds, filing gaps, missing LEI records, and low-rated review clusters, with severity-sorted output - Per-source selectability — each tool accepts a
sourcesarray so you can run lightweight queries (e.g.,["filings"]only) to control cost and latency - Up to 500 items per source — the actor client fetches up to 500 dataset items per upstream actor call, with source-specific slice limits (40 research, 60 filings, 40 stocks, 30 LEI, 40 reviews, 40 complaints, 20 wiki)
- 180-second upstream timeout — each sub-actor call runs with a 180-second wait; errors are caught gracefully and return empty arrays rather than failing the tool call
Use cases for corporate deep research
Investment due diligence
Portfolio managers and buy-side analysts use generate_deep_research_report as a first-pass screen before commissioning full analyst reports. The tool returns severity-ranked findings — consumer complaint spikes, filing gaps, LEI non-compliance — in under 3 minutes. Teams screening 20 companies per week save an estimated 40+ analyst-hours monthly.
M&A target assessment
Corporate development teams running acquisition pipelines use assess_financial_health and detect_reputation_risk in tandem to eliminate poor targets early. analyze_filing_patterns surfaces anomalous disclosure behavior that often precedes material events — a pattern a human analyst might miss when reviewing filings individually.
Vendor and counterparty screening
Procurement and compliance teams use score_corporate_governance and trace_corporate_identity for vendor onboarding. A governance grade below C, or a cross-ref score below 0.7, flags a counterparty for enhanced manual review. Integration with CRM systems via webhook keeps records current.
Portfolio risk monitoring
Asset managers configure recurring assess_investment_risk checks on portfolio companies using Apify Schedules. The composite risk score (0–1) is a consistent metric for tracking risk level changes over time, and the structured JSON output feeds directly into portfolio dashboards or risk reporting systems.
ESG and governance analysis
ESG analysts use governance grades and CFPB complaint trend data as input to ESG scoring frameworks. Disclosure completeness — measured by regular filing cadence and LEI registration — is a recognized governance indicator. The server provides quantitative signals that supplement qualitative ESG assessments.
AI agent-driven research workflows
AI coding assistants and research agents (Claude, GPT-4, Cursor, Windsurf) use this server as a corporate intelligence backend. The agent calls map_corporate_intelligence to get an entity graph, then chains assess_investment_risk for scoring, then calls generate_deep_research_report for the final output — a multi-step reasoning workflow that would require dozens of manual API calls without this server.
How to connect the Corporate Deep Research MCP server
Claude Desktop
Add this to your Claude Desktop claude_desktop_config.json:
{
"mcpServers": {
"corporate-deep-research": {
"url": "https://corporate-deep-research-mcp.apify.actor/mcp",
"headers": {
"Authorization": "Bearer YOUR_APIFY_TOKEN"
}
}
}
}
Cursor / Windsurf / Cline
Add the MCP server URL to your editor's MCP configuration panel. Use the Streamable HTTP endpoint:
https://corporate-deep-research-mcp.apify.actor/mcp
Pass your Apify API token as a Bearer token in the Authorization header.
SSE transport (legacy clients)
For clients that use Server-Sent Events:
https://corporate-deep-research-mcp.apify.actor/sse
Health check
curl https://corporate-deep-research-mcp.apify.actor/health
# Returns: {"ok":true}
Tool parameters
Every tool in this server accepts the same two parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
query | string | Yes | — | Company name, ticker symbol, or corporate entity to research (e.g., "Tesla", "TSLA", "Berkshire Hathaway") |
sources | array of enum | No | Tool-specific | Which data sources to query. Options: research, filings, stock, lei, reviews, complaints, wikipedia |
Source defaults by tool
| Tool | Default sources | Minimum recommended |
|---|---|---|
map_corporate_intelligence | research, filings, stock, lei | 2 sources |
assess_financial_health | research, filings, stock, lei | stock or filings |
detect_reputation_risk | research, reviews, complaints | reviews or complaints |
analyze_filing_patterns | filings, research | filings |
score_corporate_governance | filings, lei, wikipedia | filings |
trace_corporate_identity | research, lei, stock, wikipedia | lei or wikipedia |
assess_investment_risk | research, filings, stock, lei, reviews, complaints | 3+ sources |
generate_deep_research_report | all 7 sources | 4+ sources |
Call examples
Quick financial health check (2 sources, lowest cost):
{
"query": "Palantir Technologies",
"sources": ["stock", "filings"]
}
Full investment risk assessment (6 sources):
{
"query": "SolarWinds Corporation",
"sources": ["research", "filings", "stock", "lei", "reviews", "complaints"]
}
Reputation-only scan for a financial institution:
{
"query": "Wells Fargo",
"sources": ["reviews", "complaints"]
}
⬆️ Output examples
assess_financial_health output
{
"assessments": [
{
"company": "Meridian Capital Group",
"priceSignal": 0.3124,
"filingActivity": 0.45,
"marketCap": 0.7213,
"healthScore": 0.5521,
"healthLevel": "stable"
},
{
"company": "Apex Industrial Holdings",
"priceSignal": 0.1840,
"filingActivity": 0.15,
"marketCap": 0.2941,
"healthScore": 0.2167,
"healthLevel": "distressed"
}
],
"avgHealth": 0.3844,
"distressedCount": 1
}
assess_investment_risk output
{
"risks": [
{
"company": "NovaBridge Financial",
"financialRisk": 0.4,
"reputationRisk": 0.625,
"governanceRisk": 0.28,
"marketRisk": 0.3,
"compositeRisk": 0.4213,
"riskLevel": "medium"
}
],
"avgComposite": 0.4213,
"criticalCount": 0
}
generate_deep_research_report output
{
"findings": [
{
"category": "Consumer Complaints",
"finding": "23 consumer complaint(s) found across researched entities",
"severity": "critical",
"evidence": "NovaBridge: Mortgage, NovaBridge: Credit card, NovaBridge: Debt collection",
"recommendation": "Review complaint categories and implement customer experience improvements"
},
{
"category": "Reputation Concerns",
"finding": "7 low-rated review(s) indicating reputation risk",
"severity": "high",
"evidence": "NovaBridge Financial, NovaBri",
"recommendation": "Deep-dive into review themes and implement reputation management"
},
{
"category": "Identity Verification",
"finding": "3 company(ies) without LEI identification",
"severity": "medium",
"evidence": "NovaBridge, Apex Holdings, Meridian",
"recommendation": "Cross-reference with GLEIF database for legal entity verification"
}
],
"overallRisk": "critical",
"companiesResearched": 4,
"recommendations": [
"Implement complaint monitoring and resolution tracking",
"Verify SEC filing compliance for all entities",
"Review filing frequency for anomalous patterns"
]
}
score_corporate_governance output
{
"scores": [
{
"company": "Meridian Capital Group",
"disclosureScore": 0.74,
"filingCompliance": 0.8,
"transparencyIndex": 0.77,
"governanceGrade": "B"
},
{
"company": "NovaBridge Financial",
"disclosureScore": 0.3,
"filingCompliance": 0.0,
"transparencyIndex": 0.15,
"governanceGrade": "F"
}
],
"avgTransparency": 0.46,
"topGradeCount": 1
}
Output fields
Financial health (assess_financial_health)
| Field | Type | Description |
|---|---|---|
assessments[].company | string | Company name (max 50 chars) |
assessments[].priceSignal | number | Stock price normalized to 0–1 (price / 500, capped at 1) |
assessments[].filingActivity | number | Filing activity score: filingCount × 0.15, capped at 1 |
assessments[].marketCap | number | Market cap signal: log10(marketCap) / 12, capped at 1 |
assessments[].healthScore | number | Weighted composite: price × 0.3 + filings × 0.3 + mcap × 0.4 |
assessments[].healthLevel | string | strong (≥0.7) / stable (≥0.5) / caution (≥0.3) / distressed (<0.3) |
avgHealth | number | Mean health score across all assessed companies |
distressedCount | number | Count of companies with healthLevel === "distressed" |
Reputation risk (detect_reputation_risk)
| Field | Type | Description |
|---|---|---|
risks[].company | string | Company name |
risks[].reviewScore | number | Review risk: 1 − avgRating (higher = worse reviews) |
risks[].complaintScore | number | Complaint risk: complaintCount × 0.2, capped at 1 |
risks[].sentimentScore | number | Blended: (reviewScore + complaintScore) / 2 |
risks[].reputationRisk | number | Composite: reviewScore × 0.4 + complaintScore × 0.4 + sentiment × 0.2 |
risks[].riskLevel | string | critical (≥0.75) / high (≥0.5) / medium (≥0.25) / low (<0.25) |
avgRisk | number | Mean reputation risk across all companies |
highRiskCount | number | Count of companies at high or critical risk level |
Filing patterns (analyze_filing_patterns)
| Field | Type | Description |
|---|---|---|
patterns[].company | string | Company name |
patterns[].filingCount | number | Total number of filings found |
patterns[].filingTypes | string[] | Distinct form types found (e.g., ["10-K", "10-Q", "8-K"]) |
patterns[].frequency | number | Estimated filings per year (365 days / mean inter-filing gap) |
patterns[].anomalyScore | number | stdDev(gaps) / mean(gaps), capped at 1 — higher = more irregular |
totalFilings | number | Total filing nodes in the network |
avgFrequency | number | Mean annual filing frequency across companies |
anomalousCount | number | Companies with anomalyScore > 0.5 |
Governance score (score_corporate_governance)
| Field | Type | Description |
|---|---|---|
scores[].company | string | Company name |
scores[].disclosureScore | number | filingCount × 0.12 + LEI bonus 0.2 + Wikipedia bonus 0.1, capped at 1 |
scores[].filingCompliance | number | 10-K presence (0.4) + 10-Q presence (0.3) + type diversity (0.1/type, max 0.3) |
scores[].transparencyIndex | number | disclosureScore × 0.5 + filingCompliance × 0.5 |
scores[].governanceGrade | string | A (≥0.8) / B (≥0.6) / C (≥0.4) / D (≥0.2) / F (<0.2) |
avgTransparency | number | Mean transparency index |
topGradeCount | number | Companies with grade A or B |
Identity trace (trace_corporate_identity)
| Field | Type | Description |
|---|---|---|
traces[].entity | string | Primary company name |
traces[].leiMatch | boolean | Whether a matching LEI entity was found |
traces[].wikiMatch | boolean | Whether a matching Wikipedia article was found |
traces[].crossRefScore | number | LEI (0.4) + Wikipedia (0.3) + stock ticker (0.3) presence score |
traces[].aliases | string[] | Name variants found across sources (max 5) |
totalTraced | number | Total companies traced |
confirmedCount | number | Companies with crossRefScore ≥ 0.7 |
avgCrossRef | number | Mean cross-reference confidence score |
Investment risk (assess_investment_risk)
| Field | Type | Description |
|---|---|---|
risks[].company | string | Company name |
risks[].financialRisk | number | 1 − (filingCount × 0.1), capped at [0,1] |
risks[].reputationRisk | number | complaints × 0.15 + (1 − avgRating) × 0.5, capped at 1 |
risks[].governanceRisk | number | 1 − (LEI 0.4 + Wikipedia 0.2 + filings × 0.08), capped at [0,1] |
risks[].marketRisk | number | 0.3 if stock data found, 0.7 if no stock data |
risks[].compositeRisk | number | financial × 0.3 + reputation × 0.25 + governance × 0.25 + market × 0.2 |
risks[].riskLevel | string | critical (≥0.75) / high (≥0.5) / medium (≥0.25) / low (<0.25) |
avgComposite | number | Mean composite risk |
criticalCount | number | Companies at critical risk level |
Deep research report (generate_deep_research_report)
| Field | Type | Description |
|---|---|---|
findings[].category | string | Finding category: Consumer Complaints, Filing Gaps, Identity Verification, Reputation Concerns |
findings[].finding | string | Plain-text description of what was found |
findings[].severity | string | critical / high / medium / low |
findings[].evidence | string | Sample entities/records supporting the finding |
findings[].recommendation | string | Actionable next step |
overallRisk | string | Derived from most severe finding: critical / high / medium / low |
companiesResearched | number | Count of company nodes in the network |
recommendations | string[] | Deduplicated action items from all findings |
How much does corporate deep research cost?
Each tool call costs $0.04 regardless of which tool you use or how many sources you include. There are no subscription fees or minimum commitments. The Apify Free plan includes $5 of monthly credits — enough for 125 tool calls with no payment required.
| Scenario | Tool calls | Cost per call | Total cost |
|---|---|---|---|
| Single company quick scan | 1 | $0.04 | $0.04 |
| Full 8-tool analysis on one company | 8 | $0.04 | $0.32 |
| Daily monitoring: 10 portfolio companies | 10 | $0.04 | $0.40/day |
| Weekly M&A pipeline screen: 50 companies | 50 | $0.04 | $2.00 |
| Monthly enterprise due diligence: 500 calls | 500 | $0.04 | $20.00 |
You can set a maximum spending limit per Apify run. When the limit is reached, the server returns a structured {"error": true, "message": "Spending limit reached for ..."} response so your agent can handle it gracefully without unexpected charges.
Bloomberg Terminal costs $24,000/year for a single seat. PitchBook Professional starts at $10,000/year. With this server, a team running 500 corporate intelligence calls per month pays $20 — with no subscription commitment and no minimum seat requirements.
How to use Corporate Deep Research MCP via the API
Python
from apify_client import ApifyClient
import json
client = ApifyClient("YOUR_APIFY_TOKEN")
# Start the MCP server as an Apify actor run
run = client.actor("ryanclinton/corporate-deep-research-mcp").call(run_input={
"port": 3050
})
print(f"MCP server running. Connect to: https://corporate-deep-research-mcp.apify.actor/mcp")
print(f"Run ID: {run['id']}")
Direct HTTP tool call (Python)
import requests
response = requests.post(
"https://corporate-deep-research-mcp.apify.actor/mcp",
headers={
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_APIFY_TOKEN"
},
json={
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "assess_investment_risk",
"arguments": {
"query": "Enron Corporation",
"sources": ["research", "filings", "stock", "lei", "reviews", "complaints"]
}
},
"id": 1
}
)
result = response.json()
risk_data = json.loads(result["result"]["content"][0]["text"])
print(f"Composite risk: {risk_data['risks'][0]['compositeRisk']}")
print(f"Risk level: {risk_data['risks'][0]['riskLevel']}")
JavaScript
const response = await fetch("https://corporate-deep-research-mcp.apify.actor/mcp", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_APIFY_TOKEN"
},
body: JSON.stringify({
jsonrpc: "2.0",
method: "tools/call",
params: {
name: "generate_deep_research_report",
arguments: {
query: "Silicon Valley Bank",
sources: ["research", "filings", "stock", "lei", "reviews", "complaints", "wikipedia"]
}
},
id: 1
})
});
const data = await response.json();
const report = JSON.parse(data.result.content[0].text);
console.log(`Overall risk: ${report.overallRisk}`);
console.log(`Companies researched: ${report.companiesResearched}`);
for (const finding of report.findings) {
console.log(`[${finding.severity.toUpperCase()}] ${finding.category}: ${finding.finding}`);
}
cURL
# Call the generate_deep_research_report tool
curl -X POST "https://corporate-deep-research-mcp.apify.actor/mcp" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "generate_deep_research_report",
"arguments": {
"query": "Theranos",
"sources": ["research", "filings", "lei", "reviews", "complaints", "wikipedia"]
}
},
"id": 1
}'
# List all available tools
curl -X POST "https://corporate-deep-research-mcp.apify.actor/mcp" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-d '{"jsonrpc":"2.0","method":"tools/list","params":{},"id":2}'
How Corporate Deep Research MCP works
Phase 1: Source resolution and graph construction
When a tool is called, the server first checks a 5-minute in-memory TTL cache keyed by source and query string (e.g., res:Tesla, fil:Tesla). Cache hits return instantly with no API cost. For cache misses, the server fans out to all requested sources in parallel via Promise.all, calling each upstream Apify actor with a 180-second timeout and fetching up to 500 dataset items.
The 7 source actors are: ryanclinton/company-deep-research, ryanclinton/edgar-filing-search, ryanclinton/finnhub-stock-data, ryanclinton/gleif-lei-lookup, ryanclinton/trustpilot-review-analyzer, ryanclinton/cfpb-consumer-complaints, and ryanclinton/wikipedia-article-search.
Phase 2: Corporate network assembly
The raw data from all sources is passed to buildCorpNetwork(), which constructs a typed graph of CorpNode and CorpEdge objects. Nodes are created for: companies (from research, up to 40), filings (up to 60), stocks (up to 40), LEI entities (up to 30), reviews (up to 40), complaints (up to 40), and Wikipedia articles (up to 20). Deduplication uses a Set<string> keyed on node IDs to prevent duplicate company nodes from multiple sources.
Edges are created based on name-matching heuristics: the first 8-10 characters of a company name are matched against node names from other source types to determine relationships. Edge weights reflect confidence: trades_as (0.9, highest), filed_by (0.8), complained_about and identified_by (0.7), reviewed_on (0.6), described_in (0.5).
Phase 3: Scoring and analysis
Each tool's scoring function operates on the assembled CorpNetwork. The functions traverse edges to collect linked nodes per company, then apply their respective formulas:
assessFinancialHealth()— pulls stock node score, counts filing edges, readsmarketCapfrom stock metadatadetectReputationRisk()— averages review node scores (normalized 0–1), counts complaint nodesanalyzeFilingPatterns()— computes inter-filing date gaps in milliseconds, derives stdDev/mean ratio as anomaly scorescoreCorporateGovernance()— checks for 10-K and 10-Q form type strings, presence of LEI and article nodesassessInvestmentRisk()— combines all four risk dimensions with fixed weightsgenerateDeepResearchReport()— applies threshold rules to network counts (>5 complaints = critical finding, >3 low-rated reviews = high finding)
Phase 4: Transport and billing
The server supports both SSE (/sse + /messages) and Streamable HTTP (/mcp) transports. Each tool call triggers Actor.charge() before returning results. If the spending limit is reached, the server returns a structured error JSON rather than throwing, preserving agent workflow stability. The server runs in Apify Standby mode, staying alive to handle multiple tool calls without cold-start overhead.
Tips for best results
-
Use
generate_deep_research_reportas your entry point. It queries all 7 sources and returns severity-sorted findings. Use individual tools only when you need to drill into a specific dimension. -
Narrow sources to control cost and latency. A
["filings"]-only call toanalyze_filing_patternstakes ~30 seconds and costs $0.04. A 7-sourcegenerate_deep_research_reporttakes 2-3 minutes. Match source selection to your urgency. -
Use ticker symbols for public companies. Querying
"AAPL"rather than"Apple Inc"improves match quality in EDGAR and Finnhub since these sources index by ticker. For private companies, use the full legal name. -
Chain tools for multi-step agent workflows. Call
map_corporate_intelligencefirst to understand what data is available, then target specific tools. The graph structure in the output tells you which data sources returned useful results. -
Combine with counterparty screening. For third-party risk, pair this server with Counterparty Due Diligence MCP to add sanctions, adverse media, and PEP checks alongside the financial intelligence from this server.
-
Set Apify spending limits on runs used for large batch screening. If your agent iterates over a long list of companies, configure a per-run spending cap in Apify Console to prevent unbounded costs.
-
Schedule weekly portfolio monitoring. Use Apify Schedules with a webhook to POST results to a Slack channel or dashboard. The structured JSON output from
assess_investment_riskis well-suited for automated alerting on risk level changes.
Combine with other Apify actors and MCP servers
| Actor / MCP Server | How to combine |
|---|---|
| Counterparty Due Diligence MCP | Add KYB sanctions screening, adverse media, and PEP checks to financial intelligence for full third-party risk coverage |
| Corporate Political Exposure MCP | Layer political risk and lobbying exposure data on top of governance scores from this server |
| Brand Narrative Intelligence MCP | Extend reputation risk detection with media narrative analysis and brand sentiment trends |
| Competitive Digital Intelligence MCP | Combine corporate financial health data with competitive digital posture for a complete competitor profile |
| Trustpilot Review Analyzer | Run deeper review analysis — sentiment by topic, review velocity trends — beyond what the MCP aggregates |
| CFPB Consumer Complaints | Pull full complaint records with narrative text for detailed complaint analysis beyond count-based signals |
| EDGAR Filing Search | Access full filing text, exhibits, and XBRL data beyond what the MCP's 60-filing limit exposes |
Limitations
- Private companies have limited financial data. EDGAR filings and Finnhub stock data are US public-company-centric. Private companies may return empty stock and filing nodes, which degrades financial health and investment risk scores significantly. The governance grade will understate quality for well-run private companies with no SEC filing obligations.
- Source data quality depends on upstream actors. The scoring is only as good as the data returned by the 7 upstream actors. If GLEIF LEI returns no results for a query, the governance score will penalize the company for missing LEI even if the entity is legitimately registered under a different name variant.
- Name-matching is approximate. The graph construction uses first-8-to-10-character substring matching to link nodes across sources. Common company name prefixes can produce false edge connections. Use specific, unique company names or ticker symbols to minimize false links.
- 180-second upstream timeout. If an upstream actor takes longer than 3 minutes to respond, that source returns an empty array. A slow CFPB response will produce a reputation risk score of 0 (artificially low) rather than an error.
- 5-minute cache is shared within a single server instance. The in-memory TTL cache does not persist across Standby restarts. After a restart, the first query for each company pays full source-fetching cost.
- Up to 500 items per source. For very large companies with hundreds of SEC filings or thousands of complaints (e.g., major banks), the 500-item cap means the network only reflects a recent slice of filings and complaints.
- CFPB data is US financial institutions only. Non-financial companies and non-US companies will return no CFPB complaint data, making the complaint score component of reputation risk zero for those entities.
- No XBRL or financial statement parsing. The financial health score uses market cap and filing count as proxies. It does not parse balance sheets, income statements, or cash flow data. For deep financial modeling, use the direct EDGAR actor.
Integrations
- Claude Desktop — connect via
claude_desktop_config.jsonfor conversational corporate due diligence with Claude - Cursor / Windsurf — embed corporate intelligence in your IDE workflow for AI-assisted analysis
- Apify API — trigger tool calls programmatically from any HTTP client, CI/CD pipeline, or internal application
- Webhooks — push risk score changes to Slack, Teams, or internal alerting systems when scheduled runs complete
- Zapier — trigger corporate research on new CRM entries and push findings to HubSpot, Salesforce, or Google Sheets
- Make (Integromat) — automate vendor screening workflows: new vendor added → research triggered → governance score sent to procurement team
- LangChain / LlamaIndex — use this server as a corporate intelligence tool in RAG pipelines and multi-agent research workflows
Troubleshooting
Tool returns empty assessments or risks arrays. The corporate graph had no company nodes. This happens when the query string doesn't match any entity names in the source data. Try a more specific query — use the full legal name or ticker symbol. Check if the company is private (SEC filing data may be absent).
generate_deep_research_report returns overallRisk: "low" with no findings. The findings engine applies minimum thresholds: complaints need >5 records, low-rated reviews need >3 records, missing LEI needs >2 entities. For small companies with sparse data, all thresholds may go unmet even if risk exists. Use assess_investment_risk directly for a score-based view.
Financial health score seems too low for a well-known company. The health scoring uses stock price / 500 as the price signal, meaning stocks above $500 score 1.0 and below $50 score 0.1. This is a relative signal, not an absolute valuation. Combine with score_corporate_governance and trace_corporate_identity for a fuller picture.
Tool call times out in Claude Desktop. Each tool call can take up to 3 minutes when fetching 7 sources. If Claude Desktop has a shorter timeout, reduce the sources array to 2-3 sources for faster responses, or use a tool with fewer default sources like analyze_filing_patterns.
Spending limit reached error. The Apify run hit its configured spending cap. Increase the limit in Apify Console under the actor run settings, or set up a recurring run with a higher monthly budget allocation.
Responsible use
- This server only accesses publicly available corporate data from official registries (SEC EDGAR, GLEIF), licensed market data (Finnhub), and publicly accessible platforms (Trustpilot, Wikipedia).
- CFPB complaint data is a public government dataset published under US FOIA principles.
- Do not use outputs to make unsupported claims about company creditworthiness, solvency, or legal compliance without engaging qualified financial and legal professionals.
- Investment decisions based on this data should involve licensed financial advisors. This server provides intelligence inputs, not investment advice.
- Comply with applicable data regulations when using outputs in commercial due diligence processes.
- For guidance on web scraping and data legality, see Apify's legal guide.
❓ FAQ
How many companies can the Corporate Deep Research MCP research in one tool call?
Each tool call takes a single query string and researches that company across all selected sources. The corporate network may include related entities found in filings and research data — typically 5-30 company nodes — all scored in a single $0.04 call. To research 10 unrelated companies, make 10 separate calls.
How current is the corporate intelligence data? Finnhub stock data is fetched live at query time. EDGAR reflects the latest published filings (typically within 24 hours of SEC publication). GLEIF LEI data reflects the current registry state. Trustpilot and CFPB data reflect the current platform state. Company Deep Research pulls live web data. The 5-minute TTL cache means repeated queries within 5 minutes return cached results.
Does corporate deep research work for private companies? Partially. Company Deep Research, Trustpilot reviews, CFPB complaints, Wikipedia, and GLEIF LEI all cover private companies. SEC filing data and Finnhub stock data are limited to publicly listed entities. Financial health and investment risk scores will be less reliable for private companies due to missing financial signals.
How accurate is the governance grade for a company? The governance grade is based on observable signals: presence of 10-K filings, 10-Q filings, LEI registration, and Wikipedia coverage. It measures disclosure compliance and registry presence, not actual governance quality. A company can score grade A while having genuine governance issues not visible in public data, and a private company may score F simply due to no SEC filing obligation.
Can I research non-US companies with Corporate Deep Research MCP? Yes. Finnhub covers global equities. GLEIF LEI is a global standard covering entities in 200+ jurisdictions. Wikipedia has international coverage. Company Deep Research pulls web-wide intelligence. SEC EDGAR is US-centric but covers foreign private issuers. CFPB complaints are US financial institutions only.
How is this different from Bloomberg Terminal or PitchBook? Bloomberg and PitchBook are professional data platforms with structured financial databases, analyst coverage, and proprietary data licensing. This server aggregates from public sources and open registries. It costs $0.04 per query vs. $2,000+/month for Bloomberg. It is designed for AI agent workflows and programmatic access, not for human analysts navigating a UI. Use it as an automated first-pass screen, not as a replacement for deep professional research platforms.
How does corporate deep research handle company name variations?
The graph construction uses first-8-to-10-character substring matching to link entities across sources. If a company is known by multiple names (e.g., "Meta" vs "Facebook"), query under the name most likely to appear in EDGAR filings — usually the full legal name. The trace_corporate_identity tool surfaces aliases found across sources.
Is it legal to use this data for investment research? All data sources are publicly available. EDGAR, GLEIF, and CFPB are government-operated public databases. Trustpilot is publicly accessible. Using public data for investment research is standard practice. This server does not provide investment advice — outputs should be treated as intelligence inputs for qualified financial professionals. Consult Apify's legal guide for further context.
Can I schedule automated portfolio monitoring with this server?
Yes. Use Apify Schedules to trigger assess_investment_risk on a list of portfolio companies on a daily or weekly cadence. Combine with a webhook to send risk level changes to Slack or your portfolio management system. The structured JSON output is designed for automated processing.
What happens if one of the 7 upstream sources fails or times out? Each source is fetched independently with a 180-second timeout. If an upstream actor fails or times out, that source returns an empty array and the network is built from the remaining sources. The tool call does not fail — it returns scores based on available data. The affected dimension (e.g., reputation risk if reviews fail) will reflect default/neutral values.
Can I use this MCP server in a LangChain or LlamaIndex agent?
Yes. Any MCP-compatible client can connect to this server. LangChain and LlamaIndex support MCP tool use. Connect to https://corporate-deep-research-mcp.apify.actor/mcp with your Apify token as a Bearer header. The 8 tools will be available as callable functions in your agent's tool registry.
How do I keep costs predictable for a large research workflow?
Set a per-run spending limit in Apify Console. The server returns {"error": true, "message": "Spending limit reached for ..."} when the limit is hit, rather than throwing an unhandled error. Your agent can catch this and pause processing. At $0.04 per call, 100 calls = $4.00 — a predictable unit cost for budgeting.
Help us improve
If you encounter issues, you can help us debug faster by enabling run sharing in your Apify account:
- Go to Account Settings > Privacy
- Enable Share runs with public Actor creators
This lets us see your run details when something goes wrong, so we can fix issues faster. Your data is only visible to the actor developer, not publicly.
Support
Found a bug or have a feature request? Open an issue in the Issues tab on this actor's page. For custom corporate intelligence solutions or enterprise integrations, reach out through the Apify platform.
How it works
Configure
Set your parameters in the Apify Console or pass them via API.
Run
Click Start, trigger via API, webhook, or set up a schedule.
Get results
Download as JSON, CSV, or Excel. Integrate with 1,000+ apps.
Use cases
Sales Teams
Build targeted lead lists with verified contact data.
Marketing
Research competitors and identify outreach opportunities.
Data Teams
Automate data collection pipelines with scheduled runs.
Developers
Integrate via REST API or use as an MCP tool in AI workflows.
Related actors
Bulk Email Verifier
Verify email deliverability at scale. MX record validation, SMTP mailbox checks, disposable and role-based detection, catch-all flagging, and confidence scoring. No external API costs.
GitHub Repository Search
Search GitHub repositories by keyword, language, topic, stars, forks. Sort by stars, forks, or recently updated. Returns metadata, topics, license, owner info, URLs. Free API, optional token for higher limits.
Website Content to Markdown
Convert any website to clean Markdown for RAG pipelines, LLM training, and AI apps. Crawls pages, strips boilerplate, preserves headings, tables, and code blocks. GFM support.
Website Tech Stack Detector
Detect 100+ web technologies on any website. Identifies CMS, frameworks, analytics, marketing tools, chat widgets, CDNs, payment systems, hosting, and more. Batch-analyze multiple sites with version detection and confidence scoring.
Ready to try Corporate Deep Research MCP?
Start for free on Apify. No credit card required.
Open on Apify Store