fish-bridge — Session Knowledge Graph

io.github.MakeaMouse由 GitHub 帳號 MakeaMouse 發布v0.1.3更新於 Oct 24, 2026

Compresses AI chat sessions into a typed knowledge graph. Local/offline via Ollama.

概覽

AI 產生的概覽

本機 MCP 伺服器,將 AI 對話工作階段壓縮成具型別的知識圖譜,並把精簡的脈絡區塊寫入專案指示檔。

可以做什麼
在 agent 模式下即時把對話輪次記錄進工作階段知識圖譜,可選擇由 LLM 擷取後端完成型別標註與去重。讀取目前脈絡、聚焦子集,以及作用中或延後的節點清單。新增節點、標記項目為已解決,並匯出或匯入工作階段圖譜檔案。搭配的 CLI 可擷取 Copilot 紀錄、貼上的文字、文件、程式碼庫、相依檔案、測試輸出、IaC 與 OpenAPI 規格,再把圖譜編譯進 copilot-instructions.md 或 CLAUDE.md。
適用情境
適合需要跨輪次或跨工具延續長對話、又不想重複送出數萬 token 的情況,也適合把決策、任務與錯誤以結構化、可編輯的圖譜保存在專案指示檔中。以檔案為基礎的工作流程並不需要這個 MCP 伺服器。
執行需求
以 Python 套件 fish-bridge-mcp 形式在本機執行,可透過 uv、uvx 或 pip 安裝;僅限桌面環境。需要擷取後端:本機 Ollama,或使用 ANTHROPIC_API_KEY、GEMINI_API_KEY、OPENAI_API_KEY 設定的雲端後端。雲端後端依輪次計費。
安裝前請注意
雲端後端會把對話內容傳送給 Anthropic、Google 或 OpenAI,並依輪次收費;本機 Ollama 後端可同時避免這兩點。伺服器會寫入 .github/copilot-instructions.md 或 CLAUDE.md 等專案檔案,這些內容會進入之後每一輪 AI 對話,請檢查寫入內容。API 金鑰從環境變數讀取。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 fish-bridge — Session Knowledge Graph,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

fish_bridge

[CI] [PyPI] [Python] [License: MIT]

Session-scoped knowledge graph engine for AI chat context compression.

Converts raw AI chat (40k+ tokens) into a compact typed knowledge graph (~300–800 tokens) and writes it to .github/copilot-instructions.md or CLAUDE.md — automatically included in every AI turn across all modes (ask, edit, agent). No MCP server required for the core workflow.

Raw session (40k tokens) → [fish_bridge] → Compressed graph (350 tokens)                                              written to copilot-instructions.md                                              picked up by every AI turn automatically

Install

Don't have uv? Get it first: curl -LsSf https://astral.sh/uv/install.sh | sh (macOS/Linux) or see uv docs. It replaces pip + pipx + pyenv in one tool — no virtualenv management needed.

Recommended — uv tool install (installs both the fish-bridge CLI and fish-bridge-mcp MCP server on your PATH):

bash
# Local Ollama backend — free, offline (requires Ollama running)uv tool install fish-bridge-mcp
# Gemini backend (~$0.0002/turn, ~95% quality — recommended cloud option)uv tool install "fish-bridge-mcp[gemini]"export GEMINI_API_KEY=...
# Claude backend (~$0.002/turn, ~97% quality)uv tool install "fish-bridge-mcp[claude]"export ANTHROPIC_API_KEY=sk-ant-...
# OpenAI backend (~$0.0003/turn, ~93% quality)uv tool install "fish-bridge-mcp[openai]"export OPENAI_API_KEY=sk-...
# Everythinguv tool install "fish-bridge-mcp[all]"

After install, two commands are available on your PATH:

  • fish-bridge — the main CLI (ingest, compile, show, serve, ...)
  • fish-bridge-mcp — the MCP server for VS Code agent mode

MCP config only (no permanent install needed): use uvx directly in your .vscode/mcp.json — it downloads and runs the MCP server on demand:

json
{ "command": "uvx", "args": ["fish-bridge-mcp"] }

See the MCP server section below for the full config.

Traditional pip install (for embedding fish-bridge as a library in your own Python project)
bash
pip install fish-bridge-mcppip install "fish-bridge-mcp[gemini]"   # with Gemini backendpip install "fish-bridge-mcp[claude]"   # with Claude backendpip install "fish-bridge-mcp[all]"      # everything

2-minute quickstart

bash
# 1. Initialize for your projectfish-bridge init --tool copilot --project ./
# 2. Ingest the latest Copilot session (auto-discovers JSONL on macOS/Linux/Windows)fish-bridge ingest --source copilot
# 3. View the graphfish-bridge show
# 4. Compile to your instructions file (done automatically after ingest)fish-bridge compile

That's it. .github/copilot-instructions.md now contains a ~350-token compressed summary of your session, replacing raw history in every future turn.

Backends

BackendInstall extraModelQualityCost/turn
local (Ollama)(none — requires Ollama)qwen2.5:7b~85%$0
gemini[gemini]gemini-2.5-flash~95%~$0.0002
openai[openai]gpt-4.1-mini~93%~$0.0003
claude[claude]claude-opus-4-7~97%~$0.002
hybrid[claude] or [openai]local+cloudbestmixed

Configure with:

bash
fish-bridge config --backend gemini# or set GEMINI_API_KEY / ANTHROPIC_API_KEY / OPENAI_API_KEY as env vars

Full CLI reference

bash
# --- Session init ---fish-bridge init                          # create session for current projectfish-bridge init --tool claude            # → writes to CLAUDE.md instead
# --- Ingest chat turns ---fish-bridge ingest --source copilot       # auto-discover latest VS Code Copilot sessionfish-bridge ingest --source copilot --session <id>  # target specific sessionfish-bridge ingest --source paste         # paste any chat text — opens $EDITOR (universal fallback)fish-bridge ingest --source file --file export.json  # from a saved export filefish-bridge watch --source copilot        # tail JSONL, auto-update on new turns
# --- Merge external knowledge ---fish-bridge merge --source document --file HANDOVER.mdfish-bridge merge --source codebase --path ./            # git log + READMEfish-bridge merge --source obsidian --vault ~/notesfish-bridge merge --source deps --path ./                # package.json / pyproject.toml etc.fish-bridge merge --source testout --file results.json   # jest / pytest / JUnitfish-bridge merge --source iac --path ./                 # Terraform / CDK / CloudFormationfish-bridge merge --source openapi --file openapi.yamlfish-bridge merge --source session --file prior.chatgraph.json
# --- Compile & view ---fish-bridge compile                       # update instruction file (runs after ingest by default)fish-bridge compile --mode digest         # full handover markdownfish-bridge compile --mode focus --query "Redis caching"fish-bridge show                          # pretty-print active nodesfish-bridge show --all                    # include resolved/deferred itemsfish-bridge serve                         # open Cytoscape.js graph viewer at localhost:8080fish-bridge digest                        # generate handover digest
# --- Node management ---fish-bridge resolve "DNC caching strategy"fish-bridge defer "v16 index validation"fish-bridge add "Use Redis for session cache" --type decisionfish-bridge conflict showfish-bridge conflict resolve <node-id> --keep old
# --- Export / import / diff ---fish-bridge export                        # save .chatgraph.jsonfish-bridge import prior-session.chatgraph.jsonfish-bridge diff session-a.chatgraph.json session-b.chatgraph.json
# --- Config ---fish-bridge config --showfish-bridge config --backend gemini

MCP server (optional — agent mode only)

The MCP server adds real-time record_turn capture when using VS Code agent mode. It is not required — the file-based workflow above works in all modes without it.

Add to .vscode/mcp.json (uses uvx — no prior install needed):

json
{  "servers": {    "fish-bridge": {      "command": "uvx",      "args": ["fish-bridge-mcp"],      "env": { "FISH_BRIDGE_BACKEND": "gemini", "GEMINI_API_KEY": "${env:GEMINI_API_KEY}" }    }  }}

If you used uv tool install fish-bridge-mcp, you can also reference the installed binary directly:

json
{ "command": "fish-bridge-mcp" }

See examples/ for Claude Desktop, Cursor, and Windsurf configs.

MCP tools: record_turn, get_context, get_focus, mark_resolved, add_node, export_session, import_session, show_active, list_deferred

Ingest sources

SourceCommandWhat it ingests
Copilotingest --source copilotVS Code Copilot JSONL transcript (auto-discovered)
Pasteingest --source pasteAny chat text — universal fallback
Documentmerge --source documentMarkdown, JSON, YAML specs and ADRs
Codebasemerge --source codebaseGit commits + README + HANDOVER
Obsidianmerge --source obsidianVault notes with wikilinks and frontmatter
Sessionmerge --source sessionPrior .chatgraph.json export
Depsmerge --source depspackage.json, pyproject.toml, Cargo.toml, go.mod, Gemfile, pom.xml
Test outputmerge --source testoutJest JSON, pytest JSON, JUnit XML — error nodes per failing test
IaCmerge --source iacTerraform, CDK (synth output), CloudFormation, docker-compose
OpenAPImerge --source openapiOpenAPI 3.x / Swagger 2.0 / AsyncAPI specs

How it works

  1. Ingest — reads raw chat turns from JSONL (Copilot), paste, or any file format
  2. Extract — LLM extracts typed nodes (questions, decisions, errors, tasks, skills, files) and edges
  3. Dedup — semantic similarity merges near-duplicates; conflict detection flags status reversals
  4. Compile — graph is compressed to ~300–800 token XML/markdown block
  5. Write — block is written to .github/copilot-instructions.md (or CLAUDE.md)
  6. Deliver — AI tool reads the file automatically on the next turn — no injection, no agent required

Documentation

License

MIT — see LICENSE

來源:README.md,提交 e995e56

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.3最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分