theo-van-gogh-mcp
by johnfire
README.md
# theo-van-gogh-mcp
MCP server that exposes the [theo-van-gogh](https://github.com/johnfire/theo-van-gogh) art management system to Claude (or any MCP-compatible AI).
## What it does
Lets an AI assistant manage your art catalogue — find paintings, post to social media, upload to gallery sites, schedule posts, and update metadata — by calling tools over the Model Context Protocol.
## Setup
### 1. Install `mcp` into the main project's virtualenv
The MCP server runs inside theo-van-gogh's existing virtualenv so it has access to all dependencies.
```bash
cd ~/programming/theo-van-gogh
source venv/bin/activate
pip install "mcp[cli]"
```
### 2. Configure Claude Desktop
Merge the following into `~/.config/claude/claude_desktop_config.json` (Linux) or `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS):
```json
{
"mcpServers": {
"theo-van-gogh": {
"command": "/home/christopher/programming/theo-van-gogh/venv/bin/python",
"args": ["/home/christopher/programming/theo-van-gogh-mcp/server.py"],
"env": {
"THEO_VAN_GOGH_PATH": "/home/christopher/programming/theo-van-gogh"
}
}
}
}
```
See `claude_desktop_config.example.json` for a copy-pasteable example.
### 3. Restart Claude Desktop
The server starts automatically when Claude Desktop launches.
## Available tools
| Tool | Description |
|---|---|
| `get_painting` | Full metadata for one painting |
| `find_painting` | Fuzzy search by name |
| `list_platforms` | All platforms with status |
| `check_login_status` | Browser session health |
| `verify_config` | Check paths and API keys |
| `generate_skeleton_metadata` | Stub metadata for new paintings |
| `update_painting_metadata` | Edit title, description, price, etc. |
| `sync_collection_folders` | Create missing collection dirs |
| `sync_instagram_folders` | Mirror folder structure |
| `post_to_social` | Post a painting now |
| `schedule_post` | Schedule a future post |
| `run_scheduled_posts` | Execute due scheduled posts |
| `upload_to_faso` | Browser-upload a painting to FASO |
| `set_dimension_unit` | "cm" or "in" |
| `add_list_item` | Add to substrates/mediums/etc. |
## Available resources
| URI | Content |
|---|---|
| `tvg://capabilities` | Plain-English guide to all tools (AI reads this first) |
| `tvg://paintings` | All paintings with upload/post status |
| `tvg://pending` | Paintings needing uploads or posts, by platform |
| `tvg://schedule` | Upcoming and recent scheduled posts |
| `tvg://settings` | Config, paths, credential status |
## What stays manual
- **First browser login** for FASO and Cara — use admin option 17 in the main CLI
- **Processing new paintings** (AI title generation, entering dimensions) — use `python main.py process`
## Support
If you find this useful, a small donation helps keep projects like this going:
[Donate via PayPal](https://paypal.me/christopherrehm001)
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues