LABSCO SUMMARY
Two directions, one database.
Scope is a single Notion database named by an environment variable, which keeps the permissions story simple: whatever that integration can reach is what the agent can reach. Reads and writes both go through it, so the answer and the record of the answer end up in the same place.
What it is
A Python MCP server bound to one Notion database. It retrieves survey data from that database and creates survey pages inside it, so a research conversation ends with a written record rather than a scrollback.
What you get
- Survey data retrieved from the Notion database you name
- New survey pages created in that same database
- A record that lives in Notion, where the rest of the team already looks
Requirements
A Notion integration token and a database ID: create the integration at Notion's My Integrations page, create a database page, and put NOTION_TOKEN and NOTION_ROOT_DATABASE_ID in a .env. Python 3.12.1 or later and uv 0.5.25 or later. The client launches uv with run, pulling mcp[cli], notion-client and pydantic, pointed at server.py.
Setup effort
Follow the published steps — Clone the repository.
USE CASES
01
Running a survey and filing it in one pass
Ask for the work to be done and have the resulting page created in the Notion database without a copy-paste step.
02
Picking up where an earlier survey left off
Retrieve what is already recorded before starting something that may already have been answered.
BEFORE YOU INSTALL
What to know first
Requires
- Python 3.12.1
- NOTION_TOKEN in your environment
- NOTION_ROOT_DATABASE_ID in your environment
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
Clone the repository.
Obtain a Notion token from Notion Integrations.
Create a database page in Notion and retrieve the database ID. The database ID is the last part of the page URL.
Create a .env file containing NOTION_TOKEN=<YOUR_NOTION_TOKEN> and NOTION_ROOT_DATABASE_ID=<YOUR_NOTION_ROOT_DATABASE_ID>, one per line
Add an MCP server definition to claude_desktop.json:
Restart the Claude Desktop Client to launch the Research MCP Server.
MCP Clients
Claude Desktop
CLAUDE DESKTOP · JSON
{
"mcpServers": {
"Research MCP Server": {
"command": "uv",
"args": [
"run",
"--with",
"mcp[cli]",
"--with",
"notion-client",
"--with",
"pydantic",
"mcp",
"run",
"<YOUR_PATH_TO_RESEARCH_MCP_SERVER>/server.py"
]
}
}
}The configuration on this page does not set NOTION_TOKEN and NOTION_ROOT_DATABASE_ID; the project's instructions put them in a .env file. Check which folder the server reads that file from before you rely on it.