mcp-server-template
by: jatinsandilya
Minimal typescript template to build an mcp server
πOverview
Purpose: To provide a foundational template for developing custom Model Context Protocol (MCP) servers compatible with Cursor and Claude Desktop.
Overview: The MCP Server Template serves as a starter kit featuring a structured setup and essential tools for easily creating and implementing proprietary MCPs. Built with TypeScript and leveraging the @modelcontextprotocol/sdk, this template streamlines the development of server functionality.
Key Features:
-
Basic MCP Server Setup: Provides a structured foundation in TypeScript, enabling developers to quickly start building their MCP server.
-
Sample Tool Implementation: Includes example tool definitions to guide developers in creating custom tools within their MCP server framework, streamlining the development process.
-
Ready-to-Use Project Structure: Offers a clear and organized layout for project files, simplifying navigation and maintenance as the server evolves.
MCP Server Template π οΈ
A starter template for building your own Model Context Protocol (MCP) server. This template provides the basic structure and setup needed to create custom MCPs that can be used with Cursor or Claude Desktop.
Features
- Basic MCP server setup with TypeScript
- Sample tool implementation
- Ready-to-use project structure
- Built with @modelcontextprotocol/sdk
Project Structure
mcp-server-template/
βββ index.ts # Main server implementation
βββ package.json # Project dependencies
βββ tsconfig.json # TypeScript configuration
βββ build/ # Compiled JavaScript output
Getting Started
- Clone this template:
git clone [your-repo-url] my-mcp-server
cd my-mcp-server
- Install dependencies:
pnpm install
- Build the project:
pnpm run build
This will generate the /build/index.js
file β your compiled MCP server script.
Using with Cursor
- Go to Cursor Settings -> MCP -> Add new MCP server
- Configure your MCP:
- Name: choose your own name
- Type: command
- Command:
node ABSOLUTE_PATH_TO_MCP_SERVER/build/index.js
Using with Claude Desktop
Add the following MCP config to your Claude Desktop configuration:
{
"mcpServers": {
"your-mcp-name": {
"command": "node",
"args": ["ABSOLUTE_PATH_TO_MCP_SERVER/build/index.js"]
}
}
}
Development
The template includes a sample tool implementation in index.ts
. To create your own MCP:
- Modify the server configuration in
index.ts
:
const server = new McpServer({
name: "your-mcp-name",
version: "0.0.1",
});
- Define your custom tools using the
server.tool()
method:
server.tool(
"your-tool-name",
"Your tool description",
{
// Define your tool's parameters using Zod schema
parameter: z.string().describe("Parameter description"),
},
async ({ parameter }) => {
// Implement your tool's logic here
return {
content: [
{
type: "text",
text: "Your tool's response",
},
],
};
}
);
- Build and test your implementation:
npm run build
Contributing
Feel free to submit issues and enhancement requests!
License
MIT