Fresh Jots

io.github.Goran-ArsovPublished by GitHub account Goran-Arsovv0.2.0Updated Oct 24, 2026

Read and write your Fresh Jots notes from Claude, Cursor, and any MCP client.

VerifiedStreamable HTTPWeb executableProductivity & WorkflowKnowledge & Memory

Overview

AI-generated overview

Fresh Jots MCP server that lets an AI assistant list, read, create, append to, update, move and delete your Fresh Jots notes and folders.

What you can do
List, read, create, append to, update, move and delete notes, including appending to a note by exact filename and creating it on first write for running logs or journals. List, create, rename and delete folders. Optionally encrypt note bodies locally with a passphrase before they are sent, and decrypt them on read. Notes created or edited through the API are plain text; rich notes can only be listed and read.
When to use it
Useful when you keep notes in Fresh Jots and want an assistant in Claude Desktop, Claude Code, Cursor or another MCP client to search, update or accumulate them, for example logging AI sessions or cron output into a single note.
Requirements
A Fresh Jots API token (Dev or Team plan) supplied as FRESHJOTS_TOKEN, or FRESHJOTS_API_TOKEN. Node.js 18 or newer for the local npm package, or the remote endpoint. Optional FRESHJOTS_BASE_URL for self-hosted or staging instances, and optional FRESHJOTS_PASSPHRASE for encryption. OAuth authentication is declared.
Before you install
The API token is a secret and grants access to your notes; keep it out of shared configs. Tools can create, update, move and delete notes and folders, so destructive actions are possible. With FRESHJOTS_PASSPHRASE set, losing the passphrase makes encrypted notes unrecoverable, and note titles and metadata stay unencrypted. Encryption is personal-only, not for team notes.

Installation

In SourceWeft

  1. Open Fresh Jots in the dashboard and add it to a workspace.
  2. Connect the required credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.Goran-Arsov%2Ffreshjots-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.

{
  "mcpServers": {
    "fresh-jots": {
      "type": "http",
      "url": "https://freshjots.com/mcp"
    }
  }
}

README

freshjots-mcp

[smithery badge]

A Model Context Protocol (MCP) server for Fresh Jots. It exposes your Fresh Jots notes as MCP tools, so any MCP client — Claude Desktop, Claude Code, Cursor, and others — can read and write them directly. Point your AI agent's output at a Fresh Jots note, log your coding sessions, or let an assistant search and update your notebook, all through the API.

MCP is an open standard for connecting AI assistants to external tools and data — think of it as a universal adapter, so one integration works across every compatible client.

What you can do

The server talks to the Fresh Jots REST API over a bearer token and exposes these tools:

Notes — list_notes, read_note, create_note, append_to_note, update_note, delete_note, move_note

Folders — list_folders, create_folder, rename_folder, delete_folder

The standout is append_to_note: it appends to a note addressed by an exact filename (e.g. ai-sessions.txt) and creates the note on first write. Call it repeatedly to accumulate a log — AI session transcripts, cron output, a running journal — in one place.

Notes are plain text through the API: rich (Trix) notes can be listed and read, but only plain notes can be created or edited here.

Requirements

Install

Until this is published to npm, build it from source:

bash
git clone https://github.com/Goran-Arsov/freshjots-mcp.gitcd freshjots-mcpnpm install        # also builds via the prepare scriptnpm run build      # or build explicitly

The runnable server is then dist/index.js.

Configuration

The server reads its token from the environment:

  • FRESHJOTS_TOKEN (required) — your mn_… API token. FRESHJOTS_API_TOKEN is also accepted.
  • FRESHJOTS_BASE_URL (optional) — defaults to https://freshjots.com/api/v1. Override for a self-hosted or staging instance.
  • FRESHJOTS_PASSPHRASE (optional) — enables transparent client-side encryption (see below).

Encryption

Set FRESHJOTS_PASSPHRASE and the server can keep notes Fresh Jots cannot read. create_note and append_to_note take an encrypt: true argument that encrypts the body locally before it ever leaves your machine, and marks the note client-encrypted; read_note takes decrypt: true to decrypt it back. The model works in plaintext while Fresh Jots stores only ciphertext — you hold the only key, so lose the passphrase and the note is unrecoverable. Encryption is per-note and personal-only (not team notes); a note's title and metadata stay in the clear. The format (fj1: AES-256-CBC + HMAC-SHA256, PBKDF2) is interoperable with the JS, Python, Ruby, and shell clients. See https://freshjots.com/encrypted-notes.

Claude Desktop

Add to claude_desktop_config.json (Settings → Developer → Edit Config):

json
{  "mcpServers": {    "freshjots": {      "command": "node",      "args": ["/absolute/path/to/freshjots-mcp/dist/index.js"],      "env": { "FRESHJOTS_TOKEN": "mn_your_token_here" }    }  }}

Claude Code

bash
claude mcp add freshjots --scope user \  -e FRESHJOTS_TOKEN='${FRESHJOTS_TOKEN}' \  -- node /absolute/path/to/freshjots-mcp/dist/index.js

Using '${FRESHJOTS_TOKEN}' (single-quoted) stores the reference, not the secret — Claude Code expands it from your shell environment at launch, so keep export FRESHJOTS_TOKEN=mn_… in your shell profile. Or pass the literal token with -e FRESHJOTS_TOKEN=mn_… if you prefer it in the config.

Cursor

Add to ~/.cursor/mcp.json (or a project .cursor/mcp.json):

json
{  "mcpServers": {    "freshjots": {      "command": "node",      "args": ["/absolute/path/to/freshjots-mcp/dist/index.js"],      "env": { "FRESHJOTS_TOKEN": "mn_your_token_here" }    }  }}

Once published to npm, command: "npx", args: ["-y", "freshjots-mcp"] will replace the local path in any of the above.

Development

bash
npm run build   # compile TypeScript to dist/npm test        # unit tests (fetch stubbed; no network)node smoke.mjs  # live end-to-end test against the real API — needs FRESHJOTS_TOKEN;                # creates only clearly-marked [mcp-test] notes/folders and deletes them

License

MIT © Goran Arsov

Source: README.md at commit bcef5dc

Tools

0
This server asks you to sign in, so SourceWeft could not read its tools without an account and has not indexed them. What a connected account sees can depend on that account and its permissions.

Version history

1
  1. v0.2.0LatestSep 16, 2026

Score

85% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts