sqlite-mcp-server
# Stock Pricing Data Generator
Generate synthetic stock pricing data for backtesting models.
## Aim
This project generates realistic synthetic stock pricing data for testing and validating stock price forecasting models. The generated data mimics real-world stock price movements with appropriate price ranges and trading dates.
## Features
- **Stocks**: apple, microsoft, meta, google
- **Exchanges**: nyse, nasdaq
- **Price Range**: $100 - $1000
- **Date Range**: Configurable via CLI (default: last 90 days)
- **Output**: SQLite database (stocks.db)
## Usage
```bash
uv run python generate_pricing.py
# Custom date range
uv run python generate_pricing.py --start 2026-01-01 --end 2026-04-25
```
## Database Schema
```sql
CREATE TABLE stock_pricing (
id INTEGER PRIMARY KEY,
stock_name TEXT NOT NULL,
stock_price REAL NOT NULL,
date TEXT NOT NULL,
stock_exchange TEXT NOT NULL
);
```
## Requirements
- Python 3.x
- uv
## Testing
```bash
uv run pytest test_generate_pricing.py -v
```
## MCP Server
The MCP server is now running over **STDIO** for direct interaction with SQLite.
### Start Server
```bash
uv run mcp_server.py
```
## License
MIT
TDQS
Scored across 3 tools
Each tool targets a distinct concern: executing SELECT queries, listing tables, and inspecting a table's schema. There is no meaningful overlap or ambiguity between them.
list_tables and get_table_structure follow a clear verb_noun pattern, but query_execution uses a noun-form name instead. The deviation is minor and the names remain understandable.
Three tools are well-scoped for a focused SQLite read-only server: a query execution entry point, table enumeration, and schema inspection. Each tool earns its place.
The set covers read-only database exploration well, but it lacks write or data-modification operations such as INSERT, UPDATE, DELETE, or DDL statements. This is a notable gap for a general SQLite server, though acceptable for read-only use cases.