We've made migration to Shuttle very easy by leveraging our Shuttle MCP server and Cursor. The Shuttle MCP provides up to date documentation to your AI agents so that they'll be able to understand how to interact with the Shuttle platform having the latest information.
In this short tutorial, we'll walk through migrating an existing Axum todo application to Shuttle and we'll deploy the application to Shuttle, we'll do all of that in just a few minutes.
The final migrated project is available at todo-app example.
So, let's get started.
Prerequisites
You'll need to have a Shuttle account, so if you don't have one, make sure to create an account it takes less than a minute.
After signing up, you'll need to install the Shuttle CLI:
If you already have shuttle installed, make sure you update it by running
shuttle upgrade
.
Login to Shuttle
Once the CLI is installed, login to your Shuttle account:
This command will redirect you to the Shuttle console in your browser. Click "Authorize" to login.

Installing the Shuttle MCP Server in Cursor
Installing the Shuttle MCP Server is quite easy to do, you can add it just by clicking the "Add to Cursor" button in the the Shuttle documentation page, it will automatically configure the MCP server in your Cursor settings.

If not using Cursor no problem, you can manually update your mcp.json
file to add it to your MCP client. Example:

The green status indicates that the MCP server is working and all tools ready for your AI agent to use.
Migrating Your Project
Now comes the interesting part - with this approach, we're gonna make it very easy to migrate to Shuttle. We've already put together a prompt that will guide your AI agent to migrate your existing Axum project to Shuttle. Along with the MCP server, your AI agent will have every bit of information it needs to help you migrate your project.
Paste the prompt to your AI agent and let it do the work for you.

As you can see, the AI agent is using the Shuttle MCP server to search the documentation and get the latest information about the Shuttle platform.
Key Migration Changes
The main transformation involves updating your main
function from a standard Tokio setup to Shuttle's runtime.
The shuttle_runtime::main
make the project work with Shuttle's runtime and the shuttle_shared_db::Postgres
macro is used to provision a PostgreSQL database in production.
Shuttle Dependencies:
Some Shuttle dependencies are added to the Cargo.toml
file:
shuttle-runtime
- Shuttle's runtimeshuttle-shared-db
- To provision a PostgreSQL database in production and Docker for development, read more about how Shuttle shared db worksshuttle-axum
- Shuttle Axum dependencies, we'll use this to create the API router
Shuttle.toml:
A Shuttle.toml
is required for Shuttle to know about the static assets that need to be uploaded.
Deploying to Shuttle
Once your project is migrated, the AI agent will attempt to create and deploy a project for you. If it didn't do it for you, you can ask it again to do it.

Cursor will call the deploy
tool to deploy the project to Shuttle and Shuttle will start building your project.

After building is done, you can see the project URL in your Shuttle console and visit the website.

Opening the project URL in the browser, you can see the website is working.

Perfect! 🎉 We've successfully migrated our Axum todo application to Shuttle and deployed it to production.
Next Steps
Shuttle has more features and we're always adding more and improving the platform, you can check out the Shuttle documentation for more information.
Clone the todo app example by running the following command and start building your own project:
Join our Discord community with thousands of other developers building the future. We're always here to help you and we want to see you there!