Notion集成服务器

一个提供与Notion无缝集成的MCP服务器,支持语言模型通过标准化工具搜索、读取、创建和更新页面及数据库。

  • by v-3
  • TypeScript
  • 本地部署
  • 119 星标
  • 更新于
在 GitHub 查看 v-3/notion-server

使用说明

MCP服务器概念

提供与Notion无缝集成的模型上下文协议(MCP)服务器。此服务器使语言模型能够通过用于搜索、阅读、创建和更新页面和数据库的标准化工具与您的Notion工作区进行交互。

🌟 主要特点

页面操作

  • 🔍 搜索您的Notion工作区
  • 📝 创建具有丰富降价内容的新页面
  • 📖 以干净的格式读取页面内容
  • 🔄 更新现有页面
  • 💬 添加和检索评论
  • 🧱 块级操作(更新、删除)

增强的Markdown支持

  • 多个航向级别(H1-H3)
  • 支持语言的代码块
  • 带有复选框状态的交互式待办事项
  • 支持多行的Blockquotes
  • 水平分隔器
  • 带字幕的图像
  • 嵌套的要点

数据库操作

  • 创建和管理数据库
  • 添加和更新数据库项
  • 使用过滤器和排序进行查询
  • 支持多种物业类型:
    • 标题、富格文本、数字
    • 选择,多选
    • 日期,复选框
    • 还有更多!

🚀 入门指南

先决条件

  • Node.js(v16或更高版本)
  • 通知API密钥
  • MCP兼容客户端(例如Claude Desktop)

安装

  1. 克隆存储库:
git clone https://github.com/v-3/notion-server.git
cd notion-server
  1. 安装依赖项:
npm install
  1. 设置您的环境:
# 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
  1. 构建服务器:
npm run build

🔧 配置

Claude桌面设置

  1. 更新您的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"
            }
        }
    }
}
  1. 重新启动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
}

🔐 设置通知访问

创建集成

  1. 访问 概念整合
  2. 点击“新建集成”
  3. 配置权限:
    • 内容:阅读、更新、插入
    • 评论:阅读,创建
    • 用户信息:阅读

连接页面

  1. 打开您的Notion页面
  2. 点击“…”菜单→ “连接”
  3. 添加您的集成
  4. 根据需要对其他页面重复此操作

📝 使用示例

创建页面

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"
    }
  }
});

🤝 贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支
  3. 提交拉取请求

📜 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

🙏 致谢

通过以下方式,该项目得到了显著改善 sweir1/概念服务器,已进行以下更新:

  • 通过更多块类型增强标记支持
  • 全面的数据库操作
  • 改进了错误处理和调试
  • 更好地处理数据库项的属性
  • 更清晰的页面输出格式

要使用sweir1的版本,您可以克隆他们的存储库:

git clone https://github.com/sweir1/notion-server.git