Skip to main content
Glama
MatthewDailey

MCP Starter Server

MCP Starter Server

A minimal ModelContextProtocol server template for building AI assistant tools. This starter provides a basic structure for creating MCP tools that can be used with AI assistants like Claude.

Features

  • Simple "hello world" tool example

  • TypeScript + esbuild setup

  • Development tools preconfigured

Related MCP server: MCP Server Scaffold

Setup to build and run with Claude

  1. Download and install Claude desktop app from claude.ai/download

  2. Clone the repo, install dependencies and build:

npm install
npm run build
  1. Configure Claude to use this MCP server. If this is your first MCP server, in the root of this project run:

echo '{
  "mcpServers": {
    "mcp-starter": {
      "command": "node",
      "args": ["'$PWD'/dist/index.cjs"]
    }
  }
}' > ~/Library/Application\ Support/Claude/claude_desktop_config.json

This should result in an entry in your claude_desktop_config.json like:

"mcpServers": {
  "mcp-starter": {
    "command": "node",
    "args": ["/Users/matt/code/mcp-starter/dist/index.cjs"]
  }
}

If you have existing MCP servers, add the mcp-starter block to your existing config. It's an important detail that the args is the path to <path_to_repo_on_your_machine>/mcp-starter/dist/index.cjs.

  1. Restart Claude Desktop.

  2. Look for the hammer icon with the number of available tools in Claude's interface to confirm the server is running.

  3. If this is all working, you should be able to develop your MCP server using npm run dev and test it in Claude. You'll need to restart Claude each time to restart the MCP server.

Developing with Inspector

For development and debugging purposes, you can use the MCP Inspector tool. The Inspector provides a visual interface for testing and monitoring MCP server interactions.

Visit the Inspector documentation for detailed setup instructions.

To test locally with Inspector:

npm run inspect

To build on file changes run:

npm run watch

Or run both the watcher and inspector:

npm run dev

Publishing

Once you're ready to distribute your server, it's simple!

  1. Set up an NPM account.

  2. Run npm publish. This will publish a package using the project name in package.json

  3. Once published, others can install the server with a config entry like:

"mcpServers": {
  "<your-package-name>": {
    "command": "npx",
    "args": ["<your-package-name>"]
  }
}

Available Tools

The server provides:

  • hello_tool: A simple example tool that takes a name parameter and returns a greeting

Creating New Tools

To add new tools:

  1. Define the tool schema in index.ts

  2. Add it to the tools array in the ListToolsRequestSchema handler

  3. Add the implementation in the CallToolRequestSchema handler

See the hello_tool implementation as an example.

Available Tools

1 tool
hello_toolD

Hello tool

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe name of the person to greet

TDQS

D1.7/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Hello tool' discloses nothing about side effects, return values, or operational behavior, leaving the agent completely uninformed beyond the tool's name.

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

Conciseness2/5

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

The description is extremely short, but this is under-specification rather than effective conciseness. It is a two-word tautology that provides no informative structure or front-loaded value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the tool is simple and the schema fully documents its one parameter, the description still fails to state the tool's purpose or expected behavior. An agent may infer from the name and parameter that it greets a person, but the description itself is incomplete.

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 description coverage is 100%: the only parameter, 'name', is described as 'The name of the person to greet'. This meets the baseline where the schema does the heavy lifting. The description itself adds no additional parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Hello tool' simply restates the tool name without a verb, resource, or outcome. It does not specify that the tool greets a person or what action it performs, and it fails to distinguish itself from siblings like plan_trip or search_location.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool or when to prefer an alternative. There are no exclusions, conditions, or context clues to help an agent decide between hello_tool and its siblings.

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.

  1. 1 tool updatev1.0.0
    • First observedhello_tool

TDQS

C2.2/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of ambiguity or overlap between tools, making it perfectly clear which tool to use for any task within this server's scope.

Naming Consistency5/5

The single tool name 'hello_tool' follows a consistent verb_noun pattern, and with no other tools to compare, there is no inconsistency in naming conventions.

Tool Count2/5

One tool is generally too few for a server's purpose unless it is extremely trivial, which 'hello_tool' suggests. This feels thin and under-scoped for a typical MCP server, indicating a mismatch in tool count appropriateness.

Completeness1/5

With only a 'hello_tool', the server lacks any meaningful coverage of a domain. It is severely incomplete, as there are no operations for CRUD, lifecycle management, or any substantive workflows, making it inadequate for agent-driven tasks.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    A basic starter project for building Model Context Protocol (MCP) servers that enables standardized interactions between AI systems and various data sources through secure, controlled tool implementations.
    2
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    A minimal Model Context Protocol server built with FastAPI that provides a basic "Hello World" resource and tool. Serves as a starting point for building and validating MCP client integrations with richer resources and tools.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    A bare-bones FastMCP server template designed to serve as a starting point for building custom Model Context Protocol servers. It provides a foundational structure for implementing tools over HTTP and includes a built-in health check utility.
    GPL 3.0