Notion
Notion is where many teams keep their knowledge — decisions, runbooks, gotchas. tsforge can search and read it so the agent’s work reflects the team’s existing context, and capture a durable note back when something is worth recording.
Notion is a curated integration over MCP — see MCP servers for the shared model (capability = consent, curated verbs, opt-in).
Turn it on
Section titled “Turn it on”Add a notion MCP server to tsforge.config.json, bridging the remote server to stdio with mcp-remote:
{ "mcpServers": { "notion": { "command": "npx", "args": ["-y", "mcp-remote", "https://mcp.notion.com/sse"] } }}The server must be keyed exactly notion. Once it connects, an interactive session prints ↳ notion: on. Force it off with TSFORGE_NO_NOTION=1.
The tools
Section titled “The tools”notion_read(read-only):search(find pages matching a query — titles + ids) andpage(read one page’s content by id). Use it to pull context and decisions before or while working.notion_write:create(a new page — title, content, optional parent) andappend(add content to an existing page). Use it to record a decision, a summary, or a gotcha for the team.
Pages tsforge writes are for a human reader — the intent and the context, not code mechanics.
When they’re active
Section titled “When they’re active”Reads are available in every mode, including plan mode. Writes follow capability-as-consent: allowed interactively, denied while planning or running unattended. See Permissions & policy.
| Variable | Default | Effect |
|---|---|---|
TSFORGE_NO_NOTION | off | withhold the Notion tools even when the server is connected (=1) |
TSFORGE_NOTION_RAW | off | also advertise the raw mcp__notion__* tools alongside the curated verbs (=1) |