自分のMCP設定を点検したら、引っかかったのは自分で入れたX連携だけだった

前の記事でローカルAIの待ち受けポートを点検する道具を作ったあと、次に何を作るかを考えて、いま何がはやっているかを調べた。GitHub のトレンドと直近のニュースを流し見した範囲では、エージェント基盤そのもの、Claude Code のスキルやフックの詰め合わせ、そして MCP とエージェントのセキュリティ、この3つに大体まとまる。前の2つは似たものが既に大量にあって、個人が出しても埋もれる。3つ目は、エージェントのコードを静的に検査するもの、MCP サーバー側を能動的に調べるもの、企業向けの SaaS はあったが、「自分のマシンに登録した MCP が今どう露出しているか」を見るものは、探した範囲では見当たらなかった。

続きを読む →

lsofの点検を道具にしたら、Ollamaより先にAirPlayが赤くなった

前の記事は、lsof を一回叩いて何がどのアドレスで待ち受けているかを見た人は多くない、と書いて終わった。あの点検で実際に見つかったのは、目当ての脆弱性ではなく、更新されずに動き続けていた古い Ollama だった。そして書いた本人が、点検を Ollama 以外に対してやっていない。LM Studio や llama.cpp を常駐させている人が同じ点検をするには、それぞれのポート番号を調べ、lsof を叩き、curl で偽装ヘッダを投げる手順を、製品ごとに繰り返すことになる。俺は一回やっただけで満足していた。

続きを読む →

外部脳をクラウドに預けない代わりに、認証なしのポートを常時開けていた話

外部脳をどのAIにもロックインしない設計にした話を書いたとき、乗り換えられる根拠として並べたものの一つが「意味検索の埋め込みはローカルのOllamaで作っている」だった。vaultの中身をクラウドに送らない、という選択だ。

8月末、そのOllamaを狙う脆弱性の記事が流れてきた。悪意のあるWebページを一度開くだけで、ローカルで動いているOllamaに命令を恒久的に埋め込める、という内容だ。俺の環境構成をまとめたノートには一行こう書いてある。「homebrew.mxcl.ollama が常駐」。常駐しているということは、何かのポートで何かを待ち受けているということだ。それが何なのか、ノートに書いておきながら一度も見たことがなかった。

続きを読む →

ぬか漬けが美味すぎる件

ぬか漬けを始めて一年ちょっと経った。きゅうり、にんじん、大根、蕪。想像通り美味い。ここまでは誰でも予想がつく話だと思う。

想定外だったのは、一年やってみて一番美味かったのが野菜ではなかったことだ。ぬか床が水っぽくなるのを防ぐために放り込んでいた、水抜き係の乾物である。

続きを読む →

防御にも射程がある

以前、「AIに渡す許可には射程がある」という記事を書いた。一度「pushしていい」と言われた許可を、AIは別のリポジトリや次の作業へ勝手に持ち越す。だから許可はリポジトリ・作業・操作の種類という3つの軸で切れ、と。失敗の記録をmistakes.mdという外部記憶に刻み、本当に守りたい操作はgit層のフックに落とす。二段構えまで作って、締めに「たぶん、まだ何回か払う」と書いた。

3日後に払わされた。やったのは、俺の作業を手伝っていた当のClaude Codeだ。

「英語化して」がmainマージになった

やっていたのは、毎朝ニュースを書く自作の無人AIタスク(newsリポジトリ、public)の整備だった。中身を配布できる形に整えていて、「まるっと英語化して」と頼んだ。

続きを読む →

柵の抜け道は、柵を作った本人には見えない

7月7日(現地時間)、Anthropicが「Claude Fable 5」の無料枠期間を5日間延長すると発表した。新しい期限は日本時間13日午後3時59分。以前書いた記事で、期限付きの無料枠が終わる前のFable 5に、記事やコードでなく外部脳の運用ルール自体を作らせた話を書いた。まだ使えるうちにと思い、今回はその続きになる。もう一段本格的に、Claude Code環境そのものを段階的に再設計させた。作り終えた後、Ultracode(複数のエージェントを並列で走らせる機能)で「本当に効いているか」を疑わせたら、2週間以上前から使い続けている安全装置と、その日新設したばかりの安全装置の、作られた時期が全然違う両方に、同じ種類の穴が開いていた。ただし、この疑わせ方はタダでは済まなかった。

続きを読む →

Fableの指摘をルールに変えて、同じレビュアーにもう一度見せた

前回の記事は、Fable 5に読ませたら壊れた。

記事1049はOpus 4.8とSonnet 5で書いてFable 5にレビューさせたところ、指摘が11件出た。結びで言い切っていた「見誤っていた」に本文中の根拠場面がない。転換の直前に、転換後の話(Analyze Requirements)を先出ししていて、驚きが死んでいる。書き直す過程で捨てたはずの合言葉の残骸が結びに残っている。整理の表に、本文で一度も触れていない行がある。どれも、通しで読まないと見えない種類の欠陥だった。

続きを読む →

仕様駆動開発が「製品」になった週に、俺は仕様書分業を手で回していた

今週は、仕様駆動開発(SDD)が製品と本番事例の両方でまとめて着地した週だった。AWSのKiroが要件定義から設計、コードまでを連続で生成する仕組みとして紹介され、東京海上日動がそれを本番投入して、試作にかかっていた期間が半年から1日に縮んだと報じられた。ウォーターフォール、アジャイルに次ぐ第3の開発手法、という位置づけまで付いていた。

続きを読む →

レビューで潰したはずの穴が、実測では違う場所にあった話

obsidian-import(外部の動画や記事をObsidianノートに変換する自作ツール)は、動画の文字起こしをYouTube限定にしていた。TikTokやInstagramの動画を渡すたびに「記事として処理されてしまう」摩擦が積み重なって、ようやく直すことにした。

調べてみると、YouTube限定は「Whisperが重いのを避けたい」という以前の判断の代理変数だった。字幕取得も概要欄取得も、実装はサイト非依存のyt-dlp呼び出し1つ。YouTube判定は入口の正規表現1箇所だけで、そこを本体の条件(長さ上限)に置き換えれば安全に拡張できる構造になっていた。

続きを読む →