Skip to main content
Glama
mcp-lindoai

mcp-lindoai

Official
by lindoai

@lindoai/mcp-server

MCP (Model Context Protocol) server for Lindo AI — create websites, pages, and blog posts with AI directly from Claude, Cursor, Kiro, Windsurf, and other MCP-compatible tools.

Listed in the official MCP Registry as io.github.lindoai/mcp-server.

mcp-server MCP server

Setup

Add to your MCP client configuration:

{
  "mcpServers": {
    "lindo": {
      "command": "npx",
      "args": ["-y", "@lindoai/mcp-server"],
      "env": {
        "LINDO_API_KEY": "your_api_key_here"
      }
    }
  }
}

Where to add this config

Client

Config file

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json (macOS)

Claude Code

.claude/settings.json

Cursor

.cursor/mcp.json

Kiro

.kiro/settings/mcp.json

Windsurf

MCP settings in IDE

Getting your API key

  1. Go to app.lindo.ai

  2. Navigate to Workspace Settings → API Keys

  3. Create a new API key

  4. Copy the key and paste it as LINDO_API_KEY

Requires a Business or Whitelabel plan.

Related MCP server: web2md-mcp

Available Tools

Websites

  • create_website — Create a new website using AI from a text prompt

  • list_websites — List all websites in your workspace

Pages

  • edit_website — Edit an existing website (across its pages) using AI

Blog

  • create_blog — Generate a blog post on a website using AI

  • publish_blog — Publish a static blog post with markdown content, featured image and author image

  • update_blog — Change a post's featured image, author, author image, category, excerpt or date without touching its content

  • get_blog_html — Read a post's current content, SEO and settings

  • update_blog_content — Replace a post's content

Clients

  • create_client — Create a new client

  • list_clients — List all clients

  • assign_website — Assign a website to a client

  • generate_magic_link — Generate a client login link

Credits

  • allocate_credits — Allocate credits to a client

Scheduling

The create_website, edit_website, and create_blog tools support an optional schedule_at parameter (ISO 8601 datetime) to schedule the workflow for a future time.

Remote MCP Server

You can also connect via the remote MCP endpoint without installing anything:

https://mcp.lindo.ai/mcp

Available Tools

50 tools
add_custom_domainAdd Custom DomainCInspect

Add a custom domain to a website.

Inputs: domain (required), website_id (required).

add_workspace_team_memberAdd Team MemberCInspect

Add a team member to the workspace.

Inputs: role (required), email (required).

allocate_creditsAllocate CreditsBInspect

Allocate credits to a client.

Inputs: amount (required), client_id (required), credit_type (required), notes, +1 more.

assign_websiteAssign Website to ClientCInspect

Assign a website to a client.

Inputs: client_id (required), website_id (required).

batch_check_blog_statusCheck Multiple Blog Workflow StatusesA
Read-only
Inspect

Poll up to 25 blog-creation workflows at once. Returns a rollup status plus a per-item array with the same shape as check_blog_status.

Inputs: workflow_ids (required).

batch_check_website_statusCheck Multiple Website Workflow StatusesA
Read-only
Inspect

Poll up to 25 website-creation workflows at once. Returns a rollup status (scheduled/running/complete/partial/errored) plus a per-item array with the same shape as check_website_status.

Inputs: workflow_ids (required).

batch_create_blogsCreate Multiple Blog Posts (Batch)AInspect

Start up to 25 blog-creation workflows on a single website in one request. Returns one workflow_id per item. Poll with batch_check_blog_status or check_blog_status.

Inputs: items (required), website_id (required).

batch_create_websitesCreate Multiple Websites (Batch)AInspect

Start up to 25 website-creation workflows in one request. Returns one workflow_id per item. Poll the combined status with batch_check_website_status, or the individual ones with check_website_status.

Inputs: items (required).

check_blog_statusCheck Blog Creation StatusA
Read-only
Inspect

Poll the status of a blog-creation workflow started by create_blog. Pass the workflow_id you received from that tool. While running, call this again after poll_after_ms ms. Once done is true, status is complete or errored; when complete, result holds the published blog info.

Inputs: workflow_id (required).

check_edit_statusCheck Website Edit StatusA
Read-only
Inspect

Poll the status of a website-edit workflow started by edit_website. Pass the workflow_id you received from that tool. While running, call this again after poll_after_ms ms. Once done is true, status is complete or errored; when complete, result holds the changed pages.

Inputs: workflow_id (required).

check_website_statusCheck Website Creation StatusA
Read-only
Inspect

Poll the status of a website-creation workflow started by create_website. Pass the workflow_id you received from that tool. While the workflow is running, call this again after poll_after_ms ms. Once done is true, status is complete (all pages generated), partial (some failed), or errored. result.pages lists every page (home + additional) with its individual status.

Inputs: workflow_id (required).

create_blogCreate Blog PostAInspect

Create an AI-generated blog post on a website. Starts an asynchronous workflow and returns a workflow_id immediately — poll check_blog_status with that id to track progress and get the final result.

Inputs: prompt (required), website_id (required), schedule_at.

create_clientCreate ClientCInspect

Create a new client in the workspace.

Inputs: name (required), email (required), phone, send_invitation.

create_websiteCreate WebsiteAInspect

Create a new website using AI. Starts an asynchronous workflow and returns a workflow_id immediately — poll check_website_status with that id to track progress and get the final result. Optionally assign to a client by providing client_id (existing) or client_email (lookup or create new).

Inputs: prompt (required), client_id, client_name, schedule_at, +1 more.

delete_blogDelete Blog PostA
Destructive
Inspect

Delete a blog post from a website.

Inputs: blog_id (required), website_id (required).

delete_clientDelete ClientA
Destructive
Inspect

Delete a client from the workspace.

Inputs: record_id (required).

delete_pageDelete PageB
Destructive
Inspect

Delete a page from a website.

Inputs: page_id (required), website_id (required).

delete_websiteDelete WebsiteB
Destructive
Inspect

Delete a website from the workspace.

Inputs: record_id (required).

edit_websiteEdit WebsiteAInspect

Edit an existing website (across its pages) using AI. Starts an asynchronous workflow and returns a workflow_id immediately — poll check_edit_status with that id to track progress and get the final result.

Inputs: prompt (required), website_id (required), publish, schedule_at.

get_blogGet Blog DetailsA
Read-only
Inspect

Get blog post details.

Inputs: blog_id (required), website_id (required).

get_blog_htmlGet Blog HTMLA
Read-only
Inspect

Get the HTML content of a blog post.

Inputs: blog_id (required), website_id (required).

get_client_creditsGet Client CreditsB
Read-only
Inspect

Get client credit balance.

Inputs: client_id (required).

get_creditsGet Workspace CreditsA
Read-only
Inspect

Get workspace credit balance.

Inputs: no named parameters.

get_pageGet Page DetailsB
Read-only
Inspect

Get page details.

Inputs: page_id (required), website_id (required).

get_page_htmlGet Page HTMLA
Read-only
Inspect

Get the HTML content of a page.

Inputs: page_id (required), website_id (required).

get_websiteGet Website DetailsC
Read-only
Inspect

Get website details.

Inputs: website_id (required).

get_website_analyticsGet Website AnalyticsC
Read-only
Inspect

Get website analytics.

Inputs: website_id (required).

get_website_teamGet Website TeamC
Read-only
Inspect

Get website team members.

Inputs: website_id (required).

get_workspaceGet Workspace DetailsC
Read-only
Inspect

Get workspace details.

Inputs: no named parameters.

get_workspace_analyticsGet Workspace AnalyticsD
Read-only
Inspect

Get workspace analytics.

Inputs: no named parameters.

get_workspace_teamGet Workspace TeamA
Read-only
Inspect

Get workspace team members.

Inputs: no named parameters.

list_blogsList Blog PostsA
Read-only
Inspect

List all blog posts on a website.

Inputs: website_id (required).

list_clientsList ClientsA
Read-only
Inspect

List all clients in the workspace.

Inputs: no named parameters.

list_pagesList PagesB
Read-only
Inspect

List all pages on a website.

Inputs: website_id (required).

list_websitesList WebsitesA
Read-only
Inspect

List all websites in the workspace.

Inputs: no named parameters.

publish_blogPublish Blog PostCInspect

Publish a static blog post with markdown content.

Inputs: path (required), page_title (required), website_id (required), blog_content (required), +4 more.

publish_pagePublish PageBInspect

Publish a static page with HTML content.

Inputs: html (required), path (required), page_title (required), website_id (required).

remove_custom_domainRemove Custom DomainB
Destructive
Inspect

Remove a custom domain from a website.

Inputs: website_id (required).

remove_workspace_team_memberRemove Team MemberA
Destructive
Inspect

Remove a team member from the workspace.

Inputs: member_id (required).

unpublish_blogUnpublish Blog PostB
Destructive
Inspect

Unpublish a blog post from a website.

Inputs: blog_id (required), website_id (required).

unpublish_pageUnpublish PageB
Destructive
Inspect

Unpublish a page from a website.

Inputs: page_id (required), website_id (required).

update_blogUpdate BlogCInspect

Update blog post metadata.

Inputs: blog_id (required), website_id (required), seo, name, +1 more.

update_blog_contentUpdate Blog ContentBInspect

Update the content of an existing blog post.

Inputs: blog_id (required), website_id (required), blog_content (required), seo, +1 more.

update_clientUpdate ClientBInspect

Update an existing client.

Inputs: record_id (required), name, email, phone.

update_pageUpdate PageBInspect

Update page metadata.

Inputs: page_id (required), website_id (required), seo, name, +1 more.

update_page_contentUpdate Page ContentCInspect

Update the content of an existing page.

Inputs: html (required), page_id (required), website_id (required), seo.

update_websiteUpdate WebsiteCInspect

Update website details.

Inputs: record_id (required), business_name, business_description.

update_website_settingsUpdate Website SettingsCInspect

Update website settings.

Inputs: settings (required), website_id (required).

update_workspaceUpdate WorkspaceCInspect

Update workspace details.

Inputs: language, business_name, default_currency.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3/5.0

    Scored across 50 tools

    Disambiguation4/5

    Tools are broadly separated by resource (workspace, client, website, page, blog) and action, and the async workflow/batch variants are clearly scoped. Minor ambiguity exists between create_blog (AI-generated) and publish_blog (static markdown), and get_credits vs get_client_credits requires reading descriptions to distinguish.

    Naming Consistency4/5

    Most tools follow a consistent verb_noun pattern (list_websites, create_client, delete_page, unpublish_blog), with batch/check variants following the same convention. Small inconsistencies like get_workspace_team vs add_workspace_team_member and unprefixed get_credits vs get_client_credits keep it from a 5.

    Tool Count1/5

    At 50 tools, this is an extreme count for a single MCP server; even with a broad CMS scope, the agent surface is very large. Many workflow starters and their polling/batch counterparts inflate the surface and would be better grouped behind fewer tools or explicit sub-resources.

    Completeness5/5

    The surface covers nearly full lifecycles for workspaces, clients, websites, pages, and blogs, including CRUD, publishing, analytics, team management, credits, custom domains, and async workflows with batch status polling. No obvious dead ends or critical missing operations exist for the stated platform domain.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      B
      maintenance
      AutomateLab AI-SEO audits, scores, and rewrites web pages for AI citation eligibility, AEO and GEO. No API keys or registration. Works with Claude, Cursor, Codex, and other MCP clients. Product and documentation: https://automatelab.tech/products/mcp/ai-seo/
      20
      88 npm
      3
      MIT