Skip to main content
Glama
README.md
# 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)](https://github.com/modelcontextprotocol/ext-skills/blob/main/specification/stable/skills.mdx).

Requires Node.js 22 or later:

```sh
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:

```json
{
  "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.

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