Skip to main content
Glama
mohammad-jaradat

MCP Server Starter Template

MCPRepo — NextFlows Academy Starter

Part of NextFlows Academy — the free cohort program Building an MCP for an AI Engine.

Clone this repo to build your Model Context Protocol (MCP) server in TypeScript. By Demo Day you will ship a public GitHub repo with real tools, Zod validation, docs, and a live demo — the same path used in the free NextFlows Academy cohort.

Program hub: nextflows.ai/academy
Full program page (in this repo): docs/PROGRAM.md
Apply: Cohort application


About NextFlows Academy

NextFlows Academy runs structured, cohort-based programs with live sessions, mentor support, and a real project you ship by the end.

This repository belongs to:

Program

Building an MCP for an AI Engine

Audience

4th & 5th year CS / CE students

Duration

6 weeks

Format

Cohort + project

Price

Free

Level

Intermediate

Outcome

Shipped MCP server on GitHub

Schedule

Wed & Sat online 1:30–3:30 PM + Monday on-site workshop days

You go from “what’s an MCP?” to a working MCP server connected to an AI engine (for example Claude), fully documented, and live on GitHub.

See docs/PROGRAM.md for outcomes, weekly plan, starter projects, and who it’s for.


Related MCP server: Notes Manager

What you get

Path

Purpose

src/index.ts

MCP server + stdio transport

src/tools/

One register helper per tool

src/schemas/

Zod input contracts (with .describe(...))

examples/

Sample JSON args for Inspector

docs/PROGRAM.md

Full NextFlows Academy program page

docs/WEEK-2.md

Full Week 2 step-by-step plan

docs/CURRICULUM.md

6-week overview

docs/project-choice.md

Week 2 project choice template

docs/design.md

Week 2 design doc template

Week 1 is already wired: a working greet tool so you can open Inspector on day one.

Week 2 examples included: stub tools for Notes & FAQ Search (search_notes, list_notes, add_note). Enable them when you pick that starter (or copy the pattern for your own idea).

Prerequisites

  • Node.js 20+ (node -v)

  • npm (npm -v)

  • Git + a GitHub account

  • Cursor or VS Code

Quick start

git clone <YOUR_FORK_OR_ORG_URL>/MCPRepo.git
cd MCPRepo
npm install
npm run inspect

In the Inspector browser tab:

  1. Click Connect

  2. Open Tools

  3. Select greet and put Alex in the name field (see examples/greet.json for the full args shape)

  4. Try invalid input (empty name) and confirm Zod rejects it

To run the server alone (waits on stdin):

npm run dev

Important: log only with console.error. Never use console.log — stdout is reserved for the MCP protocol.

Week 2

Week 2 is design-first. Follow docs/WEEK-2.md.

Useful scripts:

Script

What it does

npm run dev

Start the MCP server on stdio (stays alive; stop with Ctrl+C)

npm start

Same as dev

npm run inspect

Open MCP Inspector against this server

Stack

  • TypeScript via tsx (no build step early on)

  • Official MCP TypeScript SDK (@modelcontextprotocol/server)

  • Zod for tool inputSchema

  • MCP Inspector for local testing

  • stdio transport for Claude Desktop / Cursor demos

Six-week journey

Week

Focus

1

Set up & first MCP tool (greet ✅ in this repo)

2

Design your own tools → see docs/WEEK-2.md

3

Connect tools to real data

4

Make it safe & reliable

5

Test & write docs people can follow

6

Ship on GitHub & Demo Day

Full program details: docs/PROGRAM.md

Starter project options (pick in Week 2)

  1. Notes & FAQ Search — fully offline (example stubs included)

  2. Personal Expense Tracker — summarize spending from a spreadsheet

  3. To-Do List — create / list / complete tasks

  4. Weather Briefing — free API (e.g. Open-Meteo), no paid keys

  5. Quote of the Day — simple offline or public API

Advanced ideas (repo health, course planner, job tracker) need mentor approval before you expand scope.

Repo layout after Week 2

MCPRepo/
├── docs/
│   ├── PROGRAM.md
│   ├── CURRICULUM.md
│   ├── WEEK-2.md
│   ├── project-choice.md
│   └── design.md
├── examples/
│   └── <tool_name>.json
├── src/
│   ├── index.ts
│   ├── schemas/
│   └── tools/
├── package.json
└── README.md

Rules that matter

  • One job per tool; use verb_noun names (search_notes, add_expense)

  • Write descriptions for the model, not only for humans

  • Every Zod field needs .describe(...)

  • Prefer small focused tools over one mega-tool with an action enum

  • Avoid paid APIs / OAuth-heavy projects in Weeks 1–2

License

MIT — built for NextFlows Academy students.

Available Tools

1 tool
greetA

Return a short greeting for a person. Use this to verify the MCP server is running.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe person's first name or preferred name to greet

TDQS

A4.1/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It states 'return a greeting' implying read-only, but does not explicitly mention side effects, auth, or rate limits. Adequate for a trivial tool.

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

Conciseness5/5

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

Two concise sentences with no fluff. Front-loaded with core purpose, then usage context.

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 simple tool with one parameter and no output schema, the description covers purpose and usage completely. No gaps remain.

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

Parameters3/5

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

Schema coverage is 100%, and description adds minimal value beyond schema's 'name' parameter description. Baseline 3 is appropriate.

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?

Description clearly states the tool returns a short greeting for a person, using specific verb 'return' and resource 'greeting'. It also mentions use for server verification, distinguishing its purpose.

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

Usage Guidelines4/5

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

Explicitly says to use for verifying MCP server is running, providing clear context. No when-not-to-use given, but for a simple tool it's adequate.

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. Dates show when Glama detected each change.

  1. 1 tool updatev0.1.0
    • First observedgreet

TDQS

A3.9/5.0
Disambiguation5/5

With only one tool, there is no possibility of confusion between tools. The purpose is clear and singular.

Naming Consistency5/5

There is only one tool, so there is no inconsistency. The name 'greet' follows a simple verb pattern.

Tool Count2/5

Tool count is 1, which is too few for a meaningful server. Even as a starter template, it lacks the typical minimal set (e.g., a few related operations).

Completeness1/5

The server has only a single greeting tool, which does not cover any functional domain. There are obvious gaps like any actual operations or data management.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A starter template for building MCP servers with TypeScript support, example tools, and automated installation scripts for Claude Desktop, Cursor, and other MCP-compatible AI assistants. Provides a foundation for creating custom tools, resource providers, and prompt templates.
    20
    -
  • F
    license
    B
    quality
    D
    maintenance
    A TypeScript-based MCP server that enables AI assistants to create, search, list, and delete notes with tags. Serves as a starter template for building custom MCP servers with tools and resources.
    1
    -
  • A
    license
    B
    quality
    D
    maintenance
    A TypeScript starter template for building MCP servers with example tools (echo, math operations, time, flight status) and resources (server info, greetings). Provides a modular architecture for easily extending with custom tools and resources.
    4
    4
    ISC
  • F
    license
    A
    quality
    D
    maintenance
    A starter template for building custom MCP servers with example implementations of tools, resources, and prompts. Includes TypeScript support and installation scripts for Claude Desktop, Cursor, and other MCP-compatible clients.
    2
    6
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mohammad-jaradat/MCPServerStarterTemplate'

If you have feedback or need assistance with the MCP directory API, please join our Discord server