Skip to main content

Munim

PyPI Python Tests Licence

One MCP server holding a live session with every client's account at once.

A coding agent can be logged in to one Cloudflare account. One Vercel. One Resend. Connect a second client and the first goes away. So the person looking after a dozen small businesses runs a dozen agent sessions, and none of them can answer a question about more than one client.

Munim holds them all. Each client gets its own registration with the provider, its own token and its own namespace in the tool list, so one agent can read across every client and write inside the one you named.

Kloudfirst       -> Kloudfirst@gmail.com's Account          (3 tools)
Balaji Roofings  -> Tech.bajajiroofing@gmail.com's Account  (3 tools)

both sessions opened concurrently, one process, no logout

That is a real run against two real Cloudflare accounts, not a diagram. Reproduce it with your own two: scripts/cross_account_probe.py.

Install

Requires Python 3.10+. Nothing else: no Node, no build step, no account to create first.

uv tool install munim          # or: pipx install munim, or: pip install munim
claude mcp add munim -- munim-mcp

Start

munim clients                          # who you look after, and what is connected
munim clients add "Ivy & Fern"         # write one down, connect nothing yet
munim connect "Ivy & Fern" cloudflare  # a browser opens; that is the whole setup

There is no wrong order. Connect first and the account you sign in to names the client, or write the client down first and connect whenever. Both arrive in the same place.

Then ask your coding agent something a single logged-in session cannot answer:

which of my clients has a domain expiring this quarter?
check ivyandfern.co.uk for Ivy & Fern Studio

Munim is local by default. The checks, the audit and the mail plan are deterministic: they never needed a model and never call one. Three tools can also reason about what they find (check, work_on_client, ask_across_clients), and that is switched off until you ask for it, so having a key lying around is not the same as consenting to use it.

munim config ai key gemini   # prompts, stored in your keychain
munim config ai on           # takes effect on the next call, no reconnect
munim config ai              # what is on, on what, and where each came from

Hosts are Amazon Bedrock, which works out of the box, plus Google Gemini and Anthropic, which Strands ships as extras: pip install 'munim[gemini]'.

One thing this does not change: Munim runs as an MCP server, so whatever its tools return goes into your coding agent's context and therefore to whichever model that agent runs on. Turning agents off stops Munim calling a model of its own; it cannot change how MCP works. The privacy policy says so plainly.

munim doctor says what is set up, what is not, and the exact command to fix each gap. Start there whenever something is unclear.

Documentation

Commands the whole CLI
Tools what your coding agent gets, and what it deliberately cannot do
Providers a page each: setup, what connecting grants, what is verified
Architecture how it is built, and the four decisions that shape it
Decisions every design decision and its reasoning, including the wrong ones
Roadmap what is not done, and why
Development running the tests, and reproducing the claim above

Why this exists

One person maintains the web and email setup of a dozen small businesses. The clients own the accounts; the operator holds delegated access and does the work. Every provider allows one login at a time, so the workaround is a separate agent session per client.

The costly part is not the switching. It is that a mistake in mail setup breaks nothing visible. Get an A record wrong and the site is down in minutes. Get the SPF record wrong and the client's invoices quietly stop arriving, and nobody notices for weeks.

A munim is the steward a business owner trusts to keep their books and handle their affairs without being asked each time.

Disclosure

Built with AI assistance (Claude Code), which the hackathon rules permit. No pre-existing code was incorporated; the repository was created during the submission period.

Licence

MIT. See LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

munim-0.3.0.tar.gz (670.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

munim-0.3.0-py3-none-any.whl (128.8 kB view details)

Uploaded Python 3

File details

Details for the file munim-0.3.0.tar.gz.

File metadata

  • Download URL: munim-0.3.0.tar.gz
  • Upload date:
  • Size: 670.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for munim-0.3.0.tar.gz
Algorithm Hash digest
SHA256 f38ff0f8a19e5fb88670245f9882af389497658227c5b465beae89e7d60d1101
MD5 53c79a4457a5f0a684699a8d1f69b865
BLAKE2b-256 7f456c9d5333d7ada8176c7787c1c9a6ff47be1d9a4fd3b9ecf30e33214ec91f

See more details on using hashes here.

Provenance

The following attestation bundles were made for munim-0.3.0.tar.gz:

Publisher: publish.yml on vishalsg42/munim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file munim-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: munim-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 128.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for munim-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 53ada76fb807825f180e1705e3b7267607ed7974f75313ec1e850d1078f96e28
MD5 6b73e81d2f6d44a112b9b58d74db528b
BLAKE2b-256 9e7c762ec3c8f36fc6e3f6251935f6aa2ff8fc35db0c3b6e802b7f1f63d42827

See more details on using hashes here.

Provenance

The following attestation bundles were made for munim-0.3.0-py3-none-any.whl:

Publisher: publish.yml on vishalsg42/munim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.4.0

2 files

This release

0.3.0 This release

2 files

0.2.1

2 files

0.2.0

2 files

0.1.0

2 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