A template for dart mcp servers
This repository has been archived on 2026-09-29. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
  • Dart 88.6%
  • Dockerfile 11.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2025-04-27 17:08:15 -05:00
bin init 2025-04-26 00:49:53 -05:00
lib update readme 2025-04-26 02:08:46 -05:00
test init 2025-04-26 00:49:53 -05:00
.dockerignore init 2025-04-26 00:49:53 -05:00
.gitignore init 2025-04-26 00:49:53 -05:00
analysis_options.yaml init 2025-04-26 00:49:53 -05:00
CHANGELOG.md init 2025-04-26 00:49:53 -05:00
Dockerfile make docker multi stage 2025-04-26 02:12:04 -05:00
pubspec.lock init 2025-04-26 00:49:53 -05:00
pubspec.yaml init 2025-04-26 00:49:53 -05:00
README.md add a little bit of licensing info 2025-04-27 17:08:15 -05:00

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:

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:
    • dart bin/stdio_server.dart (Standard I/O)
    • dart bin/sse_server.dart (Server-Sent Events)
    • dart bin/streamable_http_server.dart (HTTP streaming)

Docker Deployment

This template includes a Dockerfile for easy containerization:

# 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.