MCP Server
by seonglae
# Browse your entire Notion workspace, not just one database
Markdown based Notion navigating MCP with just a single `ROOT_PAGE` variable, eliminating the need for a token.
- Notion MCP Server: `notion-texonom`
- Notion pages are converted into `text/markdown` mimeType notes.
- Search and retrieve relevant pages based on graph distance, considering parent-child and reference relationships.
A Model Context Protocol (MCP) server for managing and interacting with Notion-based notes. This TypeScript-based server demonstrates MCP concepts by integrating resources, tools, and prompts to interact with Notion pages efficiently.
## Features
### Resources
<img width="768" alt="Resources Inspection" src="image/resources.png">
- **Access Notes**: List and retrieve Notion pages as `note://` URIs with UUID slugs.
- **Metadata**: Each resource includes a title, description, and content in Markdown format.
- **Mime Types**: Content is accessible in `text/markdown` format.
### Tools
<img width="768" alt="Tools Inspection" src="image/tools.png">
- **Search Notes**: Use the `search_notes` tool to search for Notion pages using a query string.
- Input: Query text to filter relevant pages.
- Output: Markdown content of matching notes.
### Prompts
<img width="768" alt="Prompts Inspection" src="image/prompts.png">
- **Summarize Notes**: Generate summaries for individual Notion pages.
- Available Prompts:
- `summarize_note`: Summarize a specific note by URI.
- `suggest_refactor`: Propose structural improvements.
- `suggest_fix`: Identify potential fixes for note content.
- `suggest_enhance`: Recommend enhancements to improve the note.
- Input: Notion page URI.
- Output: Structured messages for summarization and enhancement.
## Development
### Setup
Install dependencies:
```bash
pnpm install
```
Build the project:
```bash
pnpm build
```
For development with auto-rebuild:
```bash
pnpm watch
```
## Configuration
To configure the server with Notion:
- Set environment variables:
- `ROOT_PAGE`: The root page ID of your Notion workspace.
## Installation for Claude Desktop
To use this server with Claude Desktop, add the configuration:
- MacOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%/Claude/claude_desktop_config.json`
Example configuration:
```json
{
"mcpServers": {
"notion-texonom": {
"command": "node",
"args": [
"/path/to/mcp/build/index.js"
],
"env": {
"ROOT_PAGE": "$SOME_UUID"
}
}
}
}
```
### Debugging
For troubleshooting and debugging the MCP server, use the MCP Inspector. To start the Inspector, run:
```bash
pnpm inspector
```
The Inspector provides a browser-based interface for inspecting stdio-based server communication.
## Key Technologies
- Notion Integration: Powered by `@texonom/nclient` and `@texonom/cli.`
- MCP SDK: Implements `@modelcontextprotocol/sdk` for server operations.
## Remote Deployment
The server now uses `SSEServerTransport` for remote communication, enabling shared usage of the server. Ensure that the necessary dependencies are installed and the server is configured correctly for remote deployment.
## Usage Instructions
To run the server with `SSEServerTransport`, use the following command:
```bash
npx -y supergateway --port 8000 --stdio "npx -y @modelcontextprotocol/server-filesystem /some/folder"
```
Make sure to replace `/some/folder` with the appropriate path to your folder.