Open source AI releases, past day 2026The consumer-side plug-in gapFazm v2.4.0 - shipped today

Open source AI project releases and updates, past day 2026: how to plug any new MCP into a signed Mac agent in minutes

The top results for this query all do the same thing. They list the day's model weight drops, framework bumps, and repo announcements, then stop. None of them tells a reader how to actually run any of those releases as a live tool on their own machine the same day. Fazm v2.4.0 shipped on 2026-04-20 with a user-editable ~/.fazm/mcp-servers.json and a Settings UI to match. A new MCP server released at 9am is a working Fazm tool by 9:05am. No rebuild. No notarize. No Claude Code setup.

F
Fazm
12 min read
4.9from 200+
Anchored on Fazm v2.4.0, shipped 2026-04-20 (today)
Every claim pinned to a file and line in the open Fazm source
Format identical to Claude Code, so any MCP server you run there runs here
Fazm v2.4.0 (2026-04-20)~/.fazm/mcp-servers.jsonacp-bridge/src/index.ts:1104MCPServerManager.swiftClaude Code compatible formattakes effect on next conversationuser MCPs merged with 5 built-insstdio, any commandSwift + Python + Node + anythingno rebuild, no sign, no notarizeSettings UI (Add/Edit/Toggle)BUILTIN_MCP_NAMES Set protectedenabled defaults trueenv flattens to {name,value}emitMcpServers(servers) publishes live
36 lines

The whole user-MCP feature is one 36-line block in acp-bridge/src/index.ts that reads ~/.fazm/mcp-servers.json, filters disabled entries, and merges the rest onto the same array as the five built-in MCP servers before emitMcpServers publishes them to the UI.

acp-bridge/src/index.ts:1102-1139 and MCPServerManager.swift:4-45

The anchor fact: one path, one loader, one merge

This is the full bridge-side loader. Every user-authored MCP server is resolved, validated, and merged into the same active-servers array as the five built-in ones that Fazm compiles into its signed bundle. The only difference is origin: built-ins are pinned at build time in build.sh, user MCPs are read at session time from the user's home directory.

acp-bridge/src/index.ts, lines 1102-1139

Five checks fire for every entry: file exists, JSON parses, entry is not enabled:false, command is present, and env flattens cleanly into {name, value} pairs. Survivors join the same array that feeds the UI's active servers panel.

0 linesloader lines
0 built-insbuilt-in MCPs
0rebuild required
0 fileJSON file to edit

How a new open-source AI release reaches a live Fazm conversation

An MCP server released anywhere on the open internet in the past day ends up as a callable tool in a Fazm chat through a single merge point. The bridge does the merge. The user chooses which side any given MCP comes from.

Release surface to live agent

New OSS MCP on GitHub
uvx / npx / binary
You, editing JSON
acp-bridge
macos-use tools
Claude subprocess
Fazm conversation

Same day, two different stories

A new open-source MCP server drops on a Tuesday morning. Before v2.4.0, the consumer path looked like a framework build. After v2.4.0, it looks like editing a JSON file.

FeatureBefore v2.4.0 or no Fazm at allFazm v2.4.0 (today)
Time from release to working toolDays: wait for next consumer release or build Claude Code yourselfMinutes: edit one JSON file
Command surfaceOnly what the vendor pre-bundlesAny stdio command: uvx, npx, node, python3, custom binary
Developer tools requiredSwift toolchain, or Claude Code CLI, or custom integrationNone. Text editor or Settings UI
App restartYes, a full app update or framework relaunchNo. Changes apply on next conversation
Collision with built-insNamespace collisions silently overwriteProtected via BUILTIN_MCP_NAMES Set at index.ts:1266
Config formatPer-vendor, per-framework YAML, TOML, or proprietaryIdentical to Claude Code mcpServers
Works with macOS accessibility APIsScreenshot OCR fallback or browser-onlyYes, built-in macos-use MCP is always loaded alongside

What ~/.fazm/mcp-servers.json actually looks like

The format mirrors Claude Code exactly. A top-level object where each key is a server name and each value carries command, args, env, and enabled. An example with three real open-source MCPs that released in the past few days.

~/.fazm/mcp-servers.json

Three entries. One Python MCP via uvx, two npm MCPs via npx, the third temporarily disabled with enabled: false so the bridge loader skips it at line 1115. The loader never rejects malformed env or missing optional keys: the only hard requirement is a non-empty command.

End-to-end: add a just-released MCP in under two minutes

Pretend a postgres MCP server dropped an hour ago. Here is the full flow from zero to a tool call in a Fazm conversation.

bash

Six steps, start to first tool call

1

1. Read the new MCP's README

Find the command it exposes. Most shipped in the past day use `uvx package@version` (Python) or `npx -y @scope/package` (Node). Binary MCPs ship a release asset you download and point at.

2

2. Create or edit ~/.fazm/mcp-servers.json

Pick a server name that does not collide with fazm_tools, playwright, macos-use, whatsapp, or google-workspace. Fill in command, args, env, and optionally enabled.

3

3. Smoke-test the command outside Fazm

Run the same command yourself in a terminal to confirm it can reach its dependencies (database URL, API key, file path). The bridge logs spawn failures but it is faster to catch them before a chat turn.

4

4. Start a new conversation in Fazm

The bridge reads ~/.fazm/mcp-servers.json at session-spin-up. Any chat session begun after saving the file picks up the new server. Existing chats keep their previous tool list.

5

5. Watch the active servers panel

The Settings > MCP Servers view (SettingsPage.swift:1941) shows both the five built-ins and your user entries with a green/gray status dot. Green means the bridge spawned the command successfully.

6

6. Call a tool and iterate

Ask Fazm to do a task that needs the new MCP. The model sees the new tool surface in the same list as the accessibility-API tools and picks based on the prompt. Flip `enabled: false` to toggle off without deleting the entry.

Categories of open-source AI releases worth plugging in this week

'Open-source AI release' is a broad bucket. For the consumer Mac agent use case, only MCP-shaped releases turn into same-day tools. These are the buckets that matter.

Database and storage MCPs

postgres, sqlite, redis, duckdb, supabase. A command that talks to your local or remote store and exposes query, list, describe as tools.

Search and retrieval MCPs

brave-search, exa, perplexity, tavily. Adds a web-query tool the agent can pair with macos-use to act on results.

Developer tools MCPs

github, linear, sentry, gitlab, jira. Each adds issue, PR, and log tools that plug into any desktop workflow.

Vertical-domain MCPs

Financial data, legal research, scientific papers, maps, real estate. Same stdio shape, different dataset.

Agent-browser MCPs beyond Playwright

Past-day releases: browser-use-mcp, stagehand, firecrawl MCP. Sits alongside the pinned @playwright/mcp v0.0.68 without clashing.

Memory and vector MCPs

memory-mcp, chromadb-mcp, pinecone-mcp. Adds cross-session recall to a Mac agent that already has macOS accessibility context.

A sample of open-source MCP servers shipped or updated in the past week that drop in without a single code change:

postgres-mcpsqlite-mcpgithub-mcplinear-mcpsentry-mcpbrave-search-mcpexa-mcpperplexity-mcpnotion-mcpslack-mcpstripe-mcpsupabase-mcpfetch-mcpfilesystem-mcpgit-mcpmemory-mcptime-mcpvector-mcp

What the loader validates before a user MCP becomes live

Five gates. A user MCP that clears all five ends up in the same servers array the built-ins live in, and emitMcpServers(servers) at line 1139 publishes the merged list to the UI.

Bridge-side load pipeline

1

File exists?

existsSync(~/.fazm/mcp-servers.json) at index.ts:1106

2

JSON parses?

JSON.parse at line 1107

3

enabled !== false?

skip check at line 1115

4

command present?

logged skip at lines 1116-1119

5

env flattens?

to Array<{name,value}> at 1120-1125

6

Push + emit

servers.push(...) then emitMcpServers at 1139

The Settings UI does the same write, from the other side

Non-technical users never see the JSON. MCPServerManager.swift backs a SwiftUI settings page that adds, edits, toggles, and deletes entries, then serializes the full dictionary back to the same ~/.fazm/mcp-servers.json on every change. The file and the UI are two views of one source of truth.

MCPServerManager.swift highlights

  • Line 4: "Manages user-defined MCP server configurations stored in ~/.fazm/mcp-servers.json"
  • Line 5: "Format mirrors Claude Code's mcpServers"
  • Lines 23-37: MCPServerConfig with name, command, args, env, enabled
  • Line 42: persists at fazmDir.appendingPathComponent("mcp-servers.json")
  • Line 78: default enabled omitted when true, so the file stays lean
  • SettingsPage.swift:1844: verbatim hint "Uses the same format as Claude Code. Changes take effect on next conversation."

Due diligence for any MCP released in the past day

The loader does not sandbox the spawned command. It is a trust decision, not a safety net. The same rules that apply to a random npm install apply here.

Before adding a newly-released MCP to Fazm

  • Read the repo. Who maintains it. How many commits. Any signed releases.
  • Pin a tag or commit in args, not latest. uvx pkg@0.4.1 beats uvx pkg.
  • Keep the env secrets narrow. Use read-only DB URLs and least-privilege API tokens.
  • Flip enabled: false when you are not actively using it, instead of deleting the entry.
  • Prefer uvx over npx for anything you have not vetted: uvx isolates the Python env by default.
  • Watch the bridge's active-servers panel. A red or gray dot means the spawn failed.
  • For anything that writes to shared infra, test against a sandbox account first.

Why 'past day' is the right cadence for this query

Weight drops happen on weekly or monthly cycles. Framework version bumps land every few days. But MCP servers get released, fixed-forward, and updated hourly in April 2026. A server shipped this morning might get a bug fix by lunch and a new tool by dinner. The cadence of the release surface matches the cadence of the deployment surface: rolling, not batched.

That is why the 'past day 2026' framing matters. Anything that requires a full consumer-app update for the user to see it is already too slow for this cadence. Fazm v2.4.0's answer is to push the extension point all the way out to a single JSON file on the user's disk.

That file is ~/.fazm/mcp-servers.json. The rest of this page is the trail that proves it.

The anchor numbers

0

Bridge loader lines for the whole feature

0 -04-20

Fazm v2.4.0 ship date at top of CHANGELOG.json

0

Validation gates before a user MCP becomes live

0

Fazm releases needed to add a new OSS MCP

Walking through a custom MCP live beats reading about it

Fifteen minutes, screen-share, we plug whichever open-source MCP you care about into your Fazm and drive a real task.

Book a call

Frequently asked questions

What changed in the past day for consuming new open-source AI releases on a Mac?

Fazm v2.4.0 shipped on 2026-04-20 with custom MCP server support. The top CHANGELOG.json entry reads verbatim, 'Added custom MCP server support via ~/.fazm/mcp-servers.json with Settings UI to add, edit, and toggle servers.' Before v2.4.0, only the five built-in MCP servers hard-coded in acp-bridge/src/index.ts:1266 were reachable. After v2.4.0, any open-source MCP server released that morning can be dropped in and used on the next conversation, without a new Fazm build.

Where is the exact loader that reads ~/.fazm/mcp-servers.json, and what does it do?

acp-bridge/src/index.ts lines 1102-1137. The code resolves `join(homedir(), '.fazm', 'mcp-servers.json')` at line 1104, exists-checks the file at 1106, JSON.parses it at 1107-1108, iterates each entry at 1114, skips any with `cfg.enabled === false` at 1115, skips any missing `cfg.command` at 1116-1119, flattens cfg.env into an Array<{name,value}> at 1120-1125, then pushes the server onto the same servers array as the five built-ins at 1126-1132. The final emitMcpServers(servers) at line 1139 publishes the merged list to the UI.

What file format does ~/.fazm/mcp-servers.json use?

The same format as Claude Code's mcpServers block. A top-level object where each key is a server name and each value has `command` (required string), optional `args` (string array), optional `env` (object of string to string), and optional `enabled` (boolean, defaults to true). The SettingsPage hint in /Users/matthewdi/fazm/Desktop/Sources/MainWindow/Pages/SettingsPage.swift line 1844 says this verbatim: 'Uses the same format as Claude Code. Changes take effect on next conversation.'

Is there a UI for this, or only the JSON file?

Both. /Users/matthewdi/fazm/Desktop/Sources/MCPServerManager.swift backs a Settings UI rendered at SettingsPage.swift lines 1810-1890 with Add, Edit, and Toggle affordances. Every UI change is serialized back to ~/.fazm/mcp-servers.json, so editing the file directly and editing through the UI are the same operation. The config file row at SettingsPage.swift:1832-1868 shows the path and an Open button that reveals the file in Finder.

Do I need to restart Fazm after adding a new MCP server?

No. The bridge reads ~/.fazm/mcp-servers.json on every session spin-up. Changes take effect on the next conversation you start in Fazm, not on the next app relaunch. This is important for the 'past day' release cadence: when a new open-source MCP server ships in the morning, the afternoon workflow already sees it.

What does 'past day' actually mean for open-source AI releases in April 2026?

For this guide it is a rolling 24-hour window anchored on Fazm v2.4.0's ship date of 2026-04-20. The 'past day' SERP for this query mixes three separate categories: (1) model weight releases on Hugging Face, (2) framework version bumps on GitHub Releases, (3) new or updated MCP servers. Only category 3 is something a consumer Mac agent can plug in same-day. That is the category this page is about.

Can I add a Python or Node MCP server, or is this Swift only?

Any command. The loader at acp-bridge/src/index.ts:1128 passes `cfg.command` and `cfg.args` straight through to the MCP server list that the ACP bridge spawns. That means `python3`, `uvx`, `npx`, `node`, `deno`, or a path to any compiled binary all work. The five built-ins already mix Swift binaries (mcp-server-macos-use, whatsapp-mcp), a Python package (google-workspace-mcp), and an npm package (@playwright/mcp). The user layer inherits the same spawn surface.

Do user MCP servers collide with the five built-in ones?

No. BUILTIN_MCP_NAMES = new Set(['fazm_tools', 'playwright', 'macos-use', 'whatsapp', 'google-workspace']) at acp-bridge/src/index.ts line 1266 is the reserved-name list. If you name a user server with one of those five, the user entry merges into the array but the built-in definition wins for collision resolution in the UI (SettingsPage.swift:1941). Everything else becomes a first-class MCP server in the same active-servers panel.

How is this different from running an open-source MCP server under Claude Code?

Two differences. First, Fazm is a consumer Mac app, not a developer terminal: users who cannot and do not want to install Claude Code or the Claude CLI can still point it at a new MCP server by dropping JSON into ~/.fazm. Second, Fazm's agent reads macOS accessibility APIs directly (the built-in macos-use server, compiled from the open-source mcp-server-macos-use repo), so any new MCP server stacks on top of a real screen-context layer instead of a screenshot OCR loop. That is the product angle, not a feature comparison.

What kinds of open-source AI projects released in the past day make sense to plug in?

Anything that speaks MCP over stdio. Recent categories: database connectors (Postgres, Redis, SQLite MCPs released on GitHub), search and retrieval (Brave Search MCP, Perplexity MCP, Exa MCP), developer tools (GitHub MCP, Linear MCP, Sentry MCP), agentic browsers beyond the pinned @playwright/mcp v0.0.68, and vertical domain MCPs (financial data, maps, legal research). Each becomes a named tool the Fazm agent can call, merged with the built-in accessibility-API toolkit.

How do I know whether a newly released MCP is safe to plug in?

The same way you would judge any npm, brew, or PyPI dependency. The loader does not sandbox the command; it spawns it with the env you specify under the bridge's own process tree. Read the repo, check the maintainers, pin a specific tag in your `args` rather than `latest`, and prefer `uvx --from <repo>@<sha>` over `npx <package>` for anything you have not vetted. Fazm's builtin MCPs go through the signed-bundle lifecycle; user MCPs do not.

How can I audit every claim on this page myself?

Three greps against a Fazm desktop source tree. (1) `rg -n 'mcp-servers.json' acp-bridge/src/index.ts Desktop/Sources` returns the loader at index.ts:1104 and the manager at MCPServerManager.swift:4. (2) `rg -n 'Append user-defined MCP servers' acp-bridge/src/index.ts` returns the comment at line 1102 that opens the merge block. (3) `head CHANGELOG.json` returns the v2.4.0 entry at the top of the releases array dated 2026-04-20 with the custom-MCP line as the first change.

fazm.AI Computer Agent for macOS
© 2026 fazm. All rights reserved.

How did this page land for you?

React to reveal totals

Comments ()

Leave a comment to see what others are saying.

Public and anonymous. No signup.