some_function
The starter template's example tool: returns a greeting with the name and address you pass.
A TypeScript scaffold for writing your own MCP server, with a generator that stubs out each new tool and one working tool already in it: US weather alerts by state.
LABSCO SUMMARY
Installed as it is, your client gets get_alert — US weather alerts by state — and the template's example tool, nothing more. The value is the layout and the create-tool script, which keep schema, implementation and test together as you add tools; get_alert shows what one finished tool looks like. Judge it against your own boilerplate, not against full weather servers.
A starter template with one working tool in it: get_alert, which returns the National Weather Service alerts for a US state. It lays out a Bun + TypeScript project — src/tools/ for tool implementations, src/utils/ for shared code, main.ts as the entry point — and ships a script that creates a new tool directory for you.
bun run scripts/create-tool.ts <tool-name> writes the implementation file, the JSON schema for its parameters, and a test file, then registers it in the tools indexfeat / fix / BREAKING CHANGE commit messagesBun, for install, test, lint and build, and Node to run the built dist/main.js. No account and no key: get_alert reads the public api.weather.gov alerts feed.
Follow the published steps — bun install
USE CASES
Clone it, run the tool generator once per capability you want, and you have implementation, parameter schema and test stubs already wired into the index.
Write commits as feat or fix, run the release script to bump the version and update the changelog, then publish. The convention is already configured.
Listed in project code.
some_functionThe starter template's example tool: returns a greeting with the name and address you pass.
get_alertGet weather alerts for a specific US state: each National Weather Service alert (current and recently expired) with its event, area, severity, status and headline.
BEFORE YOU INSTALL
2 tools registered in the project's code. some_function is the starter template's example tool. get_alert is the working one: it reads the National Weather Service's public alerts feed for a two-letter US state code.
The documented client runs the server on your machine.
CONTEXT COST
Rated by the size of the 2 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
git clone https://github.com/GreatAuk/mcp-weather
cd mcp-weather
bun install
bun run build{
"mcpServers": {
"mcp-weather": {
"command": "node",
"args": [
"<YOUR_PATH_TO_PROJECT>/dist/main.js"
]
}
}
}<YOUR_PATH_TO_PROJECT> is the absolute path of your clone. dist/main.js exists after bun run build.