Notion MCP Server

by snowan

Notion MCP Server

A server that connects to the Notion API and exposes functionality through Claude's Machine Context Protocol (MCP).

Features

  • Search Notion pages by title or content
  • Retrieve page details and content
  • Query Notion databases
  • Create new pages in Notion

Setup

  1. Clone this repository:
git clone https://github.com/yourusername/notion-mcp-server.git cd notion-mcp-server
  1. Install dependencies:
npm install
  1. Create a .env file in the root directory with the following content:
NOTION_API_KEY=your_notion_api_key_here PORT=3000 # Optional: if you want to query a specific database by default NOTION_DATABASE_ID=your_notion_database_id_here
  1. Get your Notion API key:
  2. Connect your Notion integration to your workspace:
    • Go to a page or database in your Notion workspace
    • Click the "..." menu in the top right
    • Select "Add connections"
    • Find and add your integration

Running the Server

Start the server in development mode:

npm run dev

Or in production mode:

npm start

The server will run on the port specified in your .env file (default: 3000).

API Endpoints

Regular HTTP Endpoints

  • POST /api/notion/search
    • Search for pages in Notion
    • Body: { "query": "search term" }
  • POST /api/notion/page
    • Get a page by ID
    • Body: { "page_id": "page-id-here" }
  • POST /api/notion/database/query
    • Query a database
    • Body: { "database_id": "database-id-here", "filter": {}, "sorts": [] }
  • POST /api/notion/page/create
    • Create a new page
    • Body: { "parent": {}, "properties": {}, "children": [] }

MCP Integration

The server exposes an MCP manifest at /mcp/manifest.json which describes the available functions.

To invoke an MCP function, send a POST request to /api/notion/mcp/invoke with the following structure:

{ "function_name": "search_pages", "parameters": { "query": "search term" } }

Available MCP Functions

  • search_pages - Search Notion pages by title or content
  • get_page - Get a Notion page by ID
  • query_database - Query a Notion database
  • create_page - Create a new page in Notion

License

MIT

-
security - not tested
-
license - not tested
-
quality - not tested

A server that connects to the Notion API and exposes functionality through Claude's Machine Context Protocol, enabling search, retrieval, querying, and creation of Notion pages and databases.

  1. Features
    1. Setup
      1. Running the Server
        1. API Endpoints
          1. Regular HTTP Endpoints
          2. MCP Integration
        2. Available MCP Functions
          1. License
            ID: 9j2gf4yo67