This provides some common code for creating a Model Context Protocol (MCP) server in Node.js.
npm install @tigerdata/mcp-boilerplateSee tiger-skills-mcp-server for an example MCP server using this boilerplate.
Add skills support to your MCP server by leveraging the skills submodule in @tigerdata/mcp-boilerplate/skills. See the Skills README for details.
This project includes a custom ESLint plugin to guard against the problematic use of optional parameters for tool inputs. Doing so leads to tools that are incompatible with certain models, such as GPT-5.
Add to your eslint.config.mjs:
import boilerplatePlugin from '@tigerdata/mcp-boilerplate/eslintPlugin';
export default [
// ... your existing config
{
plugins: {
'mcp-boilerplate': boilerplatePlugin,
},
rules: {
'mcp-boilerplate/no-optional-tool-params': 'error',
},
},
];To build the TypeScript project:
./bun run buildThis compiles the TypeScript files from src/ to JavaScript in dist/.
To run TypeScript compilation in watch mode (rebuilds on file changes):
./bun run watchThis project uses ESLint for code linting with TypeScript support.
To run the linter:
./bun run lintTo automatically fix linting issues where possible:
./bun run lint --writeThe project includes GitHub Actions that automatically run linting checks on all pushes and pull requests to ensure code quality standards are maintained.