Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Small

FreeNot checked

A minimal FastMCP server in Python demonstrating all four MCP primitives with tools for arithmetic, word counting, time, and logging, resources for server info

GitHubEmbed

About

A minimal FastMCP server in Python demonstrating all four MCP primitives with tools for arithmetic, word counting, time, and logging, resources for server info and code snippets, and prompts for summarization and code review.

README

A minimal FastMCP server in Python that demonstrates all four MCP primitives: tools, resources, resource templates, and prompts — including how to use the context object for logging and progress reporting.

Requirements

  • uv (package manager)
  • Python 3.14+

Setup

uv sync

Run

uv run python main.py

The server starts in stdio mode, ready to be connected to any MCP client.

Primitives

Tools

Functions the LLM can call to perform actions.

Tool Description
add(a, b) Add two numbers
word_count(text) Count words, characters, and lines
current_time(timezone) Return the current UTC time
log_message(message) Log a message via MCP context (demonstrates progress + logging)

Resources

Static data the LLM can read.

URI Description
resource://server/info Basic info about this server
resource://snippets/hello-world A Python Hello World snippet

Resource Templates

Dynamic resources resolved from a URI pattern.

Template Description
resource://snippets/{language}/hello Hello World snippet for python, javascript, go, or rust

Prompts

Reusable prompt templates the LLM can request by name.

Prompt Args Description
summarize text, style Ask for a summary in a given style
code_review code, language Request a code review
explain_concept concept, audience Explain a concept to a target audience

Context

The log_message tool shows how to inject ctx: Context into a tool to:

  • Send log messages back to the client via ctx.info()
  • Report progress via ctx.report_progress(progress, total)

Inspect with MCP Inspector

uv run fastmcp dev inspector main.py

Then open the URL printed in the terminal to browse and call tools, read resources, and render prompts interactively.

Connect to Claude Desktop

Add this to your claude_desktop_config.json:

{
  "mcpServers": {
    "small-mcp": {
      "command": "uv",
      "args": ["run", "--directory", "/Users/nishantbhagat/Study/Projects/small mcp", "python", "main.py"]
    }
  }
}

Project Structure

small mcp/
├── main.py          # MCP server (all primitives in one file)
├── pyproject.toml   # uv project config
└── uv.lock

from github.com/Nishant-IIT/smallmp

Installing Small

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/Nishant-IIT/smallmp

FAQ

Is Small MCP free?

Yes, Small MCP is free — one-click install via Unyly at no cost.

Does Small need an API key?

No, Small runs without API keys or environment variables.

Is Small hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Small in Claude Desktop, Claude Code or Cursor?

Open Small on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Small with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All development MCPs