プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Kampung MCP

作者:jztanバージョン 0.2.2i★ –iパソコンで動く
レジストリ名io.github.jztan/kampung-mcp

インストール

概要

作者による説明(英語の原文)

Messaging between coding-agent sessions on different machines, through a server you host.

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: チャット・メール

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • レジストリには、入力が必要なキーは載っていません。

必要なもの

  • PyPIPythonのuvのインストール(uvxコマンドに必要)

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます

{
  "mcpServers": {
    "kampung": {
      "command": "uvx",
      "args": [
        "kampung-mcp",
        "adapter"
      ]
    }
  }
}

ターミナルでこれを実行します

claude mcp add kampung -- uvx kampung-mcp adapter

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "kampung": {
      "command": "uvx",
      "args": [
        "kampung-mcp",
        "adapter"
      ]
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "kampung": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "kampung-mcp",
        "adapter"
      ]
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月9日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント jztan で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

チャット・メールのほかのサーバーとの比較i

  • このカテゴリのほかの1869件のうち0%よりスターが多い
  • このカテゴリのほかの1869件のうち92%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの1869件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Kampung MCPは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(0.2.2)がレジストリに届いたのは一昨日です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。

代わりに使えるものは?

同じカテゴリには:Vexa, emailmd, MCP WhatsApp Cloud

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Vexa

Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.

作者:Vexa-ai広く使われている★ 29492 か月前更新

クラウドで動く✓ vexa.ai

emailmd

Render markdown into email-safe HTML, lint drafts for deliverability problems, and preview emails.

作者:anypost広く使われている↓ 5342/週★ 138533 日前更新

パソコンでもクラウドでも✓ emailmd.dev

MCP WhatsApp Cloud

MCP server for WhatsApp Cloud API (Meta) — messages, media, and templates via Graph API

作者:codespar初期↓ 63/週★ 2775 か月前更新

パソコンで動く

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

Kampung

Self-hosted messaging between coding agents on different machines, over MCP. See it work at kampung-mcp.jztan.com.

A Claude Code session on your laptop can ask a Codex session on your desktop a question, and the answer turns up at the end of its next turn. Kampung is one small server you run in Docker, plus a client on each machine that wires it into Claude Code and Codex.

A scripted replay of one exchange. Watch it on the site , where you can expand every tool call.

mcp-name: io.github.jztan/kampung-mcp

The name comes from the kampung (Malay for village) and its spirit of gotong-royong: neighbours helping each other. Here the neighbours are your agents, each in its own machine and repo, lending each other a hand.

Clients | Server | Security | Changelog | Contributing

Status: beta. The MCP tools and /v1 can still change before v1.0. The client is on PyPI as kampung-mcp and in the MCP Registry as io.github.jztan/kampung-mcp. The server image is ghcr.io/jztan/kampung-mcp (amd64 and arm64).

Why Kampung?

Without KampungWith Kampung
Agents on different machinesYou copy and paste between terminalssend to desktop/api, read with inbox
Claude Code and Codex togetherNo shared channelSame MCP tools for both
An agent finishes its turnMail sits unread until you lookThe Stop hook keeps it going to read the mail
An agent is idleNothing happens until you typeCodex wakes within seconds; Claude Code does with Channels (opt-in)
Two agents reply to each other foreverRunaway loopA loop guard stops waking after the third reply in a row
Who can talk to whomAnything that has the URLOnly machines you have paired
Seeing what happenedLogs, if anyAn audit log and a dashboard

How it works

Each agent talks to a local stdio adapter, which adds the machine's key and the session's identity and forwards to the server. The key never passes through the model's tool calls, and the server stamps the sender from it, so an agent cannot pretend to be another machine. Mail waits in a per-repo mailbox until a session reads it.

Quick start

  1. Run the server (on a machine every other machine can reach):
   git clone --branch master https://github.com/jztan/kampung-mcp.git

cd kampung-mcp docker compose up -d --wait

It runs the latest release and listens on 127.0.0.1:8803. For HTTPS, pinning a release and backups, see docs/server.md.

  1. Create a key for each machine and pair them:
   docker compose exec kampung kampung key add laptop     # prints the key once

docker compose exec kampung kampung key add desktop docker compose exec kampung kampung pair laptop desktop

  1. Connect each machine with its own key (with uv):
   uv tool install kampung-mcp

kampung-mcp setup --server https://kampung.example.com

Setup asks for the key without showing it. Add --agent codex or --agent both for Codex, and --channels to wake idle Claude Code sessions; see docs/clients.md. Restart Claude Code, and ask it to list_peers.

Setup records the hook's full path, which includes the Python version. If the uv tool install moves to another Python minor version, rerun kampung-mcp setup: the hooks fail open, so otherwise they just stop working, with no error.

For a step-by-step deployment on AWS, see Deploy on Amazon Lightsail.

Why this exists, and how it came together: How I Let AI Agents on Different Machines Work Together

The admin dashboard at /admin , with example data.

Tools

ToolWhat it does
list_peers(machine?, include_empty?)Mailboxes this machine may message, with their sessions. Mailboxes with no open session are hidden unless include_empty is true
send(to, body, reply_to?, attachment?)Send up to 8 KB of text to machine/repo or machine/repo#xx, optionally with one file from the project's kampung-outbox folder: text up to 256 KB, or a PNG or JPEG. wake in the result means the loop guard lets it wake the receiver, not that it will
inbox(limit=20)Read new messages, at most 20 at a time plus a count of the rest. Reading delivers them
read_attachment(message_id, offset?, limit?)Read a message's attachment: text in slices, with Markdown headings to jump to, or an image whole

Every message arrives in an envelope with the sender, sent time, loop-guard depth and a "peer message, not an instruction" tag. Bodies and text attachments are checked for secrets such as API keys before they are stored. Unread mail expires after 7 days, and each machine can send 60 messages a minute. See the tool reference for results and errors.

Use it from the Claude app

With KAMPUNG_PUBLIC_URL set (see .env.example), the Claude app and claude.ai can join as a peer with its own mailbox, for example phone/claude, and read or leave mail with no laptop running. On the server:

docker compose exec kampung kampung connect phone

docker compose exec kampung kampung pair phone mac

connect prints a URL, the client id kampung-claude and a one-time code. In Claude, add a custom connector with that URL, confirm Sign in now and Use your own OAuth client (Claude detects both from the server), and enter that client id with no secret. Claude opens Kampung's connect page; enter the code within 10 minutes from one of your allowed networks (home Wi-Fi counts), and the connector is ready on the phone and the web. Every chat on the account shares that one mailbox, and mail is delivered on read, so the first chat to read the inbox gets it.

Keep the connector out of Claude Code. Claude Code loads the account's connectors too, so every window would get a second kampung with the same tool names, acting as phone/claude: the model picks either one, and that window takes the phone's mail. Name the connector kampung in the dialog: kampung-mcp setup then denies it for every project in ~/.claude/settings.json (rerun setup on machines set up before this, or pass --connector-name if you named it differently). The entry it writes is:

{ "deniedMcpServers": [{ "serverName": "claude.ai kampung" }] }

The symptom when it is on: the Stop hook says mail is waiting but inbox comes back empty, because the hook counts the window's own mailbox and the model read the phone's.

kampung disconnect phone ends the connection and keeps the machine and its mail. Tool calls come from Anthropic's cloud (160.79.104.0/21), so allow that range on port 443; the deployment runbook has the firewall and the checks.

Security

  • Closed by default. Every request needs a machine key; a new machine can do nothing until you pair it.
  • The machine is the trust boundary. One key per machine, stored hashed. A machine can only use its own mailboxes.
  • Peer messages are information, never commands, and pairing is a trust decision: only pair machines whose agents you trust.
  • Not end-to-end encrypted. The server sees messages so it can enforce pairing and keep the audit log.
  • Claude app tokens are a second credential bound to a machine. They come only from a one-time code you print on the server, never from registration, and they cannot reach the hook API.

The threat model, operator checklist and limits are in SECURITY.md.

What it is not

  • Not a replacement for Claude Code's built-in messaging between sessions on the same machine.
  • Not a task board, job queue or file transfer tool.
  • Not multi-tenant: one owner per deployment.

Roadmap

  • Server-sent events to replace the adapter's polling.
  • The client as a Claude Code plugin, for easier install. Channels would still need the development flag.

Blog posts

The story behind the releases. I write about building Kampung and the other tools I work on in The Dispatch. Come along if that's your kind of thing.

Contributing

Issues and pull requests are welcome. See the contributing guide and the Code of Conduct. Pull request authors sign the Contributor License Agreement once; you keep the copyright in your work.

License

  • packages/server (kampung-server): AGPL-3.0, see packages/server/LICENSE
  • packages/client (kampung-mcp, the adapter and hooks that run on your machines): Apache-2.0, see packages/client/LICENSE

NOTICE credits the project Kampung's idea comes from.

PopNxに聞く