Skip to main content
Glama

Quill ✒️ — An MCP-Native Blogging Platform

"Your blog dashboard is your editor. Talk to your blog the way you talk to your code."

Quill is an MCP-first blogging platform built specifically for developers and technical writers. It eliminates context-switching to traditional CMS dashboards by exposing full blog management capabilities—drafting, editing, publishing, auto-scheduling, content validation, SEO optimization, and analytics tracking—directly to AI coding agents via the Model Context Protocol (MCP).

It also includes a lightweight, server-rendered web dashboard that maintains complete parity with the MCP tools, acting as a durable second front door.


🔥 Key Highlights

  • 🤖 MCP-Native Workflow: Manage your entire blog using natural language requests inside your IDE (Claude Code, Cursor, Windsurf, etc.).

  • 🔄 Tool-Dashboard Parity: Every feature available as an MCP tool is mirrored in the companion web dashboard. Both share the exact same backend logic.

  • 🔐 Dual Auth System: Session-based authentication for the web dashboard alongside isolated, rotatable API keys for MCP connections.

  • 🛡️ Security & Safety First: Includes rate-limiting on write tools, tool-call audit logging, and server-side content safety validation.

  • 🌐 Public Read-Only Site: Fast, minimal blog interface for readers without auth overhead.

  • 📊 Built-in Analytics: Tracks post views and referral sources out of the box.


🛠️ Tech Stack

  • Runtime: Node.js

  • Framework: Express.js

  • Views: EJS (Embedded JavaScript)

  • Protocol: @modelcontextprotocol/sdk (Streamable HTTP)

  • Database: SQLite

  • Authentication: Express Sessions & Key Hashing


🚀 How to Run Quill Locally

Follow these step-by-step instructions to set up and run the Quill platform on your local machine.


📋 Prerequisites

Ensure you have the following installed on your system:

  • Node.js (v18.x or higher)

  • npm or pnpm

  • Git


1️⃣ Clone the Repository

git clone [https://github.com/Mahnoor-shuaib/quill.git](https://github.com/Mahnoor-shuaib/quill.git)

cd quill

---

## 2️⃣ Install Dependencies

Install all required packages using npm:

`npm install`

---

## 3️⃣ Configure Environment Variables

Create a `.env` file in the root directory:

`touch .env`

Add the following environment variables into `.env`:

PORT=3000
DATABASE_URL=quill.db
SESSION_SECRET=your_super_secret_session_key_here
NODE_ENV=development

---

## 4️⃣ Start the Server

Run the main server process:

`node src/server.js`

Once started, the application will be live at `http://localhost:3000`.

---

## 5️⃣ Accessing the Application

- **Web Dashboard:** Open `http://localhost:3000/dashboard` in your browser to sign up for an account or log in.
- **MCP Endpoint:** Upon signing up, you will receive a unique API Key. Your personal MCP connection URL will be: `http://localhost:3000/mcp?key=YOUR_API_KEY`
- **Public Blog:** Accessible directly at `http://localhost:3000/`.

---

## 6️⃣ Connecting to Your IDE Agent

Add the MCP server URL to your IDE configuration file (`mcpServers` section in Cursor, Claude Code, etc.):

{
  "mcpServers": {
    "quill-blog": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-sse",
        "http://localhost:3000/mcp?key=YOUR_API_KEY"
      ]
    }
  }
}

Empower your writing workflow with Quill—where code and content seamlessly converge.