Bun MCP Starter
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Bun MCP Starter
A modern, fast Model Context Protocol (MCP) server built with Bun. This project is a clean starter for building your own MCP servers with TypeScript and Bun.
Features
Built with Bun: High performance, fast startup, and native TypeScript support
Official MCP SDK: Uses
@modelcontextprotocol/serverLatest protocol: Speaks MCP revision
2026-07-28and still serves 2025-era clientsTypeScript First: Simple setup for modern Bun development
Code Quality: Pre-configured with ESLint and Prettier
Transport Support: Supports both stdio and stateless Streamable HTTP transports
Tested: Ships with
bun testtests that drive the server through a real MCP clientClean Structure: Separation between server logic, tools, and transport entry points
Related MCP server: MCP Server Boilerplate
Why Bun?
Bun provides native high-performance APIs that make MCP servers simpler and faster:
Native SQLite
Native S3
Native Redis
Fast startup and execution
Direct TypeScript execution
Structure
src/
index.ts # stdio transport entrypoint
http.ts # HTTP transport entrypoint
server.ts # core server logic
server.test.ts # tests over stdio and HTTP
tools/
index.ts # registers all tools
common.ts # sample toolGetting Started
Prerequisites
Bun installed
Usage (Quick Start)
You can create a new MCP server project instantly with bun create:
bun create bun-mcp my-mcpThis will create a new directory, copy the boilerplate, and install all dependencies automatically. Pass --no-install to skip the install step.
Integration with Claude CLI (Claude Code)
To use your new server with Claude CLI, add it to your .mcp.json or .claude/settings.json file in your project root.
Pro-tip: For stable relative path resolution in Claude Code, always use bun run and start your path with ./.
{
"mcpServers": {
"my-mcp": {
"command": "bun",
"args": ["run", "./my-mcp/src/index.ts"]
}
}
}Manual Installation (For Development)
If you want to modify this boilerplate itself:
Clone or download this repository
Install dependencies:
bun installDevelopment
Stdio mode
bun run devHTTP mode
bun run dev:httpDefault HTTP endpoint:
http://localhost:3000/mcpThe HTTP server is stateless: every request is served by a fresh server instance, as the 2026-07-28 revision expects. Requests with a browser Origin other than localhost are rejected to prevent DNS rebinding; add your origins in src/http.ts before exposing the server to browsers.
Tests and type checking
bun test
bun run checkMCP Inspector
Inspect stdio
bun run inspectInspect HTTP
Start server:
bun run dev:httpStart inspector:
bun run inspect:httpBoth scripts open the Inspector web UI already connected to your server over the 2026-07-28 protocol revision.
Adding Tools
Create a new file in src/tools/ and register your tools:
// src/tools/my-tools.ts
import type { McpServer } from '@modelcontextprotocol/server'
import * as z from 'zod'
export default function (server: McpServer) {
server.registerTool(
'greet',
{
title: 'Greet',
description: 'Returns a greeting for the given name',
inputSchema: z.object({
name: z.string(),
}),
},
async ({ name }) => {
return {
content: [{ type: 'text', text: `Hello, ${name}!` }],
}
},
)
}Then register it in src/tools/index.ts:
import type { McpServer } from '@modelcontextprotocol/server'
import commonTools from './common'
import myTools from './my-tools'
export default function (server: McpServer) {
commonTools(server)
myTools(server)
}Environment Variables
Variable | Default | Description |
|
| HTTP server port (used by |
Bun reads environment variables from .env, but:
.env is resolved relative to the current working directory
this may differ depending on how MCP is launched
safest approach is to use real environment variables
Debugging
When using stdio transport:
❌ Do NOT use
console.log✅ Use
console.error
MCP uses stdout for protocol messages, so writing logs to stdout can break communication.
Notes
index.tsis for stdiohttp.tsis for HTTPDesigned for Bun runtime
Node.js may require changes
License
MIT © Vladimir Kraikovskii
This server cannot be deployed
Maintenance
Related MCP Connectors
A simple Typescript MCP server built using the official MCP Typescript SDK and smithery/cli. This…
A TypeScript MCP server for Home Assistant, enabling programmatic management of entities, automati…
MCP server for AI dialogue using various LLM models via AceDataCloud
MCP server for OpenAI API (chat completions, image generation, embeddings) via AceDataCloud
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA modern, lightning-fast starter template for building Model Context Protocol applications with Bun, enabling developers to create MCP servers with TypeScript support, validation, and environment configuration.8 npm2MIT
- FlicenseAqualityDmaintenanceA starter template for building custom MCP servers that can integrate with Claude Desktop, Cursor, and other AI assistants. Provides example tools, TypeScript support, and automated publishing workflows to help developers create their own AI assistant integrations.74 npm-
- FlicenseAqualityDmaintenanceA starter template for building custom MCP servers that can integrate with Claude Desktop, Cursor, and other AI assistants. Provides example tools, TypeScript support, and automated publishing workflows to help developers quickly create their own MCP servers.74 npm-
- AlicenseAqualityAmaintenanceProduction-ready template for building MCP servers with TypeScript, featuring example tools and resources, and Claude Desktop integration.18 npmMIT