Notion APIサーバー
リファレンスビデオ
Notion APIを使いやすくするためのカスタムサーバーです。 Express.jsを使用して実装されており、Notion APIのさまざまな機能をREST APIとして提供しています。
Related MCP server: SystemPrompt MCP Notion Server
インストール方法
必要なパッケージのインストール:
npm install express cors @notionhq/client swagger-jsdoc swagger-ui-expressサーバーの実行:
node server.jsサーバーは http://localhost:3000で実行されます。
設定方法
server.jsファイルの
NOTION_TOKEN変数にNotion APIトークンを設定します。
const NOTION_TOKEN = '여기에_노션_API_토큰_입력';必要に応じて、PORT変数を変更して別のポートで実行できます。
API機能
検索API
POST /api/search: ノッションワークスペース内のページとデータベースの検索
データベースAPI
POST /api/databases: データベースの作成GET /api/databases/:id: データベース照会PATCH /api/databases/:id: データベースの更新POST /api/databases/:id/query: データベースクエリ
ページAPI
POST /api/pages: ページの生成GET /api/pages/:id: ページ情報の照会PATCH /api/pages/:id: ページの更新GET /api/pages/:page_id/properties/:property_id: ページ属性の検索
Block API
GET /api/blocks/:id: ブロック照会GET /api/blocks/:id/children: ブロック内容の照会PATCH /api/blocks/:id: ブロック更新PATCH /api/blocks/:id/children: ブロック内容の追加DELETE /api/blocks/:id: ブロックの削除
ユーザーAPI
GET /api/users: ユーザーリストの検索GET /api/users/:id: ユーザー検索GET /api/users/me:自分のユーザー情報を検索する
コメントAPI
POST /api/comments: コメントの生成GET /api/comments?block_id=...: コメントの照会
Cursor MCP統合
.cursor/mcp.jsonファイルに次の設定を追加します。
{
"mcpServers": {
"customApi": {
"url": "http://localhost:3000",
"toolNameStrategy": "url-path-segments"
}
}
}サーバーの実行中にCursorのMCP機能を使用してNotion APIにアクセスできます。
使用例
検索リクエストの例
// 페이지 검색
fetch('http://localhost:3000/api/search', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
filter: {
value: "page",
property: "object"
}
})
})
.then(response => response.json())
.then(data => console.log(data));ページ生成の例
// 새 페이지 생성
fetch('http://localhost:3000/api/pages', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
parent: {
page_id: "페이지_ID"
},
properties: {
title: {
title: [
{
text: {
content: "새 페이지 제목"
}
}
]
}
}
})
})
.then(response => response.json())
.then(data => console.log(data));データベース生成の例
// 데이터베이스 생성
fetch('http://localhost:3000/api/databases', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
parent: {
type: "page_id",
page_id: "페이지_ID"
},
title: [
{
text: {
content: "테스트 데이터베이스"
}
}
],
properties: {
"이름": {
"title": {},
"description": "제목 항목"
},
"상태": {
"description": "작업 상태",
"select": {
"options": [
{
"name": "진행 중",
"color": "blue"
},
{
"name": "완료",
"color": "green"
}
]
}
}
}
})
})
.then(response => response.json())
.then(data => console.log(data));APIドキュメント
API ドキュメントは、サーバーの実行時に次の URL で確認できます。
Swagger UI: http://localhost:3000/api-docs
OpenAPI スキーマ: http://localhost:3000/openapi.json