Execute approved actions via custom FastMCP servers (email, LinkedIn, browser automation, Odoo, social media). Processes items from /Approved/ folder in Obsidian vault, routes to appropriate MCP server, executes action with error handling, and logs results to /Done/. Supports email sending, LinkedIn posting, Facebook/Instagram/Twitter posting, Odoo accounting operations, form filling, file operations, and external API calls. Use when: (1) Executing approved email/message actions, (2) Posting to LinkedIn or social media, (3) Performing browser automation (payments, forms, clicks), (4) Executing Odoo accounting operations (invoices, payments), (5) Calling external APIs, (6) Any action requiring real-world execution. Trigger phrases: "execute approved action", "send email", "post to social media", "send invoice", "record payment", "fill out form", "make API call", "run action".
Execute approved actions through custom FastMCP servers. Process items from /Approved/ folder and execute via appropriate MCP server (email, LinkedIn, browser automation, etc.).
IMPORTANT: The run_executor.py script implements the Orchestrator.py (Master Process) component described in HACKATHON-ZERO.md (Line 1242, Line 495, Line 666-667).
What it does:
/Approved/ folder for approved actions/Done/ or /Failed/Relationship with orchestrate_watchers.py:
run_executor.py = Orchestrator.py (Master Process for approval execution)orchestrate_watchers.py (from multi-watcher-runner skill) = Watchdog.py (Health Monitor for watcher processes)For Hackathon Submission:
run_executor.py to My_AI_Employee/orchestrator.py for alignment with hackathon naming conventions.claude/skills/mcp-executor/scripts/ as reference# Start MCP executor daemon
python scripts/run_executor.py
# Check execution status
python scripts/executor_status.py
# View execution logs
tail -f logs/executor.log
The executor:
/Approved/ folder for new items/Done/ with results/Needs_Action/ to /Done/ (Silver tier only)Item in /Approved/
↓
Executor reads item
↓
Determine action type (email, linkedin_post, etc)
↓
Load MCP server for that type
↓
Call MCP server tool/resource
↓
Action executes successfully? YES → Create execution record in /Done/
| Move original file from /Needs_Action/ to /Done/
| Update original file with execution metadata
NO → Move to /Failed/ with error
IMPORTANT: After successful execution, the executor MUST move the original action item from /Needs_Action/ to /Done/.
Why: In Silver tier, the /needs-action-triage skill keeps files in /Needs_Action/ with status: pending_approval until execution completes. The executor is responsible for moving them to /Done/ after the external action succeeds.
How:
original_file field from the approval's frontmatter/Needs_Action/status: executedexecuted_at: [timestamp]execution_result: successmessage_id: [if applicable]/Done/Example:
/Approved/APPROVAL_20260118_email_Sunaina_Gold_Tier.md/Needs_Action/20260118_152957_183659_email_Sunaina_Ismail.md/Done/20260118_152957_183659_email_Sunaina_Ismail.mdBronze Tier Note: Bronze tier files are already in /Done/ (moved by /needs-action-triage after planning), so this step only applies to Silver tier files that require external actions.
Capabilities: Send emails, draft emails, search mailbox
# Start email server
python mcp_servers/email_mcp.py
Actions:
send_email - Send email via Gmaildraft_email - Create draft without sendingsearch_mail - Search existing emailsCapabilities: Post content, share updates, create posts
# Start LinkedIn server
python mcp_servers/linkedin_mcp.py
Actions:
create_post - Post to LinkedIn timelineshare_link - Share URL with commentschedule_post - Schedule post for laterCapabilities: Navigate browser, fill forms, click buttons, extract data
# Start browser server
python mcp_servers/browser_mcp.py
Actions:
navigate_to - Open URLfill_form - Enter text in form fieldsclick_button - Click elementextract_text - Get page contenttake_screenshot - Capture pageCapabilities: Invoice management, payment tracking, expense categorization, financial reporting
# Start Odoo server
python mcp_servers/odoo_mcp.py
Actions:
create_invoice - Create draft invoice in Odoosend_invoice - Send invoice to customer via emailrecord_payment - Record customer/vendor paymentcreate_expense - Create expense recordgenerate_report - Generate financial reports (P&L, Balance Sheet, Cash Flow)Capabilities: Post to Facebook Page, upload photos/videos, get engagement metrics
# Start Facebook server
python mcp_servers/facebook_mcp.py
Actions:
create_post - Post text to Facebook Pageupload_photo - Post photo with captionupload_video - Post video with captionget_post_insights - Get engagement metricsCapabilities: Post photos/videos, create stories/reels, get engagement metrics
# Start Instagram server
python mcp_servers/instagram_mcp.py
Actions:
create_media_post - Post photo/video to Instagramcreate_story - Post to Instagram storycreate_reel - Post Instagram reelget_media_insights - Get engagement metricsCapabilities: Post tweets, upload media, create threads, get engagement metrics
# Start Twitter server
python mcp_servers/twitter_mcp.py
Actions:
create_tweet - Post single tweetcreate_thread - Post tweet threadupload_media - Upload photo/video/GIFget_tweet_metrics - Get engagement metricsActions in /Approved/ folder should have this structure:
---