Reverse-engineer your path from desired futures to present actions
Derek M D Chan — Creator and maintainer
Co-developed with Claude (Anthropic)
The Outcome Backcasting MCP Server exposes strategic planning capabilities to Claude through the Model Context Protocol (MCP). This allows Claude to help users plan complex projects by working backwards from desired outcomes to identify concrete steps, dependencies, and resources needed.
Unlike traditional forward planning tools, this MCP server enables Claude to:
- Start with the end in mind - Help users define their desired future state
- Work backwards - Identify what needs to happen to reach that state
- Create actionable roadmaps - Break down the path into concrete, sequenced steps
- Manage dependencies - Understand and track what must happen before other things
- Monitor progress - Track advancement and suggest adjustments dynamically
Model Context Protocol (MCP) is an open standard that enables AI assistants like Claude to securely connect with external tools and data sources. This backcasting server implements MCP, allowing Claude to:
- Access and manipulate backcasting plans on your behalf
- Analyze project dependencies and critical paths
- Provide strategic planning guidance with real data
- Track progress across complex, multi-phase projects
Backcasting is a planning methodology that:
- Starts with the end in mind - Define your desired future state
- Works backwards - Identify what needs to happen to reach that state
- Creates actionable steps - Break down the path into concrete actions
- Identifies dependencies - Understand what must happen before other things
- Monitors progress - Track advancement and adjust the plan dynamically
Through this MCP server, Claude can help you with:
- Complex projects with multiple phases and dependencies
- Long-term goals (6 months to several years)
- Strategic initiatives requiring coordination of many elements
- Constraint-heavy scenarios where certain requirements must be met
- Innovation projects where the path isn't immediately obvious
When you connect this MCP server to Claude, it gains access to these planning capabilities:
create_plan- Create a new backcasting plan with outcome definitionload_plan- Load an existing plan from storageget_plan_overview- Retrieve high-level summary and progress metricslist_plans- Show all available saved plans
add_step- Add a new step to the plan with full detailsupdate_step_status- Mark steps as completed, in progress, blocked, etc.delete_step- Remove a step (dependencies automatically cleaned up)get_step_details- Retrieve comprehensive information about a specific step
list_all_steps- Get all steps in the plan with status indicatorsget_next_actions- Show steps ready to work on (dependencies met)get_critical_path- Identify the longest dependency chainget_blocked_steps- Find steps that cannot proceed and why
analyze_plan- Get comprehensive analysis including:- Progress metrics (% complete, breakdown by status)
- Risk analysis (high-priority risks identified)
- Resource summary (grouped by type)
- Optimization suggestions (parallelization, bottlenecks)
- Current blockers (what's preventing progress)
export_plan- Export to multiple formats:- Markdown (.md) - Rich formatting with emoji status indicators
- Text (.txt) - Simple plain text for universal compatibility
- CSV (.csv) - Spreadsheet format for Excel/Google Sheets
The MCP server recognizes these step types:
- Milestone 🎯 - Major checkpoints marking significant progress
- Action ⚡ - Concrete tasks to be executed
- Decision 🤔 - Choice points requiring evaluation
- Dependency 🔗 - External requirements or prerequisites
- Risk Mitigation 🛡️ - Steps to reduce or eliminate risks
- Critical 🔴 - Must be done, no alternatives
- High 🟠 - Very important, high impact
- Medium 🟡 - Important but not urgent
- Low ⚪ - Nice to have, low priority
- Not Started - Step hasn't been begun yet
- In Progress - Currently being worked on
- Completed - Successfully finished
- Blocked - Cannot proceed due to dependencies
- Skipped - Decided not to pursue this step
Each step can specify required resources:
- Time - Duration estimates
- Money - Budget requirements
- Skill - Expertise needed
- Tool - Software, hardware, or equipment
- Person - Specific individuals or roles
- Python 3.7 or higher
- Linux environment (tested on openSUSE)
- Claude Desktop app OR Claude Code CLI (or both!)
| Use Case | Recommended Client |
|---|---|
| Strategic planning & brainstorming | Claude Desktop (GUI) |
| Visual roadmaps & artifacts | Claude Desktop (GUI) |
| General project planning | Claude Desktop (GUI) |
| Planning during coding sessions | Claude Code (CLI) |
| Automated plan updates | Claude Code (CLI) |
| Technical project management | Either (personal preference) |
Both clients can use the same MCP server! You can configure it for both and switch between them as needed.
-
Navigate to the installation directory:
cd /home/panda/Documents/PythonScripts/OutcomeBackcasting/ -
Make scripts executable:
chmod +x *.sh *.py
-
Configure your Claude client to use this MCP server:
Add to your Claude Desktop config file:
- macOS/Linux:
~/.config/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{ "mcpServers": { "outcome-backcasting": { "command": "/home/panda/Documents/PythonScripts/OutcomeBackcasting/run_backcast_mcp.sh" } } }Add to your Claude Code config file:
~/.claude/config.json{ "mcpServers": { "outcome-backcasting": { "command": "/home/panda/Documents/PythonScripts/OutcomeBackcasting/run_backcast_mcp.sh" } } }Note: On Windows, adjust the path to use Windows-style paths:
{ "mcpServers": { "outcome-backcasting": { "command": "C:\\Users\\YourName\\Documents\\PythonScripts\\OutcomeBackcasting\\run_backcast_mcp.sh" } } } - macOS/Linux:
-
Restart your Claude client to load the MCP server
- Claude Desktop: Fully quit and reopen the app
- Claude Code: Restart your terminal session or run
claude configure
-
Verify connection by asking Claude:
"Can you help me create a backcasting plan?"Claude should acknowledge it has access to backcasting tools.
Instead of using a command-line interface directly, you interact with the backcasting engine through Claude. Simply talk to Claude naturally about your project planning needs.
The experience differs slightly between clients:
Best for: Strategic planning, brainstorming, visual roadmaps
You: "I want to create a backcasting plan for launching a SaaS product in 9 months."
Claude: Creates an artifact with your plan overview, asks clarifying questions interactively, and displays visual progress indicators.
Benefits:
- ✅ Rich artifacts with formatted roadmaps
- ✅ Easy to review and reference plans visually
- ✅ Better for collaborative planning sessions
- ✅ Natural conversation flow with context
Best for: Technical planning, automation, coding workflows
$ claude "Create a backcasting plan for refactoring the authentication system"Claude: Generates the plan, saves it to a file, and shows next actions in terminal-friendly format.
Benefits:
- ✅ Integrate planning into development workflow
- ✅ Automate plan updates via scripts
- ✅ Quick status checks during coding
- ✅ Works in headless/server environments
You: "I want to create a backcasting plan for launching a SaaS product in 9 months."
Claude: Uses the create_plan tool to set up your project, then asks clarifying questions about:
- What success looks like
- Specific success criteria
- Budget and timeline constraints
- Key phases and milestones
You: "What's the current status of my product launch plan?"
Claude: Uses get_plan_overview and analyze_plan tools to show:
- Overall completion percentage
- Steps in progress vs completed
- Critical risks
- Next recommended actions
You: "What should I work on next?"
Claude: Uses get_next_actions tool to show steps where:
- All dependencies are complete
- Status is "not started" or "in progress"
- Prioritized by importance
You: "What's blocking my progress?"
Claude: Uses get_blocked_steps and get_critical_path tools to identify:
- Steps marked as blocked
- Which dependencies are causing blocks
- The longest dependency chain affecting timeline
You: "I need to plan the launch of an MVP for a SaaS analytics platform in 6 months."
Claude: "I'll help you create a backcasting plan. Let me ask a few questions to define your outcome..."
(Claude uses create_plan tool)
Claude: "What does success look like for this launch?"
You: "100 beta users signed up, core features working, payment processing integrated, security audit passed."
Claude: "Got it. I'll generate a reverse roadmap from that outcome. Based on your 6-month timeline, I'm creating 5 major phases working backwards from launch..."
(Claude uses add_step tool multiple times)
Generated Plan Structure:
[Phase 5] Public Launch
→ Beta testing complete
→ All critical bugs fixed
→ Marketing materials ready
[Phase 4] Beta Testing
→ 50 beta users onboarded
→ Feedback loop established
→ Rapid iteration process
[Phase 3] Core Features Complete
→ Dashboard system working
→ Data pipeline stable
→ Alert system functional
[Phase 2] Technical Foundation
→ Database architecture finalized
→ API endpoints created
→ Authentication system built
[Phase 1] Project Setup
→ Tech stack chosen
→ Development environment configured
→ Team assembled
You: "What should I start working on?"
Claude: (uses get_next_actions tool) "Based on your dependencies, here are the steps you can start immediately..."
You: "I just completed the tech stack selection. Update the plan."
Claude: (uses update_step_status tool) "Great! I've marked that step complete. This unlocks 3 new actions you can now start..."
Parameters:
title(string) - Name of the outcomedescription(string) - Detailed description of desired end statesuccess_criteria(array) - List of measurable success indicatorsconstraints(array) - Budget, time, resource limitationstimeline(string) - Expected duration (e.g., "9 months")
Returns: Plan ID and confirmation
Parameters:
plan_name(string) - Name of saved plan file
Returns: Complete plan object with all steps
Parameters:
plan_id(string) - ID of the plan
Returns:
- Outcome details
- Progress metrics
- Step count breakdown
- Timeline information
Parameters:
plan_id(string) - Plan to add step totitle(string) - Step namedescription(string) - Detailed informationtype(enum) - milestone, action, decision, dependency, risk_mitigationpriority(enum) - critical, high, medium, lowdependencies(array) - IDs of prerequisite stepsresources(array) - Required resourcesrisks(array) - Potential riskssuccess_criteria(array) - How to know step is complete
Returns: New step ID
Parameters:
plan_id(string)step_id(integer)status(enum) - not_started, in_progress, completed, blocked, skipped
Returns: Updated step object
Parameters:
plan_id(string)step_id(integer)
Returns: Complete step information including dependencies, resources, risks
Parameters:
plan_id(string)
Returns: Array of all steps with status indicators
Parameters:
plan_id(string)
Returns: Steps that are:
- Not completed/skipped
- All dependencies met
- Sorted by priority
Parameters:
plan_id(string)
Returns: Longest dependency chain through the plan (bottleneck path)
Parameters:
plan_id(string)
Returns: Steps marked as blocked with dependency details
Parameters:
plan_id(string)
Returns:
- Progress metrics: % complete, status breakdown
- Risk analysis: High-priority risks
- Resource summary: Grouped by type
- Optimization suggestions: Parallelization opportunities, bottlenecks
- Current blockers: What's preventing progress
Parameters:
plan_id(string)format(enum) - markdown, text, csvoutput_path(string) - Where to save file
Returns: File path and success confirmation
Claude can help you manage complex dependencies automatically:
- Prevents invalid states - Can't complete a step if dependencies aren't done
- Shows ready actions - Identifies what's unblocked and ready to start
- Tracks blockers - Explains why certain steps can't proceed
- Calculates critical path - Finds the bottleneck chain
Example:
You: "I want to deploy to production."
Claude: (checks dependencies) "That step requires the security audit (Step 4) and beta testing (Step 3) to be complete first. Currently, only project setup (Step 1) is done. You need to finish Steps 2, 3, and 4 before deployment."
Each step tracks multiple resource types:
Example:
You: "What resources do I need for the mobile app development step?"
Claude: (uses get_step_details)
Step: "Build Mobile App"
Resources Required:
- Person: 2 Mobile Developers
- Tool: React Native license
- Time: 8 weeks full-time
- Money: $40,000 contractor budget
- Skill: iOS/Android expertise required
Identify and plan for potential problems:
Example:
You: "What are the biggest risks in my database migration step?"
Claude: (analyzes risks)
Step: "Migrate to New Database"
High-Priority Risk:
Description: Data loss during migration
Probability: Medium
Impact: High
Mitigation: Create full backup, test on staging first,
have rollback plan ready
Claude can show you:
- Overall completion percentage
- Breakdown by status
- Velocity trends over time
- Identifies longest dependency chain
- Highlights steps that will delay the entire project if delayed
- Helps prioritize work on bottlenecks
Claude can identify:
- Independent steps that could be parallelized
- Bottleneck steps with many dependents
- Steps without clear success criteria
- High risks without mitigation plans
- Shows steps marked as "blocked"
- Lists which incomplete dependencies are causing the block
- Helps focus effort on unblocking critical work
Plans are stored as JSON files in:
/home/panda/Documents/PythonScripts/OutcomeBackcasting/data/
{
"outcome": {
"title": "Launch SaaS Product",
"description": "Successfully launch MVP to market",
"success_criteria": [
"100 beta users signed up",
"Core features working",
"Payment processing integrated"
],
"constraints": [
"Budget: $50,000",
"Timeline: 6 months",
"Team: 3 developers"
],
"timeline": "6 months"
},
"steps": [
{
"id": 1,
"title": "Project Setup",
"description": "Initialize project infrastructure",
"type": "action",
"status": "completed",
"priority": "critical",
"dependencies": [],
"resources_needed": [
{
"type": "person",
"description": "Project Manager",
"quantity": 1
}
],
"risks": [],
"success_criteria": [
"Repository created",
"Team onboarded"
]
}
]
}Effective prompts to Claude:
✅ DO:
- "I want to launch a product with 100 users, $50k revenue, and positive reviews in 9 months"
- "Help me plan to get promoted to senior engineer by meeting these criteria..."
- "Create a plan to lose 30 pounds in 6 months through diet and exercise"
❌ DON'T:
- "I want to be successful" (too vague)
- "Help me with my project" (no specifics)
- "Make a plan for everything" (no scope)
Good requests:
✅ "Add a step for building the authentication system with dependencies on the database setup" ✅ "Show me what's ready to work on that's high priority" ✅ "What risks should I be aware of in the deployment phase?"
Natural conversation:
You: "I just hired a designer."
Claude: "Great! That unblocks the UI design step. Would you like me to update that step's status to 'in progress'?"
Weekly:
- "What's my progress on the product launch plan?"
- "What should I focus on this week?"
- "Are there any new blockers?"
Monthly:
- "Analyze my plan and give me optimization suggestions"
- "What's on the critical path that could delay the project?"
- "Do I need to adjust my timeline?"
"I don't see the backcasting tools in Claude Desktop"
- Verify MCP server is configured in
claude_desktop_config.json - Check config file syntax (valid JSON)
- Restart Claude Desktop completely (Quit, not just close window)
- Check that the server script has execute permissions:
chmod +x run_backcast_mcp.sh - Look for errors in Claude Desktop logs
"I don't see the backcasting tools in Claude Code"
- Verify MCP server is configured in
~/.claude/config.json - Run
claude configureto reload config - Check that the server script path is absolute, not relative
- Test the server script manually:
./run_backcast_mcp.sh - Check Claude Code logs with
--verboseflag
"Claude says it can't access my plan"
- Ask Claude to list available plans: "What backcasting plans do I have?"
- Verify the plan file exists in the data directory:
ls /home/panda/Documents/PythonScripts/OutcomeBackcasting/data/ - Check file permissions on the data directory
- Try loading by exact filename: "Load my plan called 'product-launch.json'"
"MCP server keeps disconnecting"
- Check that
run_backcast_mcp.shhas proper error handling - Verify Python environment is accessible
- Test server independently before connecting to Claude
- Check system logs for Python errors
"Dependencies seem wrong"
- Ask Claude to show the critical path
- Request a dependency graph visualization
- Have Claude check for circular dependencies
"Plan isn't updating"
- Confirm Claude is using the correct plan ID
- Ask Claude to reload the plan from disk
- Check file permissions on the data directory
- Verify no other process is locking the JSON file
"Config file location unclear"
For Claude Desktop:
- macOS:
~/.config/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
For Claude Code:
- All platforms:
~/.claude/config.json
Simply ask Claude naturally:
- "How does this backcasting system work?"
- "Can you explain what the critical path means?"
- "Show me an example of a good project plan"
- "What information do you need to create a plan for me?"
OutcomeBackcasting/
├── backcast_engine.py # Core data models and business logic
├── backcast_mcp_server.py # MCP protocol implementation
├── run_backcast_mcp.sh # Server launcher for Claude
├── data/ # JSON plan storage
│ ├── example-plan.json
│ └── my-project.json
└── README.md # This file
- Claude Desktop connects to the MCP server on startup
- User asks Claude a planning-related question
- Claude decides which MCP tool to call based on context
- MCP server executes the requested operation
- Results return to Claude
- Claude presents information naturally to the user
User ←→ Claude (MCP Client)
↕
MCP Protocol (stdio)
↕
Backcast MCP Server
↕
Engine (backcast_engine.py)
↕
File System (JSON storage)
Based on concept #9 from ai_plugin_concepts.md:
- Outcome-first thinking - Always start with the end goal
- Reverse planning - Work backwards to find the path
- Constraint awareness - Acknowledge limitations upfront
- Dynamic adjustment - Plans evolve as work progresses
- Dependency clarity - Make relationships explicit
- Risk consciousness - Identify problems before they occur
- AI-assisted planning - Leverage Claude's reasoning with real data
- Contextual awareness - Claude sees your entire conversation history
- Natural interaction - No need to learn command syntax
- Intelligent defaults - Claude suggests reasonable values
- Proactive analysis - Claude can notice patterns and offer insights
- Multi-plan management - Claude can compare and contrast different plans
- Visualization generation - Gantt charts, dependency graphs
- Timeline predictions - Monte Carlo simulation for completion dates
- Template library - Pre-built plans for common goals
- Collaborative features - Multi-user plan editing
- Integration APIs - Connect with Asana, Jira, Notion
- Notification system - Alerts for blockers and deadlines
- Version control - Track plan changes over time
- AI-powered suggestions - Use LLM to generate realistic step sequences
With other MCP servers:
- Calendar - Auto-schedule steps based on dependencies
- File system - Link steps to relevant documents
- Project management - Sync with external tools
- Time tracking - Compare estimated vs actual time
- Communication - Notify team via Slack/Discord
This MCP server is designed for personal use but can be extended:
- Core engine:
backcast_engine.py - MCP implementation:
backcast_mcp_server.py - Data format: JSON files in
data/ - Code style: Dataclasses, type hints, docstrings
To add new tools:
- Add function to
backcast_mcp_server.py - Register in MCP tool manifest
- Update this README with tool documentation
v1.0 - 2025-01-01
- Initial MCP server release
- Core backcasting functionality
- Full CRUD operations on plans and steps
- Analysis and export tools
- JSON-based storage
- Integration with Claude Desktop
MIT License - Free to use and modify
Derek M D Chan — Creator and maintainer
GitHub: @NET-OF-BEING
Co-developed with Claude (Anthropic) using AI-assisted development
Built on the Outcome Backcasting methodology: Strategic planning that reverse-engineers paths from desired future outcomes to present actions, now accessible through natural conversation with Claude via the Model Context Protocol.
-
Configure in
~/.config/Claude/claude_desktop_config.json:{ "mcpServers": { "outcome-backcasting": { "command": "/home/panda/Documents/PythonScripts/OutcomeBackcasting/run_backcast_mcp.sh" } } } -
Restart Claude Desktop
-
Ask Claude: "Help me create a backcasting plan for [your goal]"
-
Collaborate with Claude through natural conversation
-
View rich artifacts with formatted roadmaps
-
Configure in
~/.claude/config.json:{ "mcpServers": { "outcome-backcasting": { "command": "/home/panda/Documents/PythonScripts/OutcomeBackcasting/run_backcast_mcp.sh" } } } -
Reload config with
claude configureor restart terminal -
Use inline:
claude "Create a backcasting plan for [goal]" -
Track progress:
claude "What should I work on next for my [project] plan?" -
Automate: Integrate into build scripts or CI/CD
- Define outcome with success criteria and constraints
- Generate plan working backwards from the goal
- Execute by asking for next actions regularly
- Track progress through natural conversation
- Adjust as circumstances change
The power of backcasting + the intelligence of Claude = Strategic planning made simple.