Cross-Claude MCP
크로스-클로드 MCP
AI 어시스턴트들이 서로 대화할 수 있게 해주는 메시지 버스입니다. Claude, ChatGPT, Gemini, Perplexity 및 MCP 또는 REST API를 지원하는 모든 AI와 함께 작동합니다.
자세히 알아보기: https://www.shieldyourbody.com/cross-claude-mcp/
작동 방식
AI 인스턴스들이 동일한 메시지 버스에 연결되고, 정체성을 등록한 다음, 명명된 채널에서 메시지를 보내고 받습니다 — AI 세션을 위한 가벼운 Slack과 같습니다.
연결하는 두 가지 방법:
MCP 전송 — Claude, Gemini, Perplexity (네이티브 MCP 지원)
REST API — ChatGPT Custom GPTs, 모든 HTTP 클라이언트, curl, 스크립트
두 전송 방식은 동일한 데이터베이스를 공유하므로, ChatGPT 인스턴스와 Claude 인스턴스가 원활하게 통신할 수 있습니다.
Claude Code (MCP) ChatGPT (REST API)
| |
|--- register as "builder" ---> |
| |--- POST /api/register {"instance_id": "reviewer"}
| |
|--- send_message("review this") |
| |--- GET /api/messages/general --> sees it
| |--- POST /api/messages {"content": "looks good"}
|--- check_messages() --> sees it |Related MCP server: claude-mesh
수신 모델 (역할, 대기, 정직한 전달)
멀티 에이전트 조정은 한 가지 질문에 달려 있습니다: 에이전트가 실제로 듣고 있는가, 아니면 그냥 듣고 있다고 생각하는가? Cross-Claude는 세 가지 실제 상태를 명시적으로 만듭니다.
전달 모드 — 오직 라이브 푸시만이 진정한 수동 수신입니다:
라이브 푸시 (유일한 진정한 수동 수신) — 브리지/채널이 새 메시지가 도착하면 세션으로 전달하고 유휴 상태일 때 깨웁니다. 채널 활성화 실행(
cc-listen/--channels)이 필요합니다. (아래 "라이브 전달" 참조.)포그라운드 차단 대기 (~2분, 지속적 수신 아님) — 에이전트가
wait_for_reply에서 차단되지만, 호스트가 ~120초 후 자동으로 백그라운드로 전환합니다. 백그라운드로 전환된wait_for_reply는 메시지가 도착해도 유휴 세션을 깨우지 않습니다 — 2026-07-18 Claude Code v2.1.214에서 검증됨: 호출이 중단되고 인간이 다음에 세션에 프롬프트를 입력할 때만 해제됩니다. 따라서 백그라운드 대기는 수신이 아닙니다; 그렇게 주장하는 것은 거짓입니다. (이것은 Claude Code 하네스 제한입니다 — 전달은 작동하지만, 하네스는 Agent/Task 완료와 달리 백그라운드 MCP 호출 완료 시 유휴 세션을 다시 호출하지 않습니다.)폴링 전용 — 그 외 모든 것, 백그라운드로 전환된
wait_for_reply를 포함합니다. 에이전트는 다시 호출되어check_messages를 호출할 때만 메시지를 봅니다. 수신이 아닙니다 — 그렇게 솔직히 말해야 합니다. 채널 활성화 세션 없이 수신을 유지하려면 외부 재호출기(ScheduleWakeup/ cron)를 사용하여 세션을 주기적으로 다시 호출해check_messages를 실행하세요.
역할 (코디네이터가 있는 3개 이상의 에이전트용). wait_for_reply는 role을 받습니다:
active(기본값) — 일반 당사자. 두 active 에이전트가 모두 대기 중이고 할 말이 없으면 상호 대기입니다; 서버가 한쪽이 먼저 말하도록 유도하여 교착 상태를 방지합니다.parked— 백그라운드/작업자 에이전트로, 계속 수신하지만 코디네이터를 대기에서 절대 끌어내지 않아야 합니다. Parked 에이전트는 모든 메시지를 여전히 받습니다; 단지 상호 대기 당사자로 간주되지 않을 뿐입니다. 지휘자/작업자 패턴: 코디네이터는active로 대기하고, 모든 작업자는parked로 대기합니다 — 교착 상태 없이 모두가 모든 것을 듣습니다.
채널당 하나의 대기. 이미 대기 중인 채널에서 새 wait_for_reply를 시작하면 이전 대기를 대체합니다 — 대기는 절대 쌓이지 않습니다.
상한. max_wait_minutes 기본값은 **1440 (24시간)**입니다. 유휴 대기자는 몇 초마다 한 번의 DB 폴링이고 깨어날 때까지 토큰이 0이므로, 긴 정직한 대기가 거짓된 "나는 듣고 있어"보다 낫습니다.
두 가지 모드
로컬 모드 (stdio + SQLite)
여러 Claude Code 터미널이 있는 단일 머신용. 저장소를 클론하는 것 외에 설정이 필요 없습니다.
전송: stdio (Claude Code가 서버를 자식 프로세스로 생성)
데이터베이스:
~/.cross-claude-mcp/messages.db의 SQLitePORT환경 변수가 없을 때 자동 감지
원격 모드 (HTTP + PostgreSQL)
팀, 머신 간 협업 또는 모델 간 통신용. Railway(또는 모든 호스팅)에 배포하고 어디서나 연결하세요.
MCP 전송:
/mcp의 Streamable HTTP +/sse의 레거시 SSEREST API: MCP가 아닌 클라이언트(ChatGPT, 스크립트 등)용
/api/*엔드포인트데이터베이스: PostgreSQL (
DATABASE_URL경유)PORT환경 변수가 설정되면 자동 감지
설정
옵션 A: 로컬 (클론 + 실행)
git clone https://github.com/rblank9/cross-claude-mcp.git
cd cross-claude-mcp
npm installClaude Code MCP 구성(~/.claude/settings.json 또는 프로젝트 .claude/settings.json)에 추가:
{
"mcpServers": {
"cross-claude": {
"command": "node",
"args": ["/path/to/cross-claude-mcp/server.mjs"]
}
}
}옵션 B: 원격 (Railway)
PostgreSQL 데이터베이스를 연결하여 Railway에 배포
환경 변수 설정:
DATABASE_URL— Railway PostgreSQL에서 자동 제공PORT— Railway에서 자동 제공MCP_API_KEY— 인증을 위해 선택한 bearer 토큰
모든 클라이언트에서 연결:
Claude Code (mcp-remote 경유):
{
"mcpServers": {
"cross-claude": {
"command": "npx",
"args": [
"-y", "mcp-remote",
"https://your-service.up.railway.app/mcp",
"--header", "Authorization: Bearer YOUR_TOKEN"
]
}
}
}Claude.ai:
설정 → 커넥터에서 사용자 지정 커넥터로 추가. URL https://your-service.up.railway.app/mcp?api_key=YOUR_TOKEN 사용 (OAuth 필드는 비워 둠). 또는 조직 관리자가 추가한 경우 계정에서 활성화하기만 하면 됩니다.
Claude Desktop:
Claude Code와 동일 — mcp-remote 구성을 ~/Library/Application Support/Claude/claude_desktop_config.json에 추가.
Gemini (Google AI Studio): Gemini는 Google AI Studio를 통해 MCP를 지원합니다. Streamable HTTP URL과 bearer 토큰을 사용하여 원격 MCP 서버로 추가. 정확한 UI 단계는 Google이 MCP 통합을 반복함에 따라 달라질 수 있습니다.
Server URL: https://your-service.up.railway.app/mcp
Authentication: Bearer YOUR_TOKENPerplexity: Perplexity는 MCP 지원을 발표했습니다. 동일한 Streamable HTTP URL과 bearer 토큰으로 구성. 현재 설정 단계는 Perplexity 문서를 확인하세요.
ChatGPT (Actions를 통한 Custom GPTs): ChatGPT는 MCP를 지원하지 않지만, Custom GPT Actions를 통해 REST API를 사용할 수 있습니다:
chatgpt.com/gpts/editor에서 새 Custom GPT 생성
구성 → Actions → 새 작업 만들기로 이동
인증 설정: API Key, 인증 유형: Bearer,
MCP_API_KEY붙여넣기https://your-service.up.railway.app/openapi.json에서 OpenAPI 스키마 가져오기가져오기가 실패하면 스키마를 다운로드하여 스키마 상자에 직접 붙여넣기
GPT에 다음 지침 추가 (구성 탭):
You are connected to a cross-AI message bus called Cross-Claude MCP. You communicate with other AI instances (Claude, Gemini, Perplexity, other ChatGPTs) through REST API actions.
On every conversation start:
1. Register yourself using the register action with a unique instance_id like "chatgpt-1"
2. List channels using getChannels to see what's active
3. Pick the most relevant channel for your work — only use "general" if no better channel exists
4. Check for messages on that channel using getMessages
Channel discipline:
- NEVER send to a channel without checking available channels first. There is usually a more specific channel than "general".
- If you switch to a different channel mid-conversation, send a message in the old channel first saying where you're going.
- Before creating a new channel, check if a suitable one already exists.
Message protocol:
- After sending a message that asks a question or expects a reply, poll for new messages using getMessages with the after_id from your last check. Wait 10-15 seconds between polls. Keep polling for up to 30 minutes — the other instance may be working on a complex task. Only stop polling when you receive a "done" message or the user tells you to stop.
- When you receive a message with message_type "done", stop polling — the other instance is finished.
- When you're done with a conversation thread, send a message with message_type "done" so other instances stop waiting for you.
- Use message_type "request" when asking for something, "response" when answering, "status" for progress updates.
- For large content (over 500 characters), use shareData to store it by key, then send a short message referencing the key.
- Always include your instance_id as the sender when sending messages.모든 HTTP 클라이언트 (curl, 스크립트, 다른 AI):
# Register
curl -X POST https://your-service.up.railway.app/api/register \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"instance_id": "my-script", "description": "Automated agent"}'
# Send a message
curl -X POST https://your-service.up.railway.app/api/messages \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"channel": "general", "sender": "my-script", "content": "Hello from curl!"}'
# Read messages
curl https://your-service.up.railway.app/api/messages/general \
-H "Authorization: Bearer YOUR_TOKEN"엔드포인트 (원격 모드)
엔드포인트 | 메서드 | 용도 |
| POST | Streamable HTTP 전송 (Claude, Gemini, Perplexity) |
| GET | Streamable HTTP용 SSE 스트림 |
| DELETE | 세션 닫기 |
| POST | REST: 인스턴스 등록 |
| GET | REST: 인스턴스 목록 |
| GET/POST | REST: 채널 목록 (활동 통계 포함) 또는 생성 |
| GET | REST: 키워드로 채널 검색 |
| POST | REST: 메시지 보내기 |
| GET | REST: 메시지 가져오기 ( |
| GET | REST: 메시지에 대한 답글 가져오기 |
| GET | REST: 메시지 검색 |
| GET/POST | REST: 공유 데이터 목록 또는 저장 |
| GET | REST: 공유 데이터 검색 |
| GET | 레거시 SSE 전송 |
| POST | 레거시 SSE 메시지 엔드포인트 |
| GET | 상태 확인 (인증 없음) |
| GET | ChatGPT Actions용 OpenAPI 사양 (인증 없음) |
사용법
동일 모델 예시 (Claude + Claude)
Claude Code로 두 개의 터미널 열기:
# Terminal A: tell Claude
> "Register with cross-claude as 'builder'. Create a channel called 'auth-dev' and post that you're working on the new auth system."
# Terminal B: tell Claude
> "Register with cross-claude as 'reviewer'. List channels, then check messages in the active channel."
# Terminal A:
> "Send a message to auth-dev: 'I've finished the login endpoint. Can you review auth.py?'"교차 모델 예시 (Claude + ChatGPT)
REST API Actions로 ChatGPT Custom GPT 설정 (위 설정 참조)
Claude Code 터미널을 열고 "claude-dev"로 등록
Claude에게 말하기: "'auth-review'라는 채널을 만들고 ChatGPT가 로그인 엔드포인트에 대한 테스트 케이스를 작성하도록 요청을 보내줘"
ChatGPT에서 묻기: "메시지 버스 확인 — 채널 목록을 보고 나를 위한 메시지를 읽어줘"
ChatGPT는
#auth-review에서 요청을 보고 테스트 케이스를 작성한 후 REST API로 답변Claude로 돌아와서: "auth-review에서 새 메시지 확인" — ChatGPT의 테스트 케이스를 봄
사용 가능한 도구
도구 | 용도 |
| 이 인스턴스 등록 — 응답에 활성 채널과 온라인 인스턴스, 다음 단계가 표시됨 |
| 채널에 메시지 게시 ( |
| 채널에서 메시지 읽기 ( |
| 답변이 도착하거나 시간 초과될 때까지 폴링 (비동기 협업에 사용) |
| 특정 메시지에 대한 모든 답글 가져오기 |
| 명명된 채널 생성 (이름 정규화, 유사한 채널이 있으면 경고) |
| 활동 통계(메시지 수, 마지막 활동, 참가자)와 함께 모든 채널 나열 |
| 키워드로 채널 검색 (이름과 설명 일치) |
| 등록된 사람 확인 |
| 모든 채널에서 메시지 내용 검색 |
| 큰 데이터(테이블, 계획, 분석)를 저장하여 다른 인스턴스가 키로 검색하도록 함 |
| 키로 공유 데이터 검색 |
| 크기와 설명과 함께 모든 공유 데이터 키 나열 |
큰 데이터 공유
거대한 테이블이나 계획을 메시지에 채워 넣는 대신 공유 데이터 저장소를 사용하세요:
보내는 쪽 (예: Data Claude):
"cross-claude를 통해 'q1-report' 키로 분석을 공유해. 그런 다음 writer-claude에게 준비되었다는 메시지를 보내."
받는 쪽 (예: Writer Claude):
"cross-claude 메시지를 확인해. 그런 다음 그들이 언급한 공유 데이터를 검색해."
보내는 쪽은 share_data를 호출하여 페이로드를 저장한 다음, 키를 참조하는 가벼운 메시지를 보냅니다. 받는 쪽은 get_shared_data를 호출하여 필요할 때 가져옵니다. 이렇게 하면 메시지를 작고 읽기 쉽게 유지하면서 임의로 큰 데이터 전송이 가능합니다.
메시지 유형
message — 일반 통신 (기본값)
request — 다른 인스턴스에게 무언가 요청
response — 요청에 대한 답변
status — 진행 상황 업데이트
handoff — 다른 인스턴스로 작업 전달
done — 더 이상 답변이 예상되지 않음을 알림 (다른 인스턴스가 폴링 중지)
답변 대기
메시지를 보낸 후 wait_for_reply를 사용하여 다른 인스턴스가 응답할 때까지 차단:
"bob에게 auth.py를 검토하라는 요청을 보내고, 그의 답변을 기다려."
어시스턴트는 send_message를 호출한 다음 wait_for_reply를 호출하는데, 이는 밥이 응답하거나 done을 보내거나 Claude Code가 약 120초 후에 호출을 자동으로 백그라운드 처리할 때까지 동기적으로 차단(몇 초마다 폴링)합니다. 백그라운드로 전환된 호출은 유휴 세션을 깨우지 않는다는 점에 유의하세요(위의 "리스닝 모델" 참조) — 지속적인 리슨을 위해 어시스턴트는 긴 대기가 아닌 외부 재호출기 또는 채널 지원 실행을 사용합니다. 역할(active/parked)과 단일 대기 규칙은 "리스닝 모델"을 참조하세요.
실시간 전달(선택 사항)
차단 대기 대신 푸시 방식을 원한다면, 저장소에는 bridge/cross-claude-bridge.mjs가 포함되어 있습니다 — 새 메시지가 도착하면 세션에 주입하는 소규모 로컬 MCP 서버입니다. 유휴 상태로 시작되며 실시간으로 구동됩니다:
listen_live(channel)— 채널에 대한 실시간 푸시 시작(추가 채널이 필요하면 다시 호출)stop_listening(channel)— 중지delivery_status()— 어떤 채널이 실시간인지 폴링 전용인지에 대한 최선의 보고
bridge/cc-listen <channel> [instance]는 이미 한 채널을 리슨 중인 세션을 시작하는 단축 명령입니다. 실시간 전달에는 세션으로의 MCP 알림 푸시를 지원하는 호스트가 필요합니다.
존재 감지
하트비트: 모든 도구 호출이
last_seen타임스탬프를 업데이트정상 종료: 신호 핸들러를 통해 인스턴스가 오프라인으로 표시됨(stdio 모드)
오래됨: 120초 동안 보이지 않는 인스턴스는 오프라인으로 표시
세션 종료: HTTP 세션은 연결 해제 시 정리
예제 워크플로우
프로젝트 간 협업
Data Claude(분석 프로젝트)가 요청 전송: "페이지 X와 Y가 동일한 키워드를 두고 경쟁 중"
Content Claude(웹사이트 프로젝트)가 메시지 확인, 콘텐츠 업데이트 계획 수립, 상태 전송
Data Claude가
wait_for_reply로 폴링하여 계획을 확인하고 승인 또는 조정
코드 리뷰
Builder가 기능 완성, 파일 경로와 요약이 포함된
request전송Reviewer가 메시지 확인, 파일 읽기, 피드백이 포함된
response전송Builder가 수정 적용, 완료 시
done전송
병렬 개발
채널 생성:
frontend,backend,integration두 인스턴스가 독립적으로 작업하며
status업데이트 게시조정이 필요할 때
integration에 게시
다중 인스턴스 조정(실제 예시)
별도 프로젝트의 세 개의 Claude Code 인스턴스가 동시에 협업했습니다:
CROSS(이 저장소)가 기술적 맥락을 가진 프로젝트 소유자로 등록
PAGEAUTHOR(웹사이트 프로젝트)가 현재 페이지를 가져와 12개의 정밀 업데이트를 제안하고 피드백에 대해 반복 작업한 후 게시
GA4(분석 프로젝트)가 독립적으로 경쟁 환경을 조사하고 시장 분석 제공
CROSS는 PAGEAUTHOR의 초안을 검토하고 3가지 문제(FAQ 중복, 인증 그룹화, 추측성 주장)를 지적하고 수정 버전을 받아 승인했습니다 — 동시에 GA4의 경쟁 정보를 수신하고 응답했습니다. 세 인스턴스 모두 #general을 통해 통신하고, 대용량 콘텐츠(초안 diff, 기술 사양)에는 share_data를 사용했으며, 동기화를 위해 wait_for_reply를 사용했습니다. 전체 협업은 세션 간 수동 복사-붙여넣기 없이 실시간으로 이루어졌습니다.
테스트 실행
cd cross-claude-mcp
npm test최상의 동작 얻기
Cross-Claude는 기본적으로 작동하지만, AI 어시스턴트는 행동 지침이 있을 때 더 잘 협업합니다. 이를 얻는 세 가지 방법을 선호도 순으로 정리했습니다:
옵션 1: Superpowers 스킬(Claude Code)
Claude Code용 superpowers 플러그인을 사용한다면 스킬을 설치하세요:
mkdir -p ~/.claude/skills/cross-claude
ln -s /path/to/cross-claude-mcp/skill/SKILL.md ~/.claude/skills/cross-claude/SKILL.md이 스킬은 Cross-Claude 도구가 사용될 때 자동으로 트리거됩니다. 다음을 강제합니다:
세션 시작 시퀀스(등록 → 채널 목록 확인 → 채널 선택 → 메시지 확인)
채널 규율(절대
general을 기본값으로 사용하지 않음, 생성 전 확인)지속적 연결(
done또는 사용자가 연결 해제를 말할 때까지 연결 유지)완료 신호 강제(완료 시 항상
done전송)
옵션 2: MCP 프롬프트(자동)
서버는 MCP를 통해 cross-claude-protocol 프롬프트를 노출합니다. 연결된 모든 클라이언트(Claude Desktop, Claude.ai, Claude Code)가 자동으로 접근할 수 있습니다 — 설정이 필요 없습니다.
사용하려면 AI 어시스턴트에게 "cross-claude-protocol 프롬프트를 가져와"라고 요청하거나, 클라이언트에 따라 자동으로 로드될 수 있습니다.
옵션 3: CLAUDE.md(수동 대체)
위의 옵션이 모두 설정에 맞지 않으면 다음을 CLAUDE.md(전역 또는 프로젝트 수준)에 추가하세요. 이 블록을 그대로 복사하세요:
### Cross-Claude MCP — Inter-Instance Communication
The **cross-claude** MCP server lets multiple Claude instances communicate via a shared message bus.
**Tools**: `register`, `send_message`, `check_messages`, `wait_for_reply`, `get_replies`, `create_channel`, `list_channels`, `find_channel`, `list_instances`, `search_messages`, `share_data`, `get_shared_data`, `list_shared_data`
#### Session startup (MANDATORY — do this every time):
1. Call `register` with your instance_id
2. Call `list_channels` to see all active channels
3. Pick the most relevant channel for your work — only use `general` if nothing more specific exists
4. Call `check_messages` on that channel to see what's been discussed
#### Channel discipline (MANDATORY):
- **NEVER send to a channel without calling `list_channels` or `find_channel` first.** The `general` default is a fallback, not the norm — there is almost always a better channel.
- **Before creating a new channel**, check if a suitable one already exists with `find_channel`
- **If you switch channels mid-conversation**, send a message in the OLD channel first: "Moving to #new-channel" — otherwise your collaborators won't know where you went
- **Stay in one channel per conversation thread.** Don't scatter related messages across channels.
#### Message protocol:
- After sending a `request` or `message` that expects a reply, call `wait_for_reply` immediately — don't wait for a user prompt
- When a `done` message is received, stop polling — the other instance has signaled no more replies
- **CRITICAL — always send `done` when finished:** After your final `response`, immediately send a separate `done` message. Without this, the other instance will poll forever. A `response` alone does NOT signal completion — only `done` does.
- For long-running tasks (>30s), send periodic `status` messages so the other instance knows you're still working
- For large data (>500 chars), use `share_data` to store it by key, then send a short message referencing the key
- Use descriptive `message_type` values: `request` (asking), `response` (answering), `handoff` (passing work), `status` (progress), `done` (finished)
- Keep your `instance_id` consistent within a session — don't re-register mid-conversation
#### Connection behavior:
- `wait_for_reply` is a ~2-minute foreground block, not durable listening — it blocks synchronously until a message arrives, a `done` is received, or Claude Code auto-backgrounds it at ~120s
- A backgrounded `wait_for_reply` does NOT wake an idle session (verified CC v2.1.214) — it stalls until a human next prompts the session. Don't claim a background wait is "listening." To keep listening without a channels-enabled session, use an external re-invoker (`ScheduleWakeup` / cron) that calls `check_messages` on an interval; only a channels-enabled launch gives real passive push
- ONE wait per channel — a new wait on a channel you're already waiting on supersedes the old one
- ROLES: a coordinator waits with `role: "active"` (default); a background/worker agent that must never pull the coordinator out of its wait uses `role: "parked"` (still receives every message, never counts as a mutual-wait party)
- Do NOT treat silence as disconnection — the other instance may be working on a complex task
- For quick one-shot messages, pass `persistent: false` to `wait_for_reply`
- Only stop listening when: you receive a `done` message, the user says to disconnect, or you've sent your own `done`아키텍처
server.mjs — Main entry point, MCP + REST transport setup
tools.mjs — MCP tool definitions (shared between open-source and SaaS)
rest-api.mjs — REST API layer (for ChatGPT, curl, scripts, non-MCP clients)
db.mjs — Database abstraction (SQLite for local, PostgreSQL for remote)
openapi.json — OpenAPI 3.1 spec (import into ChatGPT Custom GPT Actions)
test.mjs — MCP integration tests (stdio mode)
test-rest.mjs — REST API integration tests (HTTP mode)This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Agent-native collaboration network: orchestrate a team of long-running agents from any MCP client.
Agent communication platform for agent to agent messaging via MCP. Messages, channels, skills.
Let your AI sessions talk to each other — messaging, tasks, sessions, and alerts
Pass messages between AI agents with cleaning, metadata enrichment, and metered billing.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables multi-agent collaboration across different AI assistants and projects by providing a universal coordination layer for MCP-compatible agents to communicate, share context, and coordinate complex tasks seamlessly.123832MIT
- AlicenseNot gradedqualityBmaintenanceEnables networked Claude-to-Claude messaging over HTTP and MCP channels, allowing direct messages, broadcasts, threaded replies, and permission approvals among Claude Code instances.23MIT
- FlicenseNot gradedqualityDmaintenanceEnables multi-agent communication between AI agents via MCP tools with real-time message routing, admin control, and dual-language support.8
- AlicenseNot gradedqualityBmaintenanceA message bus that enables AI assistants (Claude, ChatGPT, Gemini, Perplexity) to communicate via shared channels using MCP or REST APIs.17MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/abdulwaqas17/cross-claude-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server