MCPcopy
hub / github.com/dvanoni/notero

github.com/dvanoni/notero @v1.2.3 sqlite

repository ↗ · DeepWiki ↗ · release v1.2.3 ↗
547 symbols 1,107 edges 102 files 35 documented · 6%
README

Notero

Latest release Total downloads Works with Zotero Buy me a coffee

Notero is a Zotero plugin for syncing items and notes into Notion. To use it:

  1. 💾 Install the Notero plugin into Zotero.
  2. 📔 Connect and configure your Notion database.
  3. 📁 Choose your Zotero collections to monitor.
  4. 📝 Add or update items in your collections.
  5. 🔄 Watch your items sync into Notion!

Notero in action

Concept by @arhoff 👩🏻‍🔬 | Built with 💜 by @dvanoni

Table of Contents

Why Use Notero?

  • Integrate your reference manager, task list, reading notes, analytical tables, and drafts in one location.
  • Easily link to references when writing in Notion.
  • Create custom views to filter and sort large reference lists by project, tag, author, etc.
  • Backlinks make it easy to locate any of the notes and drafts that mention a reference.
  • Link references to entries in other databases, such as projects, tasks, manuscripts in your publication pipeline, publishing outlets, etc.

How Notero Works

The Notero plugin watches for Zotero items being added to or modified within any collections that you specify in the Notero preferences. Whenever an item is added or modified, Notero does a few things:

  • Save a page with the Zotero item's properties (title, authors, etc.) into the Notion database specified in Notero preferences.
  • Add a notion tag to the Zotero item.
  • Add an attachment to the Zotero item that links to the page in Notion.

In addition to providing a convenient way to open a Notion page from Zotero, the link attachment also serves as a reference for Notero so that it can update the corresponding Notion page for a given Zotero item.

Syncing Items

By default, Notero will sync items in your monitored collections whenever they are modified. You can disable this functionality by unchecking the Sync when items are modified option in the Notero preferences.

You can also sync items from the collection or item context menus (right-click):

  • To sync all items in a collection, open the context menu for the collection and select Sync Items to Notion.
  • To sync one item or multiple items, select the item(s) in the main pane, open the context menu, and select Sync to Notion.

[!NOTE] To prevent the "sync on modify" functionality from saving to Notion multiple times, Notero does not notify Zotero when the tag and link attachment are added to an item. This means they may not appear in Zotero immediately, and you may need to navigate to a different item and back to make them appear.

Syncing Notes and PDF Annotations

Zotero notes associated with an item can be synced into Notion as content of the corresponding page for that item. As with regular items, you can manually sync notes using the Sync to Notion option in the context menu.

Automatic syncing of notes can be enabled via the Sync notes option in the Notero preferences. When enabled, notes will automatically sync whenever they are modified. Additionally, when a regular item is synced, all of its notes will also sync if they have not already.

To sync annotations (notes and highlights) from a PDF, you'll first need to extract them into a Zotero note:

  1. Select an item or PDF, open the context menu, and select Add Note from Annotations.
  2. If desired, enable highlight colors from the menu at the top-right of the note panel.

Example of creating a note from PDF annotations

Installation and Setup

Using Notero involves installing the plugin in Zotero and connecting it to a Notion database. Detailed setup instructions are below.

Install and Configure Notero Plugin

[!IMPORTANT]

  • The latest release of Notero requires Zotero 7.0 or above.
  • Support for Zotero 6.0.27 and above is available in Notero v0.5.17.
  • See the changelog for all release notes.
  1. Download the latest release of the .xpi file.
  2. Alternatively, download the .xpi file from the Assets section of the latest release page.
  3. Firefox users: Right-click the download link and choose Save Link As... to download the file.
  4. Open the Zotero Plugins Manager via the Tools → Plugins menu item.
  5. Install the .xpi file by either:
  6. dragging and dropping it into the Plugins Manager window or
  7. selecting it using the Install Plugin From File... option in the gear menu in the top-right corner of the window
  8. Open the Notero preferences from either the Tools → Notero Preferences... menu item or the sidebar in the main Zotero preferences window.
  9. Configure the Notero preferences as desired.

Connect to Notion

[!NOTE]

Before version 1.0.0, Notero required you to create your own Notion internal integration and manually set the integration secret in the Notero preferences. This is no longer necessary as Notero now uses a public integration with an authentication flow provided by Notion.

If you previously set up Notero with an internal integration, you can click the Upgrade Connection button in the Notero preferences to switch to the public integration as described below. Once complete, you can delete your internal integration from the Notion integrations page.

  1. Start the Notion connection process by clicking the Connect to Notion button in the Notero preferences. This will open the Notion connection page in your default web browser.
  2. On the Notion connection page, select your desired workspace from the menu at the top (if you have multiple). Then, click Next.
  3. On the next page, choose whether you want to use a template database or connect to an existing database page.
  4. If you choose to use a template, the basic example database will be duplicated into your workspace.
  5. If you choose to select an existing database, you can search for and select your preferred database on the next page. You can also select no database and connect one later in Notion.
  6. Click Allow access to give Notero access to your Notion workspace and database. You will then be redirected to a page that prompts you to open Zotero.
  7. Click Open Zotero to complete the connection process in Zotero. The Notero preferences should show that you are connected to your Notion workspace.
  8. If Zotero does not open or successfully connect to Notion, copy the connection token from the Notion connection page and paste it into the Connection Token field in Notero preferences.

Example of connecting to Notion

Configure Notion Database

If you choose not to use the template database during the Notion connection process, you will need to create your own database. See examples below that you can duplicate into your workspace, or create one from scratch with properties described in the database properties section below.

To give Notero access to your database, follow these steps:

  1. Go to the database page in your workspace.
  2. Click on the ••• More menu in the top-right corner of the page.
  3. Scroll down to and click Connections.
  4. Search for and select Notero in the Search for connections... menu.

Example of connecting database to Notero

Notion Database Properties

Notero can sync data for the properties listed below. The only property required by Notero is one with the Title property type. The other properties are optional, so you can use only the ones that suit your needs.

The Title property can be named something other than Name as long as it does not conflict with any of the other property names. The name and type of the other properties must be configured exactly as specified here. Note that property names are case-sensitive, so the capitalization must match exactly.

Support for customizing properties is planned for the future; see issue #355.

Property Name Property Type Notes
Name Title Format configurable via the Notion Page Title option in Notero preferences
Abstract Text
Authors Text
Citation Key Text Requires Better BibTeX
Collections Multi-select
Date Text
Date Added Date
Date Modified Date
DOI URL
Editors Text
Extra Text
File Path Text
Full Citation Text Format based on the Zotero setting for Export → Quick Copy → Item Format
In-Text Citation Text Format based on the Zotero setting for Export → Quick Copy → Item Format
Item Type Select
Place Text
Proceedings Title Text
Publication Text
Series Title Text
Short Title Text
Tags Multi-select
Title Text
URL URL
Year Number
Zotero URI URL Opens items in web library if signed in to Zotero

Usage Guides

For more visual guides of setting up and using Notero, see the following resources made by wonderful members of the community.

[!NOTE] Some aspects of these resources may be outdated, so be sure to refer to this README for the latest information.

Extension points exported contracts — how you extend this code

Service (Interface)
(no doc) [7 implementers]
src/content/services/service.ts
Localization (Interface)
* @see https://searchfox.org/mozilla-esr115/source/dom/webidl/Localization.webidl
types/l10n.d.ts
MozXULElement (Interface)
* @see https://searchfox.org/mozilla-esr115/source/toolkit/content/customElements.js
types/xul.d.ts
Notifier (Interface)
(no doc) [1 implementers]
types/zotero.d.ts
Document (Interface)
(no doc)
types/global.d.ts
BaseOptions (Interface)
(no doc)
types/web-ext.d.ts
amIAddonManagerStartup (Interface)
(no doc)
types/xpcom.d.ts
Addon (Interface)
(no doc)
types/jsm.d.ts

Core symbols most depended-on inside this repo

get
called by 25
types/zotero.d.ts
createZoteroItemMock
called by 20
test/utils/zotero-mock.ts
buildRichText
called by 18
src/content/sync/notion-utils/build-rich-text.ts
getField
called by 17
types/zotero.d.ts
debug
called by 14
types/zotero.d.ts
isObject
called by 13
src/content/utils/is-object.ts
truncateMiddle
called by 11
src/content/utils/truncate-middle.ts
getXULElementById
called by 10
src/content/utils/elements.ts

Shape

Method 256
Function 168
Interface 86
Class 34
Enum 3

Languages

TypeScript100%

Modules by API surface

types/xpcom.d.ts89 symbols
types/zotero.d.ts80 symbols
types/web-ext.d.ts29 symbols
types/l10n.d.ts25 symbols
src/content/sync/property-builder.ts16 symbols
src/content/auth/notion-auth-manager.ts15 symbols
types/xul.d.ts14 symbols
src/content/prefs/notero-pref.ts14 symbols
src/content/services/sync-manager.ts13 symbols
src/content/notero.ts13 symbols
src/content/prefs/sync-configs-table.tsx12 symbols
src/content/prefs/preferences.tsx12 symbols

Dependencies from manifests, versioned

@commitlint/cli20.5.2 · 1×
@commitlint/config-conventional20.5.0 · 1×
@fluent/syntax0.19.0 · 1×
@notionhq/client4.0.1 · 1×
@total-typescript/ts-reset0.6.1 · 1×
@types/adm-zip0.5.8 · 1×
@types/fs-extra11.0.4 · 1×
@types/jsdom28.0.1 · 1×
@types/react18.3.28 · 1×
@types/react-dom18.3.7 · 1×
@types/semver7.7.1 · 1×
adm-zip0.5.17 · 1×

For agents

$ claude mcp add notero \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact