Skip to main content
Glama

Minimal MCP server with a skill

One greet tool and one bundled skills/greet-user/SKILL.md, served over stdio. Uses the MCP TypeScript SDK v2 and the Skills extension (SEP-2640).

Requires Node.js 22 or later:

npm install
node server.js

The server waits for MCP messages on stdin. Add it to your MCP client's server configuration, replacing the absolute path:

{
  "mcpServers": {
    "skills-example": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-skills/server.js"]
    }
  }
}

The server declares capabilities.extensions["io.modelcontextprotocol/skills"]:

  • skills/list discovers the skill, frontmatter, file size, and SHA-256 digest.

  • skills/get takes { "uri": "skill://greet-user/SKILL.md" } and returns that skill's metadata.

  • resources/read takes the same URI and returns the actual SKILL.md.

  • tools/call with { "name": "greet", "arguments": { "name": "Jerric" } } returns Hello, Jerric!.

Automatic skill loading requires a client that supports the Skills extension. Other clients can access the Markdown as an ordinary MCP resource.

Run npm pack to create a distributable package containing both the server and its skill. Skill contents are loaded at startup; restart after editing them.

Available Tools

1 tool
greetC

Greet someone by name.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

C2.9/5.0
Behavior2/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. It only says 'Greet someone by name' without disclosing any behavioral traits—whether it returns a string, has side effects, requires permissions, or how it behaves. This is a minimal disclosure.

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?

A single, compact sentence with zero filler. Every word earns its place, and the structure is front-loaded with the action and object. It is concise without being under-specified to the point of confusion.

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?

For a tool with no output schema and no annotations, the description is incomplete. The agent doesn't know what the tool returns, what a 'greet' action entails, or any edge cases. More detail on the expected result or side effects is needed for proper invocation.

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?

The schema provides only the parameter name and type with 0% coverage. The description adds meaning by clarifying the parameter is the person's name ('by name'), which helps map the parameter to its purpose. However, it doesn't add format, examples, or constraints beyond that.

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

Purpose4/5

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

The description clearly states a specific verb ('greet') and a resource ('someone by name'). It distinguishes the action but doesn't specify what 'greet' produces or entails. For a simple tool this is adequate, but it lacks detail on the expected outcome (e.g., a greeting message).

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?

There are no siblings or alternatives to differentiate, but the description provides no guidance on when to use this tool, any prerequisites, or context. It is self-evident only because the tool is trivial; still, no explicit usage guidance is given.

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 observedgreet

TDQS

B3.4/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of confusion or overlap. The tool's purpose is singular and clear.

Naming Consistency5/5

The single tool name 'greet' follows a simple verb pattern, consistent with itself. No inconsistencies can exist with only one tool.

Tool Count3/5

One tool is at the lower boundary of acceptability. While it feels thin for a typical server, it is reasonable for a small example or demo server.

Completeness5/5

The domain is limited to greeting, and the single tool fully covers that purpose. There are no obvious gaps within the stated scope.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    A simple MCP server that exposes a 'greet' tool which returns a friendly greeting for a given name.
    6 npm
    ISC
  • A
    license
    Not graded
    quality
    C
    maintenance
    Turns any folder of agent skills into a live MCP server, exposing skills_list, skills_get, and skills_search tools with zero-dependency stdio support.
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables a simple greeting tool over MCP, demonstrating schema validation and transport communication.
    -
  • F
    license
    A
    quality
    C
    maintenance
    Enables MCP clients to call a simple greeting tool that takes a name and returns personalized text and structured messages via stdio.
    1
    -