mcpField
M
MIST - Model Intelligence System for Tasks

MIST - Model Intelligence System for Tasks

ローカル
github.com/CLoaKY233生産性1370 週間前に更新

MIST - Model Intelligence System for Tasks について

MISTは、ローカルのノート、Gmail、Google Calendar、Tasks、Git操作をAIアシスタントにつなぐMCPサーバーです。標準プロトコルを通じて、各サービスの参照や管理機能を提供します。

主な機能

  1. 01ローカルノートの作成・検索・整理
  2. 02Gmailの検索・閲覧・送信
  3. 03Google Calendarの予定管理
  4. 04タスクの作成と完了
  5. 05Gitリポジトリの確認と操作

活用シーン

  1. 01会話中にノートを整理・検索
  2. 02メールを検索して返信を送信
  3. 03予定やタスクの作成・更新
  4. 04Gitの変更確認とブランチ管理

MCP 対応

MISTはノート、Gmail、カレンダー、タスク、GitのツールをMCPクライアントに提供します。認証、データ取得、操作を処理し、構造化データを返します。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

MIST - タスク向けモデルインテリジェンスシステム

MIST バナー

MIST は、メモ管理、Gmail、カレンダー、タスク、Git との連携により、AI アシスタントに実用的な機能を提供する包括的な MCP(Model Context Protocol)サーバーです。AI アシスタントと外部ツールの橋渡しをし、標準化されたプロトコルを通じて、データやサービスとやり取りできるようにします。

ライセンス:MIT Python バージョン バージョン

概要

MIST を使うと、AI アシスタントは次のことができます。

  • メモを管理する:永続ストレージを使用して、メモの作成、編集、検索、整理を行います
  • Gmail を操作する:メールの検索、メッセージの閲覧、メールの送信、ラベルの管理を行います
  • カレンダーの予定を管理する:Google カレンダーの予定の表示、作成、更新、削除を行います
  • タスクを整理する:タスクリストの作成、タスクの追加、タスクの完了処理を行います
  • Git リポジトリを操作する:ステータス、差分、コミット、ブランチ管理などの Git 操作を行います

MIST は Model Context Protocol(MCP)を実装することで、AI アシスタントが外部システムで操作を実行し、リアルタイムの情報にアクセスし、やり取りをまたいでコンテキストを保持できるようにします。

主な機能

メモ管理
  • リッチテキスト形式でメモを作成、保存します
  • 内容、タグ、メタデータでメモを検索します
  • メモやメモのコレクションの要約を生成します
  • 件名、日付、カスタムカテゴリでメモを整理します
  • ファイルシステム上にメモをローカル保存します
Gmail 連携
  • 高度なフィルタリングオプションでメールを検索します
  • メールの全文を読み込みます
  • メールを作成して送信します
  • メールのラベルと整理方法を管理します
  • メッセージを既読または未読に設定します
  • 複数のメッセージに対する一括操作を行います
カレンダー連携
  • 利用可能なすべてのカレンダーを一覧表示します
  • カレンダーの予定を作成、管理します
  • 既存の予定を更新します
  • キーワードや期間で予定を検索します
  • 予定の詳細情報を表示します
タスク連携
  • タスクリストを一覧表示、管理します
  • タイトル、メモ、期限を指定してタスクを作成します
  • タスクを完了に設定します
  • 完了したタスクを削除します
  • タスクを複数のリストに分類します
Git 連携
  • ローカルリポジトリで Git 操作を実行します
  • ステータス、差分、コミット履歴を表示します
  • 変更をコミットし、ブランチを管理します
  • ブランチを作成、チェックアウト、マージします
  • リモートリポジトリを管理します
  • コミットの詳細と変更内容を表示します

今後のロードマップ

MIST は、より多くの連携機能や機能を提供できるよう、継続的に進化しています。今後、次の機能を追加する予定です。

ドキュメントとファイルの管理
  • Google Drive 連携:ファイルへのアクセスと管理、ドキュメントの検索、内容の分析を行います
  • Google Sheets 連携:データ分析用のスプレッドシートを作成、読み込み、更新します
検索と情報へのアクセス
  • Google Custom Search:調査や情報検索に使えるウェブ検索機能を提供します
  • ナレッジベース:オフラインでアクセスできる情報のローカルリポジトリを構築します
コラボレーションツール
  • Google Classroom:コース、課題、教材にアクセスします
  • Google Chat:チームでのコラボレーションに向けて、チャットスペースやメッセージを操作します
データと位置情報サービス
  • Google Forms:データ収集用のフォームを作成、管理します
  • Google Maps:ジオコーディングやルート案内など、位置情報に基づくサービスを追加します
プラットフォームの改善
  • キャッシュ機能の強化:頻繁にアクセスされるデータのパフォーマンスを向上させます
  • マルチユーザー対応:ユーザープロファイルと権限管理を追加します
  • AI アシスタントとの互換性拡大:より多くの AI アシスタントとモデルに対応します

これらの分野への貢献を歓迎します!参加方法の詳細は、貢献ガイドラインをご確認ください。

システムアーキテクチャ

MIST は、AI アシスタントをさまざまなサービスに接続する MCP サーバーとして動作します。適切なサービスで認証、データ取得、アクションを処理し、構造化データを AI アシスタントに返します。

flowchart TB
    User[User] -->|Requests action| AI[AI Assistant]
    AI -->|Sends MCP request| MIST[MIST Server]

    subgraph "MIST Server Components"
        Router[MCP Request Router]
        NoteMgr[Note Manager]
        GmailMgr[Gmail Manager]
        TasksMgr[Tasks Manager]
        CalendarMgr[Calendar Manager]
        GitMgr[Git Manager]
        Auth[Authentication]
    end

    MIST --> Router
    Router -->|Note requests| NoteMgr
    Router -->|Gmail requests| GmailMgr
    Router -->|Tasks requests| TasksMgr
    Router -->|Calendar requests| CalendarMgr
    Router -->|Git requests| GitMgr
    GmailMgr -->|Auth requests| Auth
    TasksMgr -->|Auth requests| Auth
    CalendarMgr -->|Auth requests| Auth

    NoteMgr -->|Store/Retrieve| NoteDB[(Note Storage)]
    GmailMgr -->|API Calls| Gmail[(Gmail API)]
    TasksMgr -->|API Calls| Tasks[(Tasks API)]
    CalendarMgr -->|API Calls| Calendar[(Calendar API)]
    GitMgr -->|Git Operations| GitRepos[(Git Repositories)]

    MIST -->|Returns response| AI
    AI -->|Presents result| User
通信フロー
sequenceDiagram
    participant User
    participant AI as AI Assistant
    participant MIST as MIST Server
    participant Services as External Services

    User->>AI: "Send an email to John"
    AI->>MIST: MCP Request (action: sendEmail)
    MIST->>Services: Authenticate & API Call
    Services->>MIST: Response
    MIST->>AI: Structured Response
    AI->>User: "Email sent to John"

    User->>AI: "Take notes about my project"
    AI->>MIST: MCP Request (action: createNote)
    MIST->>Services: Store Note
    Services->>MIST: Confirmation
    MIST->>AI: Success Response
    AI->>User: "Notes saved successfully"

インストール

前提条件
  • Python 3.13 以降
  • UV パッケージマネージャー(推奨)または pip
  • Google アカウント(Gmail/Calendar/Tasks との連携用)
  • Git(Git 連携機能用)
セットアップ
  1. このリポジトリをクローンします。

    git clone https://github.com/cloaky233/mist.git
    cd mist
    
  2. 依存関係をインストールします。

    UV を使用する場合(推奨):

    uv install
    

    pip を使用する場合:

    pip install -e .
    
  3. 環境を設定します。

    # Create a .env file with your configuration
    echo "MIST_NOTES_DIR=/path/to/your/notes/directory" > .env
    echo "MIST_GOOGLE_CREDENTIALS_PATH=./credentials.json" >> .env
    echo "MIST_GOOGLE_TOKEN_PATH=./token.json" >> .env
    

    .env ファイルを編集して、環境に適したパスを設定します。

環境設定

.env ファイルには、次の環境変数を設定できます。

# Notes storage configuration
MIST_NOTES_DIR=/path/to/notes/directory

# Google API configuration
MIST_GOOGLE_CREDENTIALS_PATH=./credentials.json
MIST_GOOGLE_TOKEN_PATH=./token.json

Google API の設定

Gmail、Calendar、Tasks API の設定
flowchart TD
    A[Start] --> B[Create Google Cloud Project]
    B --> C[Enable Required APIs]
    C --> D[Configure OAuth Consent Screen]
    D --> E[Create OAuth Credentials]
    E --> F[Download credentials.json]
    F --> G[Run MIST First Time]
    G --> H[Complete OAuth Flow]
    H --> I[OAuth Token Saved]
    I --> J[MIST Ready for Google Integration]
  1. Google Cloud プロジェクトを作成する

    • Google Cloud Console に移動します
    • 新しいプロジェクトを作成するか、既存のプロジェクトを選択します
    • 内容がわかる名前を付けます(例:「MIST Integration」)
  2. 必要な API を有効にする

    • 「APIs & Services」>「Library」に移動します
    • 次の API を検索して有効にします。
      • Gmail API
      • Calendar API
      • Tasks API
  3. OAuth 同意画面を設定する

    • 「APIs & Services」>「OAuth consent screen」に移動します
    • ユーザータイプとして「External」を選択します(Google Workspace の場合は「Internal」)
    • 必要な情報を入力します。
      • アプリ名:「MIST Integration」
      • ユーザーサポートのメールアドレス:ご自身のメールアドレス
      • デベロッパーの連絡先情報:ご自身のメールアドレス
    • 「Save and Continue」をクリックします
    • 各 API に必要なスコープを追加します
    • テストユーザーとしてご自身の Google アカウントを追加します
  4. OAuth 認証情報を作成する

    • 「APIs & Services」>「Credentials」に移動します
    • 「Create Credentials」>「OAuth client ID」をクリックします
    • アプリケーションの種類として「Desktop application」を選択します
    • 名前を入力します(例:「MIST Desktop Client」)
    • JSON ファイルをダウンロードし、プロジェクトディレクトリに credentials.json として保存します

使用方法

MCP サーバーの実行

次のコマンドで MCP サーバーを起動します。

uv run --with mcp[cli] --with-editable . mcp run mist/server.py

本番環境では、systemd、supervisor、pm2 などのプロセスマネージャーを使用するとよいでしょう。

AI アシスタントへの接続
Claude Desktop

Claude Desktop の設定に次の内容を追加します。

{
  "mcpServers": {
    "M.I.S.T.": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "mcp[cli]",
        "--with-editable",
        "/path/to/mist",
        "mcp",
        "run",
        "/path/to/mist/server.py"
      ],
      "env": {
        "MIST_GOOGLE_CREDENTIALS_PATH": "/path/to/mist/credentials.json",
        "MIST_GOOGLE_TOKEN_PATH": "/path/to/mist/token.json",
        "MIST_NOTES_DIR": "/path/to/notes"
      }
    }
  }
}
Zed Editor

Zed Editor の設定に次の内容を追加します。

"context_servers": {
  "mist-server": {
    "command": {
      "path": "uv",
      "args": [
        "run",
        "--with",
        "mcp[cli]",
        "--with-editable",
        "/path/to/mist",
        "mcp",
        "run",
        "/path/to/mist/server.py"
      ],
      "env": {
        "MIST_GOOGLE_CREDENTIALS_PATH": "/path/to/mist/credentials.json",
        "MIST_GOOGLE_TOKEN_PATH": "/path/to/mist/token.json",
        "MIST_NOTES_DIR": "/path/to/notes"
      }
    },
    "settings": {
      "enable_server": true
    }
  }
}
初回実行時の認証

サーバーを初めて実行するときは、Google で認証する必要があります。

  1. Google の認証ページがブラウザーウィンドウで開きます
  2. Google アカウントにサインインします
  3. 要求された権限を許可します
  4. 認証コードが自動的に取得されます
  5. MIST は今後の利用に備えて認証トークンを保存します

API リファレンス

ノート管理 API
関数説明パラメーター
add_note新しいノートを作成しますtitle、content、subject(任意)
read_noteID またはタイトルでノートを読み込みますnote_id または title
list_notesフィルターを指定してノートを一覧表示しますsubject、tag、limit
search_notes内容でノートを検索しますquery
edit_note既存のノートを更新しますnote_id、new_content
delete_noteノートを削除しますnote_id
Gmail API
関数説明パラメーター
search_emails条件を指定してメールを検索します各種フィルター
get_emailsID を指定してメールの内容を取得しますmessage_ids
send_email新しいメールを送信しますto、subject、body など
list_available_labelsGmail のラベルを取得しますなし
Calendar API
関数説明パラメーター
list_calendars_toolすべてのカレンダーを一覧表示しますなし
create_event_toolカレンダーの予定を作成しますcalendar_id、title など
search_events_toolカレンダーの予定を検索しますcalendar_id、query など
Tasks API
関数説明パラメーター
list_task_lists_toolすべてのタスクリストを一覧表示しますなし
create_task_tool新しいタスクを作成しますtask_list_id、title など
complete_task_toolタスクを完了としてマークしますtask_list_id、task_id
Git API

以下は、よく使用される Git ツールの一部です。すべてのツールと詳細なパラメーターについては、API リファレンスを参照してください。

関数説明主なパラメーター
status_tool作業ツリーの状態を表示しますrepo_path
diff_unstaged_toolステージングされていない変更を表示しますrepo_path
diff_staged_toolステージング済みの変更を表示しますrepo_path
add_toolコミットするファイルをステージングしますrepo_path、files
reset_tool現在の HEAD をリセットするか、ファイルのステージングを解除しますrepo_path、commit_ish(任意)、mode(任意)
commit_toolステージング済みの変更をコミットしますrepo_path、message
log_toolコミット履歴を表示しますrepo_path、max_count(任意)
branch_list_toolすべてのブランチを一覧表示しますrepo_path
create_branch_tool新しいブランチを作成しますrepo_path、branch_name、base_branch(任意)
checkout_toolブランチを切り替えますrepo_path、branch_name
merge_toolブランチをマージするか、マージ状態を管理しますrepo_path、branch(任意)、abort(任意)
rebase_tool現在のブランチをリベースするか、リベース状態を管理しますrepo_path、branch_or_commit(任意)、interactive(任意)、abort(任意)、continue_rebase(任意)
stash_save_tool現在の変更をスタッシュしますrepo_path、message(任意)
pull_toolリモートから変更をプルしますrepo_path、remote(任意)、branch(任意)
push_toolリモートに変更をプッシュしますrepo_path、remote(任意)、branch(任意)、force(任意)、tags(任意)

プロジェクト構成

mist/
├── __init__.py               # Package initialization with version info
├── server.py                 # Main MCP server entry point
├── tools/                    # Tool implementations
│   ├── note_tools/           # Note management
│   │   ├── __init__.py
│   │   └── tool.py           # Note tool implementations
│   ├── gmail_tools/          # Gmail integration
│   │   ├── __init__.py
│   │   ├── config.py         # Gmail-specific config
│   │   ├── gmail.py          # Gmail API utilities
│   │   └── tool.py           # Gmail tool implementations
│   ├── calendar_tools/       # Calendar integration
│   │   ├── __init__.py
│   │   ├── calendar.py       # Calendar API utilities
│   │   ├── config.py         # Calendar-specific config
│   │   └── tool.py           # Calendar tool implementations
│   ├── tasks_tools/          # Tasks integration
│   │   ├── __init__.py
│   │   ├── config.py         # Tasks-specific config
│   │   ├── tasks.py          # Tasks API utilities
│   │   └── tool.py           # Tasks tool implementations
│   ├── git_tools/            # Git operations
│   │   ├── __init__.py
│   │   ├── config.py         # Git-specific config (imports from google_api)
│   │   ├── gitapi.py         # Core Git command implementations
│   │   └── tool.py           # Git tool functions exposed to MCP
│   ├── google_api/           # Common Google API utilities
│   │   ├── __init__.py
│   │   ├── client.py         # Google API client
│   │   └── config.py         # Shared Google API config
│   └── __init__.py           # Tools package init
├── config_docs/              # Configuration documentation
│   ├── api_reference.md      # API reference documentation
│   ├── configs.md            # Example configuration templates
│   ├── configuration_guide.md# Detailed configuration guide
│   └── troubleshooting_guide.md # Troubleshooting guide
├── .github/                  # GitHub configuration
│   └── ISSUE_TEMPLATE/       # Issue templates for bug reports, etc.
├── LICENSE                   # MIT License
├── CONTRIBUTING.md           # Contributing guidelines
├── README.md                 # Project documentation
├── pyproject.toml            # Project metadata and dependencies
├── uv.lock                   # UV lock file for dependencies
├── credentials.json          # Google API credentials (should be user-provided)
└── .env                      # Environment configuration (user-created)

セキュリティに関する考慮事項

  • API キーとトークンは、.env ファイルまたは環境変数に保存されます
  • OAuth トークンは、Google の認証フローによって安全に管理されます
  • データはお使いのデバイス上、またはご自身のアカウント内に保持されます
  • 明示的に設定しない限り、データがサードパーティサービスに送信されることはありません

トラブルシューティング

認証の問題
  • 認証情報が機能しない:token.json を削除して、再認証してください
  • 権限エラー:OAuth 同意画面で適切なスコープが設定されていることを確認してください
  • トークンの有効期限切れ:MIST はトークンを自動的に更新しますが、更新に失敗した場合は再認証が必要になることがあります
接続の問題
  • AI アシスタントが接続できない:設定内のパスが正しいことを確認してください
  • サーバーが起動しない:Python のバージョンを確認してください(3.13 以降が必要です)
  • API エラー:API キーと認証情報が正しく設定されていることを確認してください
データの問題
  • ノートが保存されない:MIST_NOTES_DIR のパスが存在し、書き込み可能であることを確認してください

開発

リントとフォーマット
ruff check .
ruff format .

貢献

貢献を歓迎します!始め方の詳細については、貢献ガイドラインをご覧ください。

  1. リポジトリをフォークします
  2. 機能ブランチを作成します:git checkout -b feature/amazing-feature
  3. 変更を加えてコミットします:git commit -m 'Add amazing feature'
  4. ブランチにプッシュします:git push origin feature/amazing-feature
  5. プルリクエストを作成します

ライセンス

このプロジェクトは MIT ライセンスの下でライセンスされています。詳細については、LICENSE ファイルをご覧ください。

謝辞

  • プロトコル仕様を提供する Model Context Protocol
  • Gmail、Calendar、Tasks との連携を提供する Google APIs

CLoaKY が ❤️ を込めて作成しました

コメント

MCP は初めてですか?

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

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