Small
FreeNot checkedA minimal FastMCP server in Python demonstrating all four MCP primitives with tools for arithmetic, word counting, time, and logging, resources for server info
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
Installing Small
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/Nishant-IIT/smallmpFAQ
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
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Small with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
