0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MCPサーバー「Thousand API」に12個のツールを追加した

0
Posted at

はじめに

以前こちらの記事でリリース報告をしました。

あれからコツコツとツールを追加し続け、気づいたら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 からどうぞ。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?