Skip to main content

mcpmini

Usage

Installation

pip install mcpmini

How to use

An MCP tool is a docmented Python function — the docments become the tool’s schema, with no registration ceremony. Serve some functions over stdio or HTTP:

from mcpmini.core import MCPServer, MCPClient, serve_stdio, serve_mcp
import asyncio, socket
def fahrenheit(
    celsius:float, # Temperature to convert
)->float:
    "Convert Celsius to Fahrenheit"
    return celsius*9/5+32

srv = MCPServer('demo', [fahrenheit])

asyncio.run(serve_stdio(srv)) serves it as a host-launched stdio server; a tool on that transport can call await srv.elicit(message, schema), and an MCPClient.stdio(..., on_request=handler) supplies the structured answer while the original tool call remains active. asyncio.run(serve_mcp(srv, port=8000, token='S')) serves it over streamable HTTP behind a bearer token (non-loopback binds refuse to start tokenless unless you pass no_token=True). A file of docmented functions serves straight from the command line — mcpmini tools.py, or mcpmini tools.py --transport http --port 8000 — which is the shape MCP host configs launch. Then any MCP client can connect — for example Claude Code:

claude mcp add --transport http demo http://127.0.0.1:8000/mcp -H "Authorization: Bearer S"

And mcpmini is a client too: server tools come back as bound Python functions, with their signatures, docs, and defaults rebuilt from the wire schema.

def free_port():
    with socket.socket() as s:
        s.bind(('127.0.0.1', 0))
        return s.getsockname()[1]
port = free_port()
task = asyncio.create_task(serve_mcp(srv, port=port, token='S'))
await asyncio.sleep(0.2)
async with MCPClient.http(f'http://127.0.0.1:{port}/mcp', token='S') as c: res = await c.tools.fahrenheit(celsius=100)
task.cancel()
res
'212.0'

Release files for mcpmini 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcpmini 0.0.3
File Size Uploaded
mcpmini-0.0.3.tar.gz 15.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mcpmini 0.0.3
File Interpreter ABI Platform
mcpmini-0.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 30.7 kB

Release files / mcpmini-0.0.3.tar.gz

Download URL mcpmini-0.0.3.tar.gz
Size 15.8 kB
Tags Source
SHA-256 checksum
How to use checksums
e0c459a6a3015d3b22d274acdd72bc354db456183588e9199052e935c17708a4
BLAKE2b-256 checksum
How to use checksums
e36f2ff5dc829d4eb55a84b36f03836a04203933648e828f6d7d0df9c43ac9ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / mcpmini-0.0.3-py3-none-any.whl

Download URL mcpmini-0.0.3-py3-none-any.whl
Size 14.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
19c78fc6083eaaf3b024306b210646793f2962335d6e186d000cd959a5c8522d
BLAKE2b-256 checksum
How to use checksums
a1770adaddc92cebec0b03ec5b43994b45850e997fc0d34e775046cf71690a41
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release history Release notifications | RSS feed

0.0.5

2 release files

0.0.4

2 release files

This release

0.0.3 This release

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page