This is a modular toolkit for creating MCP (Model Context Protocol) tools. Each tool is a standalone executable that can be used independently.
https://github.com/modelcontextprotocol/typescript-sdk
- Node.js 23+ (or Bun/Deno/Anything that supports running .ts files)
- Bun (for building executables)
If you don't have Bun installed, you can install it using one of the following methods:
# Using curl (recommended)
curl -fsSL https://bun.sh/install | bash
# Using Homebrew
brew install oven-sh/bun/bun
# Using npm
npm install -g bun
# Using PowerShell
powershell -c "irm bun.sh/install.ps1|iex"
# Using npm
npm install -g bun
# Using Scoop
scoop install bun
Verify your installation by running:
bun --version
pnpm install
This project demonstrates a modular approach to building MCP tools:
- Each tool is defined in its own TypeScript file in the
src
directory - Each tool can be built into a standalone executable in the
bin
directory - The main
index.ts
provides a simple "Hello World" example
- Hello (
src/index.ts
): A simple greeting tool - Weather (
src/weather.ts
): Get weather alerts for a state - Blog (
src/blog.ts
): Tools for blog post creation and frontmatter generation
To create a new tool:
- Create a new TypeScript file in the
src
directory (e.g.,src/mytool.ts
) - Use the existing tools as templates
- Add a build script to
package.json
:
"build:mytool": "mkdir -p bin && bun build src/mytool.ts --compile --minify --sourcemap --outfile bin/mcp-mytool"
- Update the
build:all
script to include your new tool
# Build all tools
pnpm build
# Build a specific tool
pnpm build:hello
pnpm build:weather
pnpm build:blog
The resulting executables will be in the bin
directory and can be run directly:
./bin/mcp-hello
./bin/mcp-weather
./bin/mcp-blog
When using these tools with Cursor, always use the full path to the executable:
/path/to/your/project/bin/mcp-hello
/path/to/your/project/bin/mcp-weather
/path/to/your/project/bin/mcp-blog
Alternatively, you can run the TypeScript files directly with Node:
/path/to/node ~/path/to/project/src/index.ts
# Run all tests
pnpm test
# Run tests in watch mode
pnpm test:watch
# Run tests with coverage
pnpm test:coverage