This MCP Server Template enables you to build and test Model Context Protocol (MCP) compatible servers with the following capabilities:
Build custom MCP servers: Create TypeScript-based servers that adhere to the MCP protocol
Create and manage tools: Define tools with specific input schemas and handlers (like the included
example-tool
)Process data: Handle MCP protocol requirements for tool registration, validation, processing, and formatting
Development features: Leverage TypeScript support, dependency injection, and service-based architecture
Testing utilities: Debug using the TestClient, MCP Inspector for visual debugging, and direct Cursor IDE integration
This template provides everything needed to quickly develop, test, and implement MCP-compatible tools and services.
Enables local testing and linking of the MCP server as an npm package, allowing for development and testing workflows.
Provides full TypeScript support for building MCP-compatible servers with type safety and proper tooling.
Integrated testing framework for writing and running tests for MCP tools and services.
MCP Server Template
A template for creating Model Context Protocol (MCP) servers in TypeScript. This template provides a solid foundation for building MCP-compatible servers with proper tooling, type safety, and best practices.
Features
🚀 Full TypeScript support
🏗️ Container-based dependency injection
📦 Service-based architecture with DataProcessor interface
🛠️ Example tool implementation with tests
🧪 Vitest testing framework
📝 Type definitions
🔌 MCP SDK integration
Getting Started
Development
Install dependencies:
npm installStart the development server with hot reload:
npm run devBuild the project:
npm run buildRun tests:
npm testStart the production server:
npm start
Project Structure
Creating Tools
Export your tool and handlers following the example in
src/tools/example.ts
:// In your-tool.ts export const YOUR_TOOLS = [ { name: "your-tool-name", description: "Your tool description", parameters: { // Your tool parameters schema }, }, ]; export const YOUR_HANDLERS = { "your-tool-name": async (request) => { // Your tool handler implementation return { toolResult: { content: [{ type: "text", text: "Result" }], }, }; }, };Register your tool in the
ALL_TOOLS
andALL_HANDLERS
constants insrc/index.ts
:// In src/index.ts import { YOUR_TOOLS, YOUR_HANDLERS } from "./tools/your-tool.js"; // Combine all tools const ALL_TOOLS = [...EXAMPLE_TOOLS, ...YOUR_TOOLS]; const ALL_HANDLERS = { ...EXAMPLE_HANDLERS, ...YOUR_HANDLERS };
The server will automatically:
List your tool in the available tools
Handle input validation
Process requests to your tool
Format responses according to the MCP protocol
Testing
The template includes a built-in TestClient for local testing and the MCP Inspector for visual debugging.
Using TestClient
The TestClient provides a simple way to test your tools:
Using MCP Inspector
The template includes the MCP Inspector for visual debugging of your tools:
Start the inspector:
npx @modelcontextprotocol/inspector node dist/index.jsOpen the inspector UI at http://localhost:5173
The inspector provides:
Visual interface for testing tools
Real-time request/response monitoring
Tool metadata inspection
Interactive testing environment
Local Testing with Cursor
To test your MCP server locally with Cursor:
Build and link the package:
npm run build npm run linkVerify the binary works:
npx example-mcp-toolAdd the server to Cursor:
Open Cursor settings
Navigate to the Features tab
Scroll down to MCP Servers section
Click "Add Server"
Select "Command" type
Give it a name (e.g., "Local Example Tool")
Enter the command:
npx example-mcp-tool
Click Confirm
Verify the server starts correctly in Cursor by checking the MCP Servers section shows your server as running.
Note: If you make changes to your code, remember to rebuild and relink:
When you're done testing, you can unlink the package:
This will remove the global symlink created during development.
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Tools
A TypeScript-based template for developing Model Context Protocol servers with features like dependency injection and service-based architecture, facilitating the creation and integration of custom data processing tools.
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityA production-ready template for creating Model Context Protocol servers with TypeScript, providing tools for efficient testing, development, and deployment.Last updated -12638MIT License
- AsecurityFlicenseAqualityA template for creating Model Context Protocol (MCP) servers in TypeScript, offering features like container-based dependency injection, a service-based architecture, and integration with the LLM CLI for architectural design feedback through natural language.Last updated -117
- AsecurityAlicenseAqualityA TypeScript-based template for building Model Context Protocol servers, featuring fast testing, automated version management, and a clean structure for MCP tool implementations.Last updated -1264MIT License
- -securityFlicense-qualityA starter template for creating Model Context Protocol servers using TypeScript, providing basic setup and sample tool implementation for developers to build their own MCP servers.