Munim について
Munimは、複数の事業者を担当する運用者向けのローカルMCPサーバーです。顧客ごとの認証情報を分離しながら、複数アカウントの同時接続と横断的な問い合わせに対応します。
主な機能
- 01複数顧客アカウントの同時接続
- 02名前空間ごとのプロバイダーツール
- 03顧客別認証情報でのAPI呼び出し
- 04決定的なチェックと監査ログ
- 05任意のAI分析
活用シーン
- 01顧客アカウントをまたいだドメイン確認
- 02指定した顧客のプロバイダーツール実行
- 03プロバイダーMCPにないAPI操作の利用
MCP 対応
接続した各プロバイダーのMCPツールを一覧・呼び出しするツールをクライアントに提供し、指定顧客の認証情報を使用します。顧客横断の問い合わせや、プロバイダーAPIへの直接呼び出しにも対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
16掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| check | boolean | いいえ | 各プロバイダーに、セッションがまだ開けるか確認します。False の場合は、保存済みの内容だけを即時に報告します。 |
詳細
Munim
すべてのクライアントのアカウントと同時にライブセッションを保持する、1つのMCP サーバーです。
コーディングエージェントは、Cloudflareアカウント1つにログインできます。Vercelも1つ。Resendも1つです。2つ目のクライアントを接続すると、最初の接続は切れます。そのため、十数社の小規模事業者を担当する人は、エージェントのセッションを十数個実行することになり、どのセッションも複数のクライアントについての質問には答えられません。
Munimなら、すべてのクライアントをまとめて扱えます。各クライアントはプロバイダーに独自に登録され、独自のトークンとツールリスト内の独自の名前空間を持ちます。そのため、1つのエージェントですべてのクライアントを横断して読み取り、指定したクライアントに対して書き込みできます。
Kloudfirst -> [email protected]'s Account (3 tools)
Ivy & Fern -> [email protected]'s Account (3 tools)
both sessions opened concurrently, one process, no logout
これは図ではなく、実際の2つのCloudflareアカウントを使った実行結果です。2つ目のアカウントはクライアントのもので、ここではそのアドレスを置き換えています。クライアントは公開リポジトリへの掲載に同意しておらず、このファイルはPyPIのページでもあるためです。お手持ちの2つのアカウントで再現できます。
scripts/cross_account_probe.py。
インストール
Python 3.10以降が必要です。それ以外は何も必要ありません。Nodeもビルド手順も、事前に作成するアカウントも不要です。
uv tool install munim # or: pipx install munim, or: pip install munim
claude mcp add munim -- munim-mcp
コーディングエージェントにインストールを任せる場合は、
llms-install.mdを参照するよう伝えてください。ターミナルを監視する人がいないと間違えやすい点と、どこで処理を止めて引き継ぐ必要があるかが記載されています。
起動
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
順番は自由です。先に接続すると、サインインしたアカウントがクライアント名になります。先にクライアントを登録しておき、好きなときに接続することもできます。どちらも同じ状態になります。
次に、ログイン済みのセッション1つでは答えられない質問をコーディングエージェントにしてみましょう。
which of my clients has a domain expiring this quarter?
check ivyandfern.co.uk for Ivy & Fern Studio
診断だけでなく、実際に作業する
Munim は、各プロバイダーを独自の動詞でラップしません。ここにある各プロバイダーはそれぞれ独自のツールを備えた MCP サーバーを実行しているため、Munim はそれらを転送し、認証情報を提供します。
munim tools "Ivy & Fern" cloudflare # what that account can be asked to do
munim call "Ivy & Fern" cloudflare execute --args '{"code": "..."}'
コーディングエージェントは、list_provider_tools と
call_provider_tool として同じ 2 つのツールを利用できます。この経路ではモデルを使用しないため、エージェントをオフにしても動作し、すべての呼び出しはツール名と引数とともに実行ログに記録されます。呼び出しではクライアントを 1 つ指定し、そのクライアントの認証情報だけが解決されます。
プロバイダー独自の MCP サーバーで必要なものが公開されていない場合、
call_provider_api はさらに下のレイヤーで、同じクライアントの認証情報を使って、そのプロバイダーの API に HTTP 呼び出しを 1 回行います。Vercel では環境変数への書き込みも、プロジェクトへのドメインの紐付けも公開されていません。このツールはそのためのものです。URL ではなくパスを受け取り、認証情報が別のホストに送信されるような呼び出しは拒否します。
Munim はデフォルトでローカル動作します。 チェック、監査、メール計画は決定論的です。これらにモデルは不要で、モデルを呼び出すこともありません。上記のパススルーも同様です。3 つのツール(check、work_on_client、ask_across_clients)は見つかった情報を推論することもできますが、依頼するまではその機能はオフになっています。そのため、キーを持っていることは、使用に同意したことと同じではありません。
munim config ai key gemini # prompts, stored in ~/.munim/credentials.json
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
ホストは、そのまま動作する Amazon Bedrock に加えて、Strands が追加機能として提供する Google Gemini と Anthropic です。pip install 'munim[gemini]' を実行してください。
ただし、これによって変わらない点があります。Munim は MCP サーバーとして動作するため、ツールが返す内容はコーディングエージェントのコンテキストに入り、したがって、そのエージェントが実行するモデルにも送られます。エージェントをオフにすれば、Munim が独自にモデルを呼び出すことは停止しますが、MCP の仕組み自体は変えられません。プライバシーポリシーにも明記されています。
munim doctor を実行すると、設定済みの項目と未設定の項目、それぞれの不足を解消するための正確なコマンドがわかります。不明な点がある場合は、まずここから確認してください。
詳細
| デモ動画 | https://youtu.be/-9xnJVLzO18 |
| リポジトリ | https://github.com/vishalsg42/munim |
| パッケージ | https://pypi.org/project/munim/ |
| 掲載ページ | https://glama.ai/mcp/servers/vishalsg42/munim |
| 掲載先 | awesome-mcp-servers |
この動画では、実際のクライアントのドメインを対象に実際の実行を行っています。決定論的な 15 個のチェックで 2 つの問題を見つけ、Strands エージェントがオーナーの言語でその内容を説明します。その後、修復に必要なプロバイダーにクライアントが接続されていないため、修復はエッジ条件で停止します。動画内に演出はなく、それがカメラの前で修復を行っていない理由でもあります。
インストールせずに自分で実行するには、scripts/check_client.py で 1 つのクライアントに対してチェックカタログを実行し、レポートを出力します。scripts/fix_client.py は修復グラフを実行します。どちらも、エージェントを介さずに、MCP の check ツールと fix ツールと同じコードパスを使用します。
ドキュメント
| コマンド | CLI の全機能 |
| ツール | コーディングエージェントが利用できる機能と、意図的にできないようにしている操作 |
| プロバイダー | プロバイダーごとのページ:設定方法、接続で許可されること、検証内容 |
| アーキテクチャ | 構築方法と、その設計を形作る 4 つの判断 |
| 決定事項 | 誤った判断も含めた、すべての設計上の判断とその理由 |
| ロードマップ | 未完了の項目と、その理由 |
| 開発 | テストの実行方法と、上記の主張を再現する方法 |
これが存在する理由
ある一人の担当者が、十数社の小規模事業者のウェブとメールの設定を管理しています。アカウントを所有しているのはクライアントで、担当者は委任されたアクセス権を使って作業します。どのプロバイダーも一度にログインできるのは一つのアカウントだけなので、クライアントごとに別のエージェントセッションを用意するのが回避策です。
コストがかかるのは、切り替え作業ではありません。メール設定を間違えても、目に見える問題が何も起きないことです。 A レコードを間違えれば、数分でサイトがダウンします。SPF レコードを間違えると、クライアントの請求書がひっそり届かなくなり、誰も数週間気づかないことがあります。
munim とは、事業主が信頼し、都度頼まれなくても帳簿を管理し、事務を引き受ける世話役のことです。
開示事項
AI の支援を受けて作成しました。既存のコードは取り込んでいません。このリポジトリは提出期間中に作成されました。
ライセンス
MIT です。LICENSE を参照してください。
貢献
CONTRIBUTING.md には、2 つのテストスイートの実行方法と、このプロジェクトで望ましい変更の内容が記載されています。特に、変更の理由を記録することを重視しています。docs/DECISIONS.md は、そうした理由を記した番号付きのログで、以前の判断を覆す項目もいくつかあります。
プロバイダーの追加に Python は不要です。 11 個のプロバイダーが同梱されており、最初の 1 つを追加する場合にだけ Python が必要でした。このプロジェクトでは、プロバイダーはテーブルの 1 行です。また、munim servers add <name> <url> はサーバーに問い合わせて認証方法を判定します。続いて munim servers export <name> を実行すると、プルリクエストに使う行が出力されます。この方法で必要なのは、その行、docs/providers/TEMPLATE.md をもとに作成したページ、そして実際に行った計測値です。テストの失敗は必要ありません。行が追加されてもページがない場合、tests/test_provider_docs.py がすでに失敗するためです。
セキュリティ上の問題は、イシューではなく非公開のアドバイザリーで報告してください。SECURITY.md には対象範囲と、すでに把握済みで意図的な事項が記載されているため、報告時にそれらを省けます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。