Server data from the Official MCP Registry
SEC EDGAR fundamentals, ratios, valuation, and filings for AI agents. Point-in-time safe.
SEC EDGAR fundamentals, ratios, valuation, and filings for AI agents. Point-in-time safe.
Remote endpoints: streamable-http: https://mcp.valuein.biz/mcp
Valid MCP server (1 strong, 0 medium validity signals). No known CVEs in dependencies. Imported from the Official MCP Registry.
15 tools verified Β· Open access Β· No issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Remote Plugin
No local installation needed. Your AI client connects to the remote endpoint directly.
Add this to your MCP configuration to connect:
{
"mcpServers": {
"io-github-valuein-mcp-sec-edgar": {
"url": "https://mcp.valuein.biz/mcp"
}
}
}From the project's GitHub README.
This repository is the public home for Valuein's SEC EDGAR fundamentals data product. It is the place to:
The source code for the SDK, MCP server, and data pipeline lives in dedicated repositories. This repo is the front door.
Survivorship-bias-free, point-in-time US fundamentals sourced from SEC EDGAR:
standard_concept values| Feature | Why it matters |
|---|---|
| π Point-in-Time (PIT) | Every fact carries filing_date and knowledge_at β no look-ahead bias in backtests |
| βοΈ Survivorship-bias free | Delisted, bankrupt, acquired companies included |
| π Standardized concepts | 11,966 raw XBRL tags mapped to canonical names (both are on the fact table) |
| π DuckDB native | Millisecond analytics via httpfs against remote Parquet |
| βοΈ Zero-setup | pip install and query β no database provisioning, no large downloads |
We deliver the same underlying data through five interfaces so it lands wherever you already work.
| Channel | For | How to get it |
|---|---|---|
| Python SDK | Quants, engineers, data scientists | pip install valuein-sdk Β· PyPI |
| MCP Server | AI agents (Claude, Cursor, Codex, etc.) | https://mcp.valuein.biz/mcp Β· see MCP Discovery |
| Excel / Power Query | Financial analysts, CPAs, researchers | Excel setup guide |
| Web Dashboard | Non-technical users, retail, executives | valuein.biz |
| REST API | B2B partners, third-party integrations | https://data.valuein.biz β contact us for the integration guide |
All channels authenticate with the same Stripe-issued API token and share the same tier model.
| Plan | Coverage | Data | Price | Get Access |
|---|---|---|---|---|
| Sample | S&P 500 Β· last 5 years Β· active + inactive | Public, read-only | Free | No registration β works out of the box |
| S&P 500 | S&P 500 Β· full history Β· active + inactive | Full Parquet access | Free | Register |
| Pro | Full US universe Β· all core fundamentals | Full Parquet access | $200 / month | Subscribe |
| Pro (Annual) | Same as Pro Β· 20% discount | Full Parquet access | $1,920 / year | Subscribe |
One token unlocks the SDK, MCP, Excel, and REST API β no per-channel billing.
1. Install
pip install valuein-sdk
2. Query real data without a token (Sample tier, no registration):
from valuein_sdk import ValueinClient
with ValueinClient() as client:
print(client.me()) # {plan, status, email, createdAt}
print(client.manifest()) # snapshot metadata
print(client.tables()) # loaded table names
print(client.get_schema("fact")) # column β DuckDB type
df = client.query("SELECT COUNT(*) FROM entity")
print(df)
3. Unlock the full dataset β add a token, no code changes needed:
echo 'VALUEIN_API_KEY="your_token_here"' >> .env
4. Production pattern β context manager, typed errors, pre-built SQL templates:
from valuein_sdk import ValueinClient, ValueinError
with ValueinClient() as client:
try:
df = client.run_template(
"fundamentals_by_ticker",
ticker="AAPL",
start_date="2020-01-01",
end_date="2024-01-01",
form_types=["10-K", "10-Q"],
metrics=["TotalRevenue", "NetIncome", "OperatingCashFlow"],
)
print(df)
except ValueinError as e:
print(f"SDK error: {e}")
Full schema in docs/schema.json and docs/data_catalog.md.
| Table | Description | Records |
|---|---|---|
references | Start here. Flat join of entity + security + index_membership. One row per security with is_sp500, is_active, sector, exchange. Replaces 3-table joins. | ~7K |
entity | Company metadata | 19K+ |
security | Ticker history (SCD Type 2) | 7K+ |
filing | Filing metadata (10-K, 10-Q, 8-K, 20-F + amendments) | 12M+ |
fact | Financial statement facts β raw concept + canonical standard_concept on every row | 108M+ |
valuation | Two-stage DCF + DDM intrinsic values per entity per period | 19K+ |
taxonomy_guide | 2026 US GAAP Taxonomy Guide | 11,966 |
index_membership | Historical index entry/exit dates | 8K+ |
references.cik β entity.cik
security.entity_id β entity.cik
filing.entity_id β entity.cik
fact.entity_id β entity.cik
fact.accession_id β filing.accession_id
index_membership.security_id β security.id
| Column | Table | Use for |
|---|---|---|
report_date / period_end | filing / fact | Fiscal calendar alignment |
filing_date | filing | PIT backtest filter β when the SEC received the filing |
knowledge_at | fact | Millisecond-precision PIT for intraday research |
For cross-company backtests, always filter by
filing_date <= trade_date. Usingreport_dateintroduces look-ahead bias.
standard_concept namesQuery fact.standard_concept with canonical names like 'TotalRevenue', 'NetIncome', 'OperatingCashFlow', 'CAPEX', 'StockholdersEquity' β not raw XBRL tags ('Revenues', 'NetIncomeLoss', 'Assets'). The full canonical list lives in docs/data_catalog.md.
Start from references β zero joins for cross-company filters:
SELECT symbol, name, sector
FROM references
WHERE is_sp500 = TRUE AND is_active = TRUE AND sector ILIKE '%technology%'
LATERAL for the latest filing per company:
JOIN LATERAL (
SELECT accession_id FROM filing
WHERE entity_id = r.cik AND form_type = '10-K'
ORDER BY filing_date DESC LIMIT 1
) f ON TRUE
Pivot multiple concepts in one fact scan:
SELECT
MAX(CASE WHEN standard_concept = 'TotalRevenue' THEN numeric_value END) AS revenue,
MAX(CASE WHEN standard_concept = 'StockholdersEquity' THEN numeric_value END) AS equity
FROM fact
WHERE standard_concept IN ('TotalRevenue', 'StockholdersEquity')
GROUP BY accession_id
Cash flow items: use
COALESCE(derived_quarterly_value, numeric_value)β Q2/Q3 10-Qs report YTD, this column isolates the quarter. CAPEX sign varies by filer β alwaysABS(capex).
All examples work against the SDK published on PyPI. The Sample tier runs without a token.
examples/python/)| Script | Level | What it shows |
|---|---|---|
getting_started.py | Beginner | First query, token check, entity counts by sector |
usage.py | Reference | Every public SDK method demonstrated |
entity_screening.py | Beginner | Screen by sector, SIC code, active vs inactive |
financial_analysis.py | Intermediate | Revenue trends, margins, peer comparison |
pit_backtest.py | Intermediate | Correct PIT discipline, restatement impact |
survivorship_bias.py | Intermediate | Delisted companies, index membership, bias quantification |
production-ready.py | Advanced | Service pattern for FastAPI / Celery / Airflow integrations |
Run any example:
# Sample tier β no token needed
python examples/python/getting_started.py
# Paid tier
VALUEIN_API_KEY=xxx python examples/python/pit_backtest.py
examples/notebooks/)| Notebook | Open in Colab |
|---|---|
| Quickstart | |
| Fundamental Analysis | |
| PIT Backtest | |
| Survivorship Bias |
The SDK exposes typed exceptions so your code can react appropriately to each failure mode:
from valuein_sdk import (
ValueinClient,
ValueinAuthError, # HTTP 401/403 β invalid or expired token
ValueinPlanError, # HTTP 403 β endpoint requires a higher plan
ValueinNotFoundError, # HTTP 404 β table or endpoint does not exist
ValueinRateLimitError, # HTTP 429 β includes .retry_after (seconds)
ValueinAPIError, # HTTP 5xx β includes .status_code
)
with ValueinClient() as client:
try:
df = client.query("SELECT * FROM fact LIMIT 1000")
except ValueinAuthError:
print("Check your VALUEIN_API_KEY β it may be expired or invalid.")
except ValueinPlanError:
print("This query requires a higher-tier plan. Upgrade at valuein.biz.")
except ValueinRateLimitError as e:
print(f"Rate limited. Retry allowed in {e.retry_after}s.")
except ValueinAPIError as e:
print(f"Gateway error (status {e.status_code}).")
Stream SEC fundamentals straight into Excel via Power Query β no Python, no scripts.
Requirements: Microsoft 365 (build 16.0.17531+) and an active API token.
Quick path:
docs/excel-guide.mdData > Refresh AllThe workbook ships with 8 pre-configured sheets: Income Statement, Balance Sheet, Cash Flow, Entities, Securities, Filings, Index Membership, and the Data Dictionary. The full walkthrough β including token setup, Named Ranges, refresh troubleshooting, and the Power Query M-language internals β is in docs/excel-guide.md.
On Excel 2019 or earlier, Parquet.Document() is unavailable; email support@valuein.biz for CSV exports.
Valuein's MCP server exposes SEC EDGAR fundamentals to any MCP-capable AI agent (Claude, Cursor, Codex, and the wider agent ecosystem).
https://mcp.valuein.biz/mcp (Streamable HTTP, MCP spec 2025-11-25)Authorization: Bearer <your_api_token> β the same token used by the SDK and Excelserver.json in this repo is the source of truth for the registry listingio.github.valuein/mcp-sec-edgar| Tool | Description | Available in |
|---|---|---|
search_companies | Ticker / name / CIK lookup | All plans |
get_sec_filing_links | Direct links to 10-K, 10-Q, 8-K, 20-F on SEC EDGAR | All plans |
get_company_fundamentals | Annual (all plans) or quarterly + extended history (Pro) | Free β Pro |
get_financial_ratios | Margins, returns, leverage, efficiency ratios | Pro |
get_dcf_inputs | Raw inputs for two-stage DCF + DDM models | Enterprise |
Claude Desktop β add to claude_desktop_config.json:
{
"mcpServers": {
"valuein": {
"url": "https://mcp.valuein.biz/mcp",
"headers": { "Authorization": "Bearer YOUR_VALUEIN_API_KEY" }
}
}
}
Any MCP-compliant client that supports Streamable HTTP remotes will work with the same URL + Bearer token.
Everything in docs/ is kept in sync with the production data.
| Document | What's in it |
|---|---|
docs/METHODOLOGY.md | Sourcing, PIT architecture, restatement handling, XBRL normalization |
docs/COMPLIANCE_AND_DDQ.md | Data provenance, MNPI policy, PIT integrity, security, SLA summary |
docs/SLA.md | Uptime targets, data freshness, support response times, SLA credits |
docs/excel-guide.md | Full Excel / Power Query setup walkthrough |
docs/data_catalog.md | Canonical standard_concept names and definitions |
docs/DATA_CATALOG.xlsx | Same catalog as a workbook β columns, types, sample values |
docs/schema.json | Machine-readable table + column schema |
GitHub Issues is the primary support channel. Four templates cover the common cases:
| I want to⦠| Open |
|---|---|
| Report incorrect or suspicious data | Data Quality Report |
| Request a feature, concept, or dataset | Feature Request |
| Report an outage or degraded service | Service Outage |
| Ask a general question | General Question |
For private or contractual matters (DPAs, procurement, DDQs, enterprise SLAs): support@valuein.biz.
Contributions β examples, notebook improvements, documentation fixes β are welcome. See CONTRIBUTING.md for the workflow and style guide.
Apache 2.0. See NOTICE for attribution.
This repository is provided for research and educational purposes. It is not investment advice. No warranty of fitness for any particular trading, investment, or regulatory purpose is implied.
Be the first to review this server!
by Modelcontextprotocol Β· Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno Β· Developer Tools
Toleno Network MCP Server β Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace Β· Developer Tools
Create, build, and publish Python MCP servers to PyPI β conversationally.