MCP Server Template
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., "@MCP Server TemplatePing the server to verify it's working."
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.
MCP Server Template
Generyczny szablon zdalnego serwera MCP opartego o Streamable HTTP. Zawiera Express, opcjonalny OAuth 2.1, szyfrowany magazyn poświadczeń, logi JSON, testy, Docker i konfigurowalny workflow CI/CD.
Szablon udostępnia wyłącznie narzędzie demonstracyjne ping. Nie zawiera logiki
biznesowej ani klienta zewnętrznego API.
Stack
Node.js 20+ i TypeScript ESM w trybie strict
@modelcontextprotocol/sdkExpress
Zod
Vitest
Docker
Projekt nie używa bazy danych ani migracji. Opcjonalny OAuth zapisuje stan w
zaszyfrowanym pliku data/oauth-store.json.
Related MCP server: MCP Server Template (Python)
Instalacja i uruchomienie
npm install
Copy-Item .env.example .env
npm run devNa Linuxie:
npm install
cp .env.example .env
npm run devEndpointy:
MCP:
POST http://localhost:3000/mcphealth check:
GET http://localhost:3000/health
Pozostałe polecenia:
npm test
npm run typecheck
npm run build
npm startKonfiguracja
Zmienna | Domyślnie | Opis |
|
| Port HTTP |
|
|
|
|
| Zapis logów do |
|
| Domyślny limit helpera |
|
| Liczba zaufanych proxy |
|
| Włącza OAuth 2.1 obok legacy Bearer |
| — | Publiczny origin serwera; wymagany przy OAuth |
|
| Szyfrowany magazyn OAuth |
| — | 32 bajty base64; wymagane przy OAuth |
| callbacki Cursor | Dodatkowe dokładne callbacki DCR |
|
| Ważność rozpoczętej autoryzacji |
|
| Ważność kodu autoryzacyjnego |
|
| TTL access tokenu; |
|
| TTL refresh tokenu; |
|
| Maksymalna liczba prób formularza autoryzacji w jednym oknie |
|
| Długość okna limitu prób autoryzacji |
Uwierzytelnienie
Domyślnie serwer wymaga dowolnego niepustego nagłówka:
Authorization: Bearer <poswiadczenie-upstream>Poświadczenie jest przekazywane do narzędzi tworzonych dla danego żądania. Podczas podpinania domeny należy zastąpić ten kontrakt rzeczywistą autoryzacją upstream.
OAuth jest domyślnie wyłączony. Kod zawiera DCR, PKCE S256, discovery, rotację
refresh tokenów, revocation i szyfrowany store. Przed ustawieniem
OAUTH_ENABLED=true trzeba zastąpić domyślną implementację w
src/auth/validateApiToken.ts odczytową walidacją poświadczenia w docelowym API.
Obecna implementacja sprawdza tylko, czy wartość nie jest pusta, i nie jest
wystarczającym zabezpieczeniem produkcyjnym.
Klucz szyfrujący można wygenerować poleceniem:
node -e "console.log(require('node:crypto').randomBytes(32).toString('base64'))"OAuth wymaga PUBLIC_BASE_URL wskazującego origin bez ścieżki. Produkcja wymaga
HTTPS; HTTP jest akceptowane tylko dla localhost. Plikowy store zakłada jedną
replikę aplikacji.
Dodawanie integracji
Dodaj klienta upstream w osobnym katalogu domenowym w
src/.Zastąp
pingwsrc/tools/register.tsnarzędziami domenowymi.Używaj
tool()zsrc/tools/runner.tsdo jednolitych logów i błędów.Wywołuj
countApiCall()przy każdym żądaniu do zewnętrznego API.Zaimplementuj realną walidację w
src/auth/validateApiToken.tsalbo usuń OAuth, jeśli integracja nie ma poświadczeń użytkownika.Dodaj test narzędzia przed implementacją logiki.
Struktura
src/
index.ts
app.ts
server.ts
config.ts
logger.ts
callContext.ts
auth/
provider.ts
runtime.ts
store.ts
resolveCredential.ts
validateApiToken.ts
ui.ts
tools/
register.ts
runner.ts
test/
Dockerfile
docker-compose.dev.yml
docker-compose.example.ymlDocker
Development:
docker compose -f docker-compose.dev.yml up --buildProdukcja:
Skopiuj
docker-compose.example.ymldodocker-compose.yml.Ustaw
GHCR_IMAGE,MCP_DOMAINiTRAEFIK_CERTRESOLVER.Utwórz
data/; na natywnym Linuksie nadaj katalogowi UID/GID1000.Ustaw sekrety OAuth, jeśli ta funkcja ma być aktywna.
Uruchom
docker compose up -d.
Obraz produkcyjny działa jako użytkownik node i ma health check /health.
CI/CD
Workflow .github/workflows/ci-cd.yml:
uruchamia testy, typecheck i build na Windows oraz Linux;
buduje obraz
runtime;publikuje go do GHCR;
po publikacji wdraża go przez SSH.
Przed użyciem ustaw zmienne repozytorium:
GHCR_IMAGE, np.ghcr.io/owner/repository;DEPLOY_PATH, np./home/user/myapps/mcp-server.
Wymagane sekrety deployu: SSH_HOST, SSH_USERNAME, SSH_PRIVATE_KEY.
Każdy push do main uruchamia cały workflow. Brak wymaganych zmiennych lub sekretów
celowo zatrzymuje publikację albo wdrożenie.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityDmaintenanceA Python template for building MCP servers with Streamable HTTP transport, providing example tools, resources, and prompts.1
- Flicense-qualityCmaintenanceA minimal MCP server template with streamable HTTP transport and bearer token authentication, including an example hello tool and ready for deployment on Render.
- Flicense-qualityCmaintenanceA minimal MCP server template for Render with Streamable HTTP transport, bearer token authentication, and an example 'hello' tool. Enables developers to quickly scaffold and deploy their own MCP servers.
- Flicense-qualityCmaintenanceA minimal MCP server template for Render with Streamable HTTP transport, bearer token authentication, and an example 'hello' tool.
Related MCP Connectors
Primarily to be used as a template repository for developing MCP servers with FastMCP in Python, P…
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
A very simple remote MCP server that greets you, with a custom icon.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/SocialBuzzStudio/mcp-server-template'
If you have feedback or need assistance with the MCP directory API, please join our Discord server