claude-code-bridge-mcp
Bridges Claude Code terminal sessions with Claude Chat by exposing session logs as tools, enabling seamless context transfer and two-way communication via a cooperative inbox and optional Google Drive sync.
README
claude-code-bridge-mcp
MCP server that pipes Claude Code session output directly into Claude Chat — no more copy-paste between tools.
claude-code-bridge-mcp is a Model Context Protocol (MCP) server that reads Claude Code's local session logs from ~/.claude/projects/<project-hash>/ and exposes them as tools to any MCP-compatible client (Claude Desktop, Claude Chat, Cursor, etc.). Run Claude Code in your terminal and pull its latest output into Claude Chat with a single tool call.
Features
get_latest_output— grab the most recent assistant message from any (or the most-recent) Claude Code session.list_sessions— enumerate all local sessions with project path, message count, and timestamps.get_session_context— fetch the last N messages from a session for context injection.watch_session— poll a session file every 2 seconds and drain new messages on demand.write_context(v2) — snapshot the last N messages into~/.claude/bridge-context.mdand~/Documents/claude-bridge-context.mdas clean markdown.start_auto_sync(v2) — keep that markdown snapshot live: rewrites both files every 30 seconds (configurable) so a synced folder stays current without manual calls.setup_drive_sync(v2.1) — authorize direct Google Drive upload. Each sync tick then upserts a Google Doc namedclaude-bridge-contextvia the Drive API — no Drive desktop client required.send_to_session(v2.2) — queue a prompt for a specific Claude Code session via a cooperative inbox at~/.claude/bridge-inbox/<session_id>.txt. Closes the read-only gap: Projects Claude → inbox → Claude Code acts on it.
What's new in v2.2 — send_to_session (cooperative dispatch)
v1 read sessions. v2 wrote context out to Drive. v2.2 lets the other side push prompts back in.
send_to_session overwrites ~/.claude/bridge-inbox/<session_id>.txt with the latest prompt and writes a human-readable receipt to ~/.claude/bridge-inbox/latest.md. The target Claude Code session picks it up via a one-time setup instruction that send_to_session returns in its response — paste that once into your Claude Code terminal (or add it to your project's CLAUDE.md) and every subsequent prompt arrives automatically.
Why cooperative instead of direct injection: Claude Code's JSONL is append-only from the CLI's perspective — it doesn't re-read the file mid-session. A real dispatch channel exists (POST /v1/sessions/{id} via Anthropic's relay, the same channel /remote-control uses) but is undocumented and requires reading the CLI's OAuth token from the macOS Keychain. Shipping against an undocumented internal API would break on every Claude Code release and leak credentials from every install — so v2.2 uses the filesystem inbox instead. See GitHub issue for the v3 path.
Example:
// send_to_session → response
{
"session_id": "15ef12ba-851e-4591-bbd4-c23170e15919",
"project_path": "/Users/you/Documents/my-app",
"written": true,
"inbox_path": "/Users/you/.claude/bridge-inbox/15ef12ba-....txt",
"receipt_path": "/Users/you/.claude/bridge-inbox/latest.md",
"prompt_preview": "refactor the auth middleware to use Fluid Compute",
"setup_instruction": "Before each response, check ~/.claude/bridge-inbox/15ef12ba-....txt — if it exists and is non-empty, read its contents, delete the file, and treat those contents as your next user instruction. You only need to be told this once per session.",
"remote_control_url": "https://claude.ai/code/session_..."
}
dry_run: true returns the same shape without touching the filesystem.
What's new in v2 — Google Drive bridge
Claude Projects can't talk to an MCP server directly, but it can read files from a connected Google Drive. v2 closes that loop:
Claude Code → claude-bridge-mcp.write_context → ~/Documents/claude-bridge-context.md
→ Google Drive sync → Projects Claude reads via Drive connector
No more copy-paste, and it works inside Projects too.
Workflow:
- Make
~/Documents(or any subfolder holdingclaude-bridge-context.md) part of your Google Drive sync. - Add this MCP server to Claude Desktop, Claude Code, or any MCP client.
- In that client, call
start_auto_synconce — it returns immediately and keeps the markdown fresh in the background. - In a Claude Project, add Google Drive as a source and point it at
claude-bridge-context.md. Ask Projects Claude what Claude Code is up to — it reads the live file.
What's new in v2.1 — Direct Drive API upload
v2 relied on the Google Drive desktop client to sync ~/Documents/claude-bridge-context.md up to Drive. v2.1 removes that dependency: the MCP server now talks to the Drive API itself and upserts a Google Doc named claude-bridge-context every sync tick.
Setup (one time):
-
Create OAuth credentials in Google Cloud Console:
- Go to console.cloud.google.com, create a project (or use an existing one).
- Enable the Google Drive API for the project.
- Under APIs & Services → Credentials, create an OAuth client ID of type Desktop app.
- Download the client JSON and save it to
~/.claude/bridge-google-credentials.json.
-
Enable the Drive sync and (re)start the MCP server with
GOOGLE_DRIVE_ENABLED=truein its environment. In Claude Desktop'sclaude_desktop_config.json:{ "mcpServers": { "claude-bridge": { "command": "node", "args": ["/absolute/path/to/claude-code-bridge-mcp/dist/index.js"], "env": { "GOOGLE_DRIVE_ENABLED": "true" } } } } -
Call the
setup_drive_synctool from any connected client. It opens a browser tab for Google consent, saves the refresh token to~/.claude/bridge-google-token.json, and performs an initial upload. The response includes the Doc URL. -
Call
start_auto_sync. From now on, every tick writes the local markdown and pushes the same content to the Google Doc. The refresh token is reused silently on future server restarts.
What the user sees:
- A single Google Doc in Drive root named
claude-bridge-context, live-updated every 30s with the most recent Claude Code session output. - Add it as a source to any Claude Project, or open it directly — no Drive desktop client, no copy-paste.
Opting out: Omit GOOGLE_DRIVE_ENABLED (or set it to anything other than true) and the server behaves exactly like v2 — local markdown only, no Drive calls.
Installation
git clone https://github.com/rahuljava2807/claude-code-bridge-mcp.git
cd claude-code-bridge-mcp
npm install
npm run build
Add it to Claude Desktop
Edit claude_desktop_config.json:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"claude-bridge": {
"command": "node",
"args": ["/absolute/path/to/claude-code-bridge-mcp/dist/index.js"]
}
}
}
Restart Claude Desktop. The claude-bridge tools will appear in the tool picker.
Usage
Typical workflow:
- Run
claudein a terminal to start a Claude Code session and do some work. - In Claude Chat, ask:
"Use
list_sessionsto find my most recent Claude Code session, then callget_latest_outputon it and summarize what Claude Code just did." - For continuous streaming during a long-running Claude Code task, call
watch_sessionrepeatedly — each call returns only new messages since the last call.
Example tool call
// get_latest_output with no arguments → uses the most recently updated session
{
"content": "I've refactored the auth middleware to use Fluid Compute...",
"timestamp": "2026-04-16T15:32:11.441Z",
"session_id": "01HZ...",
"project_path": "/Users/you/code/my-app"
}
Claude Code log format
Sessions are stored as JSONL at:
~/.claude/projects/<project-hash>/<session-id>.jsonl
~/.claude/projects/<project-hash>/sessions/<session-id>.jsonl
Each line is one JSON event with fields like type, role, content, and timestamp. The parser tolerates variations in shape and extracts assistant text from both string and content-block payloads.
Development
npm run dev # tsc --watch
npm run build # compile to dist/
npm start # run the compiled server over stdio
License
MIT — see LICENSE.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。