analogue-slop meets Instagram DM MCP
Ex.mp4
More demo videos
sequential.mp4
dataset.mp4
a two-part experiment for the @galalabs instagram-dm hackathon.
vhs clips are edited with your username & a mysterious message tags you in public, slides into your dms, then lures you to a "terminal" at a custom domain vhs-ghost.com/username
- ghost-mcp-server
pulls targets from brightdata
auto-cuts personalised VHS clips
uploads reel, tags and DMs user withvhs-ghost.com/<username>
utilises a rotating account pool with proxies
running locally on nvidia jetson nano dev kit
the custom url shows the user their IG stats, email collection & mysterious countdown
transitions into an endless feed of vhs clips
cloudflare workers - edge hosted
fight ai slop with vhs slop
celebrate using technology & the internet for creative expression
opportunity to get introduced to mcp and hackathons
could be pivotd to market a product or service
my theory is that combing an obscure vhs clip, editing the actual username, and sending a url with /username it will create enough intrigue for some click through
create a campaign with 10 random users, use the use the campaign video tool to create personalized videos, then deploy subagents to upload and dm in parallel. personalize a video for @username, dm it to them with a silly message.
list all campaigns, delete x campaign, create a campgain. create a dataset of people with between 100-1000 followers and follow #nostalgia with a limit of 50 lines. Check every minute for the dataset until it is delievered, dont do anything else.
# Clone and setup
git clone https://github.com/streetmeat/ghostmcp.git
cd ghost
# Configure
cd ghost_mcp
cp .env.example .env
cp accounts.json.example accounts.json
# Edit these files with your credentials
# Install and run
pip install -r requirements.txt
python src/mcp_server.py --use-account-pool
Campaign Management:
mcp__ghost__fetch_bright_data_users
- Get users from Bright Dataset Marketplace APImcp__ghost__download_bright_data_snapshot
- Download completed snapshotmcp__ghost__select_random_users
- Select random users from datasetsmcp__ghost__create_campaign
- Create new campaignmcp__ghost__get_campaign_status
- Check campaign progressmcp__ghost__delete_campaigns
- Delete campaignsmcp__ghost__prepare_campaign_videos
- Pre-personalize videos
Video Processing:
mcp__ghost__create_video_chunks
- Create base video chunksmcp__ghost__list_video_chunks
- List available chunksmcp__ghost__get_chunk_info
- Get chunk detailsmcp__ghost__personalize_specific_chunk
- Add username overlay
Instagram Operations:
mcp__ghost__send_message
- Send DM messagemcp__ghost__upload_video_post
- Upload reel with tagmcp__ghost__share_post_to_dm
- Share post to DMmcp__ghost__get_user_info
- Get user informationmcp__ghost__get_user_posts
- Get user's postsmcp__ghost__get_account_status
- Check account pool statusmcp__ghost__mark_operation_complete
- Trigger account cooldown
fix all the issues and complexity that ideating & making this in 48 hours with claude created
troubleshoot speed of several tools
add analytics
add a database
dynamic url creation
extended video editing
make swipe feel better
figure out how to beat the algorithm
implement unique fingerprinting
figure out some way to pay for the claude subscription with it ;)
- MCP Server Documentation - Complete setup and API reference
there's some weird decisions due to the jetson's quirks and my lack of knowledge
don't trust the code.
yes the mcp_server.py is 2k lines ><