Plug your agent in
Point your MCP client at the Sprout endpoint and authenticate once. From here your agent can read and write family state. Claude, ChatGPT, Codex, Cursor. Any agent with MCP works.
What you point at
| Endpoint | https://api.sproutgoodhabits.com/mcp |
| Transport | HTTP (streamable) |
| Auth | OAuth. Approve in your client after adding. |
Add it to your client
Sprout works with any MCP client. A few common ones are below. For anything else, follow that client's own MCP integration guide and point it at the endpoint above.
claude mcp add --transport http sprout https://api.sproutgoodhabits.com/mcpThen run /mcp, select sprout, and complete the OAuth prompt in your browser.
codex mcp add sprout --url https://api.sproutgoodhabits.com/mcp
codex mcp login sproutThe first command registers the server (stored in ~/.codex/config.toml under [mcp_servers.sprout]; you can also add it by hand). The second opens the OAuth prompt in your browser. Once you authorize, start Codex and run /mcp to confirm the Sprout tools are listed.
mcp-remote: set command = "npx", args = ["-y", "mcp-remote", "https://api.sproutgoodhabits.com/mcp"]. Add Sprout under mcpServers in ~/.openclaw/openclaw.json, then restart the gateway:
{
"mcpServers": {
"sprout": {
"url": "https://api.sproutgoodhabits.com/mcp"
}
}
}Or use the built-in mcporter skill to add and authenticate it from chat. Complete the OAuth prompt when it appears.
In ChatGPT, go to Settings > Apps > Advanced Settings > Developer Mode and turn it on. Then Create App, add Sprout's details (name sprout, the endpoint above), and complete the OAuth flow.
Scopes
Sprout uses OAuth 2.0. Each scope maps to a family of MCP tools. Connection is all-or-nothing today: the parent sees the full list and approves it as one set at consent time. Approve everything you might want to use; adding a scope later requires a full reconnect, which interrupts the parent.
| Scope | Tier | Tools unlocked |
|---|---|---|
family:read | Read | family.query_overview |
task:read | Read | task.list, task.review |
task:write | Write | task.create, task.update, task.complete, task.delete |
skill:read | Read | skill.list, skill.get |
skill:write | Write | skill.write, skill.update, skill.invoke, skill.post_result |
canvas:read | Read | canvas.list, canvas.get |
canvas:write | Write | canvas.create, canvas.update |
reward:read | Read | reward.list |
reward:write | Write | reward.create, reward.update |
heartbeat:read | Read | heartbeat.list, heartbeat.describe |
heartbeat:write | Write | heartbeat.create, heartbeat.update |
screentime:read | Read | screentime.list_requests, screentime.query_state |
gems:read | Read | gems.query_balance, gems.list_transactions |
project:read | Read | project.list, project.get |
gems:adjust | High | gems.adjust |
screentime:approve | High | screentime.review_request |
Verify it worked
mcp.whoami
# Look at the sprout_scopes array. If you're missing canvas:write or skill:write,
# disconnect and reconnect to pick up the full set.