Cover image
Try Now
2025-04-05

一个简单的概念MCP服务器

3 years

Works with Finder

1

Github Watches

0

Github Forks

0

Github Stars

Notion MCP Server

A Model Context Protocol (MCP) server for interacting with Notion APIs.

Overview

This project implements an MCP server that interfaces with Notion's API, allowing AI models to interact with Notion documents and data. It follows the Model Context Protocol specification and uses the official MCP Python SDK.

Requirements

  • Python 3.12 or higher
  • uv for package management

Installation

# Clone the repository
git clone https://github.com/flyer103/notion-mcp.git
cd notion-mcp

# Install dependencies using uv
uv venv
source .venv/bin/activate
uv pip install -e ".[dev]"

Configuration

Before using the Notion MCP server, you need to set up a Notion integration and get an API key:

  1. Go to https://www.notion.so/my-integrations
  2. Create a new integration
  3. Set the API key as an environment variable:
export NOTION_API_KEY="your_api_key_here"
  1. Share your Notion content with the integration:
    • Open the Notion page you want to access
    • Click the "..." menu in the top-right corner
    • Select "Add connections"
    • Find and select your integration from the list
    • The integration now has access to this page and all its subpages

Usage

The Notion MCP server supports two transport methods:

1. Standard Input/Output (stdio)

This is the default mode, used by Claude for Desktop and other MCP-compatible LLM clients:

python -m notion_mcp.server

2. Server-Sent Events (SSE)

For web-based integrations, you can use the SSE transport:

python -m notion_mcp.server --transport sse --host 0.0.0.0 --port 8000

The server will be available at http://localhost:8000/sse

Available Tools

The Notion MCP server provides the following capabilities as tools:

Page Operations

  • get_page: Get a Notion page by ID
  • update_page: Update a Notion page's properties
  • create_page: Create a new Notion page

Database Operations

  • get_database: Get a Notion database by ID
  • query_database: Query a Notion database
  • create_database: Create a new Notion database
  • update_database: Update a Notion database

Block Operations

  • get_block: Get a Notion block by ID
  • update_block: Update a Notion block's content
  • list_blocks: List a block's children
  • append_blocks: Append blocks to a block's children
  • delete_block: Delete a Notion block

Comment Operations

  • create_comment: Create a new Notion comment
  • get_comment: Get a Notion comment by ID

Search Operations

  • search: Search for Notion objects

Command-Line Options

usage: python -m notion_mcp.server [-h] [--port PORT] [--host HOST] [--transport {stdio,sse}] [--debug]

Notion MCP Server

options:
  -h, --help            show this help message and exit
  --port PORT           Port to listen on for SSE transport
  --host HOST           Host to bind the server to
  --transport {stdio,sse}
                        Transport type (stdio or sse)
  --debug               Enable debug mode

Testing with Claude for Desktop

To use this MCP server with Claude for Desktop, you need to create a configuration file:

  1. Create a file called claude_desktop_config.json in the following location:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • Linux: ~/.config/Claude/claude_desktop_config.json
  2. Add the following configuration to the file (adjust paths as needed):

{
  "mcpServers": {
    "notion-mcp": {
      "command": "/ABSOLUTE/PATH/TO/YOUR/uv",
      "args": [
        "--directory",
        "/ABSOLUTE/PATH/TO/YOUR/notion-mcp",
        "run",
        "-m",
        "notion_mcp.server"
      ],
      "env": {
        "NOTION_API_KEY": "your_notion_api_key"
      }
    }
  }
}
  1. Replace /ABSOLUTE/PATH/TO/YOUR/uv with the absolute path to your uv executable
  2. Replace /ABSOLUTE/PATH/TO/YOUR/notion-mcp with the absolute path to your notion-mcp installation
  3. Replace your_notion_api_key with your Notion API key (or you can omit the env section if you've set it as a system environment variable)
  4. Save the file and restart Claude for Desktop

You can check Claude's logs for any MCP-related issues:

# Check Claude's logs for errors
tail -n 20 -f ~/Library/Logs/Claude/mcp*.log

Claude will now have access to your Notion MCP server and can interact with Notion documents. You can ask Claude to perform actions like "Create a page in Notion" or "Search my Notion workspace."

Verifying Configuration

To verify that Claude is correctly configured to use your Notion MCP server, you can ask Claude: "Can you list the tools you have access to?" or "Can you create a new page in my Notion workspace?"

If there are any connection issues, check that:

  • The configuration file is correctly formatted and in the right location
  • The paths in the configuration are correct
  • Your Notion integration has the proper permissions

Troubleshooting Common Issues

"spawn uv ENOENT" Error

If you encounter this error:

spawn uv ENOENT {"context":"connection","stack":"Error: spawn uv ENOENT\n at ChildProcess._handle.onexit (node:internal/child_process:285:19)\n at onErrorNT (node:internal/child_process:483:16)\n at process.processTicksAndRejections (node:internal/process/task_queues:82:21)"}

This means Claude Desktop cannot find the uv executable in your PATH. To fix this:

  1. Find the absolute path to your uv executable:

    # On macOS/Linux
    which uv
    
    # On Windows
    where uv
    
  2. Use the full absolute path in your configuration:

    {
      "mcpServers": {
        "notion-mcp": {
          "command": "/ABSOLUTE/PATH/TO/YOUR/uv",
          "args": [
            "--directory",
            "/ABSOLUTE/PATH/TO/YOUR/notion-mcp",
            "run",
            "-m",
            "notion_mcp.server"
          ],
          "env": {
            "NOTION_API_KEY": "your_notion_api_key"
          }
        }
      }
    }
    
  3. Save the file and restart Claude Desktop.

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

相关推荐

  • Joshua Armstrong
  • Confidential guide on numerology and astrology, based of GG33 Public information

  • https://suefel.com
  • Latest advice and best practices for custom GPT development.

  • Alexandru Strujac
  • Efficient thumbnail creator for YouTube videos

  • Emmet Halm
  • Converts Figma frames into front-end code for various mobile frameworks.

  • lumpenspace
  • Take an adjectivised noun, and create images making it progressively more adjective!

  • Elijah Ng Shi Yi
  • Advanced software engineer GPT that excels through nailing the basics.

  • Lists Tailwind CSS classes in monospaced font

  • https://maiplestudio.com
  • Find Exhibitors, Speakers and more

  • tomoyoshi hirata
  • Sony α7IIIマニュアルアシスタント

  • Yusuf Emre Yeşilyurt
  • I find academic articles and books for research and literature reviews.

  • Carlos Ferrin
  • Encuentra películas y series en plataformas de streaming.

  • apappascs
  • 发现市场上最全面,最新的MCP服务器集合。该存储库充当集中式枢纽,提供了广泛的开源和专有MCP服务器目录,并提供功能,文档链接和贡献者。

  • ShrimpingIt
  • MCP系列GPIO Expander的基于Micropython I2C的操作,源自ADAFRUIT_MCP230XX

  • jae-jae
  • MCP服务器使用剧作《无头浏览器》获取网页内容。

  • ravitemer
  • 一个功能强大的Neovim插件,用于管理MCP(模型上下文协议)服务器

  • patruff
  • Ollama和MCP服务器之间的桥梁,使本地LLMS可以使用模型上下文协议工具

  • pontusab
  • 光标与风浪冲浪社区,查找规则和MCP

  • JackKuo666
  • 🔍使AI助手可以通过简单的MCP接口搜索和访问PYPI软件包信息。

  • av
  • 毫不费力地使用一个命令运行LLM后端,API,前端和服务。

    Reviews

    1 (1)
    Avatar
    user_XBzXtJwx
    2025-04-17

    I've been using notion-mcp by flyer103 for a while now and it has been a game-changer for managing my projects. The seamless integration and user-friendly interface make it a must-have tool for anyone looking to optimize their productivity. Highly recommend checking it out at https://github.com/flyer103/notion-mcp.