MCP ExplorerExplorer

Dart Mcp Server Template

@jhgayloron 20 days ago
1 MIT
FreeCommunity
AI Systems
A template for dart mcp servers

Overview

What is Dart Mcp Server Template

dart-mcp-server-template is a template repository for creating Dart server applications that are compatible with the Model Control Protocol (MCP). It provides a foundational setup including Docker configuration, server implementations, and a basic project structure.

Use cases

Use cases for dart-mcp-server-template include building real-time applications, creating IoT device communication servers, and developing applications that require efficient streaming of data over HTTP.

How to use

To use dart-mcp-server-template, clone the repository and update the package name throughout the codebase. You can start the server using different transport methods by executing the Dart files located in the ‘bin’ directory.

Key features

Key features include a streamable HTTP server implementation for MCP, Docker configuration for easy deployment, a basic project structure with lib, bin, and test directories, and integration with the mcp_dart package.

Where to use

dart-mcp-server-template can be used in various fields that require server applications compatible with MCP, including IoT systems, real-time data processing, and any application needing efficient data transport.

Content

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.

Tools

No tools

Comments