Back to docs
API Reference

Claude Code MCP Integration

Connect Flint to Claude Code and create landing pages from your terminal.

Overview

Flint has an MCP (Model Context Protocol) server that connects directly to Claude Code. Once connected, you can create landing pages from your terminal just by describing what you want.

This integration allows Claude Code to create, modify, and manage your Flint pages directly through conversation in your development environment.

Behind the scenes, Claude Code chats with Flint's agent on your site. You can open the same chat in the Flint editor at any time.

Add Flint to Claude Code

Run this command in your terminal to add Flint as an MCP server:

bash
claude mcp add flint --transport http https://mcp.tryflint.com/mcp

This adds Flint as a remote HTTP MCP server that Claude Code can use to build and manage your landing pages.

Authenticate

After adding the server, authenticate with your Flint account:

1. Open the MCP menu in Claude Code

text
/mcp

2. Select Flint and authenticate

Follow the prompts to sign in to your Flint account in your browser. This authorizes Claude Code to create and modify pages on your behalf.

Verify the Connection

Confirm the server was added correctly:

bash
claude mcp list

You should see flint in the list of configured servers. To get more details:

bash
claude mcp get flint

Creating Pages

Once connected, you can ask Claude Code to build landing pages for any campaign, ICP, or keyword. Describe the audience, the offer, and the tone - Claude Code handles the rest and builds the page directly in Flint, ready to publish.

Example Prompt

text
Generate a personalized account page targeting Anthropic. Tailor the messaging to address their specific industry needs.

Claude Code will use Flint to generate and create the page, which you can then preview and publish.

If Flint needs more detail, it asks in its reply. Claude Code passes the question to you and sends your answer back in the same chat.

Available Tools

The Flint MCP server gives Claude Code three groups of tools: chat tools for building and editing pages, site and publishing tools, and two deprecated tools.

Use the chat tools to have Flint's agent work on a site. Each chat runs on one site.

start_chat

Starts a chat with the Flint agent on a site. It returns right away, before Flint replies.

ParameterTypeDescription
siteIdstring (UUID)The Flint site to work on
messagestringWhat you want Flint to do

Returns {"chatId", "messageId"}. Pass both to wait_for_reply.

send_message

Sends a follow-up in an existing chat, such as an answer to a question Flint asked.

ParameterTypeDescription
chatIdstringThe ID returned from start_chat
messagestringYour follow-up or answer

Returns {"chatId", "messageId"} with a new messageId. A chat takes one message at a time, so this fails while Flint is still replying, with the error "Flint is still replying in this chat. Wait for its reply, then send again."

wait_for_reply

Waits up to 45 seconds for Flint's reply to a message.

ParameterTypeDescription
chatIdstringThe ID of the chat
messageIdstringThe ID returned from start_chat or send_message

Returns one of three statuses:

StatusResponseWhat to do
running{"status": "running"}Flint is still working. Call wait_for_reply again right away.
completed{"status": "completed", "reply": "..."}Read Flint's reply. If it asks a question, answer with send_message.
failed{"status": "failed"}Send the message again.

How a Chat Works

A chat with Flint is a loop: send a message, wait for the reply, repeat.

  1. 1.Call start_chat with the site ID and your request. It returns a chatId and messageId right away.
  2. 2.Call wait_for_reply with both IDs. If the status is running, call it again right away. Keep going until it returns completed or failed.
  3. 3.Read Flint's reply. If Flint asks a question, answer it with send_message in the same chat, then go back to step 2 with the new messageId.
  4. 4.If the status is failed, send the same message again.

One message at a time

A chat takes one message at a time. Wait for completed before you call send_message, or it fails.

Run separate work in parallel

Start a separate chat for each independent piece of work, such as one chat per page. The chats run in parallel.

Pick up a chat in Flint

Chats started over MCP appear in the site's chat list in the Flint editor, titled from the first message. Anyone on your team can open one and keep going.

Google Ads changes

Flint can't run Google Ads changes over MCP. It drafts them, and a person runs them from that chat in Flint.

Site and Publishing Tools

list_organizations

Lists the Flint organizations your account belongs to. No parameters required.

Returns each organization's ID and name. Pass an organization ID to list_sites to see only that organization's sites.

list_sites

Lists your Flint sites.

ParameterTypeDescription
organizationIdstring (optional)Only list sites in this organization

Without an organizationId, it lists the 10 newest sites across all your organizations. With one, it lists that organization's 10 newest sites. Each result includes the site name, site ID, organization ID, and organization name. Ask Claude Code "what sites do I have?" to look up a site ID without leaving the conversation.

publish_site

Deploys a Flint site to production.

ParameterTypeDescription
siteIdstring (UUID)The target site to publish

Publishes the latest saved changes on the site. Chat with Flint to make changes, then ask Claude Code to publish them with publish_site.

Deprecated Tools

run_background_agent and check_background_agent_status still work but are deprecated. Use start_chat, send_message, and wait_for_reply instead.

Server Scopes

You can control where the MCP server configuration is stored using the --scope flag:

bash
# Local scope (default) - only you, only this project
claude mcp add flint --transport http https://mcp.tryflint.com/mcp

# User scope - available to you across all projects
claude mcp add flint --transport http --scope user https://mcp.tryflint.com/mcp

# Project scope - shared with everyone via .mcp.json
claude mcp add flint --transport http --scope project https://mcp.tryflint.com/mcp

Managing the Server

Use these commands to manage your Flint MCP server:

bash
# List all configured servers
claude mcp list

# Get details for the Flint server
claude mcp get flint

# Remove the Flint server
claude mcp remove flint

# Check server status in Claude Code
/mcp

Troubleshooting

Connection not working?

  1. 1.Verify the server URL is entered exactly as shown above
  2. 2.Try removing and re-adding the server: claude mcp remove flint then add it again

Authentication issues?

  1. 1.Run /mcp in Claude Code and select "Authenticate" for Flint
  2. 2.Complete the browser login flow
  3. 3.If the browser redirect fails, copy the callback URL from your browser and paste it into Claude Code

Message rejected while Flint is replying?

A chat takes one message at a time. Call wait_for_reply until it returns completed, then send your message again.

Reply still running?

That's normal while Flint works. Larger changes take several calls. Call wait_for_reply again right away until it returns completed or failed.

Pages not appearing?

  1. 1.Check that wait_for_reply returned completed in Claude Code's response
  2. 2.Refresh your Flint dashboard to see newly created pages
  3. 3.Verify you have the correct Flint site selected