はじめに
以前こちらの記事でリリース報告をしました。
あれからコツコツとツールを追加し続け、気づいたら18種類のツールが揃いました。
今回は追加したツールの紹介と、実装していく中で気づいたことをまとめます。
追加したツール一覧
リリース時点では6種類でしたが、現在は以下の18種類になりました。
カレンダー・日付
| ツール名 | 説明 |
|---|---|
| get_holidays | 指定した国・年の祝日一覧を取得 |
| is_holiday | 指定日が祝日かどうかを判定 |
| add_business_days | N 営業日後の日付を計算 |
| calc_schedule | タイムゾーン変換・DST 考慮のスケジュール計算 |
| get_cron_next | Cron 式を解析して次回実行日時を計算 |
データ・外部情報
| ツール名 | 説明 |
|---|---|
| get_exchange_rate | 2 通貨間の為替レートと換算結果を取得 |
| get_ip_info | IP アドレスの地理情報を取得 |
| get_page_meta | URL の OGP・メタ情報を取得 |
ユーティリティ
| ツール名 | 説明 |
|---|---|
| get_distance | 2 地点間の地上距離(メートル)を計算 |
| get_qrcode | QR コード画像を生成 |
| validate_json | JSON パース・JSON Schema 検証・構文エラー修復 |
| get_text_stats | 文字数・単語数・段落数・推定読了時間を計算 |
| resolve_url | URL の最終リダイレクト先を追跡 |
| inspect_url | URL のヘルスチェック(ステータス・SSL・ヘッダー等) |
| convert_markdown | Markdown を HTML に変換 |
| generate_color_palette | 基準色からカラーパレットを生成 |
| decode_jwt | JWT をデコード(署名検証なし) |
| convert_unit | 長さ・重さ・温度などの単位変換 |
特に気に入っているツール3選
1. JSON Schema Validator & Repair
AIが生成したJSONをそのままAPIに投げて検証し、構文エラーがあればauto_repair: trueで自動修復できます。
// 末尾カンマがあっても自動修復
{
"json_str": "{\"name\": \"test\",}",
"auto_repair": true
}
// レスポンス
{
"valid": true,
"repaired": true,
"json": { "name": "test" },
"errors": []
}
AIエージェントの自律的な自己修正ループに組み込めます。
「JSONを生成 → 検証 → エラーがあれば修復 → 再検証」という流れがツール1つで完結します。
2. Cron式パーサー
「このCronジョブは次いつ動く?」をAIが確実に答えられるようになります。
GET /v1/cron/next?expression=0+9+*+*+1-5&count=3&timezone=Asia/Tokyo
{
"expression": "0 9 * * 1-5",
"description": "At 09:00 AM, Monday through Friday",
"timezone": "Asia/Tokyo",
"next": [
"2026-05-25T00:00:00.000Z",
"2026-05-26T00:00:00.000Z",
"2026-05-27T00:00:00.000Z"
]
}
タイムゾーン指定でDSTも自動考慮されます。
3. URLヘルスチェック
URLのステータスコード・SSL証明書の有効期限・レスポンスタイムを返します。
{
"url": "https://example.com",
"status_code": 200,
"response_time_ms": 234,
"reachable": true,
"ssl": {
"valid": true,
"expires_at": "2027-01-01T00:00:00.000Z",
"days_remaining": 220,
"issuer": "Amazon"
}
}
resolve_urlと組み合わせることで、
「短縮URLの最終リダイレクト先のSSL証明書を確認する」
といった複合的な使い方もできます。
実装していて気づいたこと
MCPとして価値があるAPIの条件
18種類のツールを作ってきて、「MCPとして使われるAPI」の条件が見えてきました。
① AIが自前で処理すると誤差・誤りが生じる処理
営業日計算・タイムゾーン変換・単位変換などは、AIが推論で処理すると稀に間違えます。
ハッシュ化なんかも意外と間違った結果を出したりしてきます。
「確実な値が必要」なときに外部ツールを呼ぶ動機が生まれます。
また、生成したものを検証するような使い方もできれば、さらに確実性が上がると思います。
② リアルタイムデータが必要な処理
為替レート・IPジオロケーションなど、学習データに含まれない「今の情報」はAIが自前で持てません。
③ 副作用が必要な処理
QRコード生成・画像変換など、何かを「生成・出力」する処理はテキスト生成だけのAIにはできません。できたとしても、それっぽいものしかできません。
逆に「AIが自前でできる処理(Base64エンコード・UUID生成など)」はMCPとして提供しても呼ばれません。最初にこの設計を間違えると誰にも使われないMCPサーバーになります。
Hono + Lambda の相性の良さ
全APIをHono on Lambdaで実装しています。
1関数 = 1カテゴリで分割しているので、特定のAPIだけデプロイし直す場合もCDKで簡単に管理できます。
// packages/api/src/functions/calendar/index.ts
const app = new Hono();
app.use('*', trackUsage());
app.get('/v1/calendar/holidays', holidaysHandler);
app.get('/v1/calendar/is-holiday', isHolidayHandler);
app.get('/v1/calendar/business-days', businessDaysHandler);
export const handler = handle(app);
シンプルで気に入っています。
MCPへの接続方法
Claude DesktopやCursorの設定ファイルに以下を追加するだけです。
{
"mcpServers": {
"thousand-api": {
"url": "https://mcp.thousand-api.com/mcp",
"headers": {
"x-api-key": "YOUR_API_KEY"
}
}
}
}
APIキーは無料で発行できます。
今後の予定
- ハッシュ生成(MD5・SHA-256など)
- 通貨フォーマット(カンマ区切りや通貨の記号など)
- 各種フォーマットバリデーション(IP, Email, CIDR, URL, クレカなど)
引き続き「AIが自前では処理できないこと」を増やしていきます。
フィードバックや要望は https://www.thousand-api.com/contact からどうぞ。