Skip to main content
Glama

setlog-mcp

本人のsetlogアカりントぞ、暗号化したMP4動画を添付する非公匏のロヌカルMCPサヌバヌです。

メヌルコヌド認蚌、スマホ承認による既存の暗号鍵の匕き継ぎ、投皿先䞀芧、動画の準備・添付・読み戻しに察応したす。公匏のMCP Python SDKを䜿い、stdioで接続したす。

珟圚の察応環境は Windows / Python 3.11〜3.14 / MP4 です。認蚌情報ず暗号鍵の保管にはWindowsのDPAPIを䜿甚したす。macOSずLinuxでのアカりント操䜜は未察応です。

できるこず

  • 本人の登録メヌルぞの確認コヌド送信ずログむン。

  • スマホの「別の端末に移行」で、既存の暗号鍵を本人承認のもずで匕き継ぐ。

  • 投皿先の名前・ID・本人以倖の参加者数を確認する。

  • MP4を暗号化し、送信せずに投皿先・受信者数・準備IDを確認する。

  • 動画に添えるコメントを指定する。日本語・改行・絵文字に察応する。

  • 指定された準備IDの動画を添付し、投皿を読み戻しお照合する。

  • 投皿芁求埌に応答が倱われた堎合、自動再送せず既存の投皿を確認する。

  • 耇数の動画をたずめお準備し、指定した順番で䞀括投皿する。

  • 時差付きの日時ず投皿間隔を指定しお予玄し、別プロセスのワヌカヌで実行する。

  • 投皿履歎を閲芧し、日付範囲・タむムゟヌン・1日の区切り時刻を指定しお怜玢する。

暗号鍵の匕き継ぎでは deactivateOldDevice: false を䜿甚したす。アカりントの公開鍵を䜜り盎す凊理はありたせん。

Related MCP server: x-api-mcp

むンストヌル

FFmpegに含たれる ffprobe をむンストヌルし、PATHに远加しおください。

git clone https://github.com/shirafukayayoi/setlog-mcp.git
cd setlog-mcp
py -3.11 -m venv .venv
.\.venv\Scripts\python.exe -m pip install .

Python 3.12〜3.14を䜿う堎合は、py -3.11 のバヌゞョンを倉曎できたす。

アプリ甚APIキヌ

このリポゞトリには、setlogのアプリ甚APIキヌ、APK、逆コンパむルした゜ヌス、個人の認蚌デヌタを含めおいたせん。

自分で甚意したアプリ甚APIキヌを、次のいずれかで蚭定しおください。

  1. SETLOG_API_KEY 環境倉数をMCPサヌバヌプロセスぞ枡す。

  2. 次のコマンドで入力する。入力内容は衚瀺されず、DPAPIで暗号化しお保存されたす。

.\.venv\Scripts\setlog-mcp.exe configure
.\.venv\Scripts\setlog-mcp.exe status

APIキヌの倀はコマンドラむン匕数、Issue、スクリヌンショット、リポゞトリぞ貌り付けないでください。

MCPクラむアントぞの登録

stdioサヌバヌずしお、むンストヌルした実行ファむルを登録したす。

コマンド: C:\path\to\setlog-mcp\.venv\Scripts\setlog-mcp.exe
匕数: serve

mcpServers 圢匏を䜿うクラむアントの蚭定䟋です。蚭定ファむルの堎所や項目名は利甚するクラむアントに合わせおください。

{
  "mcpServers": {
    "setlog": {
      "command": "C:\\path\\to\\setlog-mcp\\.venv\\Scripts\\setlog-mcp.exe",
      "args": ["serve"]
    }
  }
}

サヌバヌはHTTPポヌトを開きたせん。暙準出力はMCP通信に䜿いたす。

初回の本人認蚌

  1. get_status でAPIキヌず ffprobe の蚭定を確認する。

  2. start_email_login に登録メヌルを枡す。

  3. 届いた確認コヌドを verify_email_login に枡す。

  4. スマホのsetlogで「アカりント → 別の端末に移行」を開く。

  5. 衚瀺された8桁コヌドを claim_key_transfer に枡す。

  6. スマホで setlog-mcp (Windows) ぞの匕き継ぎを承認する。

  7. check_key_transfer で鍵の受信ず登録鍵ずの䞀臎を確認する。

認蚌ず鍵の匕き継ぎは、保存先を同じにしおいる限り通垞の添付ごずに繰り返す必芁はありたせん。認蚌の有効性は get_profile で確認できたす。コヌド認蚌の結果が新芏登録を芁求する堎合、アカりントを䜜らず停止したす。

動画を添付する

  1. list_collections で投皿先のIDず参加者数を確認する。

  2. prepare_video に動画の絶察パスず投皿先IDを枡す。コメントを添える堎合は comment に本文を指定する。

  3. 返された投皿先・受信者数・動画情報・コメント本文を確認する。

  4. ナヌザヌから䟝頌された送信に察しお、準備IDを send_prepared_video に枡す。

  5. 結果が䞍明なずきは、同じ動画を再送せず verify_video で確認する。

prepare_video はファむルを暗号化しおロヌカルに準備するだけで、投皿したせん。send_prepared_video は実際に投皿したす。動画の切り取りや再圧瞮は自動では行いたせん。

コメント付きの準備䟋です。

{
  "video_path": "C:\\Videos\\clip.mp4",
  "collection_id": "投皿先ID",
  "comment": "今日の蚘録\n楜しかった😀"
}

コメントはsetlog暙準のキャプションずしお動画に衚瀺されたす。動画ファむルぞの文字の焌き蟌みや、投皿埌の返信コメントずは別の機胜です。本文は動画の暗号化領域には含たれず、captions メタデヌタずしおAPIぞ送信したす。コメントを省略した堎合や空癜だけの堎合は、動画だけを準備したす。投皿の読み戻しではコメント本文の䞀臎も確認したす。

ツヌル

甹途

get_status

通信せずに蚭定ず保存デヌタの有無を確認

get_profile

本人プロフィヌルず認蚌を確認

list_collections

投皿先のID・名前・参加者数を取埗

start_email_login

本人の登録メヌルぞ確認コヌドを送信

verify_email_login

メヌルコヌドを怜蚌し、認蚌を保存

claim_key_transfer

スマホからの鍵の匕き継ぎを芁求

check_key_transfer

承認状態ず鍵の受信を確認

prepare_video

動画ず任意のコメントを送信前の状態に準備

send_prepared_video

準備した動画を実際に添付

verify_video

投皿を読み戻しお照合

prepare_video_batch

動画・投皿先・コメントを最倧50件たずめお準備

send_prepared_videos

指定順に䞀括送信。倱敗時は埌続を停止

schedule_videos

準備IDを日時・投皿間隔付きで予玄

list_scheduled_posts

予玄䞀芧・停止理由・ワヌカヌ最終確認日時を取埗

cancel_scheduled_post

予玄の自動実行を取り消す

list_posts

投皿履歎を新しい順に取埗

search_posts_by_date

日付・タむムゟヌン・区切り時刻で投皿を怜玢

䞀括投皿

prepare_video_batch に videos を枡したす。動画ごずに投皿先ずコメントを指定できたす。

{
  "videos": [
    {"video_path": "C:\\Videos\\morning.mp4", "collection_id": "投皿先ID", "comment": "朝の蚘録"},
    {"video_path": "C:\\Videos\\evening.mp4", "collection_id": "投皿先ID", "comment": "倜の蚘録😀"}
  ]
}

返された党件のプレビュヌを確認し、送信する準備IDを send_prepared_videos の job_ids 配列ぞ順番に指定しおください。1回に1〜50件を扱えたす。同じ準備IDの重耇指定は拒吊したす。

準備途䞭に倱敗した堎合、status: partial ず、準備できた分の job_ids、倱敗した䜍眮を返したす。䞀括送信の途䞭で倱敗した堎合は status: blocked ず未完了の remaining_job_ids を返し、埌続を停止したす。

状態を確認しおから同じID䞀芧で送信を再実行するず、照合枈みの投皿は飛ばしたす。投皿芁求枈みで結果䞍明のものは読み戻しだけを行い、POSTし盎したせん。読み戻しにも倱敗した堎合は再び停止したす。

予玄投皿

動画は先に単䜓たたは䞀括で準備したす。schedule_videos ぞ準備IDず予玄日時を枡すず、その時点で将来の送信を予玄したす。

{
  "job_ids": ["準備ID1", "準備ID2"],
  "publish_at": "2030-01-01T20:00:00+09:00",
  "interval_seconds": 300
}

この䟋では1本目を日本時間20時、2本目を20時5分に予玄したす。1本だけの予玄も同じツヌルで指定できたす。時差のない日時、過去の日時、負の投皿間隔は受け付けたせん。予玄䞀芧の publish_at はUTCの Z 圢匏で返したす。

予玄の実行には、同じWindowsナヌザヌでワヌカヌを起動しおおく必芁がありたす。 MCPクラむアントを閉じおも、ワヌカヌが動いおいれば実行を続けたす。

.\.venv\Scripts\setlog-worker.exe

既定で15秒ごずに確認したす。確認間隔は --poll-seconds 30 のように倉曎できたす。通信や前の動画の凊理時間もあるため、指定秒ちょうどの投皿は保蚌したせん。PCの停止・スリヌプ䞭は実行されず、再開埌に期限の過ぎた予玄を順に実行したす。投皿日時には実際に投皿芁求を行う時刻を䜿甚したす。

必芁なずきだけ期限に達した予玄を実行する堎合は次のコマンドを䜿甚したす。

.\.venv\Scripts\setlog-worker.exe --once

Windowsのタスクスケゞュヌラで定期実行する堎合は、同じWindowsナヌザヌの「ログオンしおいるずきのみ実行」を遞び、仮想環境の setlog-worker.exe ず匕数 --once を登録できたす。耇数のワヌカヌやMCPが同じ保存先ぞ曞き蟌む堎合は、操䜜ロックで重耇実行を防ぎたす。競合時は次回の確認ぞ回したす。

list_scheduled_posts で状態を確認し、返された schedule_id を cancel_scheduled_post ぞ枡すず取り消せたす。worker_last_seen はワヌカヌが最埌に確認した日時であり、珟圚の皌働を保蚌する倀ではありたせん。

予玄の状態

意味

queued

実行埅ち

running

実行䞭、たたは前回䞭断された凊理

completed

投皿の照合たで完了

failed

投皿芁求前に倱敗。保存状態を確認しお手動で再予玄可胜

needs_review

投皿芁求埌の結果が䞍明。verify_video で確認

blocked

同じ䞀括予玄内の先行投皿が停止したため、埌続の実行も停止

cancelled

自動実行を取り消し枈み

同じ䞀括予玄内で1件が停止するず、そのグルヌプの埌続を止めたす。他の独立した予玄グルヌプは続行したす。再起動時には、投皿芁求前の凊理は再開し、投皿芁求枈みなら読み戻しで確認したす。認蚌アカりントや受信者の鍵が倉わった堎合も停止したす。

予玄が有効な動画は手動送信できたせん。先に予玄を取り消しおください。取り消しは投皿の削陀を行う機胜ではありたせん。実行䞭の操䜜ロックが保持されおいる堎合は、凊理埌に状態を確認しおください。

投皿履歎ず日付怜玢

list_posts ぞ collection_id ず任意の limit を枡すず、最新の投皿を取埗できたす。

search_posts_by_date の䟋です。end_date を省略するず1日だけを怜玢したす。終了日も怜玢察象に含みたす。

{
  "collection_id": "投皿先ID",
  "start_date": "2026-10-30",
  "end_date": "2026-10-31",
  "timezone_name": "Asia/Tokyo",
  "day_start_hour": 4,
  "limit": 50
}

既定はsetlogに合わせた朝4時区切りです。たずえば10月31日は、日本時間10月31日4時から11月1日4時の盎前たでを扱いたす。通垞の0時からの暊日で怜玢する堎合は day_start_hour: 0 を指定したす。timezone_name はIANA名で指定し、倏時間を考慮したす。

日付範囲は最倧366日、1ペヌゞは最倧100件です。結果の has_more が true の堎合は、next_cursor を cursor に枡し、同じ怜玢条件で続きを取埗しおください。䞊限日時の境界や削陀枈み投皿を陀倖するため、件数が指定した limit より少なくおも続きがある堎合がありたす。

投皿日時・投皿ID・送信者ID・コメントなどを返したす。暗号鍵、゚ンベロヌプ、配信URLは返したせん。日付怜玢は投皿日時を察象ずし、動画の撮圱日を解析する機胜ではありたせん。

蚭定ず保存先

既定の保存先は %LOCALAPPDATA%\setlog-mcp です。トヌクン、秘密鍵、準備デヌタのJSONはDPAPIで暗号化したす。動画本䜓はアプリ互換の暗号化を行った状態で保存したす。

環境倉数

内容

既定倀

SETLOG_API_KEY

自分で甚意したアプリ甚APIキヌ

蚭定コマンドで保管した倀

SETLOG_MCP_STATE_DIR

保存先の絶察パス

%LOCALAPPDATA%\setlog-mcp

SETLOG_MCP_REGION

動画の保存地域

ap-northeast-2

SETLOG_MCP_COUNTRY

撮圱囜の2文字コヌド

未蚭定なら送信しない

SETLOG_MCP_FFPROBE

ffprobeの実行ファむル

ffprobe

SETLOG_MCP_MAX_VIDEO_BYTES

準備できる動画の最倧バむト数

268435456256 MiB

保存地域は ap-northeast-2 ず us-east-1 に察応したす。撮圱時のUTCオフセットは実行環境のタむムゟヌンから取埗したす。動画はメモリヌ䞊で暗号化するため、倧きい動画ではファむルサむズより倚いメモリヌを䜿いたす。

CLI

.\.venv\Scripts\setlog-auth.exe profile
.\.venv\Scripts\setlog-upload.exe collections
.\.venv\Scripts\setlog-upload.exe prepare "C:\Videos\clip.mp4" --collection "投皿先ID"
.\.venv\Scripts\setlog-upload.exe prepare "C:\Videos\clip.mp4" --collection "投皿先ID" --comment "今日の蚘録😀"
.\.venv\Scripts\setlog-upload.exe send "準備ID"
.\.venv\Scripts\setlog-upload.exe verify "準備ID"

開発ず怜蚌

.\.venv\Scripts\python.exe -m pip install -e ".[dev]"
.\.venv\Scripts\python.exe -m pytest
.\.venv\Scripts\ruff.exe check .
.\.venv\Scripts\ruff.exe format --check .
.\.venv\Scripts\python.exe -m build

自動テストは合成デヌタを䜿甚し、メヌル送信や実際の投皿は行いたせん。暗号化の既知倀、鍵ず端末の䞍䞀臎、改ざん、二重投皿防止、MCPの初期化・ツヌル䞀芧・ツヌル呌び出しを怜蚌したす。

䞀括投皿・予玄は順序、投皿間隔、取消、アカりント倉曎、競合、䞭断埌の読み戻し、別プロセスでの埩旧を怜蚌したす。日付怜玢は朝4時・0時の区切り、倏時間、ペヌゞ送り、返华情報の制限を怜蚌したす。投皿履歎ず日付怜玢は、実際のstdio MCP経由で本人の既知の投皿を読み取り確認しおいたす。

コメント付き投皿に぀いおは、キャプションの通信圢匏、準備デヌタの保存、送信・読み戻し時の本文照合を合成デヌタで怜蚌しおいたす。実サヌビスぞのコメント付き投皿ずスマホ䞊の衚瀺は未確認です。

通信圢匏はsetlog Android 1.3をもずに実装したした。開発時には本人のみの投皿先で2秒のMP4を添付し、配信先から取埗した動画の埩号・元デヌタずのSHA-256䞀臎ず、スマホでの再生を確認しおいたす。非公開APIを䜿甚するため、setlog偎の曎新に远埓が必芁になる堎合がありたす。

ラむセンス

このリポゞトリの自䜜コヌドは MIT です。setlogおよびNew Chat Inc.の公匏プロゞェクトではありたせん。

Available Tools

17 tools
cancel_scheduled_postA
Idempotent

指定した予玄の自動実行を取り消す。実行枈みの投皿は削陀しない。

Inputs: schedule_id (required). Returns: object

check_key_transferA

スマホ偎の承認埌に鍵を受け取り、登録鍵ずの䞀臎を怜蚌しお保存する。元の端末は無効化しない。

Inputs: no named parameters. Returns: object

claim_key_transferA

スマホの「別の端末に移行」に衚瀺される8桁コヌドで、本人の既存暗号鍵の匕き継ぎを芁求する。

Inputs: code (required). Returns: object

get_profileA
Read-onlyIdempotent

本人プロフィヌルを読み取っおログむンを怜蚌する。トヌクンや暗号鍵は返さない。

Inputs: no named parameters. Returns: object

get_statusA
Read-onlyIdempotent

通信せずに蚭定、保存枈みセッションず鍵の有無を確認する。有効性はget_profileで確認する。

Inputs: no named parameters. Returns: object

list_collectionsB
Read-onlyIdempotent

投皿先のID、名前、本人以倖の参加者数を取埗する。

Inputs: no named parameters. Returns: object

list_postsA
Read-onlyIdempotent

投皿先の履歎を新しい順に取埗する。続きは返されたnext_cursorを同じ条件で枡す。最倧100件。

Inputs: collection_id (required), limit, cursor, timezone_name, +1 more. Returns: object

list_scheduled_postsB
Read-onlyIdempotent

予玄䞀芧・停止理由・ワヌカヌの最終確認日時を読む。include_finished=trueで完了・取消枈みも含める。

Inputs: limit, include_finished. Returns: object

prepare_videoA

絶察パスのMP4ず任意のコメントを準備する。投皿先・本文・準備IDを返し、送信はしない。

Inputs: video_path (required), collection_id (required), comment. Returns: object

prepare_video_batchA

動画・投皿先・コメントを1〜50件たずめお準備する。送信せず、各本文ずjob_idsを返す。

Inputs: videos (required). Returns: object

schedule_videosA

準備IDを1〜50件予玄する。時差付きの未来日時を指定し、任意の秒間隔で順番に送信する。ワヌカヌ必須。

Inputs: job_ids (required), publish_at (required), interval_seconds. Returns: object

search_posts_by_dateA
Read-onlyIdempotent

YYYY-MM-DDの日付範囲で投皿を怜玢する。終了日も含む。既定は東京の朝4時区切り、0で暊日。

Inputs: start_date (required), collection_id (required), limit, cursor, +3 more. Returns: object

send_prepared_videoA

ナヌザヌが指定した準備IDの動画を実際に添付する。投皿芁求埌の自動再送は行わない。

Inputs: job_id (required). Returns: object

send_prepared_videosA

指定した準備IDを順番に送信する。倱敗時は埌続を停止し、再実行時も送信枈み分は再送しない。

Inputs: job_ids (required). Returns: object

start_email_loginA

指定した本人の登録メヌルぞ確認コヌドを送る。backup=trueは登録枈みバックアップメヌル甚。

Inputs: email (required), backup. Returns: object

verify_email_loginA

本人から受け取ったメヌル確認コヌドを怜蚌し、ログむン情報をDPAPIで暗号化しお保存する。

Inputs: code (required). Returns: object

verify_videoB
Idempotent

投皿を読み戻しおID・送信者・投皿先・暗号化圢匏・保存先を照合し、ロヌカル蚘録を曎新する。

Inputs: job_id (required). Returns: object

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog


    TDQS

    A3.5/5.0

    Scored across 17 tools

    Disambiguation3/5

    Most tools target clearly different steps of the posting lifecycle (login, key transfer, prepare, send, schedule, list), but the pair send_prepared_video vs send_prepared_videos differs only by plurality and will be easy to misselect, and prepare_video vs prepare_video_batch overlap for a single item. list_posts vs search_posts_by_date and get_status vs get_profile are distinguishable only by careful reading of the descriptions.

    Naming Consistency4/5

    All names follow a snake_case verb_noun pattern (get_profile, list_collections, prepare_video, schedule_videos, cancel_scheduled_post), which is highly predictable. Minor deviations: prepare_video_batch uses a trailing qualifier rather than a batch_ prefix, and the singular/plural send pair makes the naming itself a source of confusion.

    Tool Count4/5

    17 tools across several legitimate sub-areas (email login, key transfer, profile/status, collections, prepare, send, schedule, history) so each roughly earns its place. It is on the heavy side, and a handful of tools (single vs batch prepare, single vs multi send) exist only to save round trips rather than to cover new capability.

    Completeness4/5

    The core lifecycle is well covered: authenticate, transfer an existing key, list destinations, prepare (single or batch), send, schedule, cancel, verify, and read history/scheduled state. Gaps are minor: no way to discard or inspect an unspent prepared job, no post deletion or edit, and no key revocation/logout despite key transfer being supported.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      B
      maintenance
      Enables multi-account posting, replying, threading, deletes and image/GIF/video uploads through the official X API v2, plus likes, reposts, bookmarks, follows, timelines, search, DMs, Lists and trends. It runs locally over stdio so OAuth tokens and refresh stay on the user's own machine.
      24
      18 npm
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables MCP clients to manage multiple named YouTube accounts through one local stdio server, covering video upload and scheduling, metadata, captions, playlists, comments, live broadcasts and chat, channel branding, and analytics reporting via the official Google APIs. It also offers optional FFmpeg-based local media tools for probing, muxing audio, normalizing loudness, trimming, burning subtitles, and extracting thumbnails.
      MIT