Skip to main content
Glama
drscotthawley

slmn-mcp

slmn

What’s inside

slmn is a small collection of independent tools, each in its own notebook/module:

module

what it does

nbtools

read, grep, and edit Jupyter notebook cells by id – no hand-rolled JSON surgery

misc

read a PDF’s text; check whether a local GPU is free

remote

launch and monitor background jobs on a remote host over ssh; fetch a URL; check a repo’s GitHub CI

publish

automate the nbdev edit->ship loop: clean/export, a reviewed commit, push, wait for CI, and (on a feature branch) merge a PR to main

dead_drop

file-based async IPC – one side drops a message file, another picks it up (with a streaming variant)

cli

the slmn <tool> [args...] dispatcher that exposes all of the above from the shell

mcp

an optional server exposing the same tools to any MCP client (slmn-mcp)

Every tool is a plain, type-hinted function. That single definition is what the CLI turns into command-line flags and what the MCP server turns into a tool schema – so the three ways to call a tool (below) never drift apart.

Related MCP server: ai-devtool-mcp-server

Installation

slmn isn’t on PyPI or conda yet, so install it from GitHub. The default install is “lite” – just the tools and the slmn CLI:

pip install git+https://github.com/drscotthawley/slmn.git

The MCP server is optional; add the mcp extra if you want it (it pulls in fastmcp and friends):

pip install "slmn[mcp] @ git+https://github.com/drscotthawley/slmn.git"

How to use

The same tools are reachable three ways.

Import them directly:

from slmn.nbtools import grep_nb
print(grep_nb('nbs/01_nbtools.ipynb', 'def read_nb'))

From the shell, via the slmn dispatcher (run slmn with no arguments for the tool list):

slmn grep_nb nbs/01_nbtools.ipynb 'def read_nb'
slmn gpu_free

Over MCP (with the mcp extra installed), registered with any MCP-speaking client:

claude mcp add slmn -- slmn-mcp

Documentation

Full documentation is hosted on the project’s GitHub pages; the source for each page is the correspondingly-named notebook under nbs/.

For developers

slmn is built with nbdev: the notebooks under nbs/ are the source of truth, and the slmn/ package is generated from them. To hack on it, install in editable mode:

git clone https://github.com/drscotthawley/slmn.git
cd slmn
pip install -e ".[mcp]"

Edit the notebooks, then regenerate the package, run the tests, and ship – all via slmn’s own publish tool (nbdev-clean/export -> reviewed commit -> push -> wait for CI -> merge a PR to main):

slmn publish "your commit message"
from slmn.misc import gpu_free
gpu_free()
2

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers