This is a submission for the Notion MCP Challenge
What I Built
A CLI research pipeline that turns a free-form topic into structured, evidence-backed claims and optional narrative output, with Notion as the place those results live.
Research and fact-check. The tool expands the topic with an LLM (brief plus multiple web searches), merges and deduplicates what Tavily returns, then asks an LLM to pull out discrete claims tied to specific URLs and snippets. Each claim is challenged in a second pass: another search for counter-evidence and an LLM judgment with a confidence level, a contradiction flag, and short notes—so every assertion carries a provenance trail, not just a paragraph of prose.
Optional report. You can also generate a readable research write-up (Markdown) and publish the same content as a normal Notion page—separate from the structured claim data.
Notion sync. A companion step pushes the claim set into Notion as a Research claims database: one row per claim, with the claim text, source link, snippet, topic label, confidence, contradiction flag, and fact-check notes. Sync uses the Python MCP client against Notion’s hosted MCP.
Re-runs. You can refresh adversarial fact-checking on an existing claim set without redoing the whole research pass.
Stack: Python, OpenRouter (LLM), Tavily (search), and Notion MCP for the sync step. Useful for research, due diligence, or keeping a living backlog of traceable assertions in Notion.
Video Demo
Show us the code
https://github.com/LPMatrix/notion-mcp
How I Used Notion MCP
Notion MCP is the only way data gets into Notion in this project. The research pipeline — search, claim extraction, adversarial fact-check — writes to a local JSON file. A separate script, sync_to_notion.py, handles the sync entirely through MCP:
- Connects to Notion's hosted MCP server at https://mcp.notion.com/mcp using the Python MCP SDK with Streamable HTTP transport and an OAuth Bearer token
- Calls list_tools() after session.initialize() and resolves tool names at runtime
- Creates the "Research claims" database via the create-data-source tool, passing the parent page ID, title, and property schema
- Creates one page per claim via the create-page tool, writing all seven properties: Claim, Source URL, Source Snippet, Topic, Confidence, Contradiction, and Fact-check notes

Top comments (0)