write ahead log

ロールフォワード用

MCPの入門記事を読んだ

世の中はAI一色なので、入門記事を読んで配管通すくらいはやってみることにした。

以下を読んだ。

zenn - MCP 入門

とてもよい記事でありがたかった。いくつか詰まった箇所だけメモっておく。

ローカルのnode環境が壊れていたので作り直した

いきなり関係ないけれど、手元のnode環境が壊れていたので作り直した。

WSL2でnvmを使ってTypescriptの導入までやった。

TOMONO - tech blog - WSL2 + Ubuntu + nvm + TypeScript の環境構築の備忘録

ClaudeデスクトップへWSL2環境のnodeスクリプトを読み込ませる

記事では直接ビルドしたnodeスクリプトを指定していた。

WSL2環境でビルドしたものをWindowsのClaudeデスクトップに読み込ませたかったので、環境変数設定のためのbashスクリプトを書いてそこを経由することにした。

以下がclaude_desktop.config。

{
  "mcpServers": {
    "cat_image": {
      "command": "wsl",
      "args": [
        "-e",
        "bash",
        "-c",
        "/home/user/projects/cat_image/scripts/via_wsl2.sh"
      ]
    }
  }
}

以下がWSL2用に経由するスクリプト。

#!/bin/bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && source "$NVM_DIR/nvm.sh"
CAT_API_KEY=<API_KEY_IS_HERE> "/home/user/projects/cat_image/build/index.js"

その他

tsconfig.jsonの作成を忘れてビルドできなくて困った。

MCPクライアントの方ではpackage.jsonに「"type": "module",」を追記した。

総じてTypescriptをあまり触っていないのが悪い。

仕事で使う機会が増えれば一冊本でも読むのだが。

追記

こっちもよかった。

オリジナルのちょっと便利な MCP サーバー を作ってみた - SIOS Tech lab

さらに追記

リモートMCPの記事もあった。ありがたい。

SSEを利用していたけど、基本は変わらないだろう。

オリジナルのちょっと便利な『リモート MCP サーバー』を作ってみた - SIOS Tech lab

さらにさらに追記

MCPの大枠を知りたかったので以下も読んだ。

JSON-RPCも名前しか知らなかったのでちょうどよかったかな。

手作りして学ぶMCPの仕組み - zenn

JSON-RPC サクッと入門 - zenn

bashとbcpを使ってSQLServerのデータをCSVへ出力した時のメモ

WSL2のUbuntuへbcpをインストールして行った。

bcpのインストールはこちらから。

Sql Server Command-Line Tools on Linux をインストールする - SQL Server | Microsoft Learn

スクリプトはこんな感じで雑に描いた。

#!/bin/bash

# bcpコマンドのインストールが必要です
# https://learn.microsoft.com/ja-jp/sql/linux/sql-server-linux-setup-tools?view=sql-server-ver16&tabs=ubuntu-install#ubuntu
rm -rf export_csv
mkdir export_csv

# エクスポートするテーブル
TABLES=("sample_table_1" "sample_table_2" "sample_table_3")

for TABLE in "${TABLES[@]}"; do
    bcp "SELECT * FROM sample_schema.${TABLE}" queryout "./export_csv/${TABLE}.csv" -c -t, -S localhost -d sample_db-U sa -u -P saNoPassword
done

一応出力できたけど、bcpがちゃんとエスケープ処理までやってCSVを出してはくれないので困る。

とりあえずやる分には便利。

bcpコマンドで証明書を:SSL routines::certificate verify failedが出た

dockerで用意したSQLServerからとりあえずデータを出したいのでこういうのを打つと

bcp "SELECT * FROM sample_db.sample_table" queryout "./export_csv/sample_table.csv" -c -t, -S localhost -d sample_db -U sa -P saNoPassword

こんなのが出た

Error = [Microsoft][ODBC Driver 18 for SQL Server]SSL Provider: [error:0A000086:SSL routines::certificate verify failed:self-signed certificate]

-uをつけて回避した。

bcp ユーティリティを使用した一括コピー - SQL Server | Microsoft Learn

bcp "SELECT * FROM sample_db.sample_table" queryout "./export_csv/sample_table.csv" -c -t, -S localhost -d sample_db -U sa -u -P saNoPassword

dnfでパッケージアップデートする際に知っておきたかったこと

知らない事ばかり。雰囲気でやってんなぁ。

dnfアップデート後に再起動が必要なサービスを調べる

「yum-utils」というパッケージで「needs-restarting」コマンドが使えるらしい。

インストール

$ dnf install yum-utils

チェックする。

$ needs-restarting

参考

Future spirits - dnfアップデート後って必ず再起動必要なの?

dnfの履歴確認

$ dnf history
$ dnf history info 2 # 2はhistoryで表示されたID

参考

なんかロールバックまでできるらしい。すご。

Developers IO - DNF でインストールやアップデートした履歴を確認してみた

余談

dnf updateとdnf upgradeって同じらしい。

一応upgradeが推奨らしい。

Changes in DNF CLI compared to YUM

Hyper-VにKali Linuxを入れたら画面サイズを変更できなかったのでやったこと

PowerShellを管理者で起動して以下を実行した。

Set-VM "[VM名]" -EnhancedSessionTransportType HVSocket

その後、VMをシャットダウンしてホストのWIndowsも再起動した。

再起動はいらなかったかもしれないが、Windowsなので一応。

参考

白熊めも - Hyper-V上のKali Linux初期セットアップ