Content Interviewer MCP
# Content Interviewer MCP
Content Interviewer MCP is a local Python MCP server that discovers research topics, interviews you to uncover your unique perspective, and turns your insights into content such as short-form Reel scripts.
## Project status
The MVP is complete and ready for local use with MCP-compatible clients such as Codex.
## Requirements
- Python 3.11 or newer
- SQLite with FTS5 support
## Development setup
Create a virtual environment:
```bash
python3 -m venv .venv
```
Activate it:
```bash
source .venv/bin/activate
```
Install the project and its development dependencies:
```bash
python -m pip install -e ".[dev]"
```
## Development checks
Run the tests:
```bash
python -m pytest
```
Run linting:
```bash
python -m ruff check .
```
Check that the source compiles:
```bash
python -m compileall -q src
```
## Architecture
The initial version uses:
- the official Python MCP SDK
- Pydantic for input validation
- SQLite for local persistence
- SQLite FTS5 for full-text search
- pytest for automated testing
- Ruff for linting
- STDIO for communication with Codex
The project starts as a local, single-user application. SQLite keeps private data local without requiring a separate database server. FTS5 provides the initial search implementation; embeddings will only be considered after the MVP demonstrates a need for them.
## Project structure
```text
src/
content_interviewer/
server.py
config.py
db/
connection.py
migrations/
repositories/
services/
tools/
schemas/
utils/
resources/
tests/
fixtures/
docs/
data/
```
## Privacy
ChatGPT exports, SQLite databases, environment files, logs, and other private local data must not be committed to version control. The server must not log complete imported conversations or article bodies.
## MVP boundaries
Version 0.1 does not include a web dashboard, multi-user accounts, remote deployment, embeddings, automatic social-media publishing, or live access to a ChatGPT account.
TDQS
Scored across 10 tools
Each tool targets a distinct resource or workflow phase: personal context, content ideas, status updates, imports, articles, sources, topic candidates, interview answers, and assets. Even the three 'save' tools are clearly separated by noun and description.
All tool names follow a consistent verb_noun snake_case pattern, such as search_personal_context, refresh_sources, and save_content_asset. The naming conventions are uniform and predictable throughout the set.
Ten tools is well within the ideal range for a specialized content workflow. Each tool covers a meaningful operation without redundancy or bloat.
The set covers ingestion, ideation, status management, and asset creation well, but there are notable gaps: no list/get tool for saved content ideas, no retrieval of saved interview answers or content assets, and no way to view full article bodies. These omissions create potential dead ends in the workflow.