Notion MCP

ทางการ

เซิร์ฟเวอร์ MCP อย่างเป็นทางการของ Notion สำหรับค้นหา อ่าน สร้าง และอัปเดตหน้า ฐานข้อมูล และเนื้อหาในพื้นที่ทำงานของ Notion จากเอเจนต์ AI

คุณทำอะไรได้บ้างด้วย Notion MCP?

  • Query data sources — Ask your assistant to filter and sort Notion data sources using query-data-source with custom criteria.
  • Read pages as Markdown — Retrieve a page's full content in Markdown format via retrieve-page-markdown, optionally including meeting transcripts.
  • Edit page content — Update page content with Markdown using update-page-markdown, either replacing everything or making targeted edits.
  • Manage data sources — Create, update, or retrieve data source schemas and metadata using create-a-data-source, update-a-data-source, or retrieve-a-data-source.
  • Move pages — Relocate pages to different parent locations within your workspace using move-page.
  • List templates — Discover available templates in a data source with list-data-source-templates to speed up page creation.

เซิร์ฟเวอร์ MCP แบบโฮสต์

npx add-mcp 'https://mcp.notion.com/mcp'

ติดตั้งลง Claude Code, Codex, Cursor และอื่นๆ

เอกสาร

เซิร์ฟเวอร์ Notion MCP

[!NOTE]

เพื่อประสบการณ์ที่ดีที่สุด ให้ใช้ Remote Notion MCP ซึ่งเป็นเซิร์ฟเวอร์ MCP แบบโฮสต์อย่างเป็นทางการของเรา พื้นที่เก็บข้อมูลนี้เป็นการใช้งานเซิร์ฟเวอร์ MCP แบบโฮสต์เองแยกต่างหาก ซึ่งไม่ได้รับการดูแลหรือสนับสนุนอย่างต่อเนื่องอีกต่อไป โปรดใช้ Remote Notion MCP แทน มันถูกออกแบบมาโดยเฉพาะเพื่อให้เอเจนต์ AI ได้ผลลัพธ์ที่เร็วกว่ามากโดยใช้โทเค็นน้อยลงอย่างมาก

Remote Notion MCP สามารถค้นหาพื้นที่ทำงานและแอปที่เชื่อมต่อของคุณแบบเชิงความหมาย อ่านและแก้ไขเพจในรูปแบบ Markdown และส่งคืนเฉพาะบริบทที่เกี่ยวข้องที่สุดเท่านั้น ซึ่งหมายถึงใช้เวลารอน้อยลง ใช้พื้นที่ context window น้อยลง และต้นทุนโทเค็นต่ำลง นอกจากนี้ยังใช้ OAuth และเคารพสิทธิ์การเข้าถึง Notion ที่มีอยู่ของผู้ใช้แต่ละคนโดยอัตโนมัติ—โดยไม่ต้องใช้โทเค็น API การกำหนดค่า JSON การแชร์เพจด้วยตนเอง หรือเซิร์ฟเวอร์ในเครื่องที่ต้องดูแลรักษา

คุณสมบัติRemote Notion MCPโปรเจกต์นี้ (ในเครื่อง)
ประสบการณ์โฮสต์ที่รวดเร็ว✅ทำงานและอัปเดตในเครื่อง
การตอบสนองที่ประหยัดโทเค็น✅จำกัด
เครื่องมือทรงพลังที่ออกแบบสำหรับเอเจนต์ AI✅เครื่องมือพื้นฐานที่ได้จาก API
การค้นหาเชิงความหมายทั่วพื้นที่ทำงาน Notion ของคุณ✅ค้นหาด้วยคำสำคัญเท่านั้น
การค้นหา AI Connector ทั่วแอปที่เชื่อมต่อ✅ไม่พร้อมใช้งาน
การอ่านและแก้ไขเพจแบบ Markdown ดั้งเดิม✅จำกัดเฉพาะเครื่องมือเนื้อหาเพจสองรายการ
การตั้งค่า OAuth ที่ราบรื่น✅การกำหนดค่าโทเค็นและ JSON ด้วยตนเอง
เคารพสิทธิ์ Notion ที่มีอยู่ของผู้ใช้แต่ละคน✅สิทธิ์การผสานรวมและการแชร์เพจด้วยตนเอง
การสนับสนุนอย่างแข็งขันและการปรับปรุงอย่างต่อเนื่อง✅ไม่ได้รับการสนับสนุนอย่างแข็งขัน

เรียนรู้เพิ่มเติมและเริ่มต้นใช้งานได้ใน เอกสาร Remote Notion MCP

เรากำลังให้ความสำคัญและให้การสนับสนุนอย่างแข็งขันเฉพาะ Remote Notion MCP เท่านั้น ด้วยเหตุนี้:

  • เราอาจยุติพื้นที่เก็บข้อมูลเซิร์ฟเวอร์ MCP ในเครื่องนี้ในอนาคต
  • ปัญหาและคำขอดึง (pull requests) ที่นี่ไม่ได้รับการติดตามอย่างแข็งขัน
  • โปรดอย่าลงปัญหาที่เกี่ยวข้องกับ remote MCP ที่นี่ แต่ให้ติดต่อฝ่ายสนับสนุน Notion แทน

notion-mcp-sm

โปรเจกต์นี้ใช้งาน เซิร์ฟเวอร์ MCP สำหรับ Notion API

mcp-demo


⚠️ การเปลี่ยนแปลงที่ทำลายความเข้ากันได้ในเวอร์ชัน 2.0.0

เวอร์ชัน 2.0.0 ย้ายไปใช้ Notion API 2025-09-03 ซึ่งแนะนำ data sources เป็นนามธรรมหลักสำหรับฐานข้อมูล

สิ่งที่เปลี่ยนแปลง

เครื่องมือที่ถูกลบ (3 รายการ):

  • post-database-query - ถูกแทนที่ด้วย query-data-source
  • update-a-database - ถูกแทนที่ด้วย update-a-data-source
  • create-a-database - ถูกแทนที่ด้วย create-a-data-source

เครื่องมือใหม่ (7 รายการ):

  • query-data-source - ค้นหาข้อมูลจาก data source (ฐานข้อมูล) พร้อมตัวกรองและการเรียงลำดับ
  • retrieve-a-data-source - รับข้อมูลเมตาและโครงสร้างของ data source
  • update-a-data-source - อัปเดตคุณสมบัติของ data source
  • create-a-data-source - สร้าง data source ใหม่
  • list-data-source-templates - แสดงรายการเทมเพลตที่มีอยู่ใน data source
  • move-page - ย้ายเพจไปยังตำแหน่งหลักอื่น
  • retrieve-a-database - รับข้อมูลเมตาของฐานข้อมูลรวมถึง ID ของ data source

การเปลี่ยนแปลงพารามิเตอร์:

  • การดำเนินการกับฐานข้อมูลทั้งหมดตอนนี้ใช้ data_source_id แทน database_id
  • ค่าตัวกรองการค้นหาเปลี่ยนจาก ["page", "database"] เป็น ["page", "data_source"]
  • การสร้างเพจตอนนี้รองรับทั้ง page_id และ database_id (สำหรับ data sources)

ฉันจำเป็นต้องย้ายข้อมูลหรือไม่?

ไม่ต้องเปลี่ยนแปลงโค้ดใดๆ เครื่องมือ MCP ถูกค้นพบโดยอัตโนมัติเมื่อเซิร์ฟเวอร์เริ่มทำงาน เมื่อคุณอัปเกรดเป็น v2.0.0 ไคลเอนต์ AI จะเห็นชื่อเครื่องมือและพารามิเตอร์ใหม่โดยอัตโนมัติ เครื่องมือฐานข้อมูลแบบเก่าจะไม่พร้อมใช้งานอีกต่อไป

หากคุณมีชื่อเครื่องมือหรือพรอมต์ที่อ้างอิงเครื่องมือฐานข้อมูลแบบเก่าที่เขียนตายตัว ให้อัปเดตเป็นเครื่องมือ data source ใหม่:

เครื่องมือเก่า (v1.x)เครื่องมือใหม่ (v2.0)การเปลี่ยนแปลงพารามิเตอร์
post-database-queryquery-data-sourcedatabase_id → data_source_id
update-a-databaseupdate-a-data-sourcedatabase_id → data_source_id
create-a-databasecreate-a-data-sourceไม่มีการเปลี่ยนแปลง (ใช้ parent.page_id)

หมายเหตุ: retrieve-a-database ยังคงพร้อมใช้งานและส่งคืนข้อมูลเมตาของฐานข้อมูลรวมถึงรายการ ID ของ data source ใช้ retrieve-a-data-source เพื่อรับโครงสร้างและคุณสมบัติของ data source เฉพาะ

จำนวนเครื่องมือทั้งหมดตอนนี้: 22 (เดิม 19 ใน v1.x)


เนื้อหาเพจเป็น Markdown

เซิร์ฟเวอร์เปิดเผยเครื่องมือสองรายการสำหรับการทำงานกับเนื้อหาเพจเป็น Markdown ที่ปรับปรุงแล้วแทนที่จะเป็นบล็อก JSON ซึ่งประหยัดโทเค็นได้อย่างมากสำหรับเอเจนต์ AI:

  • retrieve-page-markdown — อ่านเนื้อหาทั้งหมดของเพจเป็น Markdown (GET /v1/pages/{page_id}/markdown) ส่ง include_transcript: true เพื่อแทรกบทถอดความบันทึกการประชุมแบบอินไลน์
  • update-page-markdown — แก้ไขเนื้อหาของเพจด้วย Markdown (PATCH /v1/pages/{page_id}/markdown) ควรใช้ replace_content เพื่อเขียนทับทั้งเพจ หรือ update_content สำหรับการแก้ไขแบบค้นหาและแทนที่แบบเจาะจง

จุดสิ้นสุดเหล่านี้ต้องใช้ Notion API เวอร์ชัน 2026-03-11 ตอนนี้เซิร์ฟเวอร์ดึงค่า header Notion-Version ต่อการดำเนินการ จากข้อกำหนด OpenAPI ดังนั้นเครื่องมือเหล่านี้จึงใช้ 2026-03-11 ในขณะที่ส่วนที่เหลือของ API ยังคงใช้ 2025-09-03 — ไม่ต้องกำหนดค่าใดๆ หากคุณตั้งค่า Notion-Version ด้วยตัวเองผ่าน OPENAPI_MCP_HEADERS ค่าของคุณจะมีความสำคัญเหนือกว่าสำหรับทุกเครื่องมือ


การติดตั้ง

1. การตั้งค่าการผสานรวมใน Notion

ไปที่ https://www.notion.so/profile/integrations และสร้างการผสานรวมแบบ ภายใน ใหม่หรือเลือกการผสานรวมที่มีอยู่

Creating a Notion Integration token

แม้ว่าเราจะจำกัดขอบเขตของ Notion API ที่เปิดเผย (ตัวอย่างเช่น คุณจะไม่สามารถลบฐานข้อมูลผ่าน MCP ได้) แต่ก็ยังมีความเสี่ยงที่ไม่เป็นศูนย์ต่อข้อมูลในพื้นที่ทำงานจากการเปิดเผยให้ LLM ผู้ใช้ที่คำนึงถึงความปลอดภัยอาจต้องการกำหนดค่า ความสามารถ ของการผสานรวมเพิ่มเติม

ตัวอย่างเช่น คุณสามารถสร้างโทเค็นการผสานรวมแบบอ่านอย่างเดียวโดยให้สิทธิ์ "อ่านเนื้อหา" เท่านั้นจากแท็บ "การกำหนดค่า":

Notion Integration Token Capabilities showing Read content checked

2. การเชื่อมต่อเนื้อหากับการผสานรวม

ตรวจสอบให้แน่ใจว่าเพจและฐานข้อมูลที่เกี่ยวข้องเชื่อมต่อกับการผสานรวมของคุณแล้ว

ในการดำเนินการนี้ ให้ไปที่แท็บ การเข้าถึง ในการตั้งค่าการผสานรวมภายในของคุณ แก้ไขการเข้าถึงและเลือกเพจที่คุณต้องการใช้

Integration Access tab

Edit integration access

หรือคุณสามารถให้สิทธิ์การเข้าถึงเพจเป็นรายบุคคลได้ คุณจะต้องไปที่เพจเป้าหมาย คลิกที่จุด 3 จุด แล้วเลือก "เชื่อมต่อกับการผสานรวม"

Adding Integration Token to Notion Connections

3. การเพิ่มการกำหนดค่า MCP ให้กับไคลเอนต์ของคุณ

การใช้ npm
Cursor และ Claude

เพิ่มสิ่งต่อไปนี้ลงใน .cursor/mcp.json หรือ claude_desktop_config.json ของคุณ (MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json)

ตัวเลือก 1: การใช้ NOTION_TOKEN (แนะนำ)
{
  "mcpServers": {
    "notionApi": {
      "command": "npx",
      "args": ["-y", "@notionhq/notion-mcp-server"],
      "env": {
        "NOTION_TOKEN": "ntn_****"
      }
    }
  }
}
ตัวเลือก 2: การใช้ OPENAPI_MCP_HEADERS (สำหรับกรณีการใช้งานขั้นสูง)
{
  "mcpServers": {
    "notionApi": {
      "command": "npx",
      "args": ["-y", "@notionhq/notion-mcp-server"],
      "env": {
        "OPENAPI_MCP_HEADERS": "{\"Authorization\": \"Bearer ntn_****\", \"Notion-Version\": \"2025-09-03\" }"
      }
    }
  }
}
Zed

เพิ่มสิ่งต่อไปนี้ลงใน settings.json ของคุณ

{
  "context_servers": {
    "some-context-server": {
      "command": {
        "path": "npx",
        "args": ["-y", "@notionhq/notion-mcp-server"],
        "env": {
          "OPENAPI_MCP_HEADERS": "{\"Authorization\": \"Bearer ntn_****\", \"Notion-Version\": \"2025-09-03\" }"
        }
      },
      "settings": {}
    }
  }
}
GitHub Copilot CLI

ใช้ Copilot CLI เพื่อเพิ่มเซิร์ฟเวอร์ MCP แบบโต้ตอบ:

/mcp add

หรือสร้างหรือแก้ไขไฟล์การกำหนดค่า ~/.copilot/mcp-config.json และเพิ่ม:

{
  "mcpServers": {
    "notionApi": {
      "command": "npx",
      "args": ["-y", "@notionhq/notion-mcp-server"],
      "env": {
        "NOTION_TOKEN": "ntn_****"
      }
    }
  }
}

สำหรับข้อมูลเพิ่มเติม โปรดดู เอกสาร Copilot CLI

การใช้ Docker

มีสองตัวเลือกสำหรับการรันเซิร์ฟเวอร์ MCP ด้วย Docker:

ตัวเลือก 1: การใช้ภาพ Docker Hub อย่างเป็นทางการ

เพิ่มสิ่งต่อไปนี้ลงใน .cursor/mcp.json หรือ claude_desktop_config.json ของคุณ

การใช้ NOTION_TOKEN (แนะนำ):

{
  "mcpServers": {
    "notionApi": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e", "NOTION_TOKEN",
        "mcp/notion"
      ],
      "env": {
        "NOTION_TOKEN": "ntn_****"
      }
    }
  }
}

การใช้ OPENAPI_MCP_HEADERS (สำหรับกรณีการใช้งานขั้นสูง):

{
  "mcpServers": {
    "notionApi": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e", "OPENAPI_MCP_HEADERS",
        "mcp/notion"
      ],
      "env": {
        "OPENAPI_MCP_HEADERS": "{\"Authorization\":\"Bearer ntn_****\",\"Notion-Version\":\"2025-09-03\"}"
      }
    }
  }
}

วิธีการนี้:

  • ใช้ภาพ Docker Hub อย่างเป็นทางการ
  • จัดการกับการ Escape JSON อย่างถูกต้องผ่านตัวแปรสภาพแวดล้อม
  • ให้วิธีการกำหนดค่าที่เชื่อถือได้มากขึ้น
ตัวเลือก 2: การสร้างภาพ Docker ในเครื่อง

คุณยังสามารถสร้างและรันภาพ Docker ในเครื่องได้ ขั้นแรก สร้างภาพ Docker:

docker compose build

จากนั้น เพิ่มสิ่งต่อไปนี้ลงใน .cursor/mcp.json หรือ claude_desktop_config.json ของคุณ

การใช้ NOTION_TOKEN (แนะนำ):

{
  "mcpServers": {
    "notionApi": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        "NOTION_TOKEN=ntn_****",
        "notion-mcp-server"
      ]
    }
  }
}

การใช้ OPENAPI_MCP_HEADERS (สำหรับกรณีการใช้งานขั้นสูง):

{
  "mcpServers": {
    "notionApi": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        "OPENAPI_MCP_HEADERS={\"Authorization\": \"Bearer ntn_****\", \"Notion-Version\": \"2025-09-03\"}",
        "notion-mcp-server"
      ]
    }
  }
}

อย่าลืมแทนที่ ntn_**** ด้วยความลับการผสานรวมของคุณ ค้นหาได้จากแท็บการกำหนดค่าการผสานรวมของคุณ:

Copying your Integration token from the Configuration tab in the developer portal

ตัวเลือกการขนส่ง (Transport)

เซิร์ฟเวอร์ Notion MCP รองรับโหมดการขนส่งสองแบบ:

การขนส่ง STDIO (ค่าเริ่มต้น)

โหมดการขนส่งเริ่มต้นใช้มาตรฐานอินพุต/เอาต์พุตสำหรับการสื่อสาร นี่คือการขนส่ง MCP มาตรฐานที่ใช้โดยไคลเอนต์ส่วนใหญ่เช่น Claude Desktop

# Run with default stdio transport
npx @notionhq/notion-mcp-server

# Or explicitly specify stdio
npx @notionhq/notion-mcp-server --transport stdio

การขนส่ง HTTP แบบสตรีมได้

สำหรับแอปพลิเคชันบนเว็บหรือไคลเอนต์ที่ต้องการการสื่อสารผ่าน HTTP คุณสามารถใช้การขนส่ง HTTP แบบสตรีมได้:

# Run with Streamable HTTP transport on port 3000 (default)
npx @notionhq/notion-mcp-server --transport http

# Run on a custom port
npx @notionhq/notion-mcp-server --transport http --port 8080

# Bind to a different host. The default is 127.0.0.1.
npx @notionhq/notion-mcp-server --transport http --host 0.0.0.0

# Run with a custom authentication token
npx @notionhq/notion-mcp-server --transport http --auth-token "your-secret-token"

เมื่อใช้การขนส่ง HTTP แบบสตรีมได้ เซิร์ฟเวอร์จะพร้อมใช้งานที่ http://127.0.0.1:<port>/mcp โดยค่าเริ่มต้น

การรับรองความถูกต้อง

การขนส่ง HTTP แบบสตรีมได้ต้องมีการรับรองความถูกต้องด้วย bearer token เพื่อความปลอดภัย คุณมีสามตัวเลือก:

ตัวเลือก 1: โทเค็นที่สร้างอัตโนมัติ (สำหรับการพัฒนาเท่านั้น)
npx @notionhq/notion-mcp-server --transport http

เซิร์ฟเวอร์จะสร้างโทเค็นสุ่มที่ปลอดภัยและเขียนลงในไฟล์ที่มีสิทธิ์จำกัด:

Generated auth token written to: /tmp/.notion-mcp-auth-token-12345
ตัวเลือก 2: โทเค็นที่กำหนดเองผ่านบรรทัดคำสั่ง (แนะนำสำหรับการผลิต)
npx @notionhq/notion-mcp-server --transport http --auth-token "your-secret-token"
ตัวเลือก 3: โทเค็นที่กำหนดเองผ่านตัวแปรสภาพแวดล้อม (แนะนำสำหรับการผลิต)
AUTH_TOKEN="your-secret-token" npx @notionhq/notion-mcp-server --transport http

อาร์กิวเมนต์บรรทัดคำสั่ง --auth-token มีความสำคัญเหนือกว่าตัวแปรสภาพแวดล้อม AUTH_TOKEN หากมีการระบุทั้งสองอย่าง

ตัวเลือกที่ไม่ปลอดภัย: ปิดการรับรองความถูกต้อง HTTP

คุณสามารถปิดการรับรองความถูกต้องด้วย bearer token ได้เฉพาะกับแฟล็กที่ไม่ปลอดภัยอย่างชัดเจน:

npx @notionhq/notion-mcp-server --transport http --unsafe-disable-auth

คำเตือน: --unsafe-disable-auth ไม่ปลอดภัย เซิร์ฟเวอร์อาจเข้าถึงได้จากเพจที่คุณเยี่ยมชมผ่าน DNS rebinding ใช้บนเครือข่ายที่แยกออกเท่านั้น

เมื่อปิดการรับรองความถูกต้อง เซิร์ฟเวอร์จะเปิดใช้งานการป้องกัน DNS rebinding โดยตรวจสอบ header Host และ Origin กับโฮสต์ในเครื่องที่กำหนดค่าและโฮสต์ loopback แฟล็ก --disable-auth ก่อนหน้านี้ยังคงได้รับการยอมรับเป็นนามแฝงที่เลิกใช้แล้ว แต่จะพิมพ์คำเตือน

การทำคำขอ HTTP

คำขอทั้งหมดไปยังการขนส่ง HTTP แบบสตรีมได้ต้องรวม bearer token ใน header การอนุญาต:

# Example request
curl -H "Authorization: Bearer your-token-here" \
     -H "Content-Type: application/json" \
     -H "mcp-session-id: your-session-id" \
     -d '{"jsonrpc": "2.0", "method": "initialize", "params": {}, "id": 1}' \
     http://localhost:3000/mcp

หมายเหตุ: ตรวจสอบให้แน่ใจว่าได้ตั้งค่าตัวแปรสภาพแวดล้อม NOTION_TOKEN (แนะนำ) หรือตัวแปรสภาพแวดล้อม OPENAPI_MCP_HEADERS ด้วยโทเค็นการผสานรวม Notion ของคุณเมื่อใช้โหมดการขนส่งใดก็ตาม

การให้บริการหลายการผสานรวม (การส่งผ่านโทเค็นต่อคำขอ)

โดยค่าเริ่มต้น เซิร์ฟเวอร์จะรับรองความถูกต้องกับ Notion ด้วยโทเค็นเดียวที่ฝังไว้ตั้งแต่เริ่มต้น ซึ่งล็อกการปรับใช้หนึ่งรายการให้กับการผสานรวม Notion หนึ่งรายการ เพื่อให้การปรับใช้เดียวสามารถให้บริการ หลาย การผสานรวม ให้เปิดใช้งานการส่งผ่านโทเค็นเพื่อให้ไคลเอนต์แต่ละรายส่งโทเค็นการผสานรวม Notion ของตัวเองต่อการเชื่อมต่อ:

# Enable per-request Notion tokens (flag or ENABLE_TOKEN_PASSTHROUGH=true)
npx @notionhq/notion-mcp-server --transport http --enable-token-passthrough

จากนั้นไคลเอนต์จะส่งโทเค็น Notion ของตนในคำขอ initialize โดยใช้ header เฉพาะ Notion-Token:

curl -H "Authorization: Bearer <server-auth-token>" \
     -H "Notion-Token: ntn_****" \
     -H "Content-Type: application/json" \
     -d '{"jsonrpc": "2.0", "method": "initialize", "params": {}, "id": 1}' \
     http://localhost:3000/mcp

วิธีแก้ไขโทเค็นสำหรับแต่ละการเชื่อมต่อ ตามลำดับ:

  1. header Notion-Token (ที่ต้องการ—ไม่คลุมเครือ และทำงานร่วมกับการรับรองความถูกต้องเกตเวย์ Authorization ของเซิร์ฟเวอร์เอง) หากมีอยู่ จะต้องเป็นโทเค็น Notion ที่ถูกต้อง มิฉะนั้นคำขอจะถูกปฏิเสธด้วย 401
  2. Authorization: Bearer ntn_**** — เฉพาะเมื่อปิดการรับรองความถูกต้อง bearer ของเซิร์ฟเวอร์เอง (--unsafe-disable-auth) เพื่อให้ header ว่างสำหรับการส่งโทเค็น Notion โดยตรง
  3. มิฉะนั้นจะใช้โทเค็นสภาพแวดล้อมเริ่มต้น (NOTION_TOKEN / OPENAPI_MCP_HEADERS) หากตั้งไว้ เพื่อให้การส่งผ่านและค่าเริ่มต้นการผสานรวมสามารถอยู่ร่วมกันได้ในการปรับใช้เดียว

หมายเหตุ:

  • เฉพาะค่าที่มีคำนำหน้าโทเค็น Notion (ntn_, secret_ แบบเดิม) เท่านั้นที่ถือเป็นโทเค็น Notion ดังนั้นความลับเกตเวย์ของเซิร์ฟเวอร์และโทเค็น Notion ของผู้เช่าจะไม่ชนกัน
  • แต่ละโทเค็นถูกผูกกับเซสชัน MCP ของตน โทเค็นจะไม่ถูกบันทึกล็อก (เฉพาะคำนำหน้าที่ถูกปกปิดเท่านั้นที่ถูกปล่อยออกมา)
  • นี่คือการตั้งค่าการส่งผ่านโทเค็นโดยเจตนา ปรับใช้ผ่าน TLS เสมอ และควรเปิดการรับรองความถูกต้อง bearer ของเซิร์ฟเวอร์เอง (--auth-token) ไว้เป็นเกตเวย์ด้านหน้าของการรับส่งข้อมูลหลายผู้เช่า

ตัวอย่าง

  1. การใช้คำสั่งต่อไปนี้
Comment "Hello MCP" on page "Getting started"

AI จะวางแผนการเรียก API สองครั้งอย่างถูกต้อง v1/search และ v1/comments เพื่อให้งานสำเร็จ

  1. ในทำนองเดียวกัน คำสั่งต่อไปนี้จะสร้างเพจใหม่ชื่อ "Notion MCP" ที่เพิ่มไปยังเพจหลัก "Development"
Add a page titled "Notion MCP" to page "Development"
  1. คุณยังสามารถอ้างอิง ID เนื้อหาโดยตรงได้
Get the content of page 1a6b35e6e67f802fa7e1d27686f017f2

การพัฒนา

Build และทดสอบ

npm run build
npm test

การรัน

npx -y --prefix /path/to/local/notion-mcp-server @notionhq/notion-mcp-server

การทดสอบการเปลี่ยนแปลงในเครื่องด้วย Cursor:

  1. รันคำสั่ง npm link จากโฟลเดอร์รากของ repository เพื่อสร้าง symlink ระดับเครื่องไปยังแพ็กเกจ notion-mcp-server
  2. รวม snippet การกำหนดค่าด้านล่างเข้ากับ mcp.json ของ Cursor (หรือ MCP client อื่นที่คุณต้องการทดสอบด้วย)
  3. (การทำความสะอาด) รัน npm unlink จากโฟลเดอร์รากของ repository
{
  "mcpServers": {
    "notion-local-package": {
      "command": "notion-mcp-server",
      "env": {
        "NOTION_TOKEN": "ntn_..."
      }
    }
  }
}

การเผยแพร่

npm login
npm publish --access public