<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ollama-web.git/src/ollama_web/mcp.py, branch v0.5.4</title>
<subtitle>A lightweight personal Ollama Web UI with web search, PDF attachments, and MCP tools.
</subtitle>
<id>https://git.takashi-2521.com/ollama-web.git/atom?h=v0.5.4</id>
<link rel='self' href='https://git.takashi-2521.com/ollama-web.git/atom?h=v0.5.4'/>
<link rel='alternate' type='text/html' href='https://git.takashi-2521.com/ollama-web.git/'/>
<updated>2026-09-13T04:35:03+00:00</updated>
<entry>
<title>feat(multimedia): MCP画像・音声artifactの安全な表示経路を追加</title>
<updated>2026-09-13T04:35:03+00:00</updated>
<author>
<name>tanaka takashi</name>
<email>isazaka@gmail.com</email>
</author>
<published>2026-09-13T04:35:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.takashi-2521.com/ollama-web.git/commit/?id=f2d24cb7d437ad099291262d7c1b021809cd66ae'/>
<id>urn:sha1:f2d24cb7d437ad099291262d7c1b021809cd66ae</id>
<content type='text'>
MCP Tool結果をテキストと型付きartifactへ分離し、画像・音声のbase64をMIME、サイズ、件数のallowlistで検証する。annotations.audienceを反映し、ユーザー向けartifactだけをセッションへ保存してSSEにはメタデータのみを公開する。

画像はvision capabilityが明示されたモデルだけへ渡し、非対応時は既存の多言語プロンプト機構による固定通知へ置き換える。MCP生成音声とユーザー添付音声はOllamaへ送らず、誤デコードしたテキストやbase64がモデル入力へ混入しないポリシーに統一する。

保存メディア用の認証済み同一オリジン配信ルートを追加し、セッションスコープ、MIME allowlist、nosniff、private/no-store、Rangeリクエストを適用する。UIはMCP由来HTMLを使わずDOM APIでimgとaudio controlsを生成し、CSPへmedia-src selfを追加する。

web_searchは文字列メタデータだけを返す既存仕様を維持する。scrape_urlとsearch_and_fetchは画像・音声・動画レスポンスを拒否し、search_and_fetchの対象拡張子を明示的allowlistへ変更して標準Webツールをテキスト専用の契約に揃える。

責務境界と導入しない過剰対策をdocs/multimedia.mdへ記録し、README、ツール仕様、CHANGELOGを更新する。MCP artifact変換・永続化、vision分岐、音声非送信、認証、Range配信、MIME偽装拒否をテストで追加確認した。

Validation: 148 tests passed; ruff check passed; mypy src passed; node --check src/ollama_web/static/app.js passed.
</content>
</entry>
<entry>
<title>scrape_url / pdf_to_text / search_and_fetch はページング（継続トークン方式）に対応</title>
<updated>2026-08-02T06:50:41+00:00</updated>
<author>
<name>tanaka takashi</name>
<email>isazaka@gmail.com</email>
</author>
<published>2026-08-02T06:50:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.takashi-2521.com/ollama-web.git/commit/?id=515f96a7779f117a7e37f854de2ded99160d0c76'/>
<id>urn:sha1:515f96a7779f117a7e37f854de2ded99160d0c76</id>
<content type='text'>
mypy 6エラー修正
</content>
</entry>
<entry>
<title>MCP toolsの名称による実行制限処理の削除。</title>
<updated>2026-06-26T17:47:14+00:00</updated>
<author>
<name>tanaka takashi</name>
<email>isazaka@gmail.com</email>
</author>
<published>2026-06-26T17:47:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.takashi-2521.com/ollama-web.git/commit/?id=3f1bf8c0e8ba31d65c5a56041e4a9f89e87aa65e'/>
<id>urn:sha1:3f1bf8c0e8ba31d65c5a56041e4a9f89e87aa65e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>MCP server機能のセキュア化によるcwdの不整合を除去。</title>
<updated>2026-06-26T16:25:29+00:00</updated>
<author>
<name>tanaka takashi</name>
<email>isazaka@gmail.com</email>
</author>
<published>2026-06-26T16:25:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.takashi-2521.com/ollama-web.git/commit/?id=59a974236a168680d5de0bd570b597a582b3859a'/>
<id>urn:sha1:59a974236a168680d5de0bd570b597a582b3859a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>MCP server機能をセキュア化</title>
<updated>2026-06-26T16:09:00+00:00</updated>
<author>
<name>tanaka takashi</name>
<email>isazaka@gmail.com</email>
</author>
<published>2026-06-26T16:09:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.takashi-2521.com/ollama-web.git/commit/?id=fce9dc1b2940ee6699d2acf0c9e56456d9899581'/>
<id>urn:sha1:fce9dc1b2940ee6699d2acf0c9e56456d9899581</id>
<content type='text'>
</content>
</entry>
<entry>
<title>MCP機能追加</title>
<updated>2026-06-26T14:54:17+00:00</updated>
<author>
<name>tanaka takashi</name>
<email>isazaka@gmail.com</email>
</author>
<published>2026-06-26T14:54:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.takashi-2521.com/ollama-web.git/commit/?id=3a9e8e18df4c596360da54000f65e1bebc6039c2'/>
<id>urn:sha1:3a9e8e18df4c596360da54000f65e1bebc6039c2</id>
<content type='text'>
</content>
</entry>
</feed>
