blob: ae9a5157614655f38720dbd01be45c63f592f944 [file] [view] [edit]
## Development
For local development, use the [MCP Inspector](https://modelcontextprotocol.io/docs/tools/inspector).
1. Run the inspector with no arguments:
```shell
npx @modelcontextprotocol/inspector
```
2. Open the MCP Inspector in the browser and enter `dart_mcp_server` in
the "Command" field.
3. Click "Connect" to connect to the server and debug using the MCP Inspector.
## Testing your changes with an MCP client
### Running the server from source
The server entrypoint lives at `bin/main.dart`, and can be ran however you
choose, but the easiest way is to run it as a globally activated package.
You can globally activate it from path for local development:
```sh
dart pub global activate -s path .
```
Or from git:
```sh
dart pub global activate -s git https://github.com/dart-lang/ai.git \
--git-path pkgs/dart_mcp_server/
```
And then, assuming the pub cache bin dir is [on your PATH][set-up-path], the
`dart_mcp_server` command will run it, and recompile as necessary.
[set-up-path]: https://dart.dev/tools/pub/cmd/pub-global#running-a-script-from-your-path
**Note:**: For some clients, depending on how they launch the MCP server and how
tolerant they are, you may need to compile it to exe to avoid extra output on
stdout:
```sh
dart compile exe bin/main.dart
```
And then provide the path to the executable instead of using the globally
activated `dart_mcp_server` command.
### With the example WorkflowBot
After compiling the binary, you can run the example [workflow client][workflow_client]
to interact with the server. Note that the workflow bot sets the current
directory as the root directory, so if your server expects a certain root
directory you will want to run the command below from there (and alter the
paths as necessary). For example, you may want to run this command from the
directory of the app you wish to test the server against.
[workflow_client]: https://github.com/dart-lang/ai/tree/main/mcp_examples/bin/workflow_client.dart
```dart
dart pub add "dart_mcp_examples:{git: {url: https://github.com/dart-lang/ai.git, path: mcp_examples}}"
dart run dart_mcp_examples:workflow_client --server dart_mcp_server
```
### With Cursor
Modify your `mcp.json` file to run your locally compiled server instead of using the
server from the Dart SDK.
Each time you make changes to the server, you'll need to restart the server on
the MCP configuration page or reload the Cursor window (**Developer: Reload Window**
from the Command Palette) to see the changes.