Live MCP Server

MCP Server Documentation

Universal context infrastructure for AI applications. Connect any MCP-compatible platform to the largest library of machine-native content.

Free
7-Day Context
1,000
Stories/Month
4 Tools
MCP Functions
MCP in Action
// Multi-dimensional precision targeting
synorb.get_stories({
stream_id: 889, // Andreessen Horowitz
entity_details: [
{
entity_type: "Topics",
entity_value: "AI"
},
{
entity_type: "people",
entity_value: "Ben Horowitz"
},
{
entity_type: "content_type",
entity_value: "Podcast"
}
]
})
// Surgical section extraction + provenance
synorb.get_stories({
stream_id: 889,
body_sections: [
"Key Insights",
"Signals"
]
}).then(res => {
res.stories.forEach(story => {
const citation = {
insight: story.story.body,
source: story.evidence_ref.source_urls[0],
confidence: story.classification_confidence,
pipeline: story.provenance?.pipeline_version
};
});
})
// Cross-domain VC + SEC validation
const [vcView, secData] = await Promise.all([
// VC perspective
synorb.get_stories({
stream_id: 889, // a16z
entity_details: [{
entity_type: "organization",
entity_value: "Acme Corp"
}]
}),
// SEC filings
synorb.get_stories({
stream_id: 786, // SEC 8-K
entity_details: [{
entity_type: "organization",
entity_value: "Acme Corp"
}]
})
]);

Start Building Today - No Credit Card Required

Everyone gets 7-day context window with 1,000 stories per month. Forever free.

Growing stream catalog
Full MCP tools
Instant setup

See It In Action

Connect Synorb to Claude or ChatGPT in under 30 seconds

It's that simple - Check Email → Add Connector → Start Building

Click to see demo
Claude
Claude
Pro, Max, Team and Enterprise plans

Connect Synorb to Claude and start querying streams immediately.

1 Find your personalized URL in your welcome email
2 Paste it into Claude Connector
3 Test: "What streams do I have access to?"
Claude Claude Setup Demo
Claude Setup
OpenAI
ChatGPT
Developer Pro and Plus accounts

Connect via Developer Mode today. Standard ChatGPT support coming soon!

1 Find your personalized URL in your welcome email
2 Paste it into ChatGPT Connector
3 Test: "What streams do I have access to?"

MCP Tools Reference

Four powerful tools with rich metadata, multi-dimensional filtering, and surgical context extraction

TOOL synorb-profile

Real-time quota tracking with usage analytics, overage monitoring, and subscription status

{ "status": "success", "user_id": 430, "access_token": "2f91a75b...", "usage": { "content_type": "Discovery", "quota": 1000, "quota_period": "month", "usage": 370, "subscription_start": "2025-09-17", "quota_reset_date": "2025-10-17", "overage": 0 } }
TOOL synorb-stream-catalog

Complete stream library with full metadata—domains, entity types, update cadence, and provenance

{ "id": 889, "title": "Andreessen Horowitz", "stream_class": "discovery", "update_cadence": "Weekly", "home_domain": "economics-business-work", "cross_domains": ["engineering-technology"], "primary_entity": { "type": "org", "name": "Andreessen Horowitz", "role": "publisher", "identifiers": { "website": "a16z.com", "acronym": "a16z" } } }
TOOL synorb-stream-details

Deep stream intelligence: activity metrics, dynamic body sections, multi-dimensional filters, NLQ examples

5 7 Days
45 30 Days
148 90 Days
Overview Key Insights Notable Quotes Actionable Takeaways Announcement Key Details Big Picture Key Arguments Signals Entities Mentioned Links Portfolio Mentions Risks & Watchpoints Resources Mentioned Timestamps
Topics
AI Crypto Enterprise Biotech Fintech +5 more
Content Type
Blog Post Podcast Tweet Thread
People (60+ tracked)
Ben Horowitz Marc Andreessen Chris Dixon +57 more
What is Andreessen Horowitz's view on AI regulation?
How does a16z evaluate crypto investments?
What are the latest AI startups funded by Andreessen Horowitz?
TOOL synorb-stream-stories

Structured stories with multi-parameter filtering, granular section selection, evidence refs, and domain classification

// Request only specific reasoning sections { "stream_id": 889, "body_sections": [ "Key Insights", "Actionable Takeaways" ] }
// Boolean AND across multiple filters { "stream_id": 889, "entity_details": [ { "entity_type": "Topics", "entity_value": "AI" }, { "entity_type": "people", "entity_value": "Ben Horowitz" }, { "entity_type": "content_type", "entity_value": "Podcast" } ] }
{ "story_id": 1126730, "filters": [/* What matched */], "classification_confidence": 0.95, "evidence_ref": { "source_urls": ["https://a16z.com/..."] }, "cross_domains": ["engineering-technology"], "story": { "body_sections": [/* Requested sections */], "body": "# Markdown formatted..." } }

Real-World Implementation

Cross-domain intelligence patterns combining VCs, SEC filings, real estate, policy analysis, and public markets

Investment Due Diligence Pipeline

Multi-source company intelligence combining regulatory filings, earnings calls, and VC perspective

SEC 8-K Earnings Calls a16z
// Multi-source company research async function researchCompany(companyName) { const [secRisks, earnings, vcView] = await Promise.all([ // 1. SEC regulatory risks synorb.get_stories({ stream_id: 786, // SEC Form 8-K entity_details: [{ entity_type: "organization", entity_value: companyName }], body_sections: [ "Risks & Watchpoints", "Key Details" ] }), // 2. Earnings call sentiment synorb.get_stories({ stream_id: 1015, // Earnings Calls entity_details: [{ entity_type: "organization", entity_value: companyName }], body_sections: [ "Key Insights", "Signals" ] }), // 3. VC perspective synorb.get_stories({ stream_id: 889, // a16z entity_details: [{ entity_type: "organization", entity_value: companyName }], body_sections: [ "Portfolio Mentions", "Big Picture" ] }) ]); return { regulatory_risks: secRisks.stories, financial_health: earnings.stories, vc_sentiment: vcView.stories }; }

Real Estate Market Intelligence

Price trend analysis with loss pattern detection for market stress signals

Price Drops Loss Sales
// Track market softness in Boston const bostonAnalysis = async () => { const [priceDrops, lossSales] = await Promise.all([ // Recent price reductions synorb.get_stories({ stream_id: 1011, entity_details: [{ entity_type: "place", entity_value: "Boston" }], body_sections: [ "Overview", "Key Details" ], published_date_from: "2025-09-01" }), // Properties sold at loss synorb.get_stories({ stream_id: 1012, entity_details: [{ entity_type: "place", entity_value: "Boston" }], body_sections: [ "Key Insights", "Signals" ], published_date_from: "2025-01-01" }) ]); const avgDrop = calculateAverage( priceDrops.stories.map(s => extractDropPercentage(s) ) ); return { market_stress_score: avgDrop * lossSales.stories.length, price_drops: priceDrops.stories, loss_sales: lossSales.stories }; };

Geopolitical Risk Monitor

Policy analysis correlated with investor response for sector impact assessment

Atlantic Council Sequoia
// Track policy shifts and sector impact const policyImpact = async (region, sector) => { const [policy, vcReaction] = await Promise.all([ // Policy analysis synorb.get_stories({ stream_id: 521, // Atlantic Council entity_details: [ { entity_type: "place", entity_value: region }, { entity_type: "topic", entity_value: sector } ], body_sections: [ "Big Picture", "Risks & Watchpoints" ] }), // VC response synorb.get_stories({ stream_id: 989, // Sequoia entity_details: [{ entity_type: "place", entity_value: region }], body_sections: [ "Signals", "Portfolio Mentions" ] }) ]); return { policy_analysis: policy.stories, investor_response: vcReaction.stories, correlation: analyzeCorrelation( policy, vcReaction ) }; };

Crowdfunding Deal Flow

Early-stage funding landscape via SEC Reg CF and Reg A filings

SEC Reg CF SEC Reg A
// Track early-stage tech funding const crowdfundingPipeline = async () => { const [regCF, regA] = await Promise.all([ // Regulation Crowdfunding synorb.get_stories({ stream_id: 566, entity_details: [{ entity_type: "topic", entity_value: "Technology" }], body_sections: [ "Announcement", "Key Details" ], published_date_from: "2025-09-01" }), // Regulation A offerings synorb.get_stories({ stream_id: 567, entity_details: [{ entity_type: "topic", entity_value: "Technology" }], body_sections: [ "Key Details", "Signals" ], published_date_from: "2025-09-01" }) ]); const deals = [...regCF.stories, ...regA.stories]; return { deals, sectors: analyzeSectorDistribution(deals), avgRaise: calculateAverageRaise(deals) }; };

Cross-Sector Correlation Engine

Four-source convergence analysis across VCs, policy, public markets, and regulatory filings

General Catalyst Atlantic Council Earnings SEC 8-K
// Multi-source sector intelligence const crossSector = async (sector) => { const [vc, policy, earnings, sec] = await Promise.all([ // VC activity synorb.get_stories({ stream_id: 947, entity_details: [{ entity_type: "Topics", entity_value: sector }], body_sections: [ "Portfolio Mentions", "Signals" ] }), // Policy landscape synorb.get_stories({ stream_id: 521, entity_details: [{ entity_type: "topic", entity_value: sector }], body_sections: [ "Big Picture", "Risks & Watchpoints" ] }), // Public sentiment synorb.get_stories({ stream_id: 1015, entity_details: [{ entity_type: "topic", entity_value: sector }], body_sections: [ "Key Insights", "Signals" ] }), // Regulatory activity synorb.get_stories({ stream_id: 786, entity_details: [{ entity_type: "topic", entity_value: sector }], body_sections: [ "Announcement", "Key Details" ] }) ]); return { vc_positioning: vc.stories, policy_headwinds: policy.stories, public_sentiment: earnings.stories, regulatory_activity: sec.stories, convergence_score: calculateConvergence([ vc, policy, earnings, sec ]) }; };

Podcast Intelligence + SEC Validation

Verify VC podcast claims against regulatory filings for investment validation

20VC Podcast SEC 10-K
// Fact-check VC claims with SEC data const verifyVCClaims = async (company) => { const [podcast, sec10K] = await Promise.all([ // VC podcast mentions synorb.get_stories({ stream_id: 1014, entity_details: [{ entity_type: "organization", entity_value: company }], body_sections: [ "Notable Quotes", "Key Arguments" ], published_date_from: "2025-09-01" }), // SEC 10-K verification synorb.get_stories({ stream_id: 564, entity_details: [{ entity_type: "organization", entity_value: company }], body_sections: [ "Key Details", "Risks & Watchpoints" ] }) ]); const claims = extractClaims(podcast.stories); const facts = extractFacts(sec10K.stories); return { podcast_narrative: claims, sec_reality: facts, alignment_score: compareNarratives( claims, facts ) }; };

Advanced Filtering Patterns

Surgical precision techniques for multi-dimensional filtering, temporal control, and section-level extraction

1

Multi-Entity Boolean Filtering

Combine multiple filters with AND logic for precise targeting across Topics, People, Content Type, and Organizations

❌ Basic
// Single dimension - too broad synorb.get_stories({ stream_id: 889, entity_details: [{ entity_type: "Topics", entity_value: "AI" }] }) // Returns ALL AI content // 100+ stories, unfocused
✅ Advanced
// Multi-dimensional precision synorb.get_stories({ stream_id: 889, entity_details: [ { entity_type: "Topics", entity_value: "AI" }, { entity_type: "people", entity_value: "Ben Horowitz" }, { entity_type: "content_type", entity_value: "Podcast" } ] }) // Only Ben's AI podcasts // ~5 highly relevant stories
Key Insight
Boolean AND across filters reduces noise by 95%. Use 2-3 filters for surgical precision without over-constraining results.
2

Surgical Section Extraction

Extract only specific reasoning sections from stories—eliminate fluff, get exactly what you need for RAG or analysis

❌ Basic
// Full story - 15+ sections synorb.get_stories({ stream_id: 889, published_date_from: "2025-09-01" }) // Returns everything: // Overview, Quotes, Details, // Timestamps, Links, etc. // ~3000 tokens per story
✅ Advanced
// Only reasoning sections synorb.get_stories({ stream_id: 889, published_date_from: "2025-09-01", body_sections: [ "Key Insights", "Big Picture", "Signals" ] }) // Returns only critical analysis // ~800 tokens per story // 73% token reduction
RAG Optimization
Section filtering reduces LLM context by 60-80% while preserving signal. Perfect for high-quality RAG pipelines with token constraints.
3

Temporal Precision Control

Query by exact date ranges or use activity metrics to detect and query hot streams dynamically

// Activity-based intelligence const details = await synorb.get_stream_details({ stream_id: 889 }); if (details.stories_over_last_7_days > 10) { // Hot stream - query recent only const trending = await synorb.get_stories({ stream_id: 889, published_date_from: getLastWeek(), body_sections: ["Signals", "Big Picture"] }); } else { // Quiet stream - expand window const recent = await synorb.get_stories({ stream_id: 889, published_date_from: getLastMonth() }); } // Custom date ranges synorb.get_stories({ stream_id: 889, published_date_from: "2025-09-15", published_date_to: "2025-09-30" })
Dynamic Querying
Use 7/30/90-day metrics to adapt query windows. High-activity streams need narrow windows; quiet streams need broader ranges for sufficient signal.
4

Cross-Domain Intelligence Discovery

Find content that spans multiple domains for unique cross-sector insights and correlation analysis

// Find AI content across multiple domains const catalog = await synorb.get_catalog(); // Filter for cross-domain AI streams const crossDomainAI = catalog.streams.filter(stream => stream.cross_domains?.includes("engineering-technology") && stream.home_domain === "economics-business-work" ); // Query each for recent AI content const insights = await Promise.all( crossDomainAI.map(async stream => { const stories = await synorb.get_stories({ stream_id: stream.id, entity_details: [{ entity_type: "Topics", entity_value: "AI" }], body_sections: ["Key Insights"] }); return { source: stream.title, insights: stories }; }) ); // Compare perspectives across domains const synthesis = synthesizePerspectives(insights);
Cross-Domain Pattern
Cross-referenced streams reveal unique angles. Business content (home_domain) with tech implications (cross_domain) provides investment-grade intelligence.
5

Provenance-Aware Filtering

Build trust into your pipeline by tracking source URLs, pipeline versions, and classification confidence

// Query with provenance tracking const stories = await synorb.get_stories({ stream_id: 889, published_date_from: "2025-09-01", body_sections: ["Key Insights"] }); // Filter by confidence and validate sources const highConfidence = stories.stories.filter(story => story.classification_confidence > 0.9 && story.evidence_ref?.source_urls?.length > 0 ); // Build citation-ready output const citableInsights = highConfidence.map(story => ({ insight: story.story.body, source: story.evidence_ref.source_urls[0], confidence: story.classification_confidence, pipeline: story.provenance?.pipeline_version, domains: { primary: story.home_domain, cross: story.cross_domains } })); // Feed to LLM with full attribution const prompt = ` Sources (confidence > 90%): ${citableInsights.map(i => `- ${i.source} (${(i.confidence * 100).toFixed(0)}%)` ).join('\n')} Context: ${citableInsights.map(i => i.insight).join('\n---\n')} `;
Trust & Attribution
Filter by classification_confidence > 0.9 for high-quality results. Always include source URLs for full transparency and citation capabilities.

Intelligence Workflows

Production-ready patterns for market research, competitive intelligence, investment validation, and RAG pipelines

Market Research Pipeline

Discover streams → Analyze activity → Extract insights → Generate synthesis report

1 Catalog Discovery
// Find relevant streams for your sector const catalog = await synorb.get_catalog(); const aiStreams = catalog.streams.filter(s => s.subject_domains.includes("engineering-technology") && s.stream_class === "discovery" );
Filter catalog by domain and stream class to find relevant intelligence sources
2 Activity Analysis
// Check which streams are hot const streamActivity = await Promise.all( aiStreams.map(async stream => { const details = await synorb.get_stream_details({ stream_id: stream.id }); return { ...stream, activity_7d: details.stories_over_last_7_days, activity_30d: details.stories_over_last_30_days }; }) ); // Prioritize high-activity streams const hotStreams = streamActivity .filter(s => s.activity_7d > 5) .sort((a,b) => b.activity_7d - a.activity_7d);
Use activity metrics to identify trending sources worth deeper investigation
3 Insight Extraction
// Extract insights from hot streams const insights = await Promise.all( hotStreams.slice(0, 5).map(async stream => { const stories = await synorb.get_stories({ stream_id: stream.id, entity_details: [{ entity_type: "Topics", entity_value: "AI" }], body_sections: [ "Key Insights", "Big Picture", "Signals" ], published_date_from: getLastWeek() }); return { source: stream.title, insights: stories.stories }; }) );
Query top streams with surgical section filtering for high-signal content
4 Synthesis Report
// Generate market intelligence report const report = { sector: "AI", timeframe: "Last 7 days", sources_analyzed: hotStreams.length, total_stories: insights.reduce( (sum, i) => sum + i.insights.length, 0 ), key_insights: insights.map(i => ({ source: i.source, summary: extractKeyPoints(i.insights), evidence: i.insights.map(s => s.evidence_ref.source_urls[0] ) })), signals: identifyTrends(insights) };
Output
Structured market intelligence report with sourced insights, trend signals, and full provenance for investment decisions

Competitive Intelligence Monitor

Multi-source tracking → Cross-reference validation → Alert generation

1 Multi-Source Monitoring
// Track competitor across multiple sources const competitor = "CompanyX"; const [vcMentions, secFilings, earnings, media] = await Promise.all([ // VC perspective synorb.get_stories({ stream_id: 889, entity_details: [{ entity_type: "organization", entity_value: competitor }] }), // SEC activity synorb.get_stories({ stream_id: 786, entity_details: [{ entity_type: "organization", entity_value: competitor }] }), // Earnings calls synorb.get_stories({ stream_id: 1015, entity_details: [{ entity_type: "organization", entity_value: competitor }] }), // Industry podcasts synorb.get_stories({ stream_id: 1014, entity_details: [{ entity_type: "organization", entity_value: competitor }] }) ]);
2 Cross-Reference Validation
// Identify mentions across sources const signals = detectSignals({ funding: extractFundingNews(vcMentions, secFilings), product: extractProductNews(media, earnings), leadership: extractPeopleChanges(secFilings, media), financial: extractFinancials(earnings, secFilings) }); // Flag corroborated signals const validated = signals.filter(s => s.source_count >= 2 && s.confidence > 0.8 );
Cross-validate signals across sources to reduce false positives
3 Alert Generation
// Generate alerts for validated signals const alerts = validated.map(signal => ({ priority: signal.confidence > 0.9 ? "HIGH" : "MEDIUM", type: signal.category, summary: signal.text, sources: signal.sources, timestamp: new Date(), action_items: generateActionItems(signal) })); // Deliver via preferred channel if (alerts.some(a => a.priority === "HIGH")) { await sendSlackAlert(alerts); }
Output
Real-time competitive alerts with confidence scoring, multi-source validation, and actionable recommendations

Investment Thesis Validation

VC narrative → Regulatory reality check → Public sentiment → Convergence score

1 VC Narrative Analysis
// Extract VC investment thesis const vcThesis = await synorb.get_stories({ stream_id: 889, entity_details: [{ entity_type: "Topics", entity_value: "Enterprise AI" }], body_sections: [ "Key Arguments", "Big Picture", "Portfolio Mentions" ] }); const claims = extractInvestmentClaims(vcThesis.stories);
2 Regulatory Reality Check
// Check SEC filings for validation const secData = await synorb.get_stories({ stream_id: 564, // 10-K filings entity_details: [{ entity_type: "topic", entity_value: "Enterprise AI" }], body_sections: [ "Key Details", "Risks & Watchpoints" ] }); const facts = extractFinancialReality(secData.stories);
3 Public Market Sentiment
// Get earnings call sentiment const publicSentiment = await synorb.get_stories({ stream_id: 1015, entity_details: [{ entity_type: "topic", entity_value: "Enterprise AI" }], body_sections: ["Key Insights", "Signals"] }); const market = extractMarketView(publicSentiment.stories);
4 Convergence Analysis
// Calculate thesis validation score const validation = { vc_claims: claims, regulatory_facts: facts, market_sentiment: market, alignment_score: calculateAlignment( claims, facts, market ), divergence_points: identifyDivergence( claims, facts ), recommendation: generateRecommendation({ alignment: validation.alignment_score, divergence: validation.divergence_points }) };
Output
Investment validation report with convergence scoring, divergence analysis, and data-driven recommendation

RAG Context Extraction Pipeline

Query with sections → Filter by confidence → Build citations → Feed to LLM

1 Surgical Query
// Request only reasoning sections const context = await synorb.get_stories({ stream_id: 889, entity_details: [{ entity_type: "Topics", entity_value: "AI Safety" }], body_sections: [ "Key Insights", "Key Arguments", "Big Picture" ], published_date_from: getLastMonth() });
Section filtering reduces tokens by 70% while preserving signal quality
2 Quality Filtering
// Filter by confidence and validate sources const highQuality = context.stories.filter(story => story.classification_confidence > 0.9 && story.evidence_ref?.source_urls?.length > 0 );
Confidence threshold ensures only high-quality context enters your RAG pipeline
3 Citation Building
// Build citation-ready chunks const chunks = highQuality.map(story => ({ content: story.story.body, metadata: { source_url: story.evidence_ref.source_urls[0], confidence: story.classification_confidence, published_date: story.published_date, domains: { primary: story.home_domain, cross: story.cross_domains }, provenance: story.provenance } }));
4 LLM Prompt Construction
// Build fully-attributed prompt const prompt = ` Context from ${chunks.length} authoritative sources: ${chunks.map((c, i) => ` [Source ${i+1}] ${c.metadata.source_url} Confidence: ${(c.metadata.confidence * 100).toFixed(0)}% Published: ${c.metadata.published_date} ${c.content} `).join('\n---\n')} Question: What is the current thinking on AI safety at leading VC firms? Instructions: Synthesize the above context and cite sources by number. `; const response = await llm.generate(prompt);
Output
Citation-ready LLM prompts with provenance tracking, confidence scoring, and full source attribution for trustworthy AI responses

Production Architecture

Technical specifications, performance patterns, and integration strategies for production deployments

Rate Limits & Quotas

Monthly story limits and overage pricing

Free Tier 1,000 stories/mo
Vibe Coder 100,000 stories/mo
Pro Developer (Individual) 1,000,000 stories/mo
Pro Developer (Enterprise) 10,000,000 stories/mo
// Monitor quota in real-time const profile = await synorb.get_profile(); console.log({ quota: profile.usage.quota, used: profile.usage.usage, remaining: profile.usage.quota - profile.usage.usage, reset_date: profile.usage.quota_reset_date }); // Check if approaching limit const percentUsed = (profile.usage.usage / profile.usage.quota) * 100; if (percentUsed > 90) { console.warn('Approaching quota limit'); }
Overage pricing: $0.001 per story beyond monthly limit. Monitor usage via synorb-profile tool.

Quick Reference

Key specifications and capabilities

30 sec Setup Time
15+ Body Sections/Stream
25 NLQ Examples/Stream
7/30/90 Activity Windows (days)
5+ Filter Dimensions
2 Output Formats
Filter dimensions: Topics, people, organizations, places, content_type. Output formats: JSON, Markdown.

Performance Optimization

Maximize throughput and minimize latency

Parallel Queries
Query multiple streams concurrently using Promise.all for 3-5x speedup.
Section Filtering
Request only needed body_sections to reduce payload size significantly.
Pagination
Use page_num and page_size parameters to fetch stories in batches.
// Parallel stream queries const streamIds = [889, 947, 989]; const results = await Promise.all( streamIds.map(async id => { return synorb.get_stories({ stream_id: id, body_sections: ["Key Insights"], // Reduce payload page_size: 100, page_num: 0 }); }) ); // 3 streams queried in parallel // Total time ≈ slowest query, not sum

Integration Patterns

Common deployment architectures

Stream Selection Logic
Use activity metrics (7/30/90-day counts) to prioritize high-velocity streams for real-time insights.
Batch Processing
Query multiple streams, aggregate results, then process in batches for efficiency.
Multi-Source Validation
Cross-reference stories from different streams (e.g., VC + SEC) for fact-checking pipelines.
// Activity-based stream selection const details = await synorb.get_stream_details({ stream_id: 889 }); // Check if stream is "hot" if (details.stories_over_last_7_days > 10) { // High activity - query recent stories const stories = await synorb.get_stories({ stream_id: 889, published_date_from: getLastWeek() }); }
Combine parallel queries, section filtering, and activity-based selection for optimal production performance.

Get Your Free MCP Token

Start building with Synorb's machine-native content infrastructure

🎉 7-day context window • 1,000 stories/month • No credit card required

Your keys are on their way...
Oops, can you try again...