Gms MCP
GameMaker CLI + MCP server toolset
Installation
npx gms-mcpAsk AI about Gms MCP
Powered by Claude · Grounded in docs
I know everything about Gms MCP. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
GitHub Actions & Automation
This directory contains GitHub Actions workflows and automation scripts for gms-mcp.
Tweet Automation
The @gms_mcp Twitter account is automated using Claude API to generate tweets 3x daily.
How It Works
- Scheduled workflow (
workflows/x-scheduled-post.yml) runs at 8am, 2pm, 8pm UTC - Tweet generation (
scripts/generate_tweet.py) calls Claude API with context - Posting (
scripts/post_tweet.py) posts to X via API - History tracking persists across runs via GitHub Actions cache
History Persistence
Why we use cache instead of committing history:
The main branch is protected and cannot be pushed to from GitHub Actions workflows. We use actions/cache with a static key (tweet-history-v1) to persist tweet history between runs.
Key points:
- Static cache key ensures the same entry is overwritten each run
- Cache is accessed 3x/day, so it won't expire (7-day limit is for non-accessed caches)
- History includes: posted tweets, topic/format/angle coverage tracking, hashtag metadata
If history resets unexpectedly:
- Check if the workflow has been paused for >7 days (cache may have expired)
- The system will reinitialize with empty coverage and rebuild naturally
- For manual intervention, you can seed a
tweet_history.jsonfile in the workflow
Content Diversity System
To prevent repetitive tweets, the system tracks and rotates:
- Topics (14 categories): Code Intelligence, Asset Creation, Maintenance, etc.
- Formats (6 styles): Problem/Solution, Scenario, Comparison, Tip, Q&A, Workflow Story
- Angles (6+ per topic): Different perspectives on each topic
- Opening patterns (7 types): Statement, Scenario, Discovery, Comparison, Question, Workflow, Tip
- Hashtag strategy: Freeform, contextual hashtags (0-2 max, optional when not useful)
Each dimension is tracked independently with timestamps, ensuring the least-recently-used option is selected.
Validation
Generated tweets are validated for:
- Length (50-280 characters)
- Hashtag count (max 2)
- Bad patterns (corporate speak, emoji spam, negative GameMaker framing)
- Exact duplicates (hash comparison)
- Semantic duplicates (>60% word overlap with recent tweets)
- Overused opening patterns
Files
workflows/x-scheduled-post.yml- Main workflowworkflows/x-evergreen-experiment.yml- Evergreen experiment workflowscripts/generate_tweet.py- Tweet generation with Claude APIscripts/post_tweet.py- X API postingscripts/post_evergreen.py- Evergreen queue posting (does not usenext_tweet.txt)scripts/report_evergreen_experiment.py- Experiment KPI report generationscripts/tweet_context.py- Topic categories, formats, context buildingx-personality.md- Voice/tone guidelines
Evergreen Experiment Controls
The evergreen experiment is controlled entirely through repository variables:
X_SCHEDULED_PAUSED- when set totrue,x-scheduled-post.ymlis paused.X_EVERGREEN_EXPERIMENT_ACTIVE- when set totrue, evergreen workflow can run.X_EVERGREEN_EXPERIMENT_START_UTC- ISO UTC experiment start timestamp.X_EVERGREEN_EXPERIMENT_END_UTC- ISO UTC experiment end timestamp (exclusive).X_EVERGREEN_QUEUE_FILE- optional queue file path (defaults to.github/evergreen_queue.json).
The evergreen workflow posts from a versioned queue file and records metrics to job summary + artifacts without changing the release/main tweet staging flow.
Other Workflows
release.yml- Automated releases on version tagstest.yml- CI testing on pull requests
