MCP Server Template
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:Copy
- Start the development server with hot reload:Copy
- Build the project:Copy
- Run tests:Copy
- Start the production server:Copy
Project Structure
Creating Tools
- Export your tool and handlers following the example in
src/tools/example.ts
:Copy - Register your tool in the
ALL_TOOLS
andALL_HANDLERS
constants insrc/index.ts
:Copy
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:Copy
- Open 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:Copy
- Verify the binary works:Copy
- Add 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.
You must be authenticated.
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.