Notion MCP サーバー
Notionとのシームレスな統合を実現するモデルコンテキストプロトコル(MCP)サーバー。このサーバーにより、言語モデルは標準化されたツール(ページやデータベースの検索、読み取り、作成、更新ツールなど)を通じてNotionワークスペースと連携できるようになります。
🌟 主な機能
ページ操作
🔍 Notionワークスペースを検索する
📝 豊富なマークダウンコンテンツで新しいページを作成する
📖 ページのコンテンツをきれいなフォーマットで読み上げる
🔄既存のページを更新する
💬 コメントを追加および取得する
🧱 ブロックレベルの操作(更新、削除)
強化されたマークダウンサポート
複数の見出しレベル(H1~H3)
言語サポート付きのコードブロック
チェックボックスの状態を持つインタラクティブな ToDo 項目
複数行をサポートするブロック引用
水平区切り線
キャプション付きの画像
ネストされた箇条書き
データベース操作
データベースの作成と管理
データベース項目の追加と更新
フィルターと並べ替えを使用したクエリ
さまざまなプロパティ タイプのサポート:
タイトル、リッチテキスト、番号
選択、複数選択
日付、チェックボックス
さらにもっと!
Related MCP server: Notion MCP Server
🚀 はじめに
前提条件
Node.js (v16 以上)
Notion APIキー
MCP 互換クライアント (例: Claude Desktop)
インストール
リポジトリをクローンします。
git clone https://github.com/v-3/notion-server.git
cd notion-server依存関係をインストールします:
npm install環境を設定します。
# Create .env file
echo "NOTION_API_KEY=your_notion_api_key_here" > .env
# Or export directly
export NOTION_API_KEY=your_notion_api_key_hereサーバーを構築します。
npm run build🔧 構成
クロードデスクトップセットアップ
Claude Desktop の構成 (
claude_desktop_config.json) を更新します。
{
"mcpServers": {
"notion": {
"command": "node",
"args": ["/absolute/path/to/notion-server/build/index.js"],
"env": {
"NOTION_API_KEY": "your_notion_api_key_here"
}
}
}
}変更を適用するには、Claude Desktop を再起動してください。
🛠️ 利用可能なツール
ページ操作
// Search pages
{
query: string // Search query
}
// Read page
{
pageId: string // ID of the page to read
}
// Create page
{
title?: string, // Page title
content?: string, // Page content in markdown
parentPageId: string // Parent page ID
properties?: object // For database items
}
// Update page
{
pageId: string, // Page ID to update
content: string, // New content
type?: string // Content type
}データベース操作
// Create database
{
parentPageId: string,
title: string,
properties: object
}
// Query database
{
databaseId: string,
filter?: object,
sort?: object
}🔐 Notionアクセスの設定
統合の作成
Notionの統合をご覧ください
「新しい統合」をクリックします
権限を設定します。
コンテンツ: 読み取り、更新、挿入
コメント: 読む、作成する
ユーザー情報: 読む
ページの接続
Notionページを開く
「...」メニュー→「接続」をクリック
統合を追加する
必要に応じて他のページでも繰り返します
📝 使用例
ページの作成
const result = await notion.create_page({
parentPageId: "page_id",
title: "My Page",
content: "# Welcome\nThis is a test page."
});データベースのクエリ
const result = await notion.query_database({
databaseId: "db_id",
filter: {
property: "Status",
select: {
equals: "In Progress"
}
}
});🤝 貢献する
貢献を歓迎します!ご協力をお願いします:
リポジトリをフォークする
機能ブランチを作成する
プルリクエストを送信する
📜 ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。
🙏 謝辞
このプロジェクトはsweir1/notion-serverによって大幅に改善され、以下の更新が行われました:
より多くのブロックタイプによるマークダウンサポートの強化
包括的なデータベース操作
エラー処理とデバッグの改善
データベース項目のプロパティ処理の改善
よりクリーンなページ出力フォーマット
sweir1 のバージョンを使用するには、リポジトリをクローンします。
git clone https://github.com/sweir1/notion-server.git