Building a Flask Blog in 3 prompts with AI Coding Tools: Using Cline & MCP Servers in VSCode

On my journey to get up to date with Large Language Models (LLMs) and other Artificial Intelligence (AI) advances, I’ve been playing around with AI coding tools. While I usually prefer (neo)vim for coding, I found that IDE integrated tools are currently more polished and more convenient to use. I will do more exploration with neovim plugins and might even write my own but I’m the meantime I’ll play around with VSCode and it’s open source AI extensions like Cline and Roo Code (which are alternatives to Cursor).

Using a coding Agent from the VSCode IDE

As a quick example, here’s Cline using Deepseek chat v3 to generate a simple webpage for the following prompt:

Cline prompt for an HTML page with blinking.dog gif centered

Note

You can make use of openrouter to use free models with Cline.

Cline allows you to see the changes made to the files it modifies and you can approve them if you’re happy with those. Furthermore, it gives you API costs, context window usage and other data that might be useful to monitor what the Agent is doing:

VSCode Cline Generated HTML page

Even though this is a pretty simple task, the result is really good, the webpage displays the GIF and centered it properly:

Resulting HTML page with blinking.dog gif centered

This is a pretty basic example and you can get them to work on much more complex tasks but this highlights the potential time saves that AI can bring you (when it doesn’t hallucinate buggy code).

Using MCP servers and AI agents to create a static blog

These agents have the ability to use tools and glorified API Servers called Model Context Protocol (MCP) Servers. These provide a structured interface for the Agent to use various tools via endpoints that are defined in the MCP server. For example, this allows the Agent to talk to databases by implementing endpoints to execute SQL commands.

Installing MCP servers

By going to the MCP Servers tab, you can view a list of the servers available and install a server. For example, here I installed SQLite which I use later on in this article:

Cline MCP Servers tab

After clicking install, Cline actually uses an LLM to perform the installation which I was surprised about but makes sense. The agent may give you tasks too, like running x/y command and installing dependencies like uv, read carefully what it returns:

Cline installing SQLite MCP server

Note

A lot of these MCP servers use uv which you’ll need installed. To install, pipx install uv (or pip install uv if you’re sinning and not using pipx)

Using MCP servers

If done properly you should now have an MCP server installed and you can request the Agent to use it to perform task. For example, with the SQLite server I installed above, I’m able to ask the agent to create a new table and I can specify the columns I need. The agent will then generate the SQL command required to create the blog and use the create_table tool that is exposed via the MCP server as such:

Cline interacting with SQLite MCP server

With that table created we can ask it to populate it directly, for example requesting it to generate a blog that answers the following question: “What is the best privacy tool to install in 2025?”. It then generates the title, description, tags and the content for the blog and uses the SQLite MCP server to add the blog to the database using the write_query functionality provided by the MCP server:

Cline write to database with SQLite MCP server

Pretty awesome already!

Creating a simple Flask blog

With that done, we can ask it to create a small python application to showcase our blog post. Since we asked it to generate the content in markdown, we need to make sure that it properly converts it to HTML before displaying it:

Cline creating a simple flask blog app with SQLite database created previously

This results in the following app.py file being created with a simple route which retrieves the blog posts and displays them:

Cline generated simple Flask blog with SQLite storage

It also generates a simple template to render the blog post view:

Cline generated simple Flask blog index template

And when we serve it, we get the following:

Simple Flask Blog result in browser

Not too bad considering this took us exactly 3 prompts to go from nothing to a Flask blog application with a populated SQLite database! There seems to be a small issue with the display and the newlines don’t appear to be converted properly but we can relay that information to the Agent and ask it to fix it for us, which it does without much trouble:

Cline fix markdown newline issue

And our rendered blog is not too bad:

Final result for Simple Flask blog

Conclusion

Overall a simple but great example showcasing what might be possible with AI tools and integrations. The whole process took only four (4) prompts to go from a blank canvas to a populated Flask blog with SQLite database storage.

As AI models improvements slow down, the next step will be looking at how to integrate the models into everyday tools that we use. MCP servers seems like a promising idea to extend Agents and make them more capable. They still need to be supervised as they make mistakes and may not always make the best choices but as shown above, they can speed up the development of things quite drastically.