# Notion MCP

> Notion MCP connects your entire workspace—pages, databases, and blocks—to your AI agent. It lets you search across documents, query structured data tables, and create or update records without ever leaving your chat environment. Treat Notion like a dynamic knowledge base that talks directly to your workflow.

## Overview
- **Category:** loved-by-devs
- **Price:** Free
- **Tags:** workspace-automation, database-query, document-management, fuzzy-search, block-management

## Description

You don't have to treat Notion as just a static dumping ground for notes anymore. This MCP turns it into an active, searchable database accessible by your AI agent. Your agent can now perform deep searches across the entire workspace to find documents buried in nested pages or complex databases. It doesn't just read the titles; it reads the actual content, pulling out specific data points you need.

Need to automate tracking? You can query structured databases for precise records or use the tools to build new tasks and write full documentation directly inside a container. When you connect this MCP via Vinkius, your agent acts like an intelligent librarian, giving it access to every corner of your knowledge base—from finding user emails using the `list_users` tool to appending notes using `append_block_children`. It makes your whole company wiki feel less like documentation and more like a real-time operational data source.

## Tools

### create_database
Creates an entirely new, structured database inside any Notion page.

### append_block_children
Inserts specific content blocks like paragraphs or lists to the end of a page or existing block.

### archive_page
Permanently archives or deletes an entire Notion page.

### get_blocks
Reads all the textual and structured content blocks contained within a specific page.

### create_page
Adds a new, empty record or row inside an existing database structure.

### delete_block
Permanently deletes a specific content block from a page; this action cannot be reversed.

### get_database
Retrieves the column definitions and structure (schema) of an existing database.

### get_page
Pulls only the metadata properties—like owner or date—for a single Notion page without reading its content.

### list_users
Generates a list of all team members and automated bot accounts within your workspace.

### query_database
Reads specific, structured data rows from an existing Notion database based on criteria you provide.

### search_databases
Performs a fuzzy text search across all databases in your workspace to help locate the correct one by name or content.

### search_pages
Searches globally for pages using fuzzy matching, helping you quickly find documents by title or general topic.

### update_page_properties
Modifies specific metadata fields (like status or owner) on a page without changing its main content.

### update_page_title
Changes the visible title of an entire Notion page.

## Prompt Examples

**Prompt:** 
```
Search my Notion workspace for any pages containing 'Q4 Marketing Strategy'.
```

**Response:** 
```
I searched your Notion workspace and found the page 'Q4 Marketing Strategy (Final)' with ID `abc-123`. Let me know if you would like me to read the contents of its blocks.
```

**Prompt:** 
```
Create a new row in my Project Tasks database marking the title as 'Update API Docs'.
```

**Response:** 
```
I've successfully created a new active row 'Update API Docs' within the Project Tasks database. The new record has been initialized and is ready for further updates.
```

**Prompt:** 
```
List all team members currently registered in my Notion.
```

**Response:** 
```
Here are the users active within your Notion domain: Jane Doe (`jane@domain.com`), John Smith (`john@domain.com`), and 3 active Bot integrations.
```

## Capabilities

### Global Document Search
Find specific pages or databases anywhere in your workspace by searching titles or content snippets.

### Structured Data Querying
Read precise rows and columns of data from Notion databases, treating them like a spreadsheet you can chat with.

### Content Deep Dive
Access metadata and retrieve the raw text content from nested blocks within any page.

### Knowledge Base Updates
Programmatically create new pages or insert data rows into databases to keep information current.

### User Directory Lookup
Get a list of all users and bots registered in the Notion workspace for accurate team mapping.

## Use Cases

### Finding outdated specs for an API call.
A developer needs to know which version of the API was used in Q2. They ask their agent, and the agent uses `search_pages` to locate the correct project specification document and then runs `get_blocks` to read out the exact data block they need.

### Generating a weekly report summary.
An Ops Manager wants to know the status of 15 active tasks. The agent uses `search_databases` to locate the 'Project Tracker' database, then runs `query_database` to pull all current statuses into a single text output.

### Onboarding a new team member.
A hiring manager needs to know who owns specific documentation. They ask their agent to run `list_users`, getting an immediate roster of every active user and bot, streamlining the process instantly.

### Migrating meeting notes into a central database.
After a strategy session, a PM wants to capture action items. The agent takes the raw text, uses `get_blocks` to extract key decisions, and then runs `create_page` in the 'Action Items' database.

## Benefits

- You get instant access to team membership information using `list_users`, so you never have to manually check who is assigned to a task or document.
- Instead of scrolling through hundreds of pages, use `search_pages` and `search_databases` for fuzzy searching that pinpoints the exact record or wiki page you need instantly.
- When you need data points—like 'What was the Q3 revenue target?'—you run a `query_database` command to pull only the structured answer, skipping all the surrounding narrative text.
- Drafting updates is simple. You can use `append_block_children` to add meeting notes or status reports directly into an existing page without opening Notion in another tab.
- Want to keep data clean? Use `update_page_properties` to change a document's owner, status, or priority field automatically based on the AI's findings.

## How It Works

The bottom line is you get to use your AI client's reasoning power against the structured data of your company wiki and project trackers.

1. Subscribe to this MCP and provide your Notion Internal Integration Secret.
2. Your AI client authenticates, granting permission to read and write across your entire linked workspace.
3. You start by asking your agent a question—for example, 'What was the API status in Q2?'—and it runs the necessary queries to pull the answer from the right database.

## Frequently Asked Questions

**How do I search my Notion workspace using the Notion MCP?**
You use `search_pages` or `search_databases`. These tools let your agent perform a fuzzy text search across all pages or databases to help you locate the correct UUID first.

**Can I update database fields with Notion MCP?**
Yes, if you know the specific property and value, you can use `update_page_properties` to change status, owner, or other metadata on a page.

**What is the difference between getting data and searching with Notion MCP?**
`get_blocks` reads the actual content inside a specific page. `search_pages` finds the *location* (the UUID) of pages matching your query, but doesn't read the content.

**How do I list all team members in Notion?**
Simply run the `list_users` tool. It enumerates every active user and bot integrated into your workspace so you can map assignees accurately.

**Can I create a new task using Notion MCP?**
Yes, use `create_page`. This tool lets your agent insert a brand-new record or row directly into an existing database structure inside Notion.