AlphaVantageStockDB
MySQL database to hold stock price data from AlphaVantage, along with Python-based update scripts.
Install / Use
npx skills add justinclarkhome/AlphaVantageStockDBInstalls into whichever agent you are using.
README
AlphaVantageStockDB
A simple database to hold stock price data from AlphaVantage, along with some Python-based control scripts to seed/update the price data.
Some assumptions:
- You have MySQL/MariaDB server installed and running, you have login credentials, and you can create/edit databases.
- You have an AlphaVantage API key.
- You have Python 3.5+ installed, with the following modules installed: Pandas, Numpy, PyMySQL, PyYAML.
- Works in bash-like terminal environments (.sh on Linux, OSX) or Windows (.bat).
This codebase is a work in progress, though functional in current form. There is basic support for pulling intraday data from AlphaVantage and storing it (and appending new data upon subsquent updates), but notice the format of the intraday data differs from the daily data (e.g. no adjusted price/split coefficient/divident amount columns, which will be included as NaN/None when inserting, so that the format of the databases can be consistent).
When identifying tickers, we also provide a datasource for each (where the security symbol is the key of a dictionary, and the datasource is the value). This format allows for addition of new securities from new datasources, if/when any are identified (which will require coding of price-grabbing functions specific to those providers).
The creds_template.yaml (in the code_python folder) should be renamed creds.yaml and then populated with the credentials required to access each database (username, password) and each datasource (website, API key). This file is parsed by the Python update script when seeding/updating data. It is populated with dummy values here on GitHub.
There are several supporting functions included that call SQL stored functions/views/procedures. These exist to feed some basic reporting features into a GUI frontend to the updater that I will include at some point as I iron out its many quirks. Arguably it is not useful to add/delete symbols from the database on an ad-hoc basis. I may opt to simply delete these functions or move them to a separate module when the GUI eventually arrives.
Installation:
- Clone the repo.
- Run create_daily.sh and create_intraday.sh (the scripts will prompt you to enter your db username/password).
- Enter your database/API credentials in /code_python/creds_template.yaml and rename the file creds.yaml.
- In /code_python, run "python updater.py --daily --intraday" to seed the databases.
Update:
- There's now a simple Jupyter notebook in the /code_python directory with some examples of using the database in Python/Pandas.
Related Skills
codebase-memory-mcp
38.0kHigh-performance code intelligence MCP server. Indexes codebases into a persistent knowledge graph — average repo in milliseconds. 158 languages, sub-ms queries, 99% fewer tokens. Single static binary, zero dependencies.
codebase-memory-mcp
38.0kHigh-performance code intelligence MCP server. Indexes codebases into a persistent knowledge graph — average repo in milliseconds. 158 languages, sub-ms queries, 99% fewer tokens. Single static binary, zero dependencies.
codebase-memory-mcp
38.1kHigh-performance code intelligence MCP server. Indexes codebases into a persistent knowledge graph — average repo in milliseconds. 158 languages, sub-ms queries, 99% fewer tokens. Single static binary, zero dependencies.
tabularis
4.0kOpen-source desktop SQL workspace for PostgreSQL, MySQL/MariaDB, SQLite and 15+ more databases like DuckDB, ClickHouse, Redis and Firestore. Built-in MCP server for Claude, Cursor and Devin, SQL notebooks and visual EXPLAIN.
