trackmcp
Back to directory
jhgaylor

dart-mcp-server-template

View on GitHub

A template for dart mcp servers

1 stars DartDeveloper Kits Updated May 30, 2025

Documentation

Dart MCP Server Template

A template repository for creating Dart server applications compatible with MCP (Model Control Protocol). This template provides a starting point with Docker configuration, server implementations, and basic project structure.

About This Template

This template includes:

  • A streamable HTTP server implementation for MCP
  • Docker configuration for easy deployment
  • Basic project structure with lib, bin, and test directories
  • Integration with the mcp_dart package

Project Structure and Features

Server Implementation

  • bin/ - Contains executable Dart files to start the server via different transport methods:
    • `dart bin/stdio_server.dart`: Start server with standard I/O transport.
    • `dart bin/sse_server.dart`: Start server with Server-Sent Events transport.
    • `dart bin/streamable_http_server.dart`: Start server with HTTP streaming transport.
    • All these executables use the core server implementation defined in `lib/src/server.dart`.
  • lib/src/server.dart - Sets up a basic MCP server. This is where the bulk of your custom code will go.

In-Memory Stream Transport

You can connect a Dart client and server entirely in memory using the `IOStreamTransport`. Here is an end-to-end example.

Using This Template

Clone this repository and manually update the package name:

bash
git clone https://github.com/jhgaylor/dart-mcp-server-template.git my_new_mcp_server
cd my_new_mcp_server

# Update the package name throughout the codebase
find . -type f -name "*.dart" -o -name "pubspec.yaml" | xargs sed -i 's/dart_mcp_server_template/my_new_mcp_server/g'
# Update the package name in the repository URL
find . -type f -name "*.md" -o -name "Dockerfile" | xargs sed -i 's/dart-mcp-server-template/my-new-mcp-server/g'
# Rename the files
find . -type f -name "*dart_mcp_server_template*" | while read file; do mv "$file" "${file//dart_mcp_server_template/my_new_mcp_server}"; done

# Remove the .git directory to start fresh
rm -rf .git

# Initialize a new git repository
git init

Then update the package name in pubspec.yaml and throughout the codebase.

Getting Started

After creating your project from this template:

1. Update the `pubspec.yaml` with your project details

2. Modify the configuration in `lib/src/config.dart` as needed

3. Implement your custom server logic

4. Run the server using one of the provided entrypoints:

    Docker Deployment

    This template includes a Dockerfile for easy containerization:

    bash
    # Build the Docker image
    docker build -t my-mcp-server .
    
    # Run the container
    docker run -p 3000:3000 my-mcp-server

    License

    This template is released under the MIT License. When you generate your own application from this template, you are free to choose any license for your project; the template does not impose a specific license on your generated code.

    Frequently asked questions

    What is dart-mcp-server-template?

    dart-mcp-server-template is A template for dart mcp servers

    How do I install dart-mcp-server-template?

    Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

    Is dart-mcp-server-template open source?

    Yes — it is hosted on GitHub at https://github.com/jhgaylor/dart-mcp-server-template and has 1 stars.

    Related MCP tools

    Run your own MCP server? See who uses it and what to fix.

    Measure it with TrackMCP