Carved out from the StockDocs monorepo. Flask API over the ChromaDB vector store and article corpus with OpenAPI spec.
52 lines
1.7 KiB
Markdown
52 lines
1.7 KiB
Markdown
# StockDocs — MCP
|
|
|
|
Data API server for the StockDocs financial news platform: exposes the processed article corpus and vector database over HTTP so LLM clients (via MCP wrappers) can query semantic search results, article content, and company facts.
|
|
|
|
Part of the StockDocs project family:
|
|
|
|
| Repo | What it is |
|
|
|------|------------|
|
|
| [StockDocs](https://git.jarianc.com/jarianc/StockDocs) | Processing core — article server, NLP analysis, embeddings |
|
|
| [stockdocs-scraper](https://git.jarianc.com/jarianc/stockdocs-scraper) | RSS scraper — collects the article corpus |
|
|
|
|
## Endpoints
|
|
|
|
| Method | Path | Description |
|
|
|--------|------|-------------|
|
|
| POST | `/query` | Semantic search over the ChromaDB vector store |
|
|
| POST | `/articles/query` | Filter the article corpus by criteria |
|
|
| GET | `/articles/latest/<field>` | Latest articles by field |
|
|
| GET | `/company/<name>/facts` | Company fact sheet |
|
|
| GET | `/company/<name>/products` | Company product list |
|
|
| POST | `/company/facts/update` | Update a company fact sheet |
|
|
| POST | `/facts` | Extracted-facts query |
|
|
| GET | `/health` | Health check |
|
|
| GET | `/info` | Service info |
|
|
| GET | `/openapi.json` | OpenAPI 3.0 spec |
|
|
|
|
## Running
|
|
|
|
```bash
|
|
pip install -r requirements.txt
|
|
python server.py # :5005
|
|
```
|
|
|
|
Requires a running ChromaDB instance (host/port via environment).
|
|
|
|
## Docker
|
|
|
|
```bash
|
|
docker build -t stockdocs-mcp .
|
|
docker run -p 5005:5005 -e CHROMADB_HOST=<host> stockdocs-mcp
|
|
```
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
.
|
|
├── server.py # Flask app — all endpoints
|
|
├── openapi.json # OpenAPI 3.0 spec (also served at /openapi.json)
|
|
├── requirements.txt # Python dependencies
|
|
└── Dockerfile # python:3.12-slim image
|
|
```
|