Skip to main content
Glama
rehanvipin

sqlite-mcp-server

by rehanvipin
README.md
# 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

A3.5/5.0

Scored across 3 tools

Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness3/5

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.

Maintenance

ActivityInactive
ResponsivenessNo issues