GeoGuessr Slack集成
MCP服务器和GeoGuessr的日常任务:创建挑战(需要登录),发布到Slack,并显示昨天的结果。
包括什么
- geoguessr_mcp_server.py –MCP服务器(获取每日挑战、创建挑战、发布到Slack等)。
- 每日家庭挑战.py –日常工作:创建一个新的 私有的 挑战(需要登录才能玩),在Slack上发布标题 “GeoGuessr-Softhouse每日挑战日/月/年”,并将昨天的结果附加为 排名|名称|结果|时间.
- create_challenge_browser.py –当API不可用时(由MCP和日常脚本使用),浏览器自动后退。
需求
- GeoGuessr帐户(建议用于创建挑战的Pro/Unlimited)。
_ncfacookie:登录geoguessr.com→ 开发者工具→ 应用→ Cookie→ copy_ncfa.- 带有Bot令牌和范围的Slack应用程序:
channels:read,chat:write,users:read. - 可选:
playwright和playwright install chromium用于浏览器回退。
设置
- 依赖项
pip install mcp requests python-dotenv playwright
playwright install chromium # optional, for browser fallback- 环境 –创建
.env在项目根目录中:
GEOGUESSR_COOKIE=your_ncfa_cookie_value
SLACK_BOT_TOKEN=xoxb-your-slack-bot-token
SLACK_CHANNEL_ID=C1234567890- 运行MCP服务器
python geoguessr_mcp_server.py看 SETUP_GUIDE.md 和 setup_slack_app.md 用于Slack应用程序设置。
每日9:00的Softhouse挑战赛
跑 每日家庭挑战.py 每天9:00(例如使用cron)。它将:
- 从加载上一个挑战ID
.daily_challenge_state. - 获取昨天的结果(排名、名称、结果、时间)。
- 创建新 私有的 挑战(需要登录;
accessLevel: 1). - 在Slack上发布标题 “GeoGuessr-Softhouse每日挑战日/月/年” 以及昨天的结果。
- 保存新的挑战ID以备下次运行。
Cron示例(当地时间9:00):
crontab -e添加:
0 9 * * * cd /path/to/geoguessr-slack-mcp && /path/to/venv/bin/python daily_softhouse_challenge.py >> /tmp/geoguessr_softhouse.log 2>&1替换 /path/to/geoguessr-slack-mcp 和 /path/to/venv/bin/python 与你的道路。
手动运行一次:
python daily_softhouse_challenge.py计划运行(欧洲中部时间9:00和12:00,工作日)
该作业由以下因素触发 外部cron (例如cron-job.org)调用GitHub Actions工作流。看 外部\_ CRON_SETUP.md 用于设置。显示 之前的挑战结果 在每个帖子中,添加 GIST_ID 和 GH_TOKEN 关于回购秘密(见该文档)。
手动额外挑战(当天)
您还可以手动运行脚本,在当天发布额外的挑战。
当天如何应对额外的挑战
- 打开终端。
- 转到项目并运行相同的脚本:
cd /path/to/geoguessr-slack-mcp
./venv/bin/python daily_softhouse_challenge.py(使用您的实际项目路径;在Windows上使用 venv\Scripts\python.exe.)
行为
- 标题: 今天的第一个挑战没有数字。第二个得到 #2,第三 #3等等(例如。 *GeoGuessr-Softhouse每日挑战赛2026年2月19日#2*).
- 结果: 每个新帖子总是显示以下结果 先前 挑战(本次跑步前的挑战)。这可能是当天早些时候或昨天。
- 9:00的自动跑步被视为当天的第一个挑战。你当天晚些时候做的任何跑步都会得到#2、#3等。
MCP配置(光标)
示例 mcp.json:
{
"mcpServers": {
"geoguessr": {
"command": "python",
"args": ["/path/to/geoguessr_mcp_server.py"],
"env": {
"GEOGUESSR_COOKIE": "your_ncfa_cookie_value",
"SLACK_BOT_TOKEN": "xoxb-...",
"SLACK_CHANNEL_ID": "C0AFPA99VEE"
}
}
}
}挑战需要登录
日常挑战由 每日家庭挑战.py 使用 accessLevel: 1 (私人/仅限邀请),因此只有登录了GeoGuessr的用户才能玩。
