mcpField
F
FlutterSDK Telescope

FlutterSDK Telescope

ローカル
fluttersdk.com開発ツール23 週間前に更新

FlutterSDK Telescope について

FlutterSDK Telescopeは、開発時にFlutterアプリのHTTP通信、ログ、例外、クエリなどを記録するランタイムインスペクターです。開発者やコーディングエージェントは、CLIコマンドとMCPツールからバッファー内のデータを確認できます。

主な機能

  1. 01HTTP通信、ログ、例外の記録
  2. 02クエリとランタイムイベントの記録
  3. 03CLIでバッファーデータを確認
  4. 0410個のMCPツールを提供
  5. 05バッファー前に機密情報をマスキング
  6. 06リリースビルドで計測機能を除外

活用シーン

  1. 01実行中アプリのHTTP障害を調査
  2. 02デバッグ中に例外とログを確認
  3. 03コーディングエージェントで実行記録を検索
  4. 04データベースクエリとフレーム時間を追跡

MCP 対応

Artisanプロバイダーを登録すると、TelescopeはVM Service拡張を通じて、記録データの検索や消去を行う10個のMCPツールを公開します。ツールの利用にはFlutterアプリの実行が必要です。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Telescope のロゴ

Telescope

Flutter 用の受動的なランタイムインスペクターです。人が読み、AI エージェントがクエリできます。
HTTP、ログ、例外、debugPrint、DB クエリ、Magic イベントを VM Service 拡張機能経由でキャプチャし、telescope:* CLI コマンドと、Claude Code 用の 10 個の MCP ツールとして公開します。

pub パッケージ CI ライセンス:MIT pub ポイント GitHub スター

ドキュメント · pub.dev · 課題


Telescope を使う理由

スタックトレースを Claude に貼り付けるのはやめましょう。エージェントに直接読み取らせましょう。

実行中の Flutter アプリのデバッグでは、これまで常に print 文、カスタムのログ出力先、ネットワークプロキシを組み合わせて使う必要があり、それぞれが異なる断片の情報を伝えていました。問題が起きると、ログファイル、Charles のキャプチャ、Flutter DevTools のウィンドウをつなぎ合わせて、何が起きたのかを再構成します。AI を使ったワークフローはさらに大変です。コンソールからスタックトレースをコピーして Claude Code に貼り付け、失敗した HTTP レスポンスをコピーして貼り付け、これを繰り返します。

Telescope はこの一連の手間を解消します。 起動時に受動的な監視機能と 14 個の VM Service 拡張機能が登録されます。すべての HTTP リクエスト、ログ行、例外、debugPrint の呼び出し、DB クエリ、Magic フレームワークのライフサイクルイベントがリングバッファーに格納されます。CLI コマンド(telescope:tail、telescope:requests)は人が確認できるようバッファーをストリーミングし、10 個の MCP ツール(telescope_requests、telescope_exceptions、telescope_tail、...)は同じバッファーを Claude Code、Cursor、Codex などの AI コーディングエージェントに公開します。コピー&ペーストもスクリーンショットも SaaS アカウントも不要です。開発時専用です。呼び出し箇所に kDebugMode または !kReleaseMode のガードを設けることで、リリースビルドではサブシステム全体がツリーシェイクされます。

# One-shot self-bootstrap install (works from a fresh consumer)
flutter pub add fluttersdk_telescope
dart run fluttersdk_telescope telescope:install

インストールコマンドは、存在しない場合は利用側の artisan ハーネスを生成し、plugin:install fluttersdk_telescope を実行して、TelescopePlugin.install() が Magic.init() より前(標準の Flutter では runApp より前)に実行されるよう lib/main.dart を修正します。すべて kDebugMode の配下で制御されるため、リリースビルドではサブシステム全体がツリーシェイクされます。

インストール後、利用側では、以降のすべての telescope コマンドに使える artisan fast-cli が ./bin/fsa に用意されます(ネイティブ AOT、ウォーム起動は約 110ms)。より低速な(コールド起動で約 3 秒)フォールバックとして、dart run fluttersdk_telescope <cmd> も引き続き使用できます。

機能

機能説明
👁10 個のウォッチャーLogWatcher、ExceptionWatcher、DumpWatcher、FramePerfWatcher に加え、HTTP、モデル、キャッシュ、イベント、ゲート、DB クエリをカバーする Magic 固有のアダプター 6 個
🤖10 個の MCP ツールtelescope_requests、telescope_tail、telescope_exceptions、telescope_events、telescope_gates、telescope_dumps、telescope_queries、telescope_caches、telescope_frames、telescope_clear
🖥11 個の CLI コマンドtelescope:install、telescope:tail、telescope:requests、telescope:queries、telescope:caches、telescope:events、telescope:gates、telescope:dumps、telescope:frames、telescope:clear、telescope:files
🔌アダプターの契約TelescopeHttpAdapter(抽象クラス、3 メソッド構成)を使って任意の HTTP クライアントを接続できます。標準の Dio 向けに DioHttpAdapter が付属します
📋10 種類のレコード不変の HttpRequestRecord、LogRecordEntry、ExceptionRecord、MagicModelRecord、MagicCacheRecord、EventRecord、GateRecord、DumpRecord、QueryRecord、FramePerfRecord
📡VM Service 拡張機能14 個の拡張機能:ext.telescope.requests、.console、.exceptions、.events、.gates、.dumps、.queries、.caches、.frames、.clear、.pause、.resume、.files、.file。.console と .events は since を受け取り、cursor で応答します。.events は type も受け取り、.console は logger も受け取ります
✨Magic との統合MagicTelescopeIntegration.install() を呼び出すと、1 回で Http ファサードアダプターとモデル/キャッシュ/イベント/ゲートのウォッチャーを接続します(開発依存関係の magic_devtools に付属)
🙈認証情報のマスキングHTTP レコードはバッファーに格納される前にマスキングされます(Laravel Telescope の方式)。Authorization、Cookie、X-Api-Key ヘッダーと、password/token 形式の JSON キーは ******** として読み取られます。TelescopeRedaction.hide* で対象リストを拡張できます
🧽テキストの秘匿化TelescopeRedaction.redactor は、すべてのログ、イベント、例外、HTTP レコード(ペイロードのキーを含む)に対し、挿入時に実行されるホスト側の String Function(String) フックです。秘匿化関数が例外をスローするとレコードは破棄されます。レコードには読み取り専用の redacted フラグが付きます
💾ファイルシンクTelescopeFileSink.start(directory:, maxFileBytes:, maxFiles:) は、秘匿化済みのログ、イベント、例外レコードのローテーション対応 JSONL タイムラインを書き込みます。telescope:files、ext.telescope.files、ext.telescope.file で読み取れます。秘匿化済みのレコードのみを書き込み、書き込みに失敗すると停止します
🔒呼び出し箇所のゲート利用側で呼び出し箇所にガードを設置します:kDebugMode(telescope:install が書き込む内容)または !kReleaseMode(profile ビルドも維持)。release ビルドでは、すべてのプラットフォームで Telescope 分岐全体がツリーシェイクされます
🔄冪等なインストールすべての registerExtension 呼び出しは registerExtensionIdempotent を経由します。ホットリスタートに対応し、再登録時に ArgumentError は発生しません

クイックスタート

オプション A(推奨):一括インストール

依存関係を追加したら、Telescope 独自の CLI エントリーポイントで自動セットアップします。事前に fluttersdk_artisan を接続する必要はありません。Telescope のバイナリには artisan の基盤が含まれているため、新規の利用側プロジェクトでもインストールできます。

flutter pub add fluttersdk_telescope
dart run fluttersdk_telescope telescope:install

このコマンドは、利用側の artisan ハーネスが存在しない場合に生成し(bin/dispatcher.dart と lib/app/_plugins.g.dart)、plugin:install fluttersdk_telescope を実行して、Magic.init() の前(標準の Flutter では runApp の前)に TelescopePlugin.install() が実行されるよう lib/main.dart を修正します。冪等なので、何度でも安全に実行できます。

日常的に繰り返し使う場合は、利用側の ./bin/fsa(インストール時にビルドされる artisan のネイティブ AOT バイナリ)を使うと、ウォームスタートが約 110 ms になります。

./bin/fsa telescope:tail
./bin/fsa telescope:requests

dart run fluttersdk_telescope <cmd> は、AOT バンドルがなくても常に動作する低速(コールドスタートで約 3 秒)の代替手段として引き続き利用できます。

オプション B:手動で接続
1. 依存関係を追加する
# pubspec.yaml
dependencies:
  fluttersdk_telescope: ^0.0.4
2. main.dart にインストールする

Magic.init() の前に(通常の Flutter では runApp の前に)Telescope をインストールします。リリースビルドでツール関連の分岐全体がツリーシェイクされるよう、インストール呼び出しはすべて呼び出し箇所でモードガードで囲みます。telescope:install が書き込む kDebugMode、またはプロファイルビルドも維持する !kReleaseMode を使用します(パフォーマンス測定に必要であり、magic_devtools もこちらを使用します)。

import 'package:flutter/foundation.dart';
import 'package:fluttersdk_telescope/telescope.dart';
import 'package:magic_devtools/telescope.dart'; // magic_devtools dev_dependency (Magic-stack apps only)

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  // 1. Install Telescope core (auto-installs LogWatcher + registers VM extensions).
  if (!kReleaseMode) {
    TelescopePlugin.install();

    // 2. Opt-in watchers registered after install().
    TelescopePlugin.registerWatcher(ExceptionWatcher());
    TelescopePlugin.registerWatcher(DumpWatcher());
  }

  // 3. Magic-side adapters run AFTER Magic.init() because they resolve
  //    framework internals (Http facade, Gate manager) from the IoC container.
  await Magic.init(configFactories: [...]);

  if (!kReleaseMode) {
    // MagicTelescopeIntegration ships in magic_devtools (not magic core).
    // Add magic_devtools to dev_dependencies in pubspec.yaml.
    MagicTelescopeIntegration.install();
  }

  runApp(MyApp());
}
3. Artisan プロバイダーを登録する(MCP ツール)

利用側の bin/dispatcher.dart(dart run fluttersdk_artisan install によって生成されます)では、plugin:install fluttersdk_telescope の後、lib/app/_plugins.g.dart を通じて Telescope が自動検出されます。プロバイダーを手動で設定する場合は、baseProviders リストに FluttersdkTelescopeArtisanProvider() を追加すると、10 個の telescope_* MCP ツールを Claude Code やその他の MCP クライアントから利用できるようになります。

import 'package:fluttersdk_artisan/artisan.dart';
import 'package:fluttersdk_telescope/cli.dart' show FluttersdkTelescopeArtisanProvider;

exit(await runArtisan(
  args,
  baseProviders: [
    FluttersdkTelescopeArtisanProvider(),
    // ...other providers (DuskArtisanProvider, etc.)
  ],
));

ウォッチャー

ウォッチャーキャプチャ対象自動インストール?備考
LogWatcherすべての package:logging Logger 呼び出しはいTelescopePlugin.install() によって自動的にインストールされます。
ExceptionWatcherFlutterError.onError + PlatformDispatcher.onError による未処理の例外いいえインストール後に TelescopePlugin.registerWatcher(ExceptionWatcher()) を呼び出します。どちらのフックも、以前に登録されたハンドラー(Sentry、Bugsnag など)をチェーンして保持します。
DumpWatcherdebugPrint + print の出力いいえdebugPrint をグローバルにオーバーライドし、以前のオーバーライドもチェーンして保持します。デバッグモードでのみ有効です。
MagicHttpFacadeAdapterMagic の Http ファサードを経由する HTTP トラフィックいいえTelescopePlugin.registerHttpAdapter(MagicHttpFacadeAdapter()) で登録します。Magic フレームワークが必要です。
MagicModelWatcherMagic Eloquent モデルの create、save、delete のライフサイクルイベントいいえTelescopePlugin.registerWatcher(MagicModelWatcher()) で登録します。Magic フレームワークが必要です。
MagicCacheWatcherCache.get / put / forget / flush(ヒット + ミス + put + forget + flush 操作)いいえMagic 側の CacheHit / CacheMiss / CachePut / CacheForget / CacheFlush イベントを購読します。Magic フレームワークが必要です。
MagicEventWatcherMagic の Event ファサードを通じてディスパッチされたイベントいいえTelescopePlugin.registerWatcher(MagicEventWatcher()) で登録します。Magic フレームワークが必要です。
MagicGateWatcherGate.allows / Gate.denies による認可チェックいいえTelescopePlugin.registerWatcher(MagicGateWatcher()) で登録します。Magic フレームワークが必要です。
MagicQueryWatcherMagic の SQLite + リモート DB クエリ(sql、bindings、timeMs、connection)いいえデータベースコネクターによってディスパッチされる Magic 側の QueryExecuted イベントを購読します。Magic フレームワークが必要です。
FramePerfWatcherFlutterTimeline のブロック帰属情報と結合した、フレームごとの build/raster/vsync オーバーヘッド時間いいえTelescopePlugin.registerWatcher(FramePerfWatcher()) で登録します。読み取りごとに、静的な livenessCounter も公開します。

MCP ツール

利用側が TelescopeArtisanProvider を登録すると公開されます(lib/app/_plugins.g.dart と bin/dispatcher.dart を介して telescope:install が自動配線します)。すべてのツールは ext.telescope.* VM Service 拡張機能を経由し、Flutter アプリが実行中である必要があります。

ツール拡張機能メソッド取得する内容
telescope_tailext.telescope.consoleログのリングバッファ(package:logging のレコード)。レベルと件数でフィルタリングできます。
telescope_requestsext.telescope.requestsHTTP リクエストのリングバッファ(メソッド、URL、ステータス、所要時間、ヘッダー、本文の一部)。
telescope_exceptionsext.telescope.exceptions未捕捉例外のリングバッファ(型、メッセージ、スタックトレース)。
telescope_clearext.telescope.clearすべてのリングバッファをアトミックに消去します。パラメーターはありません。
telescope_eventsext.telescope.eventsアプリ内イベントのリングバッファ(Magic の Event.dispatch 呼び出し。イベントの型とペイロード)。
telescope_gatesext.telescope.gatesGate 認可チェックのリングバッファ(能力、結果、ユーザー ID、引数の型)。
telescope_dumpsext.telescope.dumpsdebugPrint 出力のリングバッファ(メッセージとタイムスタンプ)。
telescope_queriesext.telescope.queriesDB クエリのリングバッファ(sql、bindings、timeMs、connectionName)。
telescope_cachesext.telescope.cachesキャッシュ操作のリングバッファ(操作:hit/miss/put/forget/flush、キー、ttlMs)。
telescope_framesext.telescope.framesフレームごとのパフォーマンスリングバッファ(build/raster/vsync-overhead/total-span のマイクロ秒、ブロックの帰属)と livenessCounter。

CLI コマンド

TelescopeArtisanProvider.commands() を介して登録されます。telescope:install の後、コマンドは 3 つの方法で実行できます。利用側の fast-cli(./bin/fsa <command>、推奨)、telescope のスタンドアロン bin(dart run fluttersdk_telescope <command>)、または利用側の dispatcher フォールバック(dart run fluttersdk_artisan <command>)です。

コマンド目的
telescope:install初回セットアップを実行します。利用側の artisan ハーネスを生成し、plugin:install fluttersdk_telescope を実行して、TelescopePlugin.install() を lib/main.dart に挿入します。await Magic.init( アンカーを使って Magic スタックのアプリを検出し、Magic.init より前に挿入します。該当しない場合は、通常の Flutter アプリ向けに runApp( に挿入します。
telescope:tailログバッファを表示します。--level、--limit、--since <atUs>、--logger <name> でフィルタリングできます。--json は 1 行につき 1 つの JSON オブジェクトを出力します。--follow は中断されるまで、返されたカーソルからポーリングを続けます。
telescope:requestsHTTP リクエストバッファを表示します(ページ分割)。
telescope:queriesDB クエリバッファを表示します(ページ分割)。
telescope:cachesキャッシュ操作バッファを表示します(ページ分割)。
telescope:eventsアプリ内イベントバッファを表示します。--limit、--since <atUs>、--type <prefix> でフィルタリングできます。--json と --follow は telescope:tail と同様です。
telescope:gatesGate 認可チェックバッファを表示します(ページ分割)。
telescope:dumpsdebugPrint ダンプバッファを表示します(ページ分割)。
telescope:framesフレームごとのパフォーマンスバッファを表示します(ページ分割)。
telescope:clearすべてのバッファをアトミックに消去します。
telescope:files実行中のファイルシンクのタイムラインファイルを一覧表示します。または、--name=<file> と --offset=<n>(0 または前回の next。-v で次のオフセットを表示)を指定して、ファイルの行を表示します。

両方の --follow フラグの背後にある純粋な Dart ループ followCursor は、package:fluttersdk_telescope/cli.dart からエクスポートされています。

例

example/

Magic フレームワークを使わない通常の Flutter アプリで、フレームワークに依存しないすべての取得機能を試せます。Telescope Dio インターセプター経由の HTTP トラフィック、package:logging 経由のログ出力、ExceptionWatcher 経由の未捕捉例外、DumpWatcher 経由の debugPrint 出力が対象です。最小限のインストールパターンと、アプリ内オーバーレイダッシュボードを紹介します。

cd example && flutter run -d chrome

アーキテクチャ

Telescope は lib/src/ の下でサブシステムを中心に構成されており、各ディレクトリが単一の関心事を担当します。

lib/
├── telescope.dart              # Single barrel, re-exports the full public API
├── cli.dart                    # Flutter-free codegen barrel (FluttersdkTelescopeArtisanProvider typedef, followCursor)
└── src/
    ├── watchers/               # TelescopeWatcher abstract contract + LogWatcher, ExceptionWatcher, DumpWatcher
    ├── adapters/               # TelescopeHttpAdapter abstract contract + DioHttpAdapter concrete impl
    ├── records/                # Immutable record types: HttpRequestRecord, LogRecordEntry, ExceptionRecord, etc.
    ├── extensions/             # registerAllTelescopeExtensions() aggregator + per-concern VM Service handlers
    ├── commands/               # TelescopeInstallCommand + 10 read/clear/files commands
    ├── telescope_store.dart    # 10-buffer ring store (singleton); Queue<T> per buffer + broadcast StreamController<T>
    ├── telescope_redaction.dart # credential lists + the host text redactor applied at insert
    ├── telescope_file_sink.dart # TelescopeFileSink: rotating JSONL timeline of redacted records
    ├── cursor_follow.dart      # followCursor, the loop behind --follow (exported from cli.dart)
    ├── telescope_plugin.dart   # TelescopePlugin.install() entry + registerHttpAdapter() + registerWatcher()
    └── telescope_artisan_provider.dart  # TelescopeArtisanProvider: 11 commands + 10 MCP tool descriptors

起動フロー:

TelescopePlugin.install()
    ↓
Register default watchers (LogWatcher auto-installs)
    ↓
registerAllTelescopeExtensions()   # 14 ext.telescope.* VM Service extensions, idempotent
    ↓
Consumer registers TelescopeArtisanProvider (auto-wired by `telescope:install` via bin/dispatcher.dart + _plugins.g.dart)
    ↓
artisan mcp:serve   ->   10 telescope_* tools surface to MCP clients (Claude Code, Cursor, etc.)

具体的なウォッチャーとレコードの型はすべて final class です。2つのアダプターコントラクト(TelescopeWatcher、TelescopeHttpAdapter)は、固定された3メソッドのシグネチャー(name、install、uninstall)を持つ abstract class です。Magic 側のグルーコード(MagicHttpFacadeAdapter、MagicModelWatcher など)はこれらのコントラクトに依存しています。シグネチャーを変更する場合は、両方のリポジトリで連携したバージョンアップが必要です。

比較

ツール機能telescope の優位点
Sentry Flutter外部 SaaS による本番環境のクラッシュおよびパフォーマンスレポートローカルのみ、デバッグ時のみで動作します。CLI と MCP からエージェントがクエリできます。DSN も SaaS アカウントも不要です。
Talker / talker_flutterアプリ内ログオーバーレイ、Dio インターセプターツールからクエリ可能な VM Service サーフェス、AI エージェント向け MCP サーバー、フレームワークを認識するモデル/キャッシュ/イベント/ゲートのウォッチャーを備えています。
Aliceアプリ内 HTTP リクエストのオーバーレイ UIHTTP だけでなく10個のバッファーをキャプチャーします。受動的に動作し(開くために端末を振る必要があるオーバーレイはありません)、CLI ストリーミング、AI エージェントからのアクセス、デバッグ時のツリーシェイキングに対応しています。
Flutter DevTools公式のブラウザーベースのインスペクター人がブラウザー経由で確認するだけでなく、CLI と MCP からプログラムでアクセスできます。反復作業の合間にもクエリできるリングバッファー方式のレコードを備え、ドメインを認識する(Magic)ウォッチャーに対応しています。
mcp_flutterAI 主導の UI 操作(タップ、スクロール、スナップショット)向け MCP ツールキット競合するのではなく、相互補完します。telescope はランタイムテレメトリー(HTTP、例外、クエリ)を担当し、mcp_flutter は UI 自動化を担当します。

AI エージェントとの連携

Telescope は、UI 自動化ではなくランタイムの可観測性(HTTP、例外、クエリ、キャッシュ)に重点を置いた、初の Flutter MCP サーバーです。10個の telescope_* ツールにより、Claude Code、Cursor、Codex、その他あらゆる MCP 対応エージェントが、すべてのランタイムバッファーに直接読み取りアクセスできます。プロキシーなしで HTTP トラフィックを調査し、出力を grep せずにログを読み取り、DevTools をスクロールせずに例外を検出できます。

1行で .mcp.json を設定

telescope:install は .mcp.json を自動で作成します。または、MCP 対応クライアント向けに手動で設定できます。

// .mcp.json (project root) — Claude Code / Codex / Cursor / Goose / VS Code Copilot
{
  "mcpServers": {
    "fluttersdk": {
      "command": "./bin/fsa",
      "args": ["mcp:serve"],
      "cwd": "."
    }
  }
}

その後、MCP クライアントを再起動してください。10個の telescope_* ツール(および基盤の artisan_* ツール)が /mcp に自動的に表示されます。

導入前/導入後
telescope なしtelescope あり
スタックトレースがコンソールに表示されます。それをコピーして Claude に貼り付けます。Claude は、原因となった HTTP レスポンスを尋ねます。スクロールして、コピーして、貼り付けます。Claude が telescope_exceptions を呼び出し、タイムスタンプとスタックトレース付きでキャプチャーされた直近500件の例外を読み取ります。続けて telescope_requests を呼び出し、対応する HTTP レコードを読み取ります。Claude が修正案を提示します。
ホットリロードして再試行し、再び貼り付けます。Claude が反復作業の合間に telescope_clear を呼び出します。あなたが間に入ることなく、修正のループが完結します。
エージェントの一般的なセッション
[agent] artisan_start { device: chrome }          // launch the app
[agent] <exercise the feature under inspection>
[agent] telescope_requests {}                     // inspect all HTTP calls made
[agent] telescope_tail { level: warning }         // filter logs to warnings and above
[agent] telescope_exceptions {}                   // check for any uncaught exceptions
[agent] telescope_queries {}                      // review DB queries and timings
[agent] telescope_clear {}                        // flush buffers before the next scenario
[agent] artisan_stop                              // tear down

接続時に構造化されたプロジェクトコンテキストを読み取るエージェント向けの正式なエントリーポイントは、リポジトリのルートにある llms.txt です(https://fluttersdk.com/telescope/llms.txt でも公開されています)。ウォッチャーの一覧、VM 拡張カタログ、すべての MCP ツール入力スキーマを、エージェントが読み取れる形式でまとめています。

ドキュメント

ライブサンプル付きの完全なドキュメントは fluttersdk.com/telescope をご覧ください。

トピック
はじめに概要、要件、最初のインストール
ウォッチャー10 種類すべてのウォッチャー:セットアップ、チェーン保持パターン、Magic アダプター
MCP ツールすべてのツール、すべての入力スキーマ、フィルターパラメーター
レダクション認証情報リスト、TelescopeRedaction.redactor、redacted フラグ
ファイルシンクTelescopeFileSink、ローテーション、フェイルクローズ書き込み、telescope:files
バッファーTelescopeStore.setCapacity、TelescopeKind、atUs、limit、minLevel のセマンティクス
カーソルとフィルター読み取り拡張機能の since / type / logger / cursor、--follow、followCursor

コントリビューション

git clone https://github.com/fluttersdk/telescope.git
cd telescope && dart pub get
flutter test && dart analyze

現在、497 件のテストがすべて成功しています。新しい動作には対応するテストを追加してください(レッド、グリーン、リファクタリング)。dart format lib/ test/ bin/ で差分が発生せず、dart analyze で lib/、test/、bin/ の問題がゼロである必要があります。

プルリクエストを作成する前に、次のコマンドも実行してください。

dart format lib/ test/ bin/         # zero diff
dart analyze                         # zero issues
dart pub publish --dry-run           # validate the publish archive

バグを報告 · 機能をリクエスト

インスピレーション

Telescope は、Laravel のあらゆるリクエスト、例外、ログ、クエリ、キャッシュヒット、イベントを検索可能なタイムラインに記録する、洗練された開発者向けツールアシスタントである Laravel Telescope に着想を得ています。同じパターンを Flutter に移植し、2026 年にふさわしい 2 つの機能を追加しています。ターミナルネイティブな開発者向けの CLI ファーストなインターフェイスと、AI コーディングエージェントがタイムラインを直接読み取れる 10 ツールの MCP サーバーです。

Magic SDK スイートの一部

Telescope は、Laravel に着想を得た Flutter エコシステムである FlutterSDK Magic suite の 7 つのパッケージのうちの 1 つです。

  • magic — Laravel スタイルのフレームワーク(ファサード、ORM、プロバイダー、コントローラー、ルーティング)
  • wind — Flutter 向けの Tailwind スタイルの className UI プリミティブ
  • fluttersdk_artisan — Telescope が拡張する、純粋な Dart の CLI + MCP 基盤
  • fluttersdk_dusk — VM 拡張機能を介した E2E ジェスチャー/スナップショットドライバー
  • fluttersdk_telescope(このパッケージ) — VM 拡張機能 + MCP によるランタイムの可観測性
  • magic_tinker — 実行中のアプリに接続する REPL
  • magic_starter — 認証/プロフィール/チームのスキャフォールディング

ライセンス

MIT ライセンスです。詳細は LICENSE をご覧ください。


FlutterSDK が心を込めて開発しました
Telescope がデバッグの時間短縮に役立ったら、スターを付けてください。ほかの人が見つけやすくなります。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。