Market Data Provider
Build and maintain a provider-agnostic market data module that other agent workspaces can reuse.
What this skill provides
- A stable
MarketDataProviderprotocol - Normalized domain models
- A provider factory selected by config
- Initial backends:
eodhd,mock - A smoke test script for installation checks
Design rules
- Keep report logic out of the module.
- Keep strategy logic out of the module.
- Keep execution/broker logic out of the module.
- Return normalized models, not raw vendor payloads.
- Add new providers under
references/providers/andscripts/market_data_provider/providers/without changing caller-facing interfaces.
Package layout
scripts/market_data_provider/— reusable Python packagescripts/smoke_test.py— provider connectivity checkscripts/release.py— repeatable release helperVERSION— semantic version for the skillreferences/install.md— installation/storefront instructionsreferences/release-process.md— release checklistreferences/compatibility.md— stability policyreferences/interface.md— protocol and model contractreferences/providers/eodhd.md— EODHD-specific notesscripts/market_data_provider/providers/mock.py— offline/testing backend
Default config contract
MARKET_DATA_PROVIDER=eodhd(ormockfor offline testing)EODHD_API_TOKENpreferredEODHD_API_KEYfallbackMARKET_DATA_TIMEOUT_SECONDSoptional
Use from other code
Import only the factory or protocol-facing types.
from market_data_provider.factory import create_market_data_provider
provider = create_market_data_provider()
health = provider.healthcheck()
quote = provider.get_latest_quote("AAPL.US")
Do not import provider-specific modules directly from report engines.
Installation on another agent
Use these exact steps in the storefront or install notes:
- Install or copy
market-data-providerintoskills/. - Set
MARKET_DATA_PROVIDER=eodhdfor live data orMARKET_DATA_PROVIDER=mockfor offline testing. - If using EODHD, set
EODHD_API_TOKEN(preferred) orEODHD_API_KEY. - Run
python3 skills/market-data-provider/scripts/smoke_test.py. - Confirm the JSON output shows provider health and a sample quote.
- Import
create_market_data_provider()frommarket_data_provider.factoryin downstream code.
For fuller install text, read references/install.md.
Release discipline
- Keep
VERSIONcurrent. - Follow
references/release-process.mdbefore shipping. - Preserve stable install and import paths per
references/compatibility.md. - Repackage
market-data-provider.skillafter changes.
When extending
When adding a provider:
- Implement
MarketDataProvider. - Normalize data into shared models.
- Add provider-specific env/config parsing.
- Register it in the factory.
- Extend the smoke test or add provider-specific checks.
