Planexe exposes an MCP server that enables AI agents to generate comprehensive strategic plans from plain-English goal statements in approximately 15 minutes. The server provides planning capabilities that produce structured outputs including executive summaries, Gantt charts, governance structures, role descriptions, stakeholder maps, risk registers, and SWOT analyses, solving the problem of rapidly transforming high-level ideas into detailed, domain-aware first-draft plans. While the generated plans serve as strong scaffolding for brainstorming and outlining, users should treat outputs as starting points requiring refinement, particularly for budgets, timeline estimates, risk mitigations, and regulatory details.
Public tool metadata for what this MCP can expose to an agent.
example_plansReturns a curated list of example plans with download links for reports and zip bundles. Use this to preview what PlanExe output looks like before creating your own plan. Especially useful when the user asks what the output looks like before committing to a plan. No API key re...Returns a curated list of example plans with download links for reports and zip bundles. Use this to preview what PlanExe output looks like before creating your own plan. Especially useful when the user asks what the output looks like before committing to a plan. No API key re...
No parameter schema in public metadata yet.
example_promptsCall this first. Returns example prompts that define what a good prompt looks like. Do NOT call plan_create yet. Optional before plan_create: call model_profiles to choose model_profile. Next is a non-tool step: formulate a detailed prompt (typically ~300-800 words; use exampl...Call this first. Returns example prompts that define what a good prompt looks like. Do NOT call plan_create yet. Optional before plan_create: call model_profiles to choose model_profile. Next is a non-tool step: formulate a detailed prompt (typically ~300-800 words; use exampl...
No parameter schema in public metadata yet.
model_profilesOptional helper before plan_create. Returns model_profile options with plain-language guidance and currently available models in each profile. If no models are available, returns error code MODEL_PROFILES_UNAVAILABLE.Optional helper before plan_create. Returns model_profile options with plain-language guidance and currently available models in each profile. If no models are available, returns error code MODEL_PROFILES_UNAVAILABLE.
No parameter schema in public metadata yet.
plan_createCall only after example_prompts and after you have completed prompt drafting/approval (non-tool step). PlanExe turns the approved prompt into a strategic project-plan draft (20+ sections) in ~10-20 min. Sections include: executive summary, interactive Gantt charts, investor pi...3 paramsCall only after example_prompts and after you have completed prompt drafting/approval (non-tool step). PlanExe turns the approved prompt into a strategic project-plan draft (20+ sections) in ~10-20 min. Sections include: executive summary, interactive Gantt charts, investor pi...
promptstringstart_datevaluemodel_profilestringbaseline · premium · frontier · customdefault: baselineplan_statusReturns status and progress of the plan currently being created. This is the primary way to check progress — it returns structured JSON with all progress fields. Poll at reasonable intervals (e.g. every 5 minutes): plan generation typically takes 10-20 minutes (baseline profil...1 paramsReturns status and progress of the plan currently being created. This is the primary way to check progress — it returns structured JSON with all progress fields. Poll at reasonable intervals (e.g. every 5 minutes): plan generation typically takes 10-20 minutes (baseline profil...
plan_idstringplan_stopRequest the plan generation to stop. Pass the plan_id (the UUID returned by plan_create). Stopping is asynchronous: the stop flag is set immediately but the plan may continue briefly before halting. A stopped plan will transition to the stopped state. If the plan is already co...1 paramsRequest the plan generation to stop. Pass the plan_id (the UUID returned by plan_create). Stopping is asynchronous: the stop flag is set immediately but the plan may continue briefly before halting. A stopped plan will transition to the stopped state. If the plan is already co...
plan_idstringplan_retryRetry a plan that is currently in failed or stopped state. Pass the plan_id and optionally model_profile (defaults to baseline). The plan is reset to pending, prior artifacts are cleared, and the same plan_id is requeued for processing. Returns PLAN_NOT_FOUND when plan_id is u...2 paramsRetry a plan that is currently in failed or stopped state. Pass the plan_id and optionally model_profile (defaults to baseline). The plan is reset to pending, prior artifacts are cleared, and the same plan_id is requeued for processing. Returns PLAN_NOT_FOUND when plan_id is u...
plan_idstringmodel_profilestringbaseline · premium · frontier · customdefault: baselineplan_resumeResume a failed or stopped plan without discarding completed intermediary files. Plan generation restarts from the first incomplete step, skipping all steps that already produced output files. Use plan_resume when plan_status shows 'failed' or 'stopped' and plan generation was...2 paramsResume a failed or stopped plan without discarding completed intermediary files. Plan generation restarts from the first incomplete step, skipping all steps that already produced output files. Use plan_resume when plan_status shows 'failed' or 'stopped' and plan generation was...
plan_idstringmodel_profilestringbaseline · premium · frontier · customdefault: baselineplan_file_infoReturns file metadata (content_type, download_url, download_size, expires_at) for the report or zip artifact. Use artifact='report' (default) for the interactive HTML report (~700KB, self-contained with embedded JS for collapsible sections and interactive Gantt charts — open i...2 paramsReturns file metadata (content_type, download_url, download_size, expires_at) for the report or zip artifact. Use artifact='report' (default) for the interactive HTML report (~700KB, self-contained with embedded JS for collapsible sections and interactive Gantt charts — open i...
plan_idstringartifactstringreport · zipdefault: reportplan_listList the most recent plans for an authenticated user. Returns up to `limit` plans (default 10, max 50) newest-first, each with plan_id, state, progress_percentage, created_at (ISO 8601), and a prompt_excerpt (first 100 chars). Use this to recover a lost plan_id or to review re...1 paramsList the most recent plans for an authenticated user. Returns up to `limit` plans (default 10, max 50) newest-first, each with plan_id, state, progress_percentage, created_at (ISO 8601), and a prompt_excerpt (first 100 chars). Use this to recover a lost plan_id or to review re...
limitintegersend_feedbackSubmit feedback about PlanExe — issues, impressions, or suggestions. Callable at any point in the workflow; fire-and-forget, never blocks. Use category to classify: mcp (MCP tools, SSE, plan_status, workflow), plan (the generated output files), code (PlanExe source), docs (doc...4 paramsSubmit feedback about PlanExe — issues, impressions, or suggestions. Callable at any point in the workflow; fire-and-forget, never blocks. Use category to classify: mcp (MCP tools, SSE, plan_status, workflow), plan (the generated output files), code (PlanExe source), docs (doc...
ratingvaluemessagestringplan_idvaluecategorystring
Turn your idea into a comprehensive plan in minutes, not months.
Describe your idea, hit submit, and PlanExe returns a ~40-page plan in about 15 minutes.
Create an account | See example plans | Getting started guide
PlanExe is an open-source tool and the premier planning tool for AI agents. It turns a single plain-english goal statement into a 40-page, strategic plan in ~15 minutes using local or cloud models. It's an accelerator for outlines, but no silver bullet for polished plans.
Typical output contains:
PlanExe produces well-structured, domain-aware output: correct terminology, logical task sequencing, and coherent sections. For technical topics (engineering programs, regulated industries), it often gets the vocabulary and structure right. Think of it as a first-draft scaffold that gives you something concrete to critique and refine.
However, the output has consistent weaknesses that matter: budgets are assumed rather than derived, timeline estimates are not grounded in real resource constraints, risk mitigations tend toward generic advice, and legal/regulatory details are plausible-sounding but unverified. The output should be treated as a structured starting point, not a deliverable. How much work it saves depends heavily on the project. For brainstorming or a first outline, it can save hours. For a client-ready plan, expect significant rework on every number, timeline, and risk section.
PlanExe exposes an MCP server for AI agents at https://mcp.planexe.org/
Assuming you have an MCP-compatible client (Claude, Cursor, Codex, LM Studio, Windsurf, OpenClaw, Antigravity).
The Tool workflow
example_plans (optional, preview what PlanExe output looks like)example_promptsmodel_profiles (optional, helps choose model_profile)plan_createplan_status (poll every 5 minutes until done)plan_retryplan_file_infoConcurrency note: each plan_create call returns a new plan_id; server-side global per-client concurrency is not capped, so clients should track their own parallel plans.
pex_...) from your accountUse this endpoint directly in your MCP client:
{
"mcpServers": {
"planexe": {
"url": "https://mcp.planexe.org/mcp",
"headers": {
"X-API-Key": "pex_your_api_key_here"
}
}
}
}
.env file with OPENROUTER_API_KEY.Start the full stack:
docker compose up --build
Make sure that you can create plans in the web interface, before proceeding to MCP.
Then connect your client to:
http://localhost:8001/mcpFor local docker defaults, auth is disabled in docker-compose.yml.
server.json): mcp_cloud/server.jsonllms.txt: https://mcp.planexe.org/llms.txtIf you have a local Python environment set up and want to invoke the pipeline
directly — without the Flask UI — use the planexe CLI script at
the repo root.
# Create a plan from a text prompt
./planexe create_plan \
--plan-text "Small coffee shop in Copenhagen, Denmark" \
--output-dir ./planexe-outputs/1984-12-31/MyCoffeeShop_v1
# Or: read the plan prompt from a file
./planexe create_plan \
--plan-file my_plan.txt \
--output-dir ./planexe-outputs/1984-12-31/MyCoffeeShop_v1
The script creates the run directory if it does not exist and writes:
| File | Contents |
|---|---|
start_time.json | {"server_iso_utc": "<current UTC ISO timestamp>"} |
plan.txt | The plain-text plan prompt |
PlanExe is designed as infrastructure for AI agents. If you are an AI agent reading this:
public/llms.txt for service metadata, MCP tools, and endpoints.https://mcp.planexe.org/mcp — connect with an API key from home.planexe.org.example_prompts to learn the expected prompt format, draft a detailed prompt (~300-800 words of flowing prose), then call plan_create.docs/mcp/autonomous_agent_guide.md for the complete autonomous workflow.wbs_level1.json (work packages), wbs_level2.json (tasks), pre_project_assessment.json (feasibility).Prerequisite: Docker with Docker Compose installed; you only need basic Docker knowledge. No local Python setup is required because everything runs in containers.
git clone https://github.com/PlanExeOrg/PlanExe.git
cd PlanExe
Provide an LLM provider. Copy .env.docker-example to .env and fill in OPENROUTER_API_KEY with your key from OpenRouter. The containers mount .env and llm_config/; pick a model profile there. For host-side Ollama, use the docker-ollama-llama3.1 entry and ensure Ollama is listening on http://host.docker.internal:11434.
Start the stack (first run builds the images):
docker compose up worker_plan frontend_multi_user
The worker listens on http://localhost:8000 and the UI comes up on http://localhost:5001 after the Postgres and worker healthchecks pass.
.env), enter your idea, and watch progress with:docker compose logs -f worker_plan
Outputs are written to run/ on the host (mounted into both containers).
Ctrl+C (or docker compose down). Rebuild after code/dependency changes:docker compose build --no-cache worker_plan frontend_multi_user
For compose tips, alternate ports, or troubleshooting, see docs/docker.md or docker-compose.md.
Config A: Run a model in the cloud using a paid provider. Follow the instructions in OpenRouter.
Config B: Run models locally on a high-end computer. Follow the instructions for either Ollama or LM Studio. When using host-side tools with Docker, point the model URL at the host (for example http://host.docker.internal:11434 for Ollama).
Recommendation: I recommend Config A as it offers the most straightforward path to getting PlanExe working reliably.