[!NOTE]
我们推出了 Notion MCP,这是一个远程MCP服务器,具有以下改进:
- 通过标准OAuth进行简单安装。无需再处理JSON或API令牌。
- 针对AI代理的强大工具。这些工具设计时考虑了优化的令牌消耗。
了解更多并试用 这里
此项目实现了用于Notion API的MCP服务器。
前往 https://www.notion.so/profile/integrations 并创建一个新的内部集成或选择一个现有的集成。

虽然我们限制了Notion API暴露的范围(例如,您无法通过MCP删除数据库),但将其暴露给LLMs仍存在一定的风险。安全意识较强的用户可能希望进一步配置集成的能力。
例如,您可以仅授予“读取内容”访问权限来创建一个只读集成令牌:

确保相关页面和数据库已连接到您的集成。
为此,请访问内部集成设置中的访问选项卡。编辑访问权限并选择您想要使用的页面。


或者,您可以单独授予页面访问权限。您需要访问目标页面,点击三个点,并选择“连接到集成”。

光标 & 克劳德:
在您的.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\": \"2022-06-28\" }"
}
}
}
}
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\": \"2022-06-28\" }"
}
},
"settings": {}
}
}
}
有两种方法可以使用Docker运行MCP服务器:
在您的.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\":\"2022-06-28\"}"
}
}
}
}
这种方法:
您也可以本地构建并运行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\": \"2022-06-28\"}",
"notion-mcp-server"
]
}
}
}
别忘了将ntn_****替换为您集成的秘密。从您的集成配置选项卡中找到它:
要通过Smithery自动安装Claude Desktop的Notion API服务器:
npx -y @smithery/cli install @makenotion/notion-mcp-server --client claude
Notion MCP服务器支持两种传输模式:
默认传输模式使用标准输入/输出进行通信。这是大多数客户端(如Claude Desktop)使用的标准MCP传输。
# 使用默认stdio传输运行
npx @notionhq/notion-mcp-server
# 或明确指定stdio
npx @notionhq/notion-mcp-server --transport stdio
对于基于Web的应用程序或偏好HTTP通信的客户端,您可以使用可流式HTTP传输:
# 使用可流式HTTP传输在端口3000(默认)上运行
npx @notionhq/notion-mcp-server --transport http
# 在自定义端口上运行
npx @notionhq/notion-mcp-server --transport http --port 8080
# 使用自定义认证令牌运行
npx @notionhq/notion-mcp-server --transport http --auth-token "your-secret-token"
当使用可流式HTTP传输时,服务器将在http://0.0.0.0:<port>/mcp可用。
可流式HTTP传输需要bearer token认证以保证安全性。您有三种选择:
选项1:自动生成的令牌(推荐用于开发)
npx @notionhq/notion-mcp-server --transport http
服务器将生成一个安全随机令牌并在控制台中显示:
生成的认证令牌:a1b2c3d4e5f6789abcdef0123456789abcdef0123456789abcdef0123456789ab
在授权头中使用此令牌:Bearer a1b2c3d4e5f6789abcdef0123456789abcdef0123456789abcdef0123456789ab
选项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令牌:
# 示例请求
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集成令牌。
在页面“开始”上评论“Hello MCP”
AI将正确规划两个API调用,v1/search 和 v1/comments,以完成任务。
在页面“开发”中添加一个标题为“Notion MCP”的页面
获取页面1a6b35e6e67f802fa7e1d27686f017f2的内容
构建
npm run build
执行
npx -y --prefix /path/to/local/notion-mcp-server @notionhq/notion-mcp-server
发布
npm publish --access public