Steady检查提交工具

一个本地MCP服务器,用于通过驱动Steady的Web表单提交Steady检查,支持团队发现、检查提交等功能。

  • by Sarthak-ignite
  • JavaScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 Sarthak-ignite/steady-mcp

使用说明

稳定MCP(本地)

这是一个 本地MCP服务器 通过驾驶Steady提交Steady签到 网页表单 (有 没有官方稳定的API).

它是为工作流而构建的:

你告诉AI: 团队+登记字段 (上一个/下一个/阻断器)→ AI调用MCP工具→ 提交了稳定的入住登记。


这支持什么

  • 电子邮件+密码登录 (两步流从 /signin)via steady_login
  • 基于Cookie的身份验证 通过 steady_set_cookies (非标准身份验证流的回退)
  • 团队发现 通过 steady_list_teams
  • 提交一个团队的签到 通过 steady_submit_checkin

它是如何工作的(重要)

稳定旋转 _sthr_session 加载每日编辑页面时使用cookie(/check-ins/YYYY-MM-DD/edit).
所以 此服务器使用curl cookie jar (cookiejar.txt)以在GET和POST之间保留更新的会话cookie。


需求

  • Node.js 18+
  • 光标 (或另一个MCP客户端),支持通过stdio运行本地MCP服务器
  • 访问Steady网络应用程序(https://app.steady.space)

安装

cd tools/steady-mcp
npm install

配置光标(MCP)

在Cursor MCP配置中添加服务器条目。

在哪里 mcp.json?

常见位置:

  • macOS/Linux: ~/.cursor/mcp.json
  • 视窗: %USERPROFILE%\\.cursor\\mcp.json

如果看不到,请使用MCP服务器的Cursor UI设置(推荐),或搜索 mcp.json 在你的机器上。

快速入门:macOS(推荐)

  1. 安装Node.js 18+
  • 如果您使用Homebrew:
brew install node
node -v
  1. 安装依赖项
cd <ABS_PATH_TO_REPO>/tools/steady-mcp
npm install
  1. 添加 steady-mcp 到 ~/.cursor/mcp.json (示例如下)

  2. 重新启动游标 (退出+重新打开)

  3. 在Cursor中,运行:

  • steady_login
  • steady_submit_checkin

快速入门:Windows

  1. 安装Node.js 18+
  • 如果你使用 winget:
winget install OpenJS.NodeJS.LTS
node -v
  1. 安装依赖项
cd <ABS_PATH_TO_REPO>\tools\steady-mcp
npm install
  1. 添加 steady-mcp 到 %USERPROFILE%\.cursor\mcp.json

  2. 重新启动游标 (完全退出+重新打开)

  3. 在Cursor中,运行:

  • steady_login
  • steady_submit_checkin

示例 mcp.json 片段

替换 <ABS_PATH_TO_REPO> 以及您的电子邮件。

{
  "mcpServers": {
    "steady-mcp": {
      "command": "node",
      "args": [
        "<ABS_PATH_TO_REPO>/tools/steady-mcp/src/index.js"
      ],
      "env": {
        "STEADY_BASE_URL": "https://app.steady.space",
        "STEADY_EMAIL": "you@company.com",
        "STEADY_PASSWORD": "<YOUR_PASSWORD>",
        "STEADY_MCP_DEBUG": "0"
      }
    }
  }
}

Windows路径提示(重要)

在JSON中,Windows反斜杠需要转义。最简单的选择:在 args 路径:

{
  "mcpServers": {
    "steady-mcp": {
      "command": "node",
      "args": [
        "C:/Users/<YOU>/path/to/repo/tools/steady-mcp/src/index.js"
      ],
      "env": {
        "STEADY_BASE_URL": "https://app.steady.space",
        "STEADY_EMAIL": "you@company.com",
        "STEADY_PASSWORD": "<YOUR_PASSWORD>"
      }
    }
  }
}

安全说明

  • STEADY_PASSWORD 在 mcp.json 这是最简单的设置,但 不 非常适合安全。
  • 更喜欢 STEADY_PASSWORD_COMMAND (在运行时检索密码)。

凭证/秘密(跨平台)

服务器从MCP客户端提供的环境变量中读取凭据。

选项A(简单):明文环境密码

  • STEADY_EMAIL
  • STEADY_PASSWORD

选项B(推荐):密码命令

  • STEADY_EMAIL
  • STEADY_PASSWORD_COMMAND --将密码打印到stdout的命令(无提示)

示例:

  • macOS钥匙扣 (建议在macOS上使用)
    1. 存储一次:
security add-generic-password -a "you@company.com" -s "steady-mcp" -w "<YOUR_PASSWORD>" -U
  1. 在MCP环境中:
    • STEADY_PASSWORD_COMMAND=security find-generic-password -w -s steady-mcp -a you@company.com
  • 视窗:使用密码管理器CLI(例如1Password CLI/Bitwarden CLI)或打印密码的小型本地脚本。
  • 任何操作系统:使用密码管理器的CLI,或保存在git之外的小脚本。

选项C(仅限macOS回退):无需命令即可查找钥匙串

如果您有Keychain条目,服务器可以在macOS上自动读取它:

  • STEADY_EMAIL=you@company.com
  • 可选地 STEADY_KEYCHAIN_SERVICE=steady-mcp
  • 可选地 STEADY_KEYCHAIN_ACCOUNT=you@company.com

身份验证选项

1) 登录自动化(电子邮件→ 密码)

用途:

  • steady_login

这将登录并写入:

  • cookies.txt (Cookie标头字符串)
  • cookiejar.txt (curl jar;内部用于处理会话旋转)

2) 基于Cookie的身份验证(回退)

如果登录自动化对您的Steady帐户不起作用,您可以从浏览器设置Cookie:

  1. 在Steady(浏览器)中:DevTools→ 应用/存储→ Cookie→ https://app.steady.space
  2. 复制这些Cookie:
    • _sthr_session
    • remember_user_token (如果存在)
  3. 构建Cookie标头字符串:
_sthr_session=...; remember_user_token=...
  1. 电话:
  • steady_set_cookies 随着 { "cookies": "_sthr_session=...; remember_user_token=..." }

文件位置(存储Cookie的位置)

默认值(可以通过env覆盖):

  • macOS
    • 饼干: ~/Library/Application Support/steady-mcp/cookies.txt
    • 罐子: ~/Library/Application Support/steady-mcp/cookiejar.txt
  • 视窗
    • 饼干: %APPDATA%\\steady-mcp\\cookies.txt
    • 罐子: %APPDATA%\\steady-mcp\\cookiejar.txt
  • Linux
    • 饼干: $XDG_CONFIG_HOME/steady-mcp/cookies.txt (或 ~/.config/steady-mcp/cookies.txt)
    • 罐子: $XDG_CONFIG_HOME/steady-mcp/cookiejar.txt (或 ~/.config/steady-mcp/cookiejar.txt)

覆盖:

  • STEADY_COOKIES_PATH
  • STEADY_COOKIE_JAR_PATH

使用(日常)

步骤0:重新启动游标

添加/更新MCP配置后,完全重新启动Cursor(退出+重新打开)。

步骤1:登录(刷新Cookie)

电话:

  • steady_login

然后验证:

  • steady_ping → 应返回 { "ok": true }

第二步:列出团队名称(可选)

电话:

  • steady_list_teams

第3步:提交一个团队的今天登记

电话:

  • steady_submit_checkin

例子:

{
  "team": "Everest AI",
  "previous": "Wrapped up CI fixes and reviewed PRs.",
  "text": "Next: finalize the MCP schema changes and update docs.",
  "blockers": "No blockers.",
  "mood": "calm"
}

成功通常是:

  • status_code: 302

工具(API表面)

  • steady_login:登录并在本地保存Cookie
  • steady_set_cookies:手动保存浏览器Cookie
  • steady_ping:验证身份验证
  • steady_list_teams:从每日编辑页面列出团队名称/id
  • steady_submit_checkin:提交一个团队

故障排除

从这里开始: docs/TROUBLESHOOTING.md

常见问题:

  • 在游标中找不到工具

    • 完全重新启动Cursor
    • 验证 mcp.json 入口路径正确且绝对
    • 验证 npm install 被撞了 tools/steady-mcp
  • HTTP 422

    • 通常意味着提交被拒绝(已签入/会话过时/权限不足)
    • 跑 steady_login 再试一次
    • 确认该团队实际上正在Steady的每日页面上等待
  • 需要调试

    • 集 STEADY_MCP_DEBUG=1 (警告:调试输出可能包含敏感Cookie)