mcp-osint
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-osint Ukraine conflict news"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-osint
MCP server for Claude Code providing access to OSINT data sources:
Government - Data.gov, LegiScan, CourtListener, Census Bureau
Research - OpenAlex, Semantic Scholar, PubMed, CORE
Corporate - SEC EDGAR (10-K, 10-Q), FRED (economic data)
Compliance - OpenSanctions (sanctions, PEPs)
News/Knowledge - GDELT, Wikidata
Infrastructure - crt.sh (SSL certificates, subdomains)
Web - Firecrawl (URL scraping with HTML + markdown)
Setup
1. Get API Keys
Required keys:
LegiScan - legiscan.com/user/register
CourtListener - courtlistener.com/api
FRED - fred.stlouisfed.org/docs/api
Firecrawl - firecrawl.dev
Optional keys (higher rate limits):
Data.gov - api.data.gov/signup
Census - census.gov/data/developers
CORE - core.ac.uk/services/api
OpenSanctions - opensanctions.org/api
Free (no key): SEC EDGAR, GDELT, Wikidata, crt.sh, OpenAlex, Semantic Scholar, PubMed
2. Install & Build
cd mcp-osint
npm install
npm run build3. Add to Claude Code
Using the CLI:
claude mcp add -s user -t stdio mcp-osint \
-e LEGISCAN_API_KEY=your-key \
-e COURTLISTENER_API_KEY=your-key \
-e FRED_API_KEY=your-key \
-e FIRECRAWL_API_KEY=your-key \
-- node /path/to/mcp-osint/dist/index.jsOr manually add to your MCP settings (~/.claude/settings.json or VS Code settings):
{
"mcpServers": {
"mcp-osint": {
"command": "node",
"args": ["/path/to/mcp-osint/dist/index.js"],
"env": {
"LEGISCAN_API_KEY": "your-key",
"COURTLISTENER_API_KEY": "your-key",
"FRED_API_KEY": "your-key",
"FIRECRAWL_API_KEY": "your-key",
"POLITE_EMAIL": "you@example.com"
}
}
}
}Related MCP server: OSINT MCP Server
Tools
osint_search
Search across 14 OSINT data sources. Returns results with available resources.
Parameter | Type | Required | Description |
| string | Yes | Natural language search query |
| string | Force a specific connector (see table below) | |
| string | State code (e.g., | |
| number | Filter to specific year | |
| number | Max results (default: 10) |
Examples:
"EPA air quality data California" → Data.gov
"Michigan renewable energy bill 2024" → LegiScan
"Brown v. Board of Education" → CourtListener
"population by county Texas" → Census
"machine learning medical diagnosis" → OpenAlex/PubMed
"Apple 10-K filing 2024" → SEC EDGAR
"GDP quarterly growth rate" → FRED
"Russian sanctions oligarchs" → OpenSanctions
"Ukraine conflict news" → GDELT
"microsoft.com subdomains" → crt.shosint_preview
Preview a resource's schema and sample data before fetching.
Parameter | Type | Required | Description |
| string | Yes | Resource ID from osint_search |
| number | Sample rows for tabular data (default: 5) | |
| number | Max bytes for text preview (default: 4000) |
osint_get
Fetch data from a resource ID or URL. Automatically handles web pages, PDFs, and structured data.
Parameter | Type | Required | Description |
| string | Yes | URL (http/https) or resource_id from osint_search |
| string | Path to save binary files (required for PDFs) | |
| string | What to extract (e.g., "all data", "key findings") | |
| boolean | If true with question, returns only relevant content (default: false) | |
| string[] | Specific columns to return (resource_id only) | |
| object[] | Filter conditions (resource_id tabular data only) | |
| number | Max rows for tabular data (default: 100) |
Behavior by target type:
Target | Behavior |
Web URL | Returns markdown + raw HTML + SHA256 hash via Firecrawl |
PDF URL | Downloads to |
Binary URL | Downloads to |
Resource ID | Extracts data via connector with optional filtering |
Examples:
osint_get target="https://example.com/article"
osint_get target="https://example.com/paper.pdf" output_path="./downloads/paper.pdf"
osint_get target="pubmed:paper:12345:abstract" question="key findings"osint_list_sources
List all data sources and their configuration status.
Environment Variables
Variable | Required | Default | Description |
| Yes | - | LegiScan legislative data |
| Yes | - | CourtListener judicial data |
| Yes | - | FRED economic data |
| Yes | - | Firecrawl web scraping |
| - | Data.gov (higher limits) | |
| - | Census Bureau (higher limits) | |
| - | CORE open access papers | |
| - | OpenSanctions compliance data | |
| - | Email for polite API usage (OpenAlex, PubMed, SEC) | |
|
| Debug logging; set to | |
|
| Log directory; set to |
Connectors
Connector | Source | Data Types | Key Required |
| Data.gov | Datasets, resources | Recommended |
| LegiScan | Bills, votes, sponsors | Yes |
| CourtListener | Cases, opinions, dockets | Yes |
| Census Bureau | Demographics, statistics | Recommended |
| OpenAlex | Papers, authors, citations | No |
| Semantic Scholar | Papers, authors, citations | No |
| PubMed/NCBI | Medical papers, abstracts | No |
| CORE | Open access papers | Recommended |
| SEC EDGAR | 10-K, 10-Q, company filings | No |
| FRED | Time series, economic data | Yes |
| OpenSanctions | Sanctions, PEPs | Yes |
| GDELT | News, global events | No |
| Wikidata | Entities, knowledge graph | No |
| crt.sh | SSL certificates, subdomains | No |
Development
npm install # Install dependencies
npm run build # Compile TypeScript
npm run dev # Watch mode
npm start # Run serverTesting
# Test connector metadata and identifiers
npx tsx test/test-all-connectors.ts
# Test data retrieval (downloads files)
npx tsx test/test-data-retrieval.ts
# Test Firecrawl HTML+Markdown
npx tsx test/test-firecrawl.ts
# Run comprehensive MCP tool tests
npx tsx test/test-mcp-scenarios.tsArchitecture
src/
├── index.ts # MCP server entry point
├── types.ts # Shared types
├── intent.ts # Query parsing and routing
├── router.ts # Connector selection
├── logger.ts # Logging utility
├── cache.ts # SQLite + file caching
├── retry.ts # Retry with backoff
└── connectors/
├── base.ts # Base connector class
├── data-gov.ts # Data.gov/CKAN
├── legiscan.ts # LegiScan
├── courtlistener.ts # CourtListener
├── census.ts # Census Bureau
├── openalex.ts # OpenAlex
├── semantic-scholar.ts
├── pubmed.ts # PubMed/NCBI
├── core.ts # CORE
├── sec-edgar.ts # SEC EDGAR
├── fred.ts # FRED
├── opensanctions.ts # OpenSanctions
├── gdelt.ts # GDELT
├── wikidata.ts # Wikidata
├── crt-sh.ts # crt.sh
└── firecrawl.ts # FirecrawlLicense
MIT
Available Tools
4 toolsosint_getA
Fetch data from a resource ID or URL.
Automatically handles:
URLs → web pages (markdown + raw HTML), PDFs (downloaded), binaries
Resource IDs → structured data from connectors with optional filtering
Always returns full raw content with SHA256 hash for verification. Use 'summarize: true' with a question to extract only relevant content.
For local archival, provide output_path:
Web pages: saves raw.html, content.md, links.json, metadata.json to output_path/
PDFs/binaries: saves file to output_path
Inputs: target (required), limit, columns, filters, +3 more.
osint_list_sourcesA
List all available OSINT data sources and their status.
Returns for each connector:
Name and health (healthy, degraded, unavailable)
API key configuration status
Required environment variable if missing
Use to check which sources are available before searching.
Inputs: no named parameters.
osint_previewA
Preview a resource's schema and sample data before fetching.
For tabular data: shows column names, types, and sample rows. For documents: shows text excerpt and structure. For APIs: shows available parameters and endpoints.
Use to confirm a resource has what you need before calling osint_get.
Inputs: resource_id (required), max_bytes, row_limit.
osint_searchA
Search across 14 OSINT data sources. Returns results with available resources.
Auto-routes to the best source, or use source to query a specific connector.
Sources: data_gov, legiscan, courtlistener, census, openalex, semantic_scholar, pubmed, core, sec_edgar, fred, opensanctions, gdelt, wikidata, crt_sh
Examples:
"EPA air quality data California" → Data.gov
"Michigan renewable energy bill 2024" → LegiScan
"Brown v. Board of Education" → CourtListener
"population by county Texas" → Census
"machine learning medical diagnosis" → OpenAlex/PubMed
"Apple 10-K filing 2024" → SEC EDGAR
"GDP quarterly growth rate" → FRED
"Russian sanctions oligarchs" → OpenSanctions
"Ukraine conflict news" → GDELT
"microsoft.com subdomains" → crt.sh
Inputs: query (required), year, limit, source, +1 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
Each tool has a clear, non-overlapping purpose: listing sources, searching, previewing schemas, and fetching data. No ambiguity between them.
All tools follow a consistent 'osint_verb' pattern (preview, list_sources, search, get), with predictable naming.
Four tools cover the essential OSINT workflow (list, search, preview, get) without excess or deficiency.
The tool surface covers the full lifecycle: discover sources, search, preview data, and fetch. No obvious gaps for the intended use case.
Related MCP Connectors
Enrich, search, assess, and manage threat intelligence through 80+ typed MCP tools.
One MCP server over 253 data sources: Reddit, LinkedIn, YouTube, G2, search and AI answers.
One MCP server for all web data. Scrape, search, crawl, and AI research in one install.
The world's public data, one API. License-cleared public data sources for agents, via MCP and REST.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceMCP server to perform various OSINT tasks by leveraging common network reconnaissance tools.48-
- AlicenseDqualityDmaintenanceA comprehensive MCP server providing tools for IP, domain, email, and image-based open-source intelligence. It integrates services like Shodan, VirusTotal, and HaveIBeenPwned to facilitate advanced security research and data gathering.56108 npmISC
- AlicenseNot gradedqualityDmaintenanceMCP server that exposes 108+ omega-cli OSINT tools for reconnaissance, web analysis, threat intelligence, and reporting, enabling AI assistants to perform comprehensive open-source intelligence tasks.MIT
- AlicenseCqualityDmaintenanceMCP server for the OSINT Intelligence Platform, enabling AI assistants to interact with Telegram intelligence archives via 65 tools for search, entity analysis, event tracking, social graph, and platform monitoring.712MIT