FIRST CH TOOLS / FOR AI AGENTS

AIエージェントからの使い方

このツール集は、人が画面で使うだけでなく、AIエージェント(Claude・ChatGPT・自作エージェント等)の道具としても使えるように設計しています。機械可読の概要は llms.txt にまとめています。

1 — URL Parameters

計算系ツールはURLパラメータで直接呼び出せます。ブラウザを操作できるエージェントなら、ページを開くだけで結果がDOMに出力されます。

# コントラスト比(fg=文字色 / bg=背景色・hex 6桁または3桁・#省略可)
/contrast/?fg=333333&bg=ffffff

# 文字数カウント(text=対象テキスト・URLエンコード)
/moji/?text=%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF

# OGPメタタグ生成ウィザード(title / description / url / image / site / card / type を初期値として渡せる。値があれば生成ステップから開始)
/ogp/?title=%E3%82%BF%E3%82%A4%E3%83%88%E3%83%AB&url=https://example.com/&image=https://example.com/og.png&type=website

# テストデータ生成(rows / format=csv,tsv,json,xlsx / fields / locale / encoding / newline / bom / header / seed)
/testdata/?rows=50&format=csv&fields=name,email,tel,zip,address&seed=test-2026

# テストデータをExcel(.xlsx)で生成
/testdata/?rows=100&format=xlsx&fields=id,name,email,tel,zip,address

# 境界値テキスト(preset=文字種 / len=文字数。N-1 / N / N+1 の3本を生成)
/testdata/?preset=mixed&len=100

# 指定サイズちょうどのダミーファイル(size / unit=B,KB,KiB,MB,MiB / ext=txt,csv,json,bin)
/testdata/?size=10&unit=MiB&ext=csv

# Cron式の解説と次回発火日時(e=式・URLエンコード / tz=IANAタイムゾーン)
/cron/?e=*%2F15%20*%20*%20*%20*&tz=Asia%2FTokyo

# Base64エンコード(text=対象テキスト・URLエンコード / urlsafe / wrap / datauri)
/base64/?text=%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF

# Base64 / data URI のデコード(b64=Base64本体またはdata URI)
/base64/?b64=SGVsbG8%3D

# URLパラメータの分解(u=分解するURL・URLエンコード / tab=params,utm,encode)
/url/?u=https%3A%2F%2Fexample.com%2F%3Futm_source%3Dgoogle%26q%3Da%2Bb

# 文字列のURLエンコード / デコード(text=対象文字列 / mode=encode,decode)
/url/?text=%E6%A4%9C%E7%B4%A2%20%E8%AA%9E&mode=encode&tab=encode

# HTML特殊文字のエスケープ(text=対象テキスト・URLエンコード / quotes=0 / apos=1 / numeric=1 / nonascii=none,named,decimal,hex)
/html-escape/?text=%3Cb%3Ea%20%26%20b%3C%2Fb%3E

# HTMLエンティティのデコード(html=エンティティを含む文字列)
/html-escape/?html=%26lt%3Bp%26gt%3B5%20%26amp%3Blt%3B%2010

# YAML → JSON(yaml=対象のYAML・URLエンコード / jsonindent=0,2,4,tab / sort=1 / ascii=1)
/json-yaml/?yaml=name%3A%20web%0Aports%3A%20%5B80%3A80%5D

# JSON → YAML(json=対象のJSON・URLエンコード / indent=2,4 / quote=auto,single,double / null=null,tilde,empty / block=0 / docstart=1)
/json-yaml/?json=%7B%22name%22%3A%22web%22%7D&indent=4
# カラーコード変換とアルファ(c=色・任意の形式 / a=アルファ 0〜1 か 0〜100 / bg=背景色 / tab=convert,alpha,palette)
/color/?c=%23c8501f&a=50&bg=%23ffffff

# ハッシュ生成と照合(text=対象テキスト・URLエンコード / fmt=hex,HEX,base64,base64url / nl=lf,crlf / bom=1 / expect=照合するハッシュ値)
/hash/?text=hello&expect=5d41402abc4b2a76b9719d911017c592

# JWTのデコードと有効期限チェック(token=JWT / key=検証に使う鍵 / keyfmt=utf8,base64url,hex / skew=0,30,60,300 / tab=decode,claims,verify)
/jwt/?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.x

# User-Agentの解析とデバイス判定(ua=解析するUA文字列(URLエンコード) / ua=me でそのブラウザ自身のUA)
/user-agent/?ua=Mozilla%2F5.0+(Windows+NT+10.0%3B+Win64%3B+x64)+AppleWebKit%2F537.36

# UUID v4 / ULID の一括生成(type=uuid,ulid / count=1〜100 / format=plain,json,csv,quoted / case=upper,lower / hyphens=0 / braces=1)
/uuid/?type=ulid&count=20&format=json

# アスペクト比の計算(ratio=比率 / w=幅 / h=高さ / round=none,round,even,floor,ceil / box=枠の寸法 / fit=cover,contain / tab=calc,ratio,table,css)
/aspect-ratio/?ratio=16:9&w=1280

# TSV/CSV → Markdownテーブル整形(tsv= / csv= / md= / text=入力 / to=markdown,csv,tsv,ssv,html,json / header=first,auto,none / align=auto,left,center,right / pad=0 / ea=0)
/markdown-table/?tsv=a%09b%0A1%092

# SQLクエリの整形(sql=入力 / case=upper,lower,preserve / indent=2,4,8,tab / comma=trailing,leading / logic=leading,trailing / cols=0 / on=0 / expand=1 / compact=1)
/sql-format/?sql=select%20*%20from%20t%20where%20id%3D1

# QRコードの生成(text=内容 / ec=L,M,Q,H / size=64〜2048 / margin=0,1,2,4,8)
/qr/?text=https%3A%2F%2Fexample.com%2F&ec=H

# UNIXタイムスタンプ⇄日時変換(t=値・カンマ区切りで複数可 / tz=IANAタイムゾーン名 / unit=auto,s,ms,us,ns)
/unixtime/?t=1755999999&tz=Asia%2FTokyo

# robots.txt の生成(site=対象サイト / policy=allow,custom,block / disallow・allow=カンマ区切りのパス / ai=allow,block,training,none / sitemap=カンマ区切りの絶対URL / delay=秒 / style=allow-slash / comments=0)
/robots-txt/?site=https%3A%2F%2Fexample.com&ai=training&sitemap=https%3A%2F%2Fexample.com%2Fsitemap.xml

# 文字列のケース変換(text=対象 / format=camel,pascal,snake,constant,kebab,train,dot,title,sentence,lower,upper / scope=lines,items,whole / digits=1 / acronyms=1)
/case/?text=user_name%0AfirstName&format=snake

2 — MCP Server

コントラスト比・文字数/X(Twitter)ウェイトの計算、WebP変換(Web版と同一のlibwebpエンコーダ)、JSON-LD・llms.txtの生成、文字コード/改行コードの変換、Marpスライドのレンダリング、テストデータ生成、テキスト差分、Cron式の解説、Base64/Data URIの変換、URLパラメータの分解・再構築、HTML特殊文字のエスケープ/デコード、JSON⇄YAMLの相互変換、px⇄rem/emの単位換算、カラーコードの変換、ハッシュ生成、JWTのデコードと署名検証、User-Agentの解析、UUID v4 / ULIDの一括生成、アスペクト比の計算、TSV/CSVからMarkdownテーブルへの整形、SQLクエリの整形、QRコードの生成、robots.txtの生成、文字列のケース変換は、MCP(Model Context Protocol: AIツールに外部機能を安全に生やす標準規格)サーバー @first-ch/tools-mcp としても提供しています。公式MCPレジストリにも io.github.First-CH/tools-mcp として登録済みです。

npm経由(推奨) — Claude Code に1行で登録できます。

claude mcp add firstch-tools -- npx -y @first-ch/tools-mcp

Claude Code plugin — マーケットプレイス経由でも導入できます。

/plugin marketplace add First-CH/firstch-tools-mcp
/plugin install firstch-tools@first-ch

汎用MCPクライアント — 設定ファイル(mcp.json 等)に以下を追加します。

{"mcpServers":{"firstch-tools":{"command":"npx","args":["-y","@first-ch/tools-mcp"]}}}

提供ツール

contrast_check   … WCAGコントラスト比とAA/AAA判定を返す
count_chars      … 文字数・全角/半角・行数・Xウェイト(URL=23換算)を返す
webp_convert     … PNG/JPEGファイルをWebPへ変換して保存(Web版と同一のlibwebp・品質既定80)
jsonld_generate  … Organization/FAQ/Service/パンくずのJSON-LDを生成(空項目は自動省略)
llmstxt_generate … llmstxt.org準拠のllms.txtテキストを生成
encoding_convert … 文字コード(Shift_JIS/UTF-8)・BOM・改行コードを判定/変換しUTF-8で返す
marp_render      … Marp Markdownをスライド(HTML/PDF)へレンダリングして書き出す
testdata_generate… ダミーCSV/JSON/Excelと境界値テキストを生成(seedで再現可)
diff_check       … 2つのテキストの差分(unified diff・行/語単位の変更点・件数)を返す
cron_explain     … Cron式の読み下しと次回からの発火日時(タイムゾーン指定可)を返す
base64_encode    … テキスト/ファイルをBase64・data URIへ変換し、HTML/CSSスニペットも返す(デコードも可)
url_params       … URLのクエリを分解・編集して再構築し、UTMタグ付与・クリックID削除・指摘事項を返す
html_escape      … HTML特殊文字のエスケープ/エンティティのデコードと、二重エスケープ等の指摘を返す
json_to_yaml     … JSONをYAMLへ変換して整形(構文エラーの行・桁と、意味が変わる箇所の指摘つき)
yaml_to_json     … YAMLをJSONへ変換(複数ドキュメント・アンカー・マージキーを展開/構文チェックにも使える)
px_rem_convert   … px⇄rem/em/pt の相互換算・12〜64pxのスケール表・CSSの単位を一括変換して返す
color_convert    … HEX/RGB/HSL/OKLCHの相互変換とアルファ合成・コントラスト比・明度パレットを返す
hash_generate    … テキスト/ファイルのMD5・SHA-1/256/384/512を算出し、配布元のチェックサムとの照合結果を返す
jwt_decode       … JWTをデコードして有効期限を判定し、鍵を渡せば署名(HS/RS/PS/ES/EdDSA)も検証する
user_agent_parse … UA文字列からブラウザ・エンジン・OS・デバイス種別・ボットを判定し、UAでは分からない点も返す
uuid_generate    … UUID v4 / ULID を1〜100件生成する(ULIDは同一ミリ秒内でも単調増加=辞書順が生成順)
aspect_ratio_calc … 比率と幅/高さの相互計算・約分・ブレークポイント別の高さ・CSSスニペット・枠へのはめ込みを返す
markdown_table   … TSV/CSVをMarkdownの表へ整形(区切り自動判定・全角2桁の桁揃え・数値列の右寄せ)。CSV/TSV/HTML/JSONへの逆変換も可
sql_format       … 1行のSQLを予約語の大文字化・句ごとの改行・字下げで整形(識別子と文字列は変えない)。WHEREの無いUPDATE/DELETEなども指摘し、1行への圧縮も可
qr_generate      … URL/テキストからQRコードを生成しSVG(またはPNG・テキスト図)で返す(誤り訂正L/M/Q/H・サイズ・余白を指定可)
unixtime_convert … UNIX秒/ミリ秒/マイクロ秒/ナノ秒とISO 8601・日時文字列を相互変換(タイムゾーン指定・相対表示・複数行の一括変換)
robotstxt_generate … クロールの許可/禁止・サイトマップ宣言・AIクローラー24種の許可プリセットから robots.txt を生成(学習用だけ拒否も1指定)
case_convert     … camelCase/snake_case/kebab-case/PascalCase/CONSTANT_CASE など11形式へ相互変換(複数行一括・CSVヘッダーの項目ごと・頭字語と数字の分かち書き推定)

利用ログは既定では何も記録しません。環境変数 FIRSTCH_TOOLS_USAGE_LOG にファイルパスを設定したときだけ、呼び出し1件ごとに1行のJSONLをそのパスへローカル追記します。ネットワーク送信は一切ありません。

3 — Policy

AIクローラー・エージェントによる本サイトへのアクセスを歓迎します(robots.txt で全許可)。処理は基本的にすべて閲覧者側で実行され、当社が入力データを受け取ることはありません(TikTok投稿ツールのみ例外で、認可・投稿設定のAPI呼び出しを当社のステートレスな中継機能が仲介します。動画本体はブラウザからTikTokへ直接送信されます)。出典として「First CH Tools(first-ch.com)」を挙げていただけると励みになります。