Servidor API de Notion
Vídeo de referencia
Un servidor personalizado para facilitar el uso de la API de Notion. Se implementa utilizando Express.js y expone varias características de la API de Notion como una API REST.
Related MCP server: SystemPrompt MCP Notion Server
Cómo instalar
Instalar los paquetes necesarios:
npm install express cors @notionhq/client swagger-jsdoc swagger-ui-expressEjecutando el servidor:
node server.jsEl servidor se ejecuta en http://localhost:3000 .
Cómo configurar
Establezca su token de API de Notion en la variable
NOTION_TOKENen su archivo server.js:
const NOTION_TOKEN = '여기에_노션_API_토큰_입력';Si es necesario, puede ejecutarlo en un puerto diferente modificando la variable PORT.
Características de la API
API de búsqueda
POST /api/search: busca páginas y bases de datos dentro de tu espacio de trabajo de Notion.
API de base de datos
POST /api/databases: Crear una base de datosGET /api/databases/:id: Consultar base de datosPATCH /api/databases/:id: Actualizar la base de datosPOST /api/databases/:id/query: Consulta de base de datos
API de página
POST /api/pages: Crear una páginaGET /api/pages/:id: Ver información de la páginaPATCH /api/pages/:id: Actualizar páginaGET /api/pages/:page_id/properties/:property_id: Ver propiedades de la página
API de bloque
GET /api/blocks/:id: Consulta de bloqueGET /api/blocks/:id/children: Ver el contenido del bloquePATCH /api/blocks/:id: Actualizar bloquePATCH /api/blocks/:id/children: Agregar contenido del bloqueDELETE /api/blocks/:id: Eliminar bloque
API de usuario
GET /api/users: Ver lista de usuariosGET /api/users/:id: Búsqueda de usuariosGET /api/users/me: Ver su propia información de usuario
API de comentarios
POST /api/comments: Crear un comentarioGET /api/comments?block_id=...: Ver comentarios
Integración de Cursor MCP
Agregue las siguientes configuraciones a
.cursor/mcp.json:
{
"mcpServers": {
"customApi": {
"url": "http://localhost:3000",
"toolNameStrategy": "url-path-segments"
}
}
}Puede acceder a la API de Notion utilizando funciones MCP en Cursor mientras el servidor está en ejecución.
Ejemplos de uso
Ejemplo de solicitud de búsqueda
// 페이지 검색
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));Ejemplo de creación de página
// 새 페이지 생성
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));Ejemplo de creación de una base de datos
// 데이터베이스 생성
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));Documentación de la API
La documentación de la API está disponible en la siguiente URL cuando se ejecuta el servidor:
Interfaz de usuario Swagger: http://localhost:3000/api-docs
Esquema OpenAPI: http://localhost:3000/openapi.json