Tumiki Proxy
Transparent MCP logging proxy with multi-transport support (stdio, HTTP/StreamableHTTP, HTTP/SSE)
Installation
npx tumiki-proxyAsk AI about Tumiki Proxy
Powered by Claude · Grounded in docs
I know everything about Tumiki Proxy. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
tumiki-proxy
MCP (Model Context Protocol) ãµãŒããŒã®ééçãã®ã³ã°ãããã·ãClaude Code ãšããã¯ãšã³ããµãŒããŒéã®ãã¹ãŠã®MCPãã©ãã£ãã¯ãããŒã«ã«ãã¡ã€ã«ã«èšé²ãããããã°ãšåæãæ¯æŽããŸãã
ç¹åŸŽ
- ãã«ããã©ã³ã¹ããŒã察å¿: stdioãHTTP/StreamableHTTPãHTTP/SSEã«å¯Ÿå¿
- å
¬åŒSDK䜿çš:
@modelcontextprotocol/sdkãããŒã¹ã«æ§ç¯ - èªåãã©ãŒã«ããã¯: StreamableHTTP â SSEã®èªååãæ¿ã
- èªèšŒå¯Ÿå¿: HTTPããŒã¹ãµãŒããŒåãAPIããŒãµããŒã
- ééç: MCPãããã³ã«ã«å€æŽãå ããªããŒãã€ã³ãã¯ãã©ãããŒ
- å¹çç: éåæãããã¡ãªã³ã°ãšãããåŠçã«ããæå°éã®ãªãŒããŒããã
- åå®å š: TypeScriptã«ããå®å šå®è£
- çµ±äžãã°åœ¢åŒ: ãã¹ãŠã®ãã©ã³ã¹ããŒãã§NDJSON圢åŒãæ¡çš
ã€ã³ã¹ããŒã«
æ¹æ³1: HomebrewïŒmacOS/Linux - æšå¥šïŒ
macOSãŸãã¯LinuxãŠãŒã¶ãŒã®å ŽåãHomebrewã§æãç°¡åã«ã€ã³ã¹ããŒã«ã§ããŸãïŒ
# Tapã远å ããŠã€ã³ã¹ããŒã«
brew tap rayven122/tumiki-proxy https://github.com/rayven122/tumiki-proxy
brew install tumiki-proxy
# ã¢ããããŒã
brew update
brew upgrade tumiki-proxy
詳现ã¯Homebrewã€ã³ã¹ããŒã«ã¬ã€ããåç §ããŠãã ããã
æ¹æ³2: ãã€ããªé åž
GitHubã®ReleasesããŒãžãããã䜿ãã®ãã©ãããã©ãŒã çšã®ãã«ãæžã¿ãã€ããªãããŠã³ããŒãïŒ
# macOS (ARM64)
curl -L -o tumiki-proxy https://github.com/rayven122/tumiki-proxy/releases/latest/download/tumiki-proxy-macos-arm64
chmod +x tumiki-proxy
# macOS (x64)
curl -L -o tumiki-proxy https://github.com/rayven122/tumiki-proxy/releases/latest/download/tumiki-proxy-macos-x64
chmod +x tumiki-proxy
# Linux (x64)
curl -L -o tumiki-proxy https://github.com/rayven122/tumiki-proxy/releases/latest/download/tumiki-proxy-linux-x64
chmod +x tumiki-proxy
# Windows (x64)
# PowerShellã§å®è¡:
Invoke-WebRequest -Uri "https://github.com/rayven122/tumiki-proxy/releases/latest/download/tumiki-proxy-win-x64.exe" -OutFile "tumiki-proxy.exe"
æ¹æ³3: ãœãŒã¹ãããã«ã
Bunã䜿çšïŒæšå¥š - ã¹ã¿ã³ãã¢ãã³ãã€ããªïŒ
# ãªããžããªãã¯ããŒã³
git clone https://github.com/rayven122/tumiki-proxy.git
cd tumiki-proxy
# Bunã§äŸåé¢ä¿ã®ã€ã³ã¹ããŒã«ãšãã«ã
bun install
bun run build
# ã¹ã¿ã³ãã¢ãã³ãã€ããªã®çæ
bun run build:binary
# â tumiki-proxy ãã€ããªãçæãããŸã
Node.jsã䜿çšïŒåŸæ¥ã®æ¹æ³ïŒ
# ãªããžããªãã¯ããŒã³
git clone https://github.com/rayven122/tumiki-proxy.git
cd tumiki-proxy
# äŸåé¢ä¿ã®ã€ã³ã¹ããŒã«ãšãã«ã
npm install
npm run build
# Node.jsçµç±ã§å®è¡
node dist/index.js [args...]
äœ¿çšæ¹æ³
stdio ã¢ãŒãïŒããŒã«ã«MCPãµãŒããŒïŒ
stdin/stdout ã§éä¿¡ããããŒã«ã«ã®MCPãµãŒããŒã®å ŽåïŒ
# ãã°ãã¡ã€ã«ã®å Žæãæå®
export TUMIKI_LOG_FILE="./mcp-filesystem.log"
# stdioããŒã¹ã®MCPãµãŒããŒããããã·çµç±ã§å®è¡
tumiki-proxy npx -y @modelcontextprotocol/server-filesystem /path/to/dir
SSEã»Streamable HTTP ã¢ãŒãïŒãªã¢ãŒãMCPãµãŒããŒïŒ
HTTPçµç±ã§ã¢ã¯ã»ã¹å¯èœãªãªã¢ãŒãMCPãµãŒããŒã®å ŽåïŒ
export TUMIKI_LOG_FILE="./mcp-context7.log"
export CONTEXT7_API_KEY="your-api-key" # ãªãã·ã§ã³
tumiki-proxy --http https://mcp.context7.com/mcp
Claude Code èšå®
.mcp.json ãã¡ã€ã«ã䜿ã£ãèšå®ãæšå¥šã§ãããããžã§ã¯ãã®ã«ãŒããã£ã¬ã¯ããªã« .mcp.json ãé
眮ããŠãã ããã
èšå®äŸïŒ.mcp.jsonïŒ
{
"mcpServers": {
"filesystem": {
"command": "./tumiki-proxy",
"args": [
"npx",
"-y",
"@modelcontextprotocol/server-filesystem",
"/path/to/dir"
],
"env": {
"TUMIKI_LOG_FILE": "/tmp/mcp-filesystem.log"
}
},
"context7": {
"command": "./tumiki-proxy",
"args": [
"--http",
"https://mcp.context7.com/mcp"
],
"env": {
"TUMIKI_LOG_FILE": "/tmp/mcp-context7.log",
"CONTEXT7_API_KEY": "your-api-key"
}
}
}
}
泚æ: ãã€ããªçã䜿çšããå Žå㯠./tumiki-proxy ã®ããã«çžå¯Ÿãã¹ãŸãã¯çµ¶å¯Ÿãã¹ãæå®ããŠãã ãããNode.jsçã䜿çšããå Žå㯠node dist/index.js ã command ã«æå®ããargs ã®æåã«å®éã®ã³ãã³ããé
眮ããŠãã ããã
èšå®
ç°å¢å€æ°
| 倿° | å¿ é | ããã©ã«ã | 説æ |
|---|---|---|---|
TUMIKI_LOG_FILE | ã¯ã | - | ãã°ãã¡ã€ã«ã®ãã¹ |
TUMIKI_LOG_BUFFER_SIZE | ããã | 1000 | ããããåã®ãã¥ãŒå ã®æå€§ãšã³ããªæ° |
TUMIKI_LOG_BATCH_SIZE | ããã | 100 | ãã®ãµã€ãºã«éããããã©ãã·ã¥ |
TUMIKI_LOG_BATCH_TIMEOUT_MS | ããã | 100 | ãã©ãã·ã¥ééïŒããªç§ïŒ |
èªèšŒçšç°å¢å€æ°ïŒSSEã»Streamable HTTP ã¢ãŒãïŒ
| 倿° | 説æ |
|---|---|
CONTEXT7_API_KEY | Context7å°çšAPIã㌠|
MCP_API_KEY | æ±çšMCP APIã㌠|
API_KEY | ãã©ãŒã«ããã¯çšAPIã㌠|
ã«ã¹ã¿ã èšå®ã®äŸ
export TUMIKI_LOG_FILE="./mcp.log"
export TUMIKI_LOG_BUFFER_SIZE=500
export TUMIKI_LOG_BATCH_SIZE=50
export TUMIKI_LOG_BATCH_TIMEOUT_MS=200
tumiki-proxy your-mcp-server
ãã°ãã©ãŒããã
ãã°ã¯æ¹è¡åºåãJSONïŒNDJSONïŒåœ¢åŒã§èšé²ãããŸãïŒ
{"timestamp":"2024-01-15T10:30:00.000Z","type":"request","direction":"clientâbackend","backendCmd":"npx","message":{"jsonrpc":"2.0","id":1,"method":"tools/list"},"raw":"{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/list\"}"}
{"timestamp":"2024-01-15T10:30:00.100Z","type":"response","direction":"backendâclient","backendCmd":"npx","message":{"jsonrpc":"2.0","id":1,"result":{"tools":[...]}},"raw":"{\"jsonrpc\":\"2.0\",\"id\":1,\"result\":{\"tools\":[...]}}"}
{"timestamp":"2024-01-15T10:30:00.150Z","type":"info","backendCmd":"--http","message":"Connected using StreamableHTTP transport"}
ãã°ãšã³ããªã¿ã€ã
request: ã¯ã©ã€ã¢ã³ã â ããã¯ãšã³ãïŒClaude Code â MCPãµãŒããŒïŒresponse: ããã¯ãšã³ã â ã¯ã©ã€ã¢ã³ãïŒMCPãµãŒã㌠â Claude CodeïŒstderr: ããã¯ãšã³ãã®ãšã©ãŒåºåïŒstdioã¢ãŒãã®ã¿ïŒinfo: ãããã·ã®ã©ã€ããµã€ã¯ã«ã€ãã³ãïŒèµ·åãçµäºãæ¥ç¶æ å ±ïŒerror: ãããã·ã®ãšã©ãŒ
ã¢ãŒããã¯ãã£
stdio ã¢ãŒã
âââââââââââââââ
â Claude Code â
ââââââââ¬âââââââ
â stdin/stdout (JSON-RPC)
â
ââââââââââââââââââââââ
â tumiki-proxy â
â ââââââââââââââââ â
â â FileLogger ââââŒââ ããŒã«ã«ãã°ãã¡ã€ã« (NDJSON)
â ââââââââââââââââ â
â ââââââââââââââââ â
â â spawn + pipe â â
â ââââââââââââââââ â
ââââââââââ¬ââââââââââââ
â stdin/stdout (ééç)
â
âââââââââââââââââââ
â MCP Server â
â (stdio) â
âââââââââââââââââââ
SSEã»Streamable HTTP ã¢ãŒã
âââââââââââââââ
â Claude Code â
ââââââââ¬âââââââ
â stdin/stdout
â
ââââââââââââââââââââââ
â tumiki-proxy â
â ââââââââââââââââ â
â â FileLogger ââââŒââ ããŒã«ã«ãã°ãã¡ã€ã« (NDJSON)
â ââââââââââââââââ â
â ââââââââââââââââ â
â â Stdio Server â â
â â Transport â â
â ââââââââââââââââ â
â ââââââââââââââââ â
â âStreamableHTTPâ â
â â/SSE Client â â
â ââââââââââââââââ â
ââââââââââ¬ââââââââââââ
â Streamable HTTP/SSE
â
âââââââââââââââââââ
â MCP Server â
â (HTTP) â
âââââââââââââââââââ
ãã©ãã«ã·ã¥ãŒãã£ã³ã°
SSEã»Streamable HTTP ã¢ãŒãæ¥ç¶ç¢ºèª
ãã°ãã¡ã€ã«ã§ãã©ã³ã¹ããŒãéžæã確èªã§ããŸãïŒ
# Streamable HTTP ã䜿çšãããå Žå
{"type":"info","message":"Connected using StreamableHTTP transport"}
# SSE ã«ãã©ãŒã«ããã¯ããå Žå
{"type":"info","message":"StreamableHTTP connection failed, falling back to SSE transport"}
{"type":"info","message":"Connected using SSE transport"}
HTTPãµãŒããŒæ¥ç¶ãšã©ãŒ
çç¶: MCPãµãŒããŒã failed ç¶æ
蚺æãšè§£æ±ºç:
-
APIããŒã®åé¡ïŒèªèšŒãå¿ èŠãªãµãŒããŒã®å ŽåïŒ
- ãµãŒãã¹ãããã€ããŒããAPIããŒãååŸ
- é©åãªç°å¢å€æ°ãèšå®ïŒ
CONTEXT7_API_KEYãMCP_API_KEYããŸãã¯API_KEYïŒ - Claude Code ãåèµ·å
-
ãã©ã³ã¹ããŒãæ¥ç¶ãšã©ãŒ
- ãã°ãã¡ã€ã«ã§è©³çްãªãšã©ãŒã¡ãã»ãŒãžã確èª
- StreamableHTTP ãš SSE ã®äž¡æ¹ã倱æããŠããå Žåããããã¯ãŒã¯æ¥ç¶ã確èª
- ãã¡ã€ã¢ãŠã©ãŒã«èšå®ã確èª
ãã°ãã¡ã€ã«ãäœæãããªã
確èªäºé :
TUMIKI_LOG_FILEç°å¢å€æ°ãèšå®ãããŠããã- ãã°ãã¡ã€ã«ã®ãã¹ã«æžãèŸŒã¿æš©éãããã
- ãã°ãã¡ã€ã«ãæ¢ã«å¥ã®ããã»ã¹ã§éãããŠããªãã
éçº
Bunã䜿çšããéçºïŒæšå¥šïŒ
# äŸåé¢ä¿ã®ã€ã³ã¹ããŒã«
bun install
# TypeScriptã®ãã«ã
bun run build
# ãŠã©ããã¢ãŒã
bun run dev
# ã¹ã¿ã³ãã¢ãã³ãã€ããªã®çæ
bun run build:binary
# â tumiki-proxy ãã€ããªãçæãããŸã (57MB)
# â Bun runtime蟌ã¿ã®å®å
šãªã¹ã¿ã³ãã¢ãã³å®è¡ãã¡ã€ã«
# â å€éšã©ã³ã¿ã€ã äžèŠãé«éèµ·å
# ãã«ãææç©ã®ã¯ãªãŒã³ã¢ãã
rm -rf dist tumiki-proxy
Node.jsã䜿çšããéçº
# äŸåé¢ä¿ã®ã€ã³ã¹ããŒã«
npm install
# TypeScriptã®ãã«ã
npm run build
# ãŠã©ããã¢ãŒã
npm run dev
# ãã«ãææç©ã®ã¯ãªãŒã³ã¢ãã
rm -rf dist
æè¡ä»æ§
ãã€ããªãã«ã:
- ããŒã«: Bun 1.x
- ãµã€ãº: çŽ57MB (Bun runtimeå«ã)
- èµ·åæé: < 100ms
- äºææ§: macOS (x64/ARM64), Linux (x64), Windows (x64)
- äŸåé¢ä¿: ãªãïŒå®å šã¹ã¿ã³ãã¢ãã³ïŒ
Node.jsç:
- èŠä»¶: Node.js >= 18.0.0
- äŸåé¢ä¿: @modelcontextprotocol/sdk
- å®è¡:
node dist/index.js
ã³ã³ããªãã¥ãŒã·ã§ã³
ã³ã³ããªãã¥ãŒã·ã§ã³ãæè¿ããŸãïŒãæ°è»œã«Pull Requestãéä¿¡ããŠãã ããã
ã©ã€ã»ã³ã¹
MIT License - 詳现ã¯LICENSEãã¡ã€ã«ãåç §ããŠãã ãã
ä»åŸã®ããŒãããã
- ã¯ã©ãŠãã¹ãã¬ãŒãžé£æº: ã¯ã©ãŠãã¹ãã¬ãŒãžãµãŒãã¹ïŒS3ãGCSãªã©ïŒãžã®HTTPã¢ããããŒã
- ãã°ãã¥ãŒã¢ãŒ: ãã°ã®è¡šç€ºãšåæã®ããã®ElectronããŒã¹GUI
- åææ©èœã®åŒ·å: MCPãã©ãã£ãã¯ãã¿ãŒã³ãšããã©ãŒãã³ã¹ãåæããçµã¿èŸŒã¿ããŒã«
- ããã±ãŒãžé åž: ããç°¡åãªã€ã³ã¹ããŒã«ã®ããã®NPMããã±ãŒãžå ¬é
