mcpbase
Click on "Deploy 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., "@mcpbase what's the current date and time?"
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-base
The template every MCP server here is instantiated from: a stdio server with one registerTools seam, structured output, and annotation presets so a tool cannot be written without carrying its safety hints.
It is also the cheap place to retire SDK unknowns. The get_datetime example exists to exercise the SDK v2 surface end to end — handshake, annotations, structured output, schema rejection — so the servers that matter don't discover those on their own.
Status
Tag | What it is |
| Proving ground — scaffold, example tool, tool-level tests |
| The backport — single subprocess seam, root/path validation, security test suite |
Still to land before v0.1.0 is tagged: the 1MCP wiring proof, scripts/instantiate.ts, the SDK-drift test and dependabot. The design notes live in Trilium.
Related MCP server: MCP Starter Kit
Requirements
Node ≥ 22. CI runs 22 and 24; .node-version pins 24 for local mise users.
Develop
npm ci
npm run build
npm testnpm test runs vitest against src/ through the SDK's own client over an in-memory transport, so no build and no spawned process are involved. npm run build is only needed for the bin entry and for npx over GitHub.
Instantiate
Use this template on GitHub — a fork would share history, which is not what you want.
Run the instantiation script. It substitutes
__name__and reports every replacement point it could not infer; the substitution contract lives insrc/placeholders.ts. Until the script lands, substitute those points by hand.Delete the example:
src/tools/get-datetime.ts, its line insrc/tools/index.ts, and its tests intest/.
Then add the first real tool — see AGENTS.md for the checklist.
Register with 1MCP
"mcpbase": {
"command": "npx",
"args": ["-y", "github:GwylimWilliams/mcp-base"],
"tags": ["test"]
}The prepare script builds on install, which is what makes npx -y github:… work without a published package.
When a server takes scoped roots, they are passed as CLI args after the repo — never cwd, so the scoping holds whatever directory the gateway happens to run in.
The rules
CONVENTIONS.md— the canonical rule listAGENTS.md— the same rules agent-facing, plus the per-tool checklistdocs/adding-a-tool.md— the worked walkthroughSECURITY.md— the security posture and how to report a problem
License
MIT.
Available Tools
1 toolget_datetimeGet date and timeARead-only
Current date and time in an IANA timezone, optionally shifted by whole days. The iso field is the wall clock in that zone, so its offset makes the instant unambiguous; unix is the same instant as epoch seconds, and human is a localized rendering.
Inputs: format, timezone, offsetDays. Returns: iso, unix, human, timezone
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 1 tool
There is only one tool, so there is no possibility of misselection or overlapping purpose. Its purpose (returning the current datetime in a given timezone) is clearly stated.
A single tool using a clean verb_noun snake_case name (get_datetime). No inconsistency is possible with one tool.
The server is scoped narrowly to datetime retrieval, so one tool is defensible, but the surface is very thin. A single trivial operation sits at the borderline of usefulness for an MCP server.
It handles the core case (current time in an IANA zone, with day offsets and multiple renderings), but there is no parsing, conversion between zones, duration/diff, or formatting tool. Agents needing anything beyond 'now' will hit a dead end.
Maintenance
Related MCP Connectors
Kickstart development with a customizable TypeScript template featuring sample tools for greeting,…
A simple Typescript MCP server built using the official MCP Typescript SDK and smithery/cli. This…
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Verified component catalog over remote MCP: agents pick component ids and get a stamped project repo that builds. Connect at https://www.botkelp.com/mcp. Auth: MCP OAuth 2.1, or a Bearer bk_live_ API key; initialize and tools/list are open.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA production-ready Model Context Protocol server template in TypeScript that enables building MCP servers with dynamic tool registration, dual transport (stdio + HTTP), and pluggable authentication.6 npmMIT
- AlicenseNot gradedqualityDmaintenanceA minimal TypeScript MCP server template with example tool, Zod validation, stdio transport, and dotenv setup.21 npmMIT
- AlicenseCqualityDmaintenanceA TypeScript template for building MCP servers with stdio/SSE transport and easy tool registration.5MIT
- AlicenseNot gradedqualityDmaintenanceA template for building MCP servers with automatic tool discovery using TypeScript and Zod schemas, supporting HTTP and STDIO transports.29,793 npmMIT