Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/04-get-started/02-quickstart.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ Next, open your newly created project with your favorite AI powered editor. Open

:::important

If you are using Cursor, you will need to **enable the MCP server** in your project settings (_Cursor Settings_ > _Tools & MCPs_).
If you are using Cursor, you will need to **enable the Serverpod and Dart MCP servers** in your project settings (_Cursor Settings_ > _Tools & MCPs_).

:::

Expand Down
47 changes: 41 additions & 6 deletions docs/11-upgrading/01-upgrade-to-three-five.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,15 +141,50 @@ The first run compiles the native build hooks (this can take about 30 seconds) a

Beyond the server, `serverpod start` also launches the project's Flutter app. By default it uses Flutter's `web-server` device and opens your browser. Pass `--flutter-device <name>` to target a specific device. For IDE debugging, projects scaffolded with 3.5 include a `launch.json` that runs `serverpod start` with the debugger attached; you can copy that file into your existing project from a fresh 3.5 scaffold if you want the same setup.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment (pre-existing, outside this diff): two stale lines worth a quick fix while this file is open. This line mentions --flutter-device <name>, which is not a real serverpod start flag (only --flutter / --no-flutter exist). And line 25 pins dart install serverpod_cli 3.5.0-beta.9, while the latest 3.5 beta is beta.12. Up to you whether to fold these in here or leave them for a follow-up.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is it not 4.0.0-beta.0 ?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, yeah it should be 4.0.0-beta.0


## Add the agent skills (optional)
## Set up the agent workflow (optional)

Version 3.5 ships AI agent skills (for editors like Claude Code and Cursor) and an MCP server. Install them with:
Version 3.5 ships AI agent skills and MCP servers (for editors like Claude Code and Cursor) that let your agent build, run, and inspect your server. A new project configures these during `serverpod create`, so the smoothest way to add the same setup to your upgraded project is to run the same command against the current directory. From the project's root folder, run:

```bash
$ serverpod create .
```

Serverpod detects the existing project and adds the missing pieces without touching your source code. It registers the **Serverpod** and **Dart** MCP servers and installs the agent skills for the editor you select. The registration is written to `.mcp.json`, along with editor-specific files (`.cursor/mcp.json` and `.vscode/mcp.json`) in each editor's own format. The `.mcp.json` file looks like this:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: .mcp.json is Claude's own file, not a shared one. In ide.dart, each selected editor gets its own file (.mcp.json for Claude, .cursor/mcp.json for Cursor, .vscode/mcp.json for VS Code), so a Cursor-only user gets no .mcp.json at all and could go looking for a file that is not there. Reframing avoids that (and fixes "editor" to "editors", since you can select more than one):

Suggested change
Serverpod detects the existing project and adds the missing pieces without touching your source code. It registers the **Serverpod** and **Dart** MCP servers and installs the agent skills for the editor you select. The registration is written to `.mcp.json`, along with editor-specific files (`.cursor/mcp.json` and `.vscode/mcp.json`) in each editor's own format. The `.mcp.json` file looks like this:
Serverpod detects the existing project and adds the missing pieces without touching your source code. It registers the **Serverpod** and **Dart** MCP servers and installs the agent skills for the editors you select. Each selected editor gets a config file in its own format: `.mcp.json` for Claude, `.cursor/mcp.json` for Cursor, and `.vscode/mcp.json` for VS Code. For Claude, `.mcp.json` looks like this:


```json
{
"mcpServers": {
"serverpod": {
"command": "serverpod",
"args": ["mcp-server", "--server-dir", "<project>_server"]
},
"dart": {
"command": "dart",
"args": ["mcp-server"]
}
}
}
```

VS Code's `.vscode/mcp.json` registers the same two servers but nests them under a `servers` key instead of `mcpServers`.

:::warning

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: this warning to commit your work sits below the serverpod create . block, so a reader who copies the command first can run it before seeing the caution. It reads better moved just above the command block (around line 148), so the warning comes before the action. The text itself is fine; it is just a block move.


Configuration files you created manually can be overwritten, so commit your work before running the command.

:::

If you are using Cursor, enable the **Serverpod** and **Dart** MCP servers in your project settings (_Cursor Settings_ > _Tools & MCPs_).

### Install the skills without the MCP setup

If you already have the MCP servers configured and only want to install or refresh the agent skills, install the skills tool:

```bash
$ dart install skills
```

From your project's root folder, install the skills for your editor:
Then, from your project's root folder, pull the skills for your editor:

```bash
$ skills get --ide cursor
Expand All @@ -167,7 +202,7 @@ Copy the updated Dockerfile from the [3.5 framework template](https://github.com

- **`serverpod start` TUI**: hot reload on save, **R** to hot restart, **M** to create a migration, **A** to apply migrations, **P** to apply a repair migration.
- **Flutter app spawning** from `serverpod start` so the Flutter app runs alongside the server in the same TUI.
- **AI agent skills and MCP server** scaffolded during `serverpod create`; existing projects opt in with `dart install skills` and `skills get`.
- **AI agent skills and MCP servers** scaffolded during `serverpod create`; existing projects opt in by running `serverpod create .`.
- **Embedded Postgres**: zero-Docker development via `dataPath`.
- **SQLite database support** as an alternative dialect to Postgres.
- **Client-side database generation** for the Flutter app.
Expand All @@ -185,9 +220,9 @@ Copy the updated Dockerfile from the [3.5 framework template](https://github.com

Running more than one Serverpod server on the same machine can conflict on the default ports (8080 for the main server, 8090 for the database). This is a long-standing limitation, not specific to `serverpod start`. Stop the other server, or run on different ports.

### Agent skills aren't picked up after install
### Agent skills or MCP servers aren't picked up after setup

Run `skills get` again from the project's root folder. Some editors, like Cursor, require enabling the MCP server in their settings.
Run `serverpod create .` again from the project's root folder. Some editors, like Cursor, require enabling the **Serverpod** and **Dart** MCP servers in their settings (_Cursor Settings_ > _Tools & MCPs_).

## Still stuck?

Expand Down
Loading