Cursor Plan Executor

Cursor Plan Executor

A Model Context Protocol server for Cursor that manages and executes task plans with SQLite3-based CRUD operations, status tracking, and workflow tools.

Category
Visit Server

README

Cursor Plan Executor

A Model Context Protocol (MCP) server for Cursor that helps manage and execute task plans with SQLite3 database management tools.

Features

  • Plan Management: Complete CRUD operations for task plan steps
  • SQLite3 Database: Persistent storage for plan management
  • Status Tracking: Track completion status of plan steps
  • Execution Data: Store progress notes and results for each step
  • Workflow Tools: Streamlined tools for plan execution workflow

Database Schema

The server includes a SQLite3 database with the following table:

CREATE TABLE plan (
  step INTEGER PRIMARY KEY AUTOINCREMENT,
  instructions VARCHAR(10000) NOT NULL,
  status TINYINT DEFAULT 0 CHECK (status IN (0, 1)),
  execution_data TEXT
);

Installation

Global Installation (Recommended for Cursor integration)

npm install -g .

Local Development

npm install
npm run build

Usage

As a Global Command

After installing globally, you can run:

cursor-plan-executor

With npx

npx cursor-plan-executor

Direct Execution

node dist/index.js

Cursor Integration

Configuration

Add the following to your Cursor settings:

{
  "mcp": {
    "servers": {
      "cursor-plan-executor": {
        "command": "cursor-plan-executor",
        "args": [],
        "env": {}
      }
    }
  }
}

Or use the alternative format:

{
  "mcpServers": {
    "cursor-plan-executor": {
      "command": "cursor-plan-executor",
      "args": [],
      "env": {}
    }
  }
}

Available Tools

initialize_plan

Initialize a new task with your plan. Call this tool whenever you start a new task and already have the plan for it. Define all separate steps in the plan. Do not initialize a plan twice, as once initialized it will delete all previous plan data. Create the plan for the whole task.

Parameters:

  • plan_steps (required): Array of plan steps (instructions) for the task

Example Usage:

{
  "name": "initialize_plan",
  "arguments": {
    "plan_steps": [
      "Create a new React component",
      "Add state management",
      "Implement the UI",
      "Add tests",
      "Deploy the component"
    ]
  }
}

show_all_steps

Show all plan steps in a readable format with status indicators.

Parameters: None

Example Usage:

{
  "name": "show_all_steps",
  "arguments": {}
}

Response:

All Plan Steps:

1. ⏳ PENDING - Create a new React component

2. ✅ DONE - Add state management
   Execution Data: Redux store configured successfully

3. ⏳ PENDING - Implement the UI

get_next_step

Get the next pending step that you should follow.

Parameters: None

Example Usage:

{
  "name": "get_next_step",
  "arguments": {}
}

Response:

Next step to follow: 1 - Create a new React component

get_current_validation_criteria

Get the validation criteria for the currently unfinished task. This will list the validation criteria for the next pending step.

Parameters: None

Example Usage:

{
  "name": "get_current_validation_criteria",
  "arguments": {}
}

Response:

Current unfinished task:
Step 1 - Create a new React component
Validation Criteria: Component should have proper TypeScript types and error handling

Response (when no validation criteria):

Current unfinished task:
Step 1 - Create a new React component
No validation criteria specified for this step.

mark_current_step_done

Mark the current (next pending) step as done.

Parameters: None

Example Usage:

{
  "name": "mark_current_step_done",
  "arguments": {}
}

Response:

Step 1 marked as done: Create a new React component

mark_step_as_not_done

Mark a specific step as not done (pending). Call this tool when you need to revert a completed step back to pending status.

Parameters:

  • step (required): Step number to mark as not done

Example Usage:

{
  "name": "mark_step_as_not_done",
  "arguments": {
    "step": 2
  }
}

update_step_data

Update the instructions for a specific step by step ID.

Parameters:

  • step (required): Step number to update
  • instructions (required): New instructions for the step

Example Usage:

{
  "name": "update_step_data",
  "arguments": {
    "step": 1,
    "instructions": "Create a new React component with TypeScript"
  }
}

update_step_execution_data

Update the execution data for a plan step (useful for tracking progress and notes).

Parameters:

  • step (required): Step number to update
  • execution_data (required): Execution data to store (progress notes, results, etc.)

Example Usage:

{
  "name": "update_step_execution_data",
  "arguments": {
    "step": 1,
    "execution_data": "Component created successfully with proper TypeScript types"
  }
}

get_plan_step

Get a specific plan step by step number with full details.

Parameters:

  • step (required): Step number to retrieve

Example Usage:

{
  "name": "get_plan_step",
  "arguments": {
    "step": 1
  }
}

delete_plan_step

Delete a plan step by step number.

Parameters:

  • step (required): Step number to delete

Example Usage:

{
  "name": "delete_plan_step",
  "arguments": {
    "step": 1
  }
}

clear_all_plan_steps

Clear all plan steps from the database (use with caution).

Parameters: None

Example Usage:

{
  "name": "clear_all_plan_steps",
  "arguments": {}
}

Typical Workflow

  1. Initialize Plan: Use initialize_plan to set up your complete task plan
  2. Review Steps: Use show_all_steps to see the current status
  3. Get Next Step: Use get_next_step to see what to do next
  4. Complete Step: Use mark_current_step_done when finished with a step
  5. Add Notes: Use update_step_execution_data to add progress notes (optional)
  6. Repeat: Continue steps 3-5 until all steps are complete

Development

Prerequisites

  • Node.js 18 or higher
  • npm

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured