embercore

embercore

Open-source AI marketing agent toolkit with plan-first workflow, human checkpoints, and BYOK support.

Category
Visit Server

README

<div align="center">

<br/>

<img alt="embercore logo" src="./assets/logo.png" width="200" />

<br/> <br/>

<h1>embercore</h1>

<p><strong>Most AI marketing tools write content.<br/>embercore writes your <em>plan</em> — then stops and asks what you think.</strong></p>

<sub>An open-source MCP server that turns a one-page product brief into a complete marketing plan.<br/>Five agents. Named after Greek gods. Human checkpoints at every stage. Nothing ships without your say.</sub>

<br/> <br/>

<a href="https://github.com/embercore-labs/embercore/releases/tag/v0.1.0"><img src="https://img.shields.io/badge/version-0.1.0-FF6B35?style=for-the-badge" alt="Version 0.1.0" /></a>   <a href="https://github.com/embercore-labs/embercore/stargazers"><img src="https://img.shields.io/github/stars/embercore-labs/embercore?style=for-the-badge&color=F7C948" alt="GitHub Stars" /></a>   <a href="https://github.com/embercore-labs/embercore/blob/main/LICENSE"><img src="https://img.shields.io/github/license/embercore-labs/embercore?style=for-the-badge&color=FF6B35" alt="MIT License" /></a>   <a href="https://modelcontextprotocol.io"><img src="https://img.shields.io/badge/MCP-compatible-1D3557?style=for-the-badge" alt="MCP Compatible" /></a>   <a href="https://embercore-labs.github.io/embercore"><img src="https://img.shields.io/badge/📖_Docs-GitHub_Pages-blue?style=for-the-badge" alt="Documentation" /></a>

<br/>

<a href="https://go.dev"><img src="https://img.shields.io/badge/Go-00ADD8?style=for-the-badge&logo=go&logoColor=white" alt="Go" /></a>   <a href="https://nextjs.org"><img src="https://img.shields.io/badge/Next.js-000000?style=for-the-badge&logo=next.js&logoColor=white" alt="Next.js" /></a>   <a href="https://github.com/embercore-labs/embercore/blob/main/CONTRIBUTING.md"><img src="https://img.shields.io/badge/PRs-welcome-E63946?style=for-the-badge" alt="PRs Welcome" /></a>   <a href="https://github.com/embercore-labs/embercore/discussions"><img src="https://img.shields.io/github/discussions/embercore-labs/embercore?style=for-the-badge&color=1D3557" alt="Discussions" /></a>

<br/> <br/>

<a href="#-why-embercore">Why</a>    •    <a href="#-quick-start">Quick Start</a>    •    <a href="#-how-it-works">How It Works</a>    •    <a href="#-the-agents">Agents</a>    •    <a href="#-self-host">Self-Host</a>    •    <a href="docs/architecture.md">Architecture</a>    •    <a href="CONTRIBUTING.md">Contributing</a>    •    <a href="https://github.com/embercore-labs/embercore/discussions">Discuss</a>

<br/> <br/>

<!-- Demo GIF will be added once Phase 1 ships -->

</div>

<br/>

🤔 Why embercore

You shipped a product. You have no idea how to market it. Every AI tool either:

  • Asks you to describe your audience and spits out 50 LinkedIn posts (not what you need)
  • Demands a $99/mo subscription to an opaque SaaS with your data inside it
  • Assumes you already know what an "ICP" or "positioning statement" is

embercore does something different. It makes the plan before it makes the content, and it asks you what you think before moving on.

<br/>

Feature What it means
📋 Plan-first, not draft-first Five stages: Research → Brand → UX → GTM → Assemble. Structured artifacts on disk, not a wall of copy.
🛑 Human checkpoints (H1–H4) The pipeline pauses between every stage. You approve, edit, or redirect.
🔑 Bring Your Own Key Your Anthropic key stays in your environment. Zero telemetry.
🔓 Fully open source (MIT) Read every prompt. Fork it. Run it forever. No paid tier, no upsell.
🏠 Local-first Runs in Claude Desktop, Cursor, Copilot CLI, Windsurf — any MCP client.
🚫 No jargon Every decision explained in plain language. Marketing terms get defined.

<br/>

⚡ Quick Start

Two ways to use embercore. Pick one. Both take ~3 minutes.

<br/>

Option A — Web App

git clone https://github.com/embercore-labs/embercore.git
cd embercore
pnpm install
pnpm dev

Open localhost:3000, paste your Anthropic key, drop in your product brief, watch the agents work.

<br/>

Option B — MCP Server

# Build the engine (Go 1.23+ required)
cd packages/engine
make build

# Move it onto your PATH
mv embercore-engine /usr/local/bin/          # macOS / Linux
# Move-Item embercore-engine.exe "$env:USERPROFILE\bin\"   # Windows

Add to your MCP client config (Claude Desktop example):

// ~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "embercore": {
      "command": "embercore-engine",
      "env": { "ANTHROPIC_API_KEY": "sk-ant-..." },
    },
  },
}

Restart your client, drop a product_brief.md in your working directory, and ask the assistant to "run the embercore workflow."

📖 See docs/quickstart.md for Cursor and Copilot CLI configs.

<br/>

🔄 How It Works

                    ┌─────────────────────┐
                    │   product_brief.md  │
                    │  (your 1-page input) │
                    └─────────┬───────────┘
                              │
                              ▼
    ┌─────────────────────────────────────────────────────┐
    │                                                     │
    │   🦉  Athena       → 01_research.md        ── H1   │
    │                                        ▲            │
    │                               approve / edit        │
    │                                        ▼            │
    │   🎵  Apollo       → 02_brand_messaging.md ── H2   │
    │                                        ▲            │
    │                               approve / edit        │
    │                                        ▼            │
    │   🏠  Hestia       → 03_ux.md              ── H3   │
    │                                        ▲            │
    │                               approve / edit        │
    │                                        ▼            │
    │   ⚡  Hermes       → 04_go_to_market.md    ── H4   │
    │                                        ▲            │
    │                               approve / edit        │
    │                                        ▼            │
    │   🔨  Hephaestus   → final_product_plan.md         │
    │                                                     │
    └─────────────────────────────────────────────────────┘
                              │
                              ▼
                    ┌─────────────────────┐
                    │      output/        │
                    │  (all artifacts on  │
                    │     your disk)      │
                    └─────────────────────┘

Each H# is a checkpoint — the pipeline blocks until you approve, edit, or send it back. The final plan is assembled only after all four checkpoints are green.

State lives at .embercore-state/ so a crashed run resumes from the last completed stage.

<br/>

🏛 The Agents

<div align="center"> <table> <thead> <tr> <th align="center">Agent</th> <th align="center">Domain</th> <th>Stage</th> <th>Output</th> </tr> </thead> <tbody> <tr> <td align="center">🦉 <strong>Athena</strong></td> <td align="center"><em>Wisdom & Strategy</em></td> <td>Research, ICP, competitive landscape</td> <td><code>01_research.md</code></td> </tr> <tr> <td align="center">🎵 <strong>Apollo</strong></td> <td align="center"><em>Light & Prophecy</em></td> <td>Brand voice, positioning, messaging pillars</td> <td><code>02_brand_messaging.md</code></td> </tr> <tr> <td align="center">🏠 <strong>Hestia</strong></td> <td align="center"><em>Hearth & Home</em></td> <td>Onboarding flow, screens, UX wireframes</td> <td><code>03_ux.md</code></td> </tr> <tr> <td align="center">⚡ <strong>Hermes</strong></td> <td align="center"><em>Messenger of the Gods</em></td> <td>Go-to-market: social, B2B outreach, channels</td> <td><code>04_go_to_market.md</code></td> </tr> <tr> <td align="center">🔨 <strong>Hephaestus</strong></td> <td align="center"><em>Divine Smith</em></td> <td>Assembly of the final plan from all prior outputs</td> <td><code>final_product_plan.md</code></td> </tr> </tbody> </table> </div>

<br/>

Why named agents? Because "Stage 3" is forgettable — "Hestia just finished your onboarding flow" is not.

📖 Agent mapping in docs/agents.md  ·  Prompts in packages/engine/prompts/  ·  Implementation in packages/engine/tools/

<br/>

🔑 BYOK + Privacy

  • Your Anthropic key is set in your shell environment (or MCP client config). It never touches an embercore server because there is no embercore server — just code on your machine.
  • The web app stores nothing server-side. Briefs and plans live in localStorage and on disk under output/.
  • Zero telemetry. Zero analytics. We can't see you using embercore — and that's the point.
  • Engine logs are local-only and elide secrets by default. See packages/engine/internal/logger.

<br/>

🏠 Self-Host

Everything is self-host by default — there is no hosted version to switch from.

Deployment How
Web app Deploy apps/web to Vercel, Netlify, Cloudflare Pages, or any Node host. Users paste their own key.
MCP engine Ship the embercore-engine binary alongside any MCP client. No daemon, no server.
Air-gapped Set ANTHROPIC_BASE_URL to point at an internal proxy. The engine doesn't care.

📖 See docs/architecture.md for the full picture.

<br/>

🤝 Contributing

We mean it when we say PRs welcome. The repo is fresh, the surface is small, and there are plenty of good first issues that don't require touching the LLM code.

Resource Description
CONTRIBUTING.md Dev setup, PR flow, commit style
CODE_OF_CONDUCT.md Contributor Covenant 2.1
SECURITY.md How to report vulnerabilities privately
Discussions Roadmap conversations & design questions

<br/>

🗺 Roadmap

Full detail in ROADMAP.md. The short version:

Phase Focus Status
Phase 0 — Foundations Repo scaffold, OSS docs, BYOK architecture ✅ Complete
Phase 1 — Core Loop End-to-end plan → checkpoint → execute pipeline ✅ Complete
Phase 2 — Marketing Workflows Apollo, Hephaestus, workflow templates, review queue 🧭 In progress
Phase 3 — MCP & Integrations MCP server tools, plugin API, local providers 💭 Exploring

The default forever-future for embercore is "OSS, BYOK, runs on your machine."

<br/>

📄 License

MIT — see LICENSE. Use it for anything. Sell things you build with it. Just don't sue us.

<br/>

🙏 Acknowledgements

<br/>

<div align="center">

<br/>

<a href="https://github.com/embercore-labs/embercore/stargazers"><img src="https://img.shields.io/badge/⭐_Star_embercore-F7C948?style=for-the-badge" alt="Star embercore" /></a>

<br/> <br/>

<sub>Built with 🔥 by <a href="https://github.com/tamish-max">Tamish Mhatre</a> and <a href="https://github.com/embercore-labs/embercore/graphs/contributors">contributors</a>.</sub>

<br/>

<sub>If embercore saved you an afternoon of marketing-tab hell, <a href="https://github.com/embercore-labs/embercore/stargazers">give it a star</a> — it helps more than you think.</sub>

<br/> <br/>

</div>

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
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

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