dart-mcp-server-template
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.
Related MCP Servers
View all developer_tools servers →context7
by upstash
Context7 MCP provides up-to-date, version-specific documentation and code examples directly into your prompt, enhancing the capabilities of LLMs by ensuring they use the latest information.
Sequential Thinking
by modelcontextprotocol
An MCP server implementation that provides a tool for dynamic and reflective problem-solving through a structured thinking process.
git-mcp
by idosal
GitMCP is a free, open-source, remote Model Context Protocol (MCP) server that transforms GitHub projects into documentation hubs, enabling AI tools to access up-to-date documentation and code.
Everything MCP Server
by modelcontextprotocol
The Everything MCP Server is a comprehensive test server designed to demonstrate the full capabilities of the Model Context Protocol (MCP). It is not intended for production use but serves as a valuable tool for developers building MCP clients.
exa-mcp-server
by exa-labs
A Model Context Protocol (MCP) server allows AI assistants to use the Exa AI Search API for real-time web searches in a secure manner.
repomix
by yamadashy
Repomix is a tool that packs your codebase into AI-friendly formats, making it easier to use with AI tools like LLMs.
mcpdoc
by langchain-ai
MCP LLMS-TXT Documentation Server provides a structured way to manage and retrieve LLM documentation using the Model Context Protocol.