Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Alpic MCP Templateshow me how to add a new tool to the server"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Alpic MCP Template
A TypeScript template for building MCP servers using Streamable HTTP transport.
Overview
This template provides a foundation for creating MCP servers that can communicate with AI assistants and other MCP clients. It includes a simple HTTP server implementation with example tools, resource & prompts to help you get started building your own MCP integrations.
Prerequisites
Node.js 22+ (see
.nvmrcfor exact version)
Installation
Clone the repository:
git clone <repository-url>
cd mcp-server-templateInstall dependencies:
npm installCreate environment file:
cp .env.example .envUsage
Development
Start the development server with hot-reload:
npm run devThe server will start on http://localhost:3000 and automatically restart when you make changes to the source code.
Production Build
Build the project for production:
npm run buildThe compiled JavaScript will be output to the dist/ directory.
Running the Inspector
Use the MCP inspector tool to test your server:
npm run inspectorAPI Endpoints
POST /mcp- Main MCP communication endpointGET /mcp- Returns "Method not allowed" (405)DELETE /mcp- Returns "Method not allowed" (405)
Development
Adding New Tools
To add a new tool, modify src/server.ts:
server.tool(
"tool-name",
"Tool description",
{
// Define your parameters using Zod schemas
param: z.string().describe("Parameter description"),
},
async ({ param }): Promise<CallToolResult> => {
// Your tool implementation
return {
content: [
{
type: "text",
text: `Result: ${param}`,
},
],
};
},
);Adding New Prompts
To add a new prompt template, modify src/server.ts:
server.prompt(
"prompt-name",
"Prompt description",
{
// Define your parameters using Zod schemas
param: z.string().describe("Parameter description"),
},
async ({ param }): Promise<GetPromptResult> => {
return {
messages: [
{
role: "user",
content: {
type: "text",
text: `Your prompt content with ${param}`,
},
},
],
};
},
);Resources
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.