FlowState MCP
by attaelahi
README.md
# π§ FlowState MCP
> **Never lose your work context again.**
> AI-powered session memory that picks up exactly where you left off.
[](https://opensource.org/licenses/MIT)
[](https://www.python.org)
[](https://modelcontextprotocol.io)
[](https://cursor.com)
[](https://claude.ai)
---
## π© The Problem Every Developer Knows
You're in flow. Writing good code. Making decisions. Solving hard problems.
Then life happens.
You close your laptop for dinner. Sleep. A meeting pulls you away. You come back and...
> *"What was I doing? Why did I write it this way? Where was I supposed to go next?"*
You spend 20β40 minutes just **reconstructing context** that was already in your head. That's not work β that's tax.
**The average developer loses 30+ minutes of productivity every single day to context reconstruction.**
FlowState eliminates that tax entirely.
---
## β¨ How It Works
As you work, you log context naturally through your AI assistant:
```
You: "Log that I decided to use Redis for session caching because Postgres was too slow under load"
You: "I'm blocked β the Redis connection times out in Docker but works locally"
You: "Checkpoint β I'm stopping for dinner, I was building the session middleware"
```
When you come back:
```
You: "Resume my work"
```
FlowState hands you a complete brain dump β exactly where you left off, every decision you made, every blocker you hit, every idea that occurred to you. **You're back in flow state in 10 seconds.**
---
## π οΈ Tools
| Tool | What you say | What happens |
|------|-------------|--------------|
| `checkpoint` | *"Checkpoint β stopping for the day"* | Saves your full work context |
| `resume` | *"Resume my work"* | Returns complete context brain dump |
| `log_decision` | *"Log that I chose Postgres over Mongo because..."* | Decision captured with reasoning |
| `log_blocker` | *"Log blocker β Redis timeout in Docker"* | Blocker tracked with workaround |
| `resolve_blocker` | *"Mark blocker abc123 as resolved"* | Clears it from future resumes |
| `log_idea` | *"Log idea β add rate limiting to auth"* | Idea saved, won't be forgotten |
| `daily_standup` | *"Generate my standup"* | Auto-writes your standup from logs |
| `weekly_summary` | *"Give me a weekly summary"* | Full week review in seconds |
| `search_context` | *"What did I decide about Redis?"* | Searches all your saved context |
| `session_history` | *"Show my recent sessions"* | Timeline of your work sessions |
---
## π Quick Start
### Install
```bash
pip install flowstate-mcp
```
### Add to your MCP client
**Claude Desktop** (`~/Library/Application Support/Claude/claude_desktop_config.json`):
```json
{
"mcpServers": {
"flowstate": {
"command": "uvx",
"args": ["flowstate-mcp"]
}
}
}
```
**Cursor** (`.cursor/mcp.json`):
```json
{
"mcpServers": {
"flowstate": {
"command": "uvx",
"args": ["flowstate-mcp"]
}
}
}
```
Restart your client. Start using it. That's it β no API keys, no account, no cloud.
---
## π¬ Real Example
**Before leaving:**
```
You: Checkpoint β I'm stopping for the night.
Project: payment-service
Doing: implementing Stripe webhook handler
Current task: handling the payment_intent.succeeded event
Next steps: finish the idempotency check in webhook_handler.py line 84,
then write tests for the refund flow
Files: webhook_handler.py, tests/test_webhooks.py
Branch: feature/stripe-webhooks
```
**Next morning:**
```
You: Resume payment-service
FlowState:
# π§ FlowState Resume β `payment-service`
_Checkpoint saved 9h ago_
## π― What You Were Doing
Implementing Stripe webhook handler
## π¨ Where You Left Off
Handling the payment_intent.succeeded event
## π Files You Were Touching
- `webhook_handler.py`
- `tests/test_webhooks.py`
## πΏ Branch
`feature/stripe-webhooks`
## β‘οΈ Your Next Steps
Finish the idempotency check in webhook_handler.py line 84,
then write tests for the refund flow
## βοΈ Decisions You Made
- **Use Stripe idempotency keys** β Why: prevents duplicate charges on retry
## π§ Blockers
- [π΄ Open] Webhook signature verification fails in test environment
Workaround: Temporarily disabled in test config
## π‘ Ideas
- π΄ Add webhook event logging to DB for audit trail
---
You've got this. Pick up right where you left off. π
```
---
## π Daily Standup β Auto-Generated
```
You: Generate my standup for today
## π Daily Standup β February 23, 2025
### β
Yesterday
- [payment-service] Implementing Stripe webhook handler
- [auth-api] Refactored JWT middleware
### π¨ Today
- Finish idempotency check, write refund flow tests
### π§ Blockers
- [payment-service] Webhook signature fails in test env
β Workaround: disabled in test config
### βοΈ Key Decisions
- Use Stripe idempotency keys (prevents duplicate charges on retry)
```
Copy. Paste. Done. Your standup writes itself.
---
## ποΈ Where Data Lives
All context is stored **100% locally** in `~/.flowstate/`. No cloud. No account. No telemetry. Your work context stays on your machine.
```
~/.flowstate/
βββ sessions.json # Work checkpoints
βββ decisions.json # Technical decisions + reasoning
βββ blockers.json # Issues and blockers
βββ ideas.json # Captured ideas
```
---
## π Works With Any MCP Client
- β
Claude Desktop
- β
Cursor
- β
Windsurf
- β
Cline (VS Code)
- β
Continue.dev
- β
Zed
- β
Any MCP-compatible tool
---
## πΊοΈ Roadmap
- [ ] Git integration β auto-detect branch and changed files
- [ ] Team mode β share context across teammates (opt-in)
- [ ] VS Code extension with status bar widget
- [ ] Pomodoro integration β auto-checkpoint on timer
- [ ] Export to Notion / Obsidian
- [ ] Context handoff between AI sessions (beat the context window)
---
## π οΈ Development
```bash
git clone https://github.com/attaelahi/flowstate-mcp
cd flowstate-mcp
uv venv && source .venv/bin/activate
uv pip install -e .
# Test
python tests/test_server.py
# Run with MCP Inspector
npx @modelcontextprotocol/inspector python -m flowstate_mcp.server
```
---
## π€ Contributing
PRs and ideas welcome. If FlowState saves you time, a β star helps others find it.
---
## π License
MIT Β© [Atta Elahi](https://github.com/attaelahi)
---
## π The Philosophy
> *Flow state is the most valuable thing a developer has. Context loss is its biggest enemy.*
>
> FlowState doesn't change how you work β it just remembers everything so you don't have to.
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues