【完全解決】Claude×Raindropトークンエラー対処法

Claude DesktopとRaindrop.ioのトークンエラー解決手順を示すフローチャート AI
Claude DesktopでRaindrop.ioのトークン失効エラーを解決する手順

概要

Claude Desktopを使用していて、突然「MCPサーバー接続エラー」が表示され、Raindrop.ioのブックマーク機能が使えなくなる問題が発生することがあります。この記事では、アクセストークンが2週間で自動的に期限切れになる仕様への対処法を、手動更新とPowerShellによる自動化の両方で解説します。

📌 この記事で解決できること:

  • MCPサーバー接続エラーの解消
  • 2週間ごとのトークン更新方法
  • PowerShellによる完全自動化

エラーの症状と原因

発生する症状

以下のような症状が現れた場合、アクセストークンの期限切れが原因です。

  • Claude Desktop起動時に「MCPサーバー接続エラー」が表示される
  • Raindrop.ioのブックマーク検索機能が使用できない
  • エラーメッセージに「OAuth token has expired」と表示される
  • 約2週間前は正常に動作していた

エラーの原因

Raindrop.ioのアクセストークンには、セキュリティ上の理由から14日間(2週間)の有効期限が設定されています。これは仕様であり変更できないため、定期的なトークン更新が必要となります。

手動でのトークン更新手順

エラーを今すぐ解決したい方は、以下の手順でトークンを更新してください。所要時間は約5分です。

ステップ1: Raindrop.ioでトークンを取得

  1. Raindrop.io Developer Consoleにアクセス
    https://app.raindrop.io/settings/integrations
  2. ログイン後、「Integrations」タブを開く
  3. 使用中のアプリケーションを選択(または新規作成)
  4. Create test token」ボタンをクリック
  5. 表示されたアクセストークンをコピー

⚠ 注意:

この画面を閉じると二度とトークンが表示されないため、必ずコピーしてください。

ステップ2: Claude Desktopの設定ファイルを更新

  1. 設定ファイルの場所を開く
    • Windowsの場合:Win + Rキーを押して「ファイル名を指定して実行」を開く
    • 以下のパスを入力してEnter:
      %APPDATA%\Claude
  2. claude_desktop_config.jsonファイルをメモ帳で開く
  3. Raindrop.ioの設定部分を探す
    {
      "raindrop": {
        "command": "npx",
        "args": ["-y", "raindrop-mcp"],
        "env": {
          "RAINDROP_ACCESS_TOKEN": "ここに古いトークンがあります"
        }
      }
    }
  4. 新しいトークンに置き換える
    "RAINDROP_ACCESS_TOKEN": "コピーした新しいトークンをここに貼り付け"
  5. ファイルを保存する

ステップ3: Claude Desktopを再起動

  1. Claude Desktopを完全に終了(システムトレイのアイコンも右クリックして「終了」)
  2. Claude Desktopを再度起動
  3. エラーが解消されていることを確認

✅ 完了:

これでトークンの更新が完了し、Raindrop.io機能が復活します。

PowerShellによる自動更新

IT管理者や技術的な知識がある方は、PowerShellスクリプトで自動化することができます。

前提条件

自動化には以下の情報が必要です:

項目 説明 取得場所
Client ID アプリケーション識別子 Raindrop.io Developer Console
Client Secret 秘密鍵
Refresh Token 永続的トークン

自動更新スクリプト

以下のPowerShellスクリプトをUpdate-RaindropToken.ps1として保存してください:

# Update-RaindropToken.ps1
# Raindrop.ioのトークンを自動更新するスクリプト

param(
    [Parameter(Mandatory=$true)]
    [string]$ClientId,
    
    [Parameter(Mandatory=$true)]
    [string]$ClientSecret,
    
    [Parameter(Mandatory=$true)]
    [string]$RefreshToken
)

Write-Host "Raindrop.ioトークンの更新を開始します..." -ForegroundColor Cyan

# APIリクエストのボディを作成
$body = @{
    client_id = $ClientId
    client_secret = $ClientSecret
    grant_type = "refresh_token"
    refresh_token = $RefreshToken
} | ConvertTo-Json

try {
    # トークンを更新
    $response = Invoke-RestMethod -Uri "https://raindrop.io/oauth/access_token" `
        -Method POST `
        -ContentType "application/json" `
        -Body $body

    if ($response.access_token) {
        Write-Host "✓ 新しいトークンを取得しました" -ForegroundColor Green
        
        # 設定ファイルのパス
        $configPath = "$env:APPDATA\Claude\claude_desktop_config.json"
        
        # バックアップを作成
        $backupPath = "$env:APPDATA\Claude\config_backup_$(Get-Date -Format 'yyyyMMdd_HHmmss').json"
        Copy-Item $configPath $backupPath
        Write-Host "✓ 設定ファイルのバックアップを作成しました" -ForegroundColor Green
        
        # 既存設定を読み込み
        $config = Get-Content $configPath | ConvertFrom-Json
        
        # トークンを更新
        $config.mcpServers.raindrop.env.RAINDROP_ACCESS_TOKEN = $response.access_token
        
        # 設定を保存(整形して保存)
        $config | ConvertTo-Json -Depth 10 | Set-Content $configPath -Encoding UTF8
        Write-Host "✓ 設定ファイルを更新しました" -ForegroundColor Green
        
        # Claude Desktopを再起動
        $claudeProcess = Get-Process -Name "Claude" -ErrorAction SilentlyContinue
        if ($claudeProcess) {
            Write-Host "Claude Desktopを再起動します..." -ForegroundColor Yellow
            Stop-Process -Name "Claude" -Force
            Start-Sleep -Seconds 3
            Start-Process "claude:"
            Write-Host "✓ Claude Desktopを再起動しました" -ForegroundColor Green
        }
        
        Write-Host "`n========================================" -ForegroundColor Cyan
        Write-Host "トークンの更新が完了しました!" -ForegroundColor Green
        Write-Host "次回更新予定日: $((Get-Date).AddDays(13).ToString('yyyy/MM/dd'))" -ForegroundColor Yellow
        Write-Host "========================================`n" -ForegroundColor Cyan
        
    } else {
        throw "トークンの取得に失敗しました"
    }
} catch {
    Write-Host "✗ エラーが発生しました: $_" -ForegroundColor Red
    Write-Host "設定を確認してください。" -ForegroundColor Yellow
    exit 1
}

スクリプトの実行方法

  1. PowerShellを管理者として実行
  2. スクリプトを実行(実際の値に置き換えてください):
    .\Update-RaindropToken.ps1 `
        -ClientId "あなたのClientID" `
        -ClientSecret "あなたのClientSecret" `
        -RefreshToken "あなたのRefreshToken"

タスクスケジューラーでの自動実行

定期的に自動実行したい場合は、以下のコマンドでタスクを登録できます:

# タスクスケジューラーに登録するコマンド
$action = New-ScheduledTaskAction -Execute "PowerShell.exe" `
    -Argument "-ExecutionPolicy Bypass -File C:\Scripts\Update-RaindropToken.ps1 -ClientId YOUR_ID -ClientSecret YOUR_SECRET -RefreshToken YOUR_REFRESH_TOKEN"

# 2週間ごと(隔週月曜日の朝9時)に実行
$trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Monday -At 9:00AM -WeeksInterval 2

# タスクを登録
Register-ScheduledTask -TaskName "Raindrop Token Auto Update" `
    -Action $action -Trigger $trigger `
    -Description "Raindrop.ioのアクセストークンを自動更新"

Write-Host "タスクスケジューラーへの登録が完了しました" -ForegroundColor Green

トークン更新を忘れないための対策

トークンは正確に14日後に失効します。忘れないように以下の対策をおすすめします:

📅 リマインダー設定のヒント:

  1. カレンダーアプリにリマインダーを設定
    • 「Raindrop.ioトークン更新」という予定を作成
    • 13日ごとに繰り返し設定(1日余裕を持たせる)
  2. 更新日をメモしておく
    • トークン更新日をどこかにメモ
    • 次回更新予定日を計算して記録
  3. この記事をブックマーク
    • エラーが出たらすぐに参照できるように

よくあるエラーと対処法

エラー内容 原因 対処法
MCPサーバー接続エラー トークン期限切れ 本記事の手順でトークン更新
OAuth token has expired 14日間の有効期限切れ 新しいトークンを取得して置換
設定ファイルが見つからない パスの間違い %APPDATA%\Claude を確認
PowerShellスクリプトエラー 実行ポリシー制限 管理者権限で実行

セキュリティ考慮点

⚠ セキュリティ注意:

  • アクセストークンは絶対に公開しない
  • Client SecretとRefresh Tokenは安全に管理する
  • 設定ファイルのバックアップは定期的に削除する
  • 不要になったトークンは無効化する

まとめ

Claude DesktopでRaindrop.ioが使えなくなる問題は、アクセストークンの2週間での自動失効が原因です。本記事では、手動での更新方法とPowerShellによる自動化の両方を解説しました。

🎯 対処法のまとめ:

  1. 今すぐ解決したい → 手動でトークンを更新(5分で完了)
  2. 定期的な更新を忘れたくない → カレンダーにリマインダーを設定
  3. 完全に自動化したい → PowerShellスクリプトとタスクスケジューラーを活用

この記事の手順に従えば、エラーを確実に解決できます。トークンの更新は面倒に感じるかもしれませんが、セキュリティを保つための重要な仕組みです。

関連記事



コメント

タイトルとURLをコピーしました