Show HN: Open-Source Notion MCP Server (TypeScript, SSE, Apify)

Show HN (score: 6)
Found: December 15, 2025
ID: 2682

Description

DevOps
Show HN: Open-Source Notion MCP Server (TypeScript, SSE, Apify) Hello HN,

I built this because I wanted to give Claude Desktop access to my Notion workspace without running a flaky local Python script via stdio.

This is a Node.js/Express implementation of the Model Context Protocol (MCP) that uses SSE (Server-Sent Events) for transport. It’s designed to be stateless and deployable as a container (I'm hosting it on Apify, but it works anywhere with Node).

The Stack:

TypeScript + Express

@modelcontextprotocol/sdk

Zod for input validation

Bearer Auth for security (since it exposes an HTTP endpoint)

Capabilities: It allows the LLM to search pages, read database properties, and append blocks. I use it primarily to have Cursor/Claude summarize documentation and create tasks in my sprint board directly from the chat context.

Repo: https://github.com/piskunproject/notion-mcp-server/ One-click deploy (Apify): https://apify.com/piskunlab/notion-mcp-server

Feedback on the SSE implementation is welcome!

More from Show

Show HN: Control Claude permissions using a cloud-based decision table UI

Show HN: Control Claude permissions using a cloud-based decision table UI We’ve been building visual rule engines (clear interfaces + API endpoints that help map input data to a large number of outcomes) for a while and had the fun idea lately to see what happens when we use our decision table UI with Claude’s PreToolUse hook.<p>The result is a surprisingly useful policy&#x2F;gating layer– these tables let your team:<p>- Write multi-factor, exception-friendly policies (e.g. deny rm -rf &#x2F; when --force; allow cleanup only in node_modules; ask on network calls like curl&#x2F;wget; block kubectl delete or SQL DROP, each with a clear reason)<p>- Roll out policy changes instantly (mid-run, flip a risky operation from allow → ask; the next attempt across devs and agents is gated immediately– no git pull, agent restart, or coordination)<p>- Adopt lightweight governance that is somewhat agent agnostic and survives churn (MCP&#x2F;skills&#x2F;etc)- just add columns&#x2F;rules as new tools and metadata show up<p>- Get a quick central utility to understand which tools are being used, which tools get blocked most often, and why

Show HN: Claude Code Scheduler

Show HN: Claude Code Scheduler I found myself frequently wanting to schedule tasks in Claude Code (both one-time and recurring) so I built a CC plugin to help with that.<p>To install: &#x2F;plugin marketplace add jshchnz&#x2F;claude-code-scheduler &#x2F;plugin install scheduler@claude-code-scheduler<p>Then just tell Claude what you want (some examples):<p>Every Wednesday at 3am find dead code: unused functions, unreachable branches, commented-out code, and unused imports. List by file with line numbers.<p>Schedule a code review every weekday at 9am. Review commits from the last 24 hours, check for bugs, security issues, error handling gaps, and code that needs comments. Summarize with file:line references.

Show HN: Webctl – Browser automation for agents based on CLI instead of MCP

Show HN: Webctl – Browser automation for agents based on CLI instead of MCP

Show HN: Tsonic – A TypeScript to native code compiler via CLR and NativeAOT

Show HN: Tsonic – A TypeScript to native code compiler via CLR and NativeAOT

No other tools from this source yet.