notefeed

Oct 1

  1. notefeed 0.6.0

    Released 2026-10-01 · on GitHub

    An MCP endpoint, with OAuth login for locked instances.

    MCP

    • AI assistants can post and read notes at /mcp. Three tools: post_note, list_notes and get_note. The feed name is a parameter of each tool, so one endpoint serves every feed. Posting follows the same rules as the HTTP API: size limit, rate limit, caps, and the first post creates the feed.
    • Claude Code: claude mcp add notefeed --transport http https://notes.example.com/mcp. On an instance with a password, add --header "Authorization: Bearer <password>".
    • Claude.ai and Claude Desktop: add a custom connector with the /mcp URL.
    • The endpoint speaks MCP 2026-07-28 and nothing older. An older client gets a 400 naming the supported version.

    OAuth 2.1 login

    • For clients that can't send a header. On an instance with a password, a connector opens notefeed's own login page, which names the client and the host it returns to. Enter the instance password and press Allow. On an open instance these endpoints answer 404.
    • Nothing is stored. Client ids, codes and tokens are signed with a key derived from the server secret and the password. Changing NOTEFEED_PASSWORD signs every client out.
    • Lifetimes: a code lasts 5 minutes and works once, an access token 1 hour, a refresh token 30 days and is replaced each time it's used.
    • OAuth needs the instance's public https:// address: set PUBLIC_URL, or NOTEFEED_TRUST_PROXY=1 behind a reverse proxy.

    Changed: forwarded headers need NOTEFEED_TRUST_PROXY

    • Without PUBLIC_URL, notefeed used to build links from X-Forwarded-Proto and X-Forwarded-Host on any connection, so a client could pick the host in RSS links, API responses and redirects. It now uses them only with NOTEFEED_TRUST_PROXY=1, and otherwise the Host header over http.
    • Behind a reverse proxy without PUBLIC_URL: set NOTEFEED_TRUST_PROXY=1 or PUBLIC_URL, or links will come out as http://.

    Client packages 0.6.0 (PyPI and npm notefeed)

    • No changes since 0.5.0. The version follows the release.

    Under the hood

    • oauth is a reserved feed name.
    • ADR 0007 records the MCP endpoint and OAuth decisions.