mcpField
N
NotionBae

NotionBae

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

NotionBae について

NotionBaeは、Notion APIを介してAIアシスタントとNotionワークスペースをつなぐ、.NET C#製のMCPサーバーです。Markdownをコンテンツの中間形式として使い、ページの検索、取得、作成、更新に対応します。

主な機能

  1. 01Notionページの検索と絞り込み
  2. 02Markdown形式でのページ内容取得
  3. 03内容を指定したページ作成
  4. 04ページ更新とブロック取得
  5. 05インテグレーショントークンでのワークスペースアクセス

活用シーン

  1. 01ワークスペース内の関連ページ検索
  2. 02ページ内容のAIアシスタントへの提供
  3. 03MarkdownからのNotionページ作成
  4. 04既存ページ内容の更新

MCP 対応

NotionBaeはMCPサーバーとして、Notionページやブロックの検索、取得、作成、更新ツールをクライアントに提供します。NotionワークスペースへのアクセスにはインテグレーションAPIキーが必要です。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

NotionBae

Notion.com と連携する Model Context Protocol(MCP)サーバーです。ModelContextProtocol を使用して、.NET C# で構築されています。NotionBae は Notion API を活用し、AI アシスタントと Notion ワークスペース間のシームレスなやり取りを実現します。

概要

NotionBae は、Model Context Protocol フレームワークを通じて、大規模言語モデルと Notion.com をつなぐブリッジを提供します。これにより、AI アシスタントは Notion のデータベース、ページ、コンテンツをシームレスかつ構造化された方法で操作できます。

機能

  • Notion API との連携
  • MCP 準拠のサーバー実装
  • Notion コンテンツの構造化データ処理
  • Notion ワークスペースへの認証と安全なアクセス

技術

  • Notion SDK for .NET:Notion API 用の包括的な .NET クライアントです。この SDK を基盤として使用しながら、いくつかの制約に対処するため、独自の NotionBaeRestClient を実装しています。
    • 元の SDK の REST クライアント実装は密結合で、依存性注入に関する .NET のベストプラクティスに従っていませんでした。
    • カスタムクライアントでは HttpClientFactory を適切に活用しています。これは、コネクションプーリングとライフタイム管理を適切に行ううえで重要です。
    • この再設計により、テストが容易になり、テストスイートでポリモーフィックな動作を実現できます。
    • このソリューションは、元の SDK の擬似 DI 実装ではなく、真の依存性注入を提供します。
  • Markdig:Notion のブロック構造と Markdown を相互に変換するために使用する、高速で強力かつ拡張可能な .NET 用 Markdown プロセッサーです。
Markdown を使う理由

NotionBae は、次のような理由から、Notion の複雑なブロック構造と AI エージェントの間の中間形式として Markdown を使用します。

  1. トークン効率:Notion API は、多くのプロパティを含む冗長なブロック構造でデータを返します。Markdown に変換することで、AI モデルが処理するトークン数を大幅に削減し、パフォーマンスの向上とコストの削減が期待できます。

  2. 読みやすさ:Markdown はもともと人間が読みやすい形式であるため、人間と AI エージェントの双方がコンテンツを利用しやすくなります。

  3. シンプルさ:特にコンテンツを生成する際、Markdown の使用は Notion の入れ子になったブロック構造を直接処理するよりもはるかに簡単です。

Notion API の生のレスポンスと Markdown のトークン使用量を比較した包括的なデータはありませんが、中間形式として Markdown を使用すると、効率が大幅に向上することを示す逸話的な証拠があります。

利用可能なツール

NotionBae は、Notion を操作するために次のツールを提供します。

ツール名説明パラメーター
nb_searchNotion のページを検索し、タイトルと公開 URL を返しますquery:String - Notion 内で一致するページを検索するための検索クエリ
nb_create_page指定したタイトル、説明、コンテンツで新しい Notion ページを作成しますparentId:String - 親ページの ID
title:String - 新しいページのタイトル
description:String - ページの説明
content:String - ページの Markdown コンテンツ
nb_get_page_contentメタデータと全コンテンツを Markdown 形式で含む Notion ページを取得しますpageId:String - 取得するページの ID
nb_get_blockNotion から特定のブロックとその子ブロックを取得しますblockId:String - 取得するブロックの ID
nb_search_pageフィルタリング機能を備えた高度なページ検索を行いますquery:String - 検索クエリ
filter:Object - 任意のフィルターパラメーター
nb_update_page既存の Notion ページを更新しますpageId:String - 更新するページの ID
content:String - ページの新しい Markdown コンテンツ

はじめに

1. Notion アカウントの設定
  1. Notion アカウントを作成する:まだアカウントをお持ちでない場合は、notion.so で Notion アカウントを作成してください。

  2. Notion インテグレーションを作成する:

    • Notion Developers にアクセスします
    • 「New integration」をクリックします
    • インテグレーションに名前を付けます(例:「NotionBae」)
    • インテグレーションを使用するワークスペースを選択します
    • 適切な機能を設定します(最低限、「Read content」と「Update content」を選択してください)
    • 「Submit」をクリックしてインテグレーションを作成します
  3. API キーを取得する:

    • インテグレーションを作成すると、「Internal Integration Secret」(API キー)が表示されます
    • NotionBae の設定に必要になるため、このキーをコピーします
  4. インテグレーションにページを共有する:

    • NotionBae 経由でアクセスしたい Notion ページを開きます
    • 右上の「Share」をクリックします
    • 「Add people, groups, or integrations」欄で、インテグレーション名を検索します
    • インテグレーションを選択して、そのページへのアクセス権を付与します
2. NotionBae のクローンとセットアップ
  1. リポジトリをクローンする:

    git clone https://github.com/mrcunninghamz/NotionBae.git /path/to/your/directory
    cd /path/to/your/directory
    

    /path/to/your/directory を、リポジトリのクローン先となる実際のディレクトリパスに置き換えてください(例:~/projects/NotionBae または /Users/username/Documents/Projects/NotionBae)。

  2. プロジェクトをビルドする:

    dotnet build
    
  3. 環境変数を設定する:

    NotionBae サーバーには、次の環境変数が必要です:

    • Notion:AuthToken:Notion API での認証に使用する Notion API キー

    Notion ワークスペースの設定でインテグレーションを作成すると、Notion API キーを取得できます。インテグレーションの作成方法と API キーの取得方法については、Notion API documentation をご覧ください。 appsettings.template.json を appsettings.json にコピーし、Notion:AuthToken に Notion API キーを設定してください。

  4. プロジェクトを実行する:

    dotnet run --project PATH_TO_NOTIONBAE_PROJECT/src/NotionBae.csproj
    

    PATH_TO_NOTIONBAE_PROJECT を、NotionBae.csproj ファイルを含むフォルダーである NotionBae プロジェクトフォルダーのパスに置き換えてください。

3. MCP サーバーの設定

VS Code で NotionBae を MCP サーバーとして使用するには、次の設定を VS Code の settings.json ファイルに追加してください:

"mcp": {
  "servers": {
      "NotionBae": {
        "url": "http://localhost:5001/mcp"
      }
  }
}

関連プロジェクト

このプロジェクトは、ツールコレクション「Bae」の一部です:

  • TestBae - フィクスチャー、モック、一般的なテストパターンを使用してテストのセットアップを簡素化し、効率的で保守しやすいテストスイートを実現する .NET テストユーティリティライブラリです。
  • AzBae - Azure リソース管理、デプロイ、DevOps ワークフローを効率化するための CLI と GUI の両方のインターフェイスを備えた Azure DevOps ツールです。

ライセンス

コメント

MCP は初めてですか?

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

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