DEV Community

Maniruzzaman Akash
Maniruzzaman Akash

Posted on Originally published at laradashboard.com

Wire Cursor and Claude to Your Laravel CMS with MCP (Skip the Paste Loop)

You already draft in Cursor or Claude. Then you open the CMS admin, paste HTML, hunt for the right status, and hope the featured image path is right. The agent wrote the words. You still did the busywork.

This guide is about connecting AI coding agents (Cursor, Claude Desktop, and similar MCP clients) to a real Laravel CMS through named tools. Here we stay on content ops: create and update posts, list tickets, work contacts, and keep a human gate on publish.

Disclosure: LaraDashboard is our open-source Laravel admin and CMS. We ship an MCP server with tools for posts, media, tickets, CRM, forms, and ops. We recommend it when you want agents talking to your CMS through named tools and permissions, not through brittle copy-paste.

The short answer

MCP (Model Context Protocol) lets an agent discover tools with schemas and call them. Cursor and Claude act as clients. Your LaraDashboard instance exposes a server. The agent can draft a post into pending status, list open tickets, or pull a daily briefing without you leaving the editor.

Safer ops mean the agent prepares. You approve anything that goes live: publish, send email, delete, or attach media you have not checked. Token abilities and Laravel permissions still apply. An agent is not a superuser because it talks MCP.

Vs ChatGPT paste workflows: paste is fine for a one-off rewrite. It fails when you need post IDs, term IDs, ticket threads, or a consistent status flow. MCP keeps the agent on the same records your admin uses.

What you connect: client, server, token

Three pieces matter in practice.

  1. MCP client. Cursor, Claude Desktop, or another host that speaks MCP.
  2. MCP server. LaraDashboard exposes tools grouped by Content, CRM, Forms, Email, Operations, and Discovery. Each tool has a name, description, and parameter schema.
  3. Auth. You create an MCP token with abilities (for example mcp:posts.read, mcp:posts.write). Laravel permissions on the user still gate actions like post.create or ticket.edit.

If a tool is missing, check installed modules and token abilities with list-mcp-tools, list-modules, and get-site-health. Do not assume every demo screenshot matches your install.

Agent CMS vs paste chat

Compare the job shapes teams actually run:

  • Draft a blog post: Agent calls create-post with title, HTML content, excerpt, and status=pending vs you paste by hand.
  • Revise before publish: Agent calls update-post on a known post_id vs you hunt the draft in the admin list.
  • Assign category: Agent calls assign-post-terms with term IDs from list-terms vs you click category checkboxes.
  • Triage support: Agent calls list-tickets / get-ticket / reply-ticket vs you retype context into chat.
  • CRM follow-up: Agent lists contacts or deals, then drafts a note via activity tools vs you copy CRM fields into a chat window.
  • Ops pulse: Agent calls get-daily-briefing or get-site-health vs you open five admin menus before standup.

Paste chat has no post ID. MCP does.

Content tools agents use every week

These Content tools show up in real editorial loops:

  • list-posts and get-post for inventory and QA
  • create-post for draft or pending posts
  • update-post for content, excerpt, title, status, and publish date
  • assign-post-terms after list-terms so categories and tags stay consistent
  • generate-seo-meta when you want a suggested meta title and description (still review soft marketing language)
  • Media tools (list-media, upload-media, attach-featured-image). Treat media attach as a human-gated step when storage is flaky.

A practical pattern:

  1. Agent drafts Markdown locally.
  2. You convert to clean HTML (or the agent does under review).
  3. Agent creates the post as pending or draft with include_images=false when you do not want AI header images.
  4. SEO pass and human review happen on the pending post.
  5. Only after approval does someone set status=published.

The agent speeds the boring parts. You keep the publish button.

Tickets, CRM, and forms without tab chaos

When the same CMS holds support and CRM modules, the agent can stay in Cursor while you triage:

  • Tickets: list-tickets, get-ticket, reply-ticket, assign-ticket, update-ticket
  • Contacts and deals: list-contacts, get-contact, create-contact, list-deals, update-deal
  • Forms: list-form-submissions, mark-form-submission-viewed
  • Email: list/get templates; send-email only when you mean to send

Keep write actions behind confirmation. Draft a public ticket reply in the agent. Send only after you read it. Same rule for CRM stage moves and outbound email.

Safe defaults and hard stops

Safe when tools and tokens are scoped:

  • Read lists and single records
  • Create pending or draft posts
  • Update draft content before publish
  • Draft ticket replies as internal notes first
  • Pull get-daily-briefing for standup
  • Discover tools with list-mcp-tools before guessing names

Team rules that help:

  1. Never publish without a human "yes" in the thread.
  2. Never delete posts or media unless named and confirmed.
  3. Never send email or public ticket replies without a quoted preview.
  4. Prefer include_images=false unless you want generated headers.
  5. Log post_id, slug, and status so QA can check the live URL.

Do not let an unsupervised agent flip many posts to published, invent metrics or customer quotes, bypass Spatie roles with a god-token, or treat MCP as a substitute for a public REST API. Scope tokens like you scope deploy keys.

Cursor versus Claude for CMS work

Both can be MCP clients. The useful differences are workflow habits.

Cursor fits when the draft lives next to code: article Markdown in a repo, editorial notes, PR review. The agent edits files, then calls MCP to create the pending post.

Claude Desktop fits when the operator lives in conversation: "list open high-priority tickets," "draft a reply for ticket 42," "create a pending post from this outline."

The LaraDashboard tool surface is the same either way. Pick the client your team will actually leave open.

A concrete day with and without MCP

Without MCP:

  1. Outline in chat
  2. Paste draft into Docs or the CMS
  3. Fix formatting that broke on paste
  4. Open admin to set category and excerpt
  5. Open tickets in another tab
  6. Forget which draft was the latest

With LaraDashboard MCP:

  1. Outline and draft in the agent with your style rules open
  2. Agent creates pending post via create-post
  3. You review in admin or via get-post
  4. Agent assigns your category via assign-post-terms
  5. Agent lists related tickets if the post answers support themes
  6. You publish after review

You still write. You still judge tone. You skip the scavenger hunt.

Setup checklist

  1. Install and enable the MCP-related modules on your LaraDashboard site.
  2. Create a dedicated MCP token with least privilege for the job.
  3. Connect Cursor or Claude as a client using your host's MCP config.
  4. Call list-mcp-tools and get-site-health before the first write.
  5. Run a dry run: create-post with status=pending and a throwaway title.
  6. Add team rules: publish only on approval; media attach policy; no silent deletes.

Prefer official Cursor or Claude MCP docs for connection JSON. Do not paste secrets into public repos.

Failure cases to expect

  • Payload size limits. Very large HTML bodies may fail on create/update. Keep a full Markdown source.
  • Soft SEO copy. generate-seo-meta can return marketing-heavy titles. Prefer a manual meta title when that happens.
  • Missing tools. Disabled modules hide CRM or forms tools. Check list-modules.
  • Permission errors. Token ability present but user permission missing (or the reverse).
  • Media storage flakes. If featured-image attach fails, upload manually.

FAQ

Is LaraDashboard MCP the same as a public REST API? No. MCP is for assistant clients with tool schemas. A public product API still wants Sanctum, versioning, and docs. Use MCP for operator agents. Use REST for apps that are not chat clients.

Can the agent publish without me? Only if your token allows it and you allow the call. Prefer pending first, human review, then publish.

Will agents replace our editors? No. Agents draft, list, and prep. Editors own voice, accuracy, disclosure, and publish.

Final verdict

If your team already writes in Cursor or Claude, connecting those agents to LaraDashboard MCP is a practical next step. You get pending posts, ticket context, and CRM reads without turning ChatGPT into a copy-paste modem. You keep humans on publish, send, and delete.

Skip MCP if you publish once a month and paste is fine. Adopt it when content and support share one Laravel CMS and tab-hopping is the tax you pay every day.

If you want that path with MCP tools for agents, try LaraDashboard. Connect a least-privilege token, create one pending post on purpose, and only then wire publish into your editorial checklist.

Top comments (0)