JUHE API Marketplace
snowan avatar
MCP Server

Notion MCP Server

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.

0
GitHub Stars
8/23/2025
Last Updated
No Configuration
Please check the documentation below.

README Documentation

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

Quick Actions

Key Features

Model Context Protocol
Secure Communication
Real-time Updates
Open Source