dart-mcp-server-template
If you are the rightful owner of dart-mcp-server-template and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A template repository for creating Dart server applications compatible with MCP (Model Control Protocol).
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:
- Update the
pubspec.yaml
with your project details - Modify the configuration in
lib/src/config.dart
as needed - Implement your custom server logic
- 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.