メインコンテンツまでスキップ

AIエージェント(MCP)

すべてのプランで利用可能

MCPはすべてのプランで使えます。FreeとBasicは、10個の読み取りツールすべてに読み取り専用でアクセスできます(Freeは1日100リクエストまで)。ProとUltraは読み取り + 書き込みのフルアクセス(27ツール)が使え、必要なら読み取り専用モードに切り替えることもできます。

MCP(Model Context Protocol)を使うと、ChatGPTやClaudeなどのAIアシスタント、コーディングアシスタント、オートメーションツールを、TellDoneのデータに直接接続できます。接続すると、アシスタントはメモ、タスク、イベント、レポート、タグ、変更履歴を読み取れます。Pro以上では、項目の作成、更新、削除、復元もできます。ツールは全部で27個あり、読み取り用が10個(すべてのプラン)、書き込み用が17個(Pro以上)です。

iPhoneでは、**設定 > 連携 > AIエージェント(MCP)**を開くとMCPの設定画面が表示され、アクセストークンはデフォルトで隠されています:

トークンを隠した、iPhoneの設定のAIエージェント

ウェブでは次のようになります:

アクセストークンを隠した、ウェブの設定のAIエージェント

2つの接続方法​

AIクライアントの接続方法は2つあります。

  1. TellDoneでサインイン(OAuth)(推奨)- TellDoneアカウントでサインインして、アプリが求める内容を承認します。ChatGPTとClaudeはこの方法を使い、コピーするトークンはありません。
  2. Bearerトークン - 設定からアクセストークンをコピーして、クライアントの設定に貼り付けます。スクリプト、コマンドラインツール、OAuthのフローが組み込まれていないクライアントには、これがもっとも簡単です。
クライアント推奨
ChatGPT(chatgpt.comまたはChatGPTのデスクトップアプリ。モバイルアプリは不可)OAuth - MCP URLでカスタムMCPサーバーを追加し、サインインします
Claude(ウェブサイト、Desktop、iPhoneアプリ) / CoworkOAuth - MCP URLでカスタムコネクタを追加し、サインインします
Claude Code(CLI)当面はBearerトークン - トークンを入れたAuthorizationヘッダーを追加します
スクリプトや自作のコードBearerトークン - 自動化にもっとも向いています
掲載されたコネクタの一覧から選ぶことしかできないクライアントTellDoneをカスタムコネクタとしてMCP URLで追加するか、Bearerトークンを使います。TellDoneは、まだどのコネクタディレクトリにも掲載されていません

プランの要件​

プランMCP
Free読み取り専用(読み取りツール10個)、1日100リクエスト
Basic読み取り専用(読み取りツール10個)、1日の上限なし
Pro読み取り + 書き込み(27ツール)- 読み取り専用モードに切り替え可能
Ultra読み取り + 書き込み(27ツール)- 読み取り専用モードに切り替え可能

Freeの1日100リクエストの上限は、ツールの呼び出しだけを数えます。接続、サインイン、ツール一覧の取得は数えません。日付はアカウントに保存されているタイムゾーンに従い、午前0時にリセットされます。上限に達すると、アシスタントにその旨のメッセージが返ります。書き込みツールは、FreeとBasicでは拒否されます。アクセストークンの場合は、接続が読み取り専用であることと、作成や編集にはPro以上が必要なことが返ります。サインイン(OAuth)の場合は、FreeとBasicの接続には書き込み権限が付与されないため、ほとんどが「Insufficient scope」を返します。

アプリ内の画面​

設定 > 連携を開き、AIエージェントセクションの**AIエージェント(MCP)**をタップします。画面には「ChatGPT、ClaudeなどのAIアシスタントが、TellDoneのメモ、タスク、イベントを扱えるようにします。」と表示され、プランも表示されます:

  • Free:「現在のプラン: 読み取り専用アクセス、1日100リクエスト。書き込みはProで利用できます。」
  • Basic:「現在のプラン: 読み取り専用アクセス」
  • ProとUltra:「現在のプラン: 読み書きアクセス」

MCPがオフの間は、有効化をタップしてオンにします。

有効にすると、画面には次の項目が表示されます:

  • アクセスモード(ProとUltra)- 読み取りのみと読み書きを、いつでも選べます。
  • アシスタントを接続 - ChatGPT、Claude、その他のアシスタントの手順です。TellDoneへのサインインはアシスタントの中で行うので、トークンは不要です。
  • 接続済みアプリ - 接続したアシスタントの一覧で、それぞれに接続を解除ボタンがあります。最初に接続するまでは空のままです。
  • 開発者向け(デフォルトでは折りたたまれています)- アクセストークン欄(非表示で、表示 / 隠すとコピー付き)、トークンを再生成、そしてClaude Code / Cursor / その他の切り替えがあり、用意されたテキストと専用のコピーボタンが付きます。Claude Codeではclaude mcp addコマンド、Cursorでは.cursor/mcp.json用のJSON、その他ではサーバーのアドレス、OAuthでのサインインの選択肢、Authorization: Bearerヘッダーが表示されます。トークンが隠れている間、スニペットにはYOUR_TOKENと表示されます。表示をタップすると、実際のトークンが入ります。

ウェブにも同じ操作がありますが、レイアウトが異なり、折りたたまれた開発者向けセクションはありません。OAuthのアドレス(コピーボタン付き)、トークンの操作、接続済みアプリと接続を解除、そしてManual bearer token setup(Claude Code、Cursor、Windsurf、Codex、OpenClaw、cURLの6つのクライアントから選択)があります。ウェブでは、トークン欄が隠れていてもスニペットには実際のトークンが入るので、トークンそのものと同じように扱ってください。

  • ドキュメント - このページへのリンク。
  • 無効化 - MCPをオフにします。「接続中のすべてのAIツールのアクセスを取り消します。」と表示されるので、確定します。トークンは削除され、すべての接続が止まります。MCPをもう一度有効にすると新しいトークンが発行され、サインイン(OAuth)で接続したアプリは、サインインし直さなくても再び使えます。アプリを完全に削除するには、接続済みアプリで接続を解除をタップします。
ヒント

アクセストークンは他の人に知られないようにしてください。トークンを持っている人は誰でも、TellDoneのデータにアクセスできます。漏れたかもしれないと思ったら、トークンを再生成をタップしてください。

有効にする方法​

MCPは、どちらのプラットフォームからでも設定できます:

  • iPhone: 設定 > 連携 > AIエージェント(MCP)
  • ウェブ: app.telldone.app > 設定 > 連携 > AIエージェント(MCP)

手順:

  1. 有効化をタップします。
  2. ProとUltraでは、アクセスモード(読み取りのみまたは読み書き)を選びます。FreeとBasicは読み取り専用です。
  3. ChatGPTまたはClaudeを接続するには、アシスタントを接続でそれをタップして、手順に従います(下を参照)。トークンは不要です。
  4. iPhoneでコーディング用のクライアントを使う場合は、開発者向けを開いて表示をタップし、Claude Code、Cursor、その他のいずれかを選んで、スニペットの下のコピーをタップします。表示をタップする前にコピーすると、スニペットにはトークンの代わりにYOUR_TOKENが入ります。ウェブでは、Manual bearer token setupでクライアントを選んでスニペットをコピーします。スニペットには、すでにトークンが入っています。
  5. スニペットを、クライアントまたはその設定ファイルに貼り付けます。

OAuthで接続する​

ChatGPT、Claude、Coworkには、OAuthがおすすめです。トークンをコピーする代わりに、TellDoneアカウントでサインインします。

OAuth用のMCP URL: https://api.telldone.app/mcp/user

同じサーバーはhttps://api.telldone.app/mcp/user/mcpでも応答し、どちらのアドレスでもBearerトークンを使えます。OAuthでのサインインには、1つ目を使ってください。

ChatGPT​

カスタムMCPサーバーは、chatgpt.comまたはChatGPTのデスクトップアプリで追加できます。ChatGPTのモバイルアプリではカスタムコネクタを追加できず、TellDoneアプリには次のように表示されます:「ChatGPTアプリでは、カタログにあるコネクタしか追加できません。」TellDoneで手順をコンピュータに送るをタップすると、手順がコンピュータに届きます。そこで一度追加すれば、ChatGPTのモバイルアプリでもTellDoneが使えます。

アプリに表示される手順:

  1. コンピュータでchatgpt.com/pluginsを開き、AddをクリックしてAdd custom MCP serverを選びます。
  2. 名前をTellDoneにして、下のアドレス(https://api.telldone.app/mcp/user)を貼り付け、OAuthを選びます。
  3. 確定してインストールしたら、TellDoneにサインインしてアクセスを許可します。

メニューの名前が変わった場合は、OpenAIのカスタムMCPサーバーのガイドをご覧ください。

Claude(ウェブサイト、Desktop、iPhoneアプリ) / Cowork​

アプリに表示される手順:

  1. ClaudeでCustomize → Connectorsを開き、Add custom connectorをタップします。
  2. 下のアドレス(https://api.telldone.app/mcp/user)を貼り付けます。
  3. TellDoneにサインインして、アクセスを許可します。

サインインすると、TellDoneの同意ページに、どのアプリがアクセスを求めているかと、求めている権限の内容が表示されます。TellDoneのメールアドレスとパスワードでサインインしてアクセスを許可をクリックするか、AppleでサインインまたはGoogleでサインインをタップします。この2つは、同じ操作でアクセスの承認まで行われます。Claudeは自動で接続し、コピーするトークンはありません。

メニューの名前が変わった場合は、Anthropicのカスタムコネクタの追加のガイドをご覧ください。

Bearerトークンで接続する​

Claude Code、Cursor、そのほかOAuthでのサインインが組み込まれていないクライアントでは、アクセストークンをクライアントの設定にそのまま貼り付けます。以下の例では、YOUR_TOKENを、設定にあるトークンに置き換えてください。

Claude Code(Bearerトークン)​

claude mcp add --transport http telldone \
https://api.telldone.app/mcp/user/mcp \
--header "Authorization: Bearer YOUR_TOKEN"

自分で入力する必要はありません。設定 > 連携 > AIエージェント(MCP) > 開発者向けで表示をタップし、Claude Codeを選んでコピーをタップします。コピーされるコマンドには、すでにトークンが入っています。

Cursor​

.cursor/mcp.jsonに追加します(または、表示をタップしてから開発者向け > Cursorでコピーします):

{
"mcpServers": {
"telldone": {
"url": "https://api.telldone.app/mcp/user/mcp",
"headers": { "Authorization": "Bearer YOUR_TOKEN" }
}
}
}

その他のクライアント​

そのほかのMCPクライアントの設定:

Codex​

codex.jsonに追加します:

{
"mcpServers": {
"telldone": {
"type": "http",
"url": "https://api.telldone.app/mcp/user/mcp",
"headers": { "Authorization": "Bearer YOUR_TOKEN" }
}
}
}

OpenClaw​

Settings > MCP Servers > Add:

  • Name: TellDone
  • URL: https://api.telldone.app/mcp/user/mcp
  • Auth: Bearer YOUR_TOKEN

その他のMCPクライアント​

HTTP経由のMCPに対応していれば、どのツールでも接続できます。エンドポイントはhttps://api.telldone.app/mcp/user/mcpを使い、認証ヘッダーにBearer YOUR_TOKENを入れます。

別の認証ヘッダー

お使いのクライアントやプロキシがAuthorizationヘッダーを予約している場合(たとえばSmithery系のゲートウェイなど)は、代わりにX-MCP-Token: YOUR_TOKENでトークンを送ってください。どちらのヘッダーも使えます。両方ある場合はAuthorizationが優先されます。

接続のテスト​

簡単なcURLコマンドで、トークンが使えるか確認できます:

curl -X POST https://api.telldone.app/mcp/user/mcp \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}'

成功すると、利用できるすべてのツールの一覧が返ります。

権限(スコープ)​

OAuthの接続にはスコープがあります。サインインのときに、クライアントが何を求めているかが正確に表示されるので、それを明示的に承認します。

スコープアプリにできること
notes:readメモの読み取りと、メモの詳細の表示(searchツールにはtasks:readとevents:readも必要)
notes:writeメモの作成、編集、削除(process_noteにはtasks:writeとevents:writeも必要)
tasks:read / tasks:writeタスクの読み取り / 作成、編集、完了、削除
events:read / events:writeイベントの読み取り / 作成、編集、削除
reports:read日次、週次、月次、年次のレポートの読み取り
tags:read / tags:writeタグの一覧表示 / タグの作成、ピン留め、削除、復元
profile:readアカウント情報とサブスクリプションの読み取り
offline_accessサインインしたままにする(リフレッシュトークンが発行され、セッションごとにサインインし直す必要がなくなります)

スコープは接続でできることを制限します。たとえばnotes:readだけの接続では、書き込みツールを呼び出せません。プランによる制限が、その上にもう1つあります。

Bearerトークンの接続にはスコープが個別にありません。プランの読み取り / 書き込みモードだけで制御されます。

できること​

読み取りツール(10個)- すべてのプラン​

ツールできること
get_notesフィルタ(タグ、日付範囲、テキスト検索)付きでメモを一覧表示
get_note1件のメモを、子のタスク、イベント、文字起こし全文とともに表示
get_notes_full複数のメモを、埋め込まれたタスクとイベントとともに1回の呼び出しで取得
get_tasksステータス(未完了、完了、すべて)、タグ、日付でタスクを一覧表示
get_events日付範囲でカレンダーイベントを一覧表示
get_reports日次、週次、月次、年次のレポートを読み取り(マークダウン全文)
get_tagsすべてのタグを、使用回数順に表示
get_profileアカウント情報と、メモ、タスク、イベントの件数を表示
searchメモ、タスク、イベントを横断して検索(メモはテキスト + セマンティック検索)
get_change_logメモ、タスク、イベントの編集履歴と、各編集が取り消されたかどうかを表示
ヒント

searchツールは、メモのセマンティック検索に対応しています。キーワードだけでなく、意味で結果を探します。たとえば「予算についての会議」で検索すると、「予算」という言葉が入っていなくても、お金に関する話し合いのメモが見つかります。

書き込みツール(17個)- ProとUltra​

ツールできること
process_noteAIの処理パイプライン全体 - テキストまたは音声を送ると、タスク、イベント、タグ付きのメモが返ります
create_note単純なテキストのメモを追加(AIの分析なし)
create_task優先度、期限、リマインダー、タグ付きでタスクを追加
create_event日付、時刻、場所、リマインダー、参加者、繰り返しルール付きでカレンダーイベントを追加
update_noteメモのタイトル、要約、種類、タグ、優先度、ステータスを変更
update_taskタスクのタイトル、説明、優先度、期限、リマインダー、タグ、ステータスを変更
complete_taskタスクを完了にする
update_eventイベントの詳細、時刻、場所、リマインダー、参加者、繰り返しルール、タグ、ステータスを変更
delete_noteメモを削除。そのタスクとイベントは残ります
delete_taskタスクを削除
delete_eventイベントを削除
undo_change_log_entry記録された編集を1件取り消す(AIによるものも自分によるものも)。項目の以前の値に戻ります
restore_entity削除またはアーカイブされたメモやタスク、削除またはキャンセルされたイベントを元に戻す
create_tag新しいタグを作成するか、自動で提案されたタグを永続的なタグにする
set_tag_pinnedタグをピン留め、またはピン留め解除して、一番上に並べる
delete_tagタグを削除(restore_tagで元に戻せます)
restore_tag削除したタグを元に戻す

書き込みと削除の操作は、接続しているデバイス(iPhone、ウェブアプリ)にすぐに反映されます。

ツールリファレンス​

get_notes​

オプションのフィルタ付きでメモを一覧表示します。日付フィルタはrecorded_at(音声メモを録音した日時)を使い、それがないメモではcreated_atを使います。

ParameterTypeDefaultDescription
limitint20Number of notes to return (max 50)
offsetint0Skip this many notes (for pagination, max 10000)
tagsstring-Filter by tags, comma-separated (matches any)
searchstring-Text search on title and summary
date_fromstring-Start date, YYYY-MM-DD (inclusive)
date_tostring-End date, YYYY-MM-DD (exclusive)
standalone_onlyboolfalseWhen true, hides follow-up notes (notes attached to a parent note/task/event) and returns only standalone notes

Returns: list of notes with id, title, summary, type, tags, priority, status, recorded_at, created_at.

get_note​

1件のメモを、文字起こし全文と、リンクされたすべてのタスクとイベントとともに取得します。

ParameterTypeDescription
note_idstringThe note's UUID

Returns: note with title, summary, transcript, type, tags, priority, status, metadata, created_at, plus tasks[] and events[] arrays.

transcript_speakers(話者ラベル付きの文字起こしのターン。複数の話者がいる会議の場合。それ以外はnull)、speaker_count(録音が話者ごとに分けられた場合のみ。それ以外はnull)、parent_note_id/parent_task_id/parent_event_id(このメモが別の項目のフォローアップ編集である場合に設定)も返します。tasks[]/events[]の各エントリには、reminders_at/recurrence_rule(タスク)またはreminder_minutes/attendees/recurrence_rule(イベント)も含まれます。

get_notes_full​

複数のメモを、タスクとイベントとともに1回の呼び出しで取得します。searchを除いてget_notesと同じフィルタが使え、各メモにはtasks[]とevents[]が埋め込まれます。

ParameterTypeDefaultDescription
limitint10Number of notes (max 20)
offsetint0Skip this many notes
tagsstring-Filter by tags
date_fromstring-Start date, YYYY-MM-DD
date_tostring-End date, YYYY-MM-DD
standalone_onlyboolfalseWhen true, hides follow-up notes (notes attached to a parent note/task/event) and returns only standalone notes

get_tasks​

フィルタ付きでタスクを一覧表示します。

ParameterTypeDefaultDescription
statusstring"todo"Filter: todo, done, or all
limitint30Number of tasks (max 100)
offsetint0Skip this many tasks
tagsstring-Filter by tags, comma-separated
date_fromstring-Start date, YYYY-MM-DD (filters by deadline; tasks without a deadline are excluded)
date_tostring-End date, YYYY-MM-DD (filters by deadline; tasks without a deadline are excluded)

Returns: list of tasks with id, title, description, status, priority, tags, deadline, reminder_at, reminders_at, completed_at, completed_by, source, created_at. reminder_at mirrors the first entry of reminders_at for backward compatibility - use reminders_at to see all of a task's reminders.

get_events​

日付範囲のフィルタ付きでカレンダーイベントを一覧表示します。

ParameterTypeDefaultDescription
limitint30Number of events (max 100)
offsetint0Skip this many events
date_fromstring-First day, YYYY-MM-DD, in your own time zone (inclusive). Events that overlap the range are included, so a multi-day event shows on every day it covers
date_tostring-Last day, YYYY-MM-DD, in your own time zone (inclusive)

Returns: list of events with id, title, description, status, start_at, end_at, location, is_all_day, tags, note_id, reminder_minutes, attendees, recurrence_rule, created_at.

get_reports​

AIが生成したレポートを、マークダウン全文で取得します。

ParameterTypeDefaultDescription
report_typestring"daily"Type: daily, weekly, monthly, or yearly
limitint5Number of reports (max 10)

Returns: list of reports with id, type, period_start, period_end, content_md, created_at.

注記

月次レポートは長く(1,000語を大きく超えることもよくあります)、AIツールのコンテキストウィンドウが小さい場合は、limit=1を使ってください。

get_tags​

すべてのタグを、ピン留め済みが先、その後は使用回数順で取得します。

パラメータなし。最大100件のタグを返し、それぞれにtag、usage_count、is_pinned、is_manualが含まれます。

get_profile​

アカウント情報と、メモ、タスク、イベントの件数を取得します。

パラメータなし。email、display_name、locale、transcription_locale、timezone、subscription、mcp_mode、created_at、stats(メモ/タスク/イベントの件数)を返します。

メモ、タスク、イベントを一度に横断検索します。メモには、テキスト検索とセマンティック検索(AIの埋め込みで意味から結果を探す)の両方が使えます。

ParameterTypeDefaultDescription
querystringrequiredSearch text (max 500 characters)
limitint20Max results per type (max 20)
semanticbooltrueEnable semantic search for notes

結果は種類ごとにまとめて返されます:notes[]、tasks[]、events[]。各結果にはid、type、title、detail、created_atが含まれます。

より速いテキストのみの検索には、semantic=falseを設定します。

get_change_log​

メモ、タスク、イベントの編集履歴を、新しい順に表示します。AIによるフォローアップ編集と、自分で行った手動の編集がすべて含まれます。

ParameterTypeDefaultDescription
entitystringrequirednotes, tasks, or events
entity_idstringrequiredThe item's UUID
include_manualboolfalseAlso include your own manual edits, not just AI-made ones

Returns: list of change entries with id (use this as entry_id for undo), field_name, old_value, new_value, source (follow_up, smart_context, correction_sync for a name fix TellDone carried across a note, or manual), origin_note_id, edited_at, and reverted_at (set once undone).

process_note(ProとUltra)​

AIの処理パイプライン全体です。アプリでの録音と同じように動作します。テキストまたは音声を送ると、TellDoneが文字起こしし、AIで分析して、抽出したタスク、イベント、タグ、埋め込みを持つ構造化されたメモを作成します。

このツールは非同期です。audio_idをすぐに返し、処理はバックグラウンドで行われます。結果は、接続しているデバイスにリアルタイム同期で届きます。get_notes()で確認することもできます。

ParameterTypeDescription
textstringRequired. Text to analyze. If it is not empty, it is used as the transcript and any audio you send is not transcribed; send "" to have the audio transcribed. Limit when no audio is sent: Pro 20,000 / Ultra 50,000 characters
audio_base64stringBase64-encoded audio file. The whole request is limited to 10 MB, so the audio itself can be about 7 MB. It is transcribed only when text is empty
audio_formatstringm4a, ogg, wav, mp3, aac, or webm (default: m4a)
parent_task_idstringUUID of a task this is a follow-up to
parent_note_idstringUUID of a note this is a follow-up to
parent_event_idstringUUID of an event this is a follow-up to

必ずtextを送ってください。TellDoneに音声を文字起こしさせるには、audio_base64を送り、textは空の文字列("")にします。textが空でない場合、TellDoneはそれを文字起こしとして使い、音声は文字起こししません。親IDは、3つのうち多くても1つだけ設定します。

Returns: {"audio_id": "...", "status": "processing", "mode": "text-only"} or "mode": "audio+stt" if audio was provided.

注記

process_noteは、プランの上限(1日のアップロード数、月間のメモ数、テキストの最大長)の対象です。get_profileが表示するのはメモ、タスク、イベントの件数だけで、上限は表示しません。使用状況は、アプリの設定 > 使用状況で確認してください。

create_note(ProとUltra)​

単純なテキストのメモをすぐに作成します。AIの分析は行わないので、タスクやイベントは抽出されません。TellDoneにタスクとイベントを見つけさせたい場合は、process_noteを使ってください。

ParameterTypeLimitDescription
titlestring200 charsRequired
summarystring1000 charsOptional. Short teaser (1-3 sentences). Used in your reports, so keep it short
transcriptstringplan-basedOptional. Long-form body shown in the note detail. Not included in reports. Limits: Pro 20,000 / Ultra 50,000 chars
typestring-Optional. task, idea, info (default), status, meeting, event, or reflection
tagsstring20 tagsComma-separated, optional
suppress_external_syncboolean-省略可能、デフォルトはfalse。インポートした項目や一括で作成する項目ではtrueにします。そうすると、その項目は接続しているアプリやオートメーションに送られません

create_task(ProとUltra)​

新しいタスクを作成します。タスクは接続しているTodoist、Notion、Microsoft To Doにも作成され、オートメーションにはtask.createdが届きます。suppress_external_sync: trueを渡した場合は、どちらも行われません。

ParameterTypeLimitDescription
titlestring200 charsRequired
descriptionstring2000 charsOptional
prioritystring-low, medium (default), or high
deadlinestring-YYYY-MM-DD, optional
reminder_atstring-ISO 8601 datetime (for example 2026-04-15T09:00:00Z), optional
tagsstring20 tagsComma-separated, optional
note_idstring-UUID to link task to a parent note, optional
suppress_external_syncboolean-省略可能、デフォルトはfalse。インポートした項目や一括で作成する項目ではtrueにします。そうすると、その項目は接続しているアプリやオートメーションに送られません

create_event(ProとUltra)​

カレンダーイベントを作成します。イベントは接続しているNotionにも作成され、オートメーションにはcalendar_event.createdが届きます。suppress_external_sync: trueを渡した場合は、どちらも行われません。

ParameterTypeLimitDescription
titlestring200 charsRequired
start_atstring-ISO 8601 datetime, required
end_atstring-ISO 8601 datetime (default: start + 1 hour; for an all-day event, one day)
descriptionstring2000 charsOptional
locationstring200 charsOptional
is_all_daybool-Default: false
tagsstring20 tagsComma-separated, optional
reminder_minutesstring-Comma-separated minutes before event (for example 15,60), optional
attendeesstring-Comma-separated names or emails, optional
recurrence_rulestring-RRULE string (for example FREQ=WEEKLY;BYDAY=MO,WE,FR), optional. Rules more frequent than hourly, or that can never happen, are refused
note_idstring-UUID to link event to a parent note, optional
suppress_external_syncboolean-省略可能、デフォルトはfalse。インポートした項目や一括で作成する項目ではtrueにします。そうすると、その項目は接続しているアプリやオートメーションに送られません

update_note(ProとUltra)​

既存のメモの1つ以上のフィールドを更新します。指定したフィールドだけが変更されます。アプリでメモを編集するのとまったく同じように動作し、タイトル、要約、タグ、種類はNotionのページに反映され、オートメーションにはnote.updatedが届きます。編集は履歴に表示され、そこから元に戻せます。文字起こしの変更も保存されてNotionに送られますが、履歴には表示されません。

ParameterTypeDescription
note_idstringRequired, the note's UUID
titlestringNew title (max 200 chars)
summarystringNew summary (max 1000 chars, pass a space " " to clear)
transcriptstringNew transcript (plan-based limit, pass a space " " to clear)
typestringtask, idea, info, status, meeting, event, or reflection
tagsstringComma-separated tags (replaces all existing tags, max 20)
prioritystringlow, medium, or high
statusstringactive or archived
注意

音声パイプラインで作成されたメモでは、transcriptは音声認識の元の出力です。上書きすると、話した元の言葉が置き換えられます。元の言葉を残すには、置き換えずに文字起こしに追記してください。

update_task(ProとUltra)​

既存のタスクの1つ以上のフィールドを更新します。指定したフィールドだけが変更されます。アプリでタスクを編集するのとまったく同じように動作し、変更はTodoist、Notion、Microsoft To Doにあるコピーに反映され、オートメーションにはtask.updatedが届きます。編集はタスクの履歴に表示され、そこから元に戻せます。statusを完了にすると、complete_taskと同じようにタスクが完了します。期限には日付だけでも、日付と時刻でも指定できます(使われるのは日付です)。タグはそれぞれ50文字までです。

ParameterTypeDescription
task_idstringRequired, the task's UUID
titlestringNew title
descriptionstringNew description (pass a space " " to clear)
prioritystringlow, medium, or high
deadlinestringYYYY-MM-DD. This tool can't clear a deadline; clear it in the app
statusstringtodo or done
tagsstringComma-separated tags (replaces all existing tags, max 20)
reminder_atstringISO 8601 datetime (pass a space to clear)

statusをdoneにすると、タスクがいつ、どのように完了したかも記録されます。

complete_task(ProとUltra)​

タスクを完了にするショートカットです。

ParameterTypeDescription
task_idstringRequired, the task's UUID

タスクが存在しない場合や、すでに完了している場合は、エラーを返します。

update_event(ProとUltra)​

既存のイベントの1つ以上のフィールドを更新します。指定したフィールドだけが変更されます。アプリでイベントを編集するのとまったく同じように動作し、変更はNotionのページに反映され、オートメーションにはcalendar_event.updatedが届きます。編集は履歴に表示され、そこから元に戻せます。

ParameterTypeDescription
event_idstringRequired, the event's UUID
titlestringNew title
descriptionstringNew description (pass a space to clear)
start_atstringNew start time (ISO 8601)
end_atstringNew end time (ISO 8601)
locationstringNew location (pass a space to clear)
statusstringconfirmed, tentative, or cancelled
tagsstringComma-separated tags (replaces all existing tags, max 20)
is_all_daystring"true" or "false"
reminder_minutesstringComma-separated minutes before event (for example 15,60, pass a space to clear)
attendeesstringComma-separated names or emails (pass a space to clear)
recurrence_rulestringRRULE string (pass a space to clear)

delete_note(ProとUltra)​

メモを削除します。削除されるのはメモだけで、そのタスクとイベントは残ります。アプリで削除するのとまったく同じように動作し、オートメーションにはnote.deletedが届きます。Notionにあるメモのコピーは削除されません(アプリでも削除されません)。

ParameterTypeDescription
note_idstringRequired, the note's UUID

delete_task(ProとUltra)​

タスクを削除します。アプリで削除するのとまったく同じように動作し、Todoist、Notion、Microsoft To Doにあるコピーも削除され、オートメーションにはtask.deletedが届きます。restore_entityで元に戻せます。

ParameterTypeDescription
task_idstringRequired, the task's UUID

delete_event(ProとUltra)​

イベントを削除します。アプリで削除するのとまったく同じように動作し、オートメーションにはcalendar_event.deletedが届きます。Notionにあるイベントのページは削除されません(アプリでも削除されません)。

ParameterTypeDescription
event_idstringRequired, the event's UUID

undo_change_log_entry(ProとUltra)​

記録された編集を1件取り消します。AI(フォローアップの録音)によるものでも、自分で直接行ったものでも、その編集の前の値にフィールドを戻します。

ParameterTypeDescription
entitystringRequired, notes, tasks, or events
entity_idstringRequired, the item's UUID
entry_idstringRequired, the change entry's id from get_change_log

Returns: {"entry_id", "entity_type", "entity_id", "field_name", "restored_value", "reverted_at"}. Undoing the same entry twice returns an error - it's already undone.

restore_entity(ProとUltra)​

削除またはアーカイブされたメモやタスク、削除またはキャンセルされたイベントを元に戻します。

ParameterTypeDescription
entitystringRequired, notes, tasks, or events
entity_idstringRequired, the item's UUID

Returns: the restored item as JSON.

create_tag(ProとUltra)​

新しいタグを作成するか、自動で提案されていた既存のタグを永続的なタグにします。

ParameterTypeDescription
tagstringRequired, 1-50 characters (stored lowercase)
categorystringOptional

set_tag_pinned(ProとUltra)​

タグをピン留め、またはピン留め解除して、タグの一覧の一番上に並べます。

ParameterTypeDescription
tagstringRequired
pinnedboolRequired

/を含むタグはピン留めできません。

delete_tag(ProとUltra)​

タグを削除します。restore_tagで元に戻せます。

ParameterTypeDescription
tagstringRequired

restore_tag(ProとUltra)​

削除したタグを元に戻します。

ParameterTypeDescription
tagstringRequired

入力の上限​

FieldMax lengthUsed in
title200文字メモ、タスク、イベントの作成/更新
description2,000文字タスク、イベントの作成/更新
summary1,000文字(厳密)メモの作成/更新。レポートで使われるので、短くしてください
transcriptプランによる:Pro 20,000 / Ultra 50,000メモの作成/更新。長文の本文で、レポートには含まれません
textプランによる:Pro 20,000 / Ultra 50,000(音声を送らない場合)process_note
location200文字イベントの作成/更新
tags20個メモ、タスク、イベントの作成/更新
search query500文字search
audio_base64音声で約7 MB(リクエスト全体では10 MBまで)process_note

上限を超えると、ツールは"title too long (max 200 chars, got 250)"のようなエラーメッセージを返します。

エラーの扱い​

ほとんどのツールは、エラーをJSONで返します:

{"error": "description of what went wrong"}

プラン、スコープ、入力上限のエラーは、同じメッセージのツールエラーとして返ります。

よくあるエラー:

エラー発生するとき
"This TellDone connection is read-only. Creating and editing needs the Pro or Ultra plan."読み取り専用モードで書き込みツールを呼び出したとき(FreeとBasic、または読み取り専用に切り替えたProとUltra)
"Daily limit reached: the Free plan includes 100 TellDone requests a day..."Freeプランがその日の100リクエストを使い切ったとき
"Daily limit reached (N/M today)"AIアシスタント経由で、その日にプランで許可された数だけ項目を作成したとき(process_note、create_note、create_task、create_eventがそれぞれ数えられます)
"Notes limit reached (X/Y this month)"プランの月間のメモ数の上限を使い切ったとき
"Invalid note_id format"IDにUUIDではない文字列を渡したとき
"Note not found"IDが存在しない、または別のユーザーのものであるとき
"Task not found or already completed"存在しない、またはすでに完了しているタスクにcomplete_taskを使ったとき
"title too long (max 200 chars, got N)"入力の上限を超えたとき
"Too many tags (max 20)"20個を超えるタグを渡したとき

HTTPレベルのエラー:

コード意味
401無効、失効、または削除されたトークン(MCPを無効にするとトークンが削除され、再生成すると置き換えられます)
429レート制限を超えたとき(毎秒5リクエスト、最大20のバースト)

Freeで1日100リクエストの上限に達した場合は、HTTPコードではなくツールのエラーメッセージで知らされ、アカウントに保存されているタイムゾーンの午前0時にリセットされます。

使用例​

すべての例は、MCPのJSON-RPCプロトコルをcURLで使っています。YOUR_TOKENを、自分のアクセストークンに置き換えてください。

データを読み取る​

# Get your profile and stats
curl -s -X POST https://api.telldone.app/mcp/user/mcp \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"get_profile"}}'

# List recent notes (limit 5, from April 2026)
curl -s -X POST https://api.telldone.app/mcp/user/mcp \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call",
"params":{"name":"get_notes","arguments":{"limit":5,"date_from":"2026-04-01"}}}'

# Search notes (hybrid text + semantic)
curl -s -X POST https://api.telldone.app/mcp/user/mcp \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call",
"params":{"name":"search","arguments":{"query":"project deadline","limit":5}}}'

データを書き込む(ProとUltra)​

# Process a note through full AI pipeline (extracts tasks + events)
curl -s -X POST https://api.telldone.app/mcp/user/mcp \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"jsonrpc":"2.0","id":10,"method":"tools/call",
"params":{"name":"process_note","arguments":{"text":"Need to buy groceries tomorrow. Meeting with Katie at 3pm at the cafe to discuss the project."}}}'

# Create a task with deadline and reminder
curl -s -X POST https://api.telldone.app/mcp/user/mcp \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"jsonrpc":"2.0","id":11,"method":"tools/call",
"params":{"name":"create_task","arguments":{"title":"Review PR","priority":"high","deadline":"2026-04-15","reminder_at":"2026-04-15T09:00:00Z","tags":"dev"}}}'

# Create a repeating event with reminders and attendees
curl -s -X POST https://api.telldone.app/mcp/user/mcp \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"jsonrpc":"2.0","id":12,"method":"tools/call",
"params":{"name":"create_event","arguments":{"title":"Team standup","start_at":"2026-04-12T10:00:00Z","reminder_minutes":"15","attendees":"Katie,John","recurrence_rule":"FREQ=DAILY;BYDAY=MO,TU,WE,TH,FR","tags":"meeting"}}}'

# Complete a task
curl -s -X POST https://api.telldone.app/mcp/user/mcp \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"jsonrpc":"2.0","id":13,"method":"tools/call",
"params":{"name":"complete_task","arguments":{"task_id":"<task-uuid>"}}}'

成功したときの応答は、次のようになります:

{
"jsonrpc": "2.0",
"id": 11,
"result": {
"content": [{"type": "text", "text": "{\"id\":\"...\",\"title\":\"Review PR\",\"status\":\"todo\"}"}]
}
}
注記

書き込みと更新のツールは、id、title、statusを中心とした短い応答を返します。削除のツールはidとdeletedを返します。書き込みの後でタグ、優先度、期限などの詳細をすべて取得するには、get_tasksやget_noteのような読み取り呼び出しをもう一度行ってください。

トークンの管理​

操作方法
トークンを表示iPhoneの設定 > 連携 > AIエージェント(MCP) > 開発者向け(ウェブでは、設定 > 連携 > AIエージェント(MCP))で、表示をタップします
トークンをコピートークンの横のコピーをタップします
再生成トークンを再生成をタップして確定します。古いトークンはすぐに使えなくなります。OAuthのサインインで接続したアシスタントには影響しません。接続済みアプリで接続を解除してください
モードを変更ProとUltra:読み取りのみまたは読み書きを選びます。FreeとBasicは常に読み取りのみです
無効化無効化をタップして確定します(「接続中のすべてのAIツールのアクセスを取り消します。」)。トークンは削除され、すべての接続が止まります。MCPをもう一度有効にすると新しいトークンが発行され、サインイン(OAuth)で接続したアプリは、サインインし直さなくても再び使えます。アプリを完全に削除するには、接続済みアプリで接続を解除をタップします

AIエージェントに聞けること​

接続したら、AIツールにこんなことを聞いてみてください:

1日を振り返る:

  • 「今日は何をした?」
  • 「今週のメモを見せて」
  • 「期限切れのタスクは?」

タスクを管理する:

  • 「タスクを作って:四半期レポートのレビュー、優先度は高、期限は金曜」
  • 「Figmaのタスクを完了にして」
  • 「今取り組んでいるタスクは?」

検索して分析する:

  • 「マーケティング戦略についてのメモをすべて探して」
  • 「来週のイベントは?」
  • 「先週の日次レポートを要約して」

先の予定を立てる:

  • 「イベントを作って:チームのスタンドアップ、明日の午前10時」
  • 「今週の予定は?」
  • 「よく使うタグを見せて。何にいちばん時間を使っている?」

アシスタントは、メモ、タスク、イベント、レポートを読み取り、複数のツールの情報を組み合わせて、複雑な質問にも答えられます。Pro以上で読み書きがオンの場合は、それらの作成、更新、削除もできます。

知っておきたいこと​

  • 連携とオートメーション - process_noteは録音と同じように動作するので、そのメモ、タスク、イベントは、接続している連携とWebhookオートメーションにも送られます。ほかの書き込みツールで作成、編集、削除した項目は、アプリとまったく同じように扱われ、接続している連携(イベントとメモの編集はNotionのみ)とオートメーションに届きます。restore_entityでタスクを復元したり、undo_change_log_entryでタスクの完了を取り消したりすると、同期されていた連携でもそのタスクが再開されます。
  • AIアシスタントによる編集 - 項目の履歴では、アシスタントによる編集として表示されます。TellDoneの音声認識の学習には使われず、そのメモのほかの項目にもコピーされません。アシスタント経由の編集は、アプリと共通の上限(1分あたり30回)に含まれます。
  • セマンティック検索 - process_noteとcreate_noteで作成したメモには、どちらも埋め込みが付くので、少し時間がたつとセマンティック検索に表示されます。
  • 日付フィルタ - メモでは、日付はUTCの日です。イベントでは、日付は自分のローカルの日で、範囲と重なるイベントも含まれます。タスクでは、フィルタは期限の日付です。

セキュリティ​

  • ユーザーごとに、固有の384ビットのアクセストークンが発行されます
  • MCPを無効にしたり、トークンを再生成したりすると、トークンはすぐに失効します
  • すべてのリクエストはアカウントに限定されるので、エージェントがアクセスできるのは、自分のデータだけです
  • 接続はHTTPSで、レート制限があります(毎秒5リクエスト、最大20のバースト)
  • OAuthの接続には、PKCE、1回限りの認可コード、有効期間の短いアクセストークンが使われます。接続はいつでもアプリから取り消せます

技術的な詳細(ディスカバリーのエンドポイント、トークンの有効期間、OAuthのフロー全体)は、オープンソースのコネクタリファレンス github.com/exp78/telldone-mcp をご覧いただくか、https://api.telldone.app/.well-known/oauth-protected-resourceに直接問い合わせてください。

プライバシーとデータの流れ​

接続したAIツールがデータを受け取るのは、そのツールがTellDoneを呼び出したときだけで、たいていは何かを聞いたときです。受け取るのは、承認した権限の範囲内で、その呼び出しへの応答だけです。アクセスを制限するには、読み取りのみに切り替えるか、接続済みアプリでアプリの接続を解除するか、設定でアクセストークンを再生成または無効化します。詳しくはプライバシーポリシーをご覧いただくか、support@telldone.appまでお問い合わせください。

トラブルシューティング​

症状原因 / 対処
OAuthの同意ページに「Wrong email or password」と表示されるアプリへのサインインに使っているメールアドレスとパスワードを使うか、同じページでAppleでサインイン / Googleでサインインを選んでください。
接続はできているが、AIが何も作成・編集できないプランがFreeまたはBasic(読み取り専用)か、モードが読み取り専用か、接続に書き込み権限がありません。アップグレードする前に接続した場合は、接続済みアプリでそのアプリの接続を解除して、もう一度接続してください。モードは設定で確認できます。
ツールから「Insufficient scope」のエラーが出る接続にその権限がありません。FreeとBasicでは書き込み権限は付与されないので、作成や編集にはProまたはUltraが必要です。アップグレードする前に接続した場合は、接続済みアプリでそのアプリの接続を解除して、もう一度接続してください。
コピーしたスニペットがYOUR_TOKENのままで、クライアントが接続できないトークンが隠れている間にコピーしています。開発者向けで表示をタップしてから、もう一度スニペットをコピーしてください。
ツールがまったく表示されないアカウントでMCPが有効になっていません(設定 > 連携 > AIエージェント(MCP) > 有効化)。
「Daily limit reached」と表示されるこのメッセージを使う上限は2つあります。「Daily limit reached: the Free plan includes 100 TellDone requests a day」は、Freeのリクエスト上限です。「Daily limit reached (N/M today)」は、AIアシスタント経由で、その日にプランで許可された数だけ項目を作成したという意味です。ProとUltraでも、process_note、create_note、create_task、create_eventがそれぞれ数えられます。どちらも、アカウントに保存されているタイムゾーンの午前0時にリセットされます。
クライアントがコネクタの一覧から選ぶ方法しかなく、そこにTellDoneがないTellDoneは、まだどのクライアントのコネクタディレクトリにも掲載されていません。MCP URLでカスタムコネクタとして追加するか、Bearerトークンの方法を使ってください。

関連ページ​