Skip to main content
Glama

mcp-server-template

A Falken's Lab MCP server. The starting point for Falken's Lab's MCP servers: one bundled file, tests, docs in English and Spanish, ready for agent-kit.

Node.js 20+ MCP server License: MIT

๐Ÿงฉ Use this template

This is a template repository: every Falken's Lab MCP server starts here, so they all look and work the same. It's an MCP server over stdio, written in TypeScript with the official MCP SDK and bundled into a single file that runs with npx, so an agent built on agent-kit can run it without installing anything. It comes with one example tool, tests, a strict check of its tools, CI, a documentation site in English and Spanish, and the design notes every server shares.

โœจ Why this template

  • ๐Ÿ“ฆ One file, nothing to install. esbuild bundles every dependency into dist/server.mjs, which agent-kit runs with npx.

  • ๐Ÿงญ Tools a model chooses well. Each tool has a title, a description for the model, schemas and readOnlyHint, and npm run check fails if one doesn't.

  • ๐Ÿ”ง Programs installed apart, explained. A server that needs Docker or ffmpeg declares it once and gets check_requirements and clear errors; it never installs anything.

  • ๐Ÿงช Tested from the start. node:test with the SDK's in-memory transport, and CI on Node 20 and 24.

  • ๐ŸŒ Docs in two languages. A Docusaurus site in English and Spanish, with the tools reference generated from the server itself.

  • ๐Ÿง  Design memory. .minispec/ with the decisions every Falken's Lab server shares, and a CLAUDE.md for coding agents.

Related MCP server: mcp-toolforge

๐Ÿš€ Quick start

On GitHub, Use this template to create the new repository, then:

npm install
npm run init -- docker-lab-mcp "Hands-on practices in Docker, safe by default."
npm run build && npm run check

init renames the package, the command, the links and the docs, and notes in .minispec/core/stack.md the template's commit it comes from, so later fixes here can be found with git log <commit>..main. Then rewrite .minispec/core/project.md and this README for the new server, and add its tools in src/tools/.

๐Ÿงฐ What's inside

Area

For example

๐Ÿ”Œ Server

src/server.ts (stdio), src/createServer.ts, src/instructions.ts

๐Ÿ› ๏ธ Tools

server_info, one file per tool in src/tools/, reply() for structured results

๐Ÿ”ง Requirements

src/requirements.ts: check_requirements and needs(), only when a server needs programs

๐Ÿงช Checks

npm test, npm run check (strict tools/list), typecheck and lint, CI

๐Ÿ“– Docs

docs/, Docusaurus in English and Spanish, published to GitHub Pages by each server (the template only builds it)

๐Ÿง  Design

.minispec/ (project, conventions, ADRs), CLAUDE.md

๐Ÿ“š Documentation

The template has no site of its own: docs/ is the one each server publishes. What a new server needs is here:

  • CLAUDE.md: the commands, how the pieces fit, and the skills in .claude/skills/ (adding a tool, checks, docs, releases).

  • .minispec/: the project, its conventions and the decisions every Falken's Lab server shares.

  • docs/: the site's skeleton, with getting started, the tools reference generated from the server and the releases; cd docs && npm install && npm start previews it.

๐Ÿ› ๏ธ Developing

npm run build, npm test and npm run check before every commit; CLAUDE.md lists every command, and .minispec/ the decisions behind them. Releases are published to npm by the owner.

Made with ๐Ÿ’– by Falken's Lab Team

Available Tools

1 tool
server_infoServer infoA
Read-only

Show this server's name, version and data folder, and, for a server that needs programs installed apart, whether they're there. Contains no secrets.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYes
nodeYes
dataDirYesWhere it keeps its state and caches
versionYes
requirementsNo

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds a genuinely useful disclosure โ€” "Contains no secrets" โ€” signaling the output is safe to surface, plus the conditional behavior of reporting whether separate programs are installed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence, front-loaded with the primary payload (name, version, data folder) and ending with the conditional check. The clause about separately-installed programs is slightly wordy but earns its place by describing a non-obvious behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-param, read-only tool with an output schema documenting the return shape and annotations covering safety, the description supplies everything an agent needs: what it returns, the conditional program check, and the reassurance that no secrets are exposed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes no parameters, so the baseline is 4 and there is nothing for the description to disambiguate. The enumerated output fields are not parameters and belong to the output schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ("Show") and enumerates exactly what is retrieved: server name, version, data folder, plus whether separately-installed programs are present. An agent knows precisely what this tool returns without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use statement, no prerequisites, and no alternatives named (there are no siblings). For a zero-parameter informational tool the intended use is implied and obvious, so this is adequate but not enriched.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev0.0.0
    • First observedserver_info

TDQS

A3.8/5.0

Scored across 1 tool

Disambiguation5/5

Only one tool exists, so there is no possibility of selecting the wrong tool. The tool's purpose is clear from its name and description.

Naming Consistency5/5

With a single tool named 'server_info', there is no inconsistency or deviation from a pattern. The snake_case convention is clear and readable.

Tool Count1/5

A single trivial tool ('server_info') is an extreme mismatch for any functional MCP server. The server offers no domain operations, only diagnostic information.

Completeness1/5

The tool surface is severely incomplete: it only reports server metadata and provides no CRUD or lifecycle operations for any domain. There are no workflows an agent could complete with this server.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    This MCP server is a zero-config CLI tool that lets developers tap into any stdio-based MCP server from their terminal, enabling them to list tools/resources/prompts, call tools with JSON arguments, and health-check servers without requiring a full AI client or browser setup.
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Generates complete, runnable MCP server projects from natural-language tool descriptions, including schema, implementation, tests, README, and license. It enables AI agents to scaffold standalone MCP servers ready to install and run.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to generate complete, runnable MCP server projects from natural-language tool descriptions, including schema, implementation, tests, README, and license.
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables building and running an MCP server with automatically discovered tools, prompts, and resources over HTTP or STDIO, using TypeScript and Zod schemas.
    -