About MCP Server Template
MCP Server Template is a Bun-based starter project for building AI tools, with an interactive quiz server as its example. It is aimed at developers and includes category and difficulty options plus MCP integration tests.
Key features
- 01Runs on Bun
- 02Quiz questions by category
- 03Multiple difficulty levels
- 04Includes MCP integration tests
Use cases
- 01Build an interactive quiz server
- 02Test MCP tool integration
MCP support
The MCP server exposes a get_quiz tool to clients, returning questions by category and difficulty.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEMCP Server Template
MCP starter kit for building AI tools with Bun runtime
Environment Requirements
- Bun: v1.0.0 or higher
- Installation: https://bun.sh/docs/installation
- Node.js: v18.0.0 or higher (for some dependencies)
- Operating System:
- macOS 12+
- Linux with glibc 2.31+
- Windows 10+ (via WSL)
Features
- Specialized quiz-focused MCP server implementation
- Quiz tool with multiple categories and difficulty levels
- Jest testing setup with MCP integration tests
- Comprehensive test coverage
Installation
# Clone the repository
git clone https://github.com/username/quiz-mcp-template.git
cd quiz-mcp-template
# Install dependencies
bun install
Claude Desktop Setting
{
"quiz": {
"command": "<your path>/.bun/bin/bun",
"args": ["run", "<your path>/bun-mcp-template/src/index.ts"]
}
}
Usage
Running the Server
# Start the server
bun start
# Development mode (with auto-restart)
bun dev
Testing
# Run all tests
bun test
MCP Tools
This server provides an interactive quiz tool:
get_quiz: Provides quiz questions across different categories and difficulty levels
{
"method": "tools/call",
"params": {
"name": "get_quiz",
"arguments": {
"category": "science",
"difficulty": "medium"
}
},
"jsonrpc": "2.0",
"id": 1
}
Available categories:
- general
- science
- history
- geography
- entertainment
Difficulty levels:
- easy
- medium
- hard
Project Structure
quiz-mcp-template/
├── src/
│ └── index.ts # Main Quiz MCP server implementation
├── tests/
│ └── cli-mcp.test.ts # MCP integration tests
├── package.json
├── tsconfig.json
└── README.md
Development
Extending Quiz Categories
To add new quiz categories or questions, modify the quizQuestions object in src/index.ts:
// Add new category
quizQuestions.newCategory = {
easy: [
{ question: "Easy question 1?", answer: "Answer 1" },
{ question: "Easy question 2?", answer: "Answer 2" },
// Add more questions...
],
medium: [
{ question: "Medium question 1?", answer: "Answer 1" },
{ question: "Medium question 2?", answer: "Answer 2" },
// Add more questions...
],
hard: [
{ question: "Hard question 1?", answer: "Answer 1" },
{ question: "Hard question 2?", answer: "Answer 2" },
// Add more questions...
],
};
// Don't forget to update the schema to include the new category
const QuizSchema = z.object({
category: z
.enum([
"general",
"science",
"history",
"geography",
"entertainment",
"newCategory",
])
.optional()
.describe("The category of questions to ask"),
// ...
});
License
MIT
Acknowledgements
This project uses the Model Context Protocol (MCP) developed by Anthropic and provides an educational quiz tool for AI assistants.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.