Public source mirror for the Neither CLI and MCP server.
Neither is decision memory for Cursor, Claude Desktop, and Claude Code, with Gemini CLI as an additional install surface. Start / get a workspace API key: https://www.neither.online/start/?product=dev&utm_source=plugin&utm_campaign=neither-mcp. The npm package homepage uses the same /start URL with utm_source=npm.
Install (Node 20+): npx -y @neitherai/mcp-server@latest — then set NEITHER_API_KEY in your MCP config (Cursor mcp.json, Claude Desktop, or Claude Code claude mcp add).
Get your workspace key from https://www.neither.online/start/?product=dev&utm_source=plugin&utm_campaign=neither-mcp.
Then Add to Cursor:
Configure the key locally in Cursor (replace REPLACE_WITH_YOUR_WORKSPACE_KEY). Node.js 20+ required.
Then follow the existing own-project walkthrough: llms-install.md (first-use section).
Canonical install: npx -y @neitherai/mcp-server@latest
Fallback — add this to Cursor MCP settings (mcp.json), Claude Desktop config, or Claude Code user MCP config:
{
"mcpServers": {
"neither": {
"command": "npx",
"args": ["-y", "@neitherai/mcp-server@latest"],
"env": {
"NEITHER_API_KEY": "REPLACE_WITH_YOUR_WORKSPACE_KEY",
"NEITHER_API_BASE": "https://api.neither.online"
}
}
}
}NEITHER_API_KEY— required workspace keyNEITHER_API_BASE— optional; defaults tohttps://api.neither.online
Docs: https://www.neither.online/docs/mcp
The root Dockerfile builds this stdio server (not a remote HTTP process) so hosts such as Glama can introspect tools/list. The image sets a placeholder NEITHER_API_KEY so the process can start; inject a real workspace key at run time.
Agent install: llms-install.md
Neither is not listed in a Claude Code marketplace card today. Use the same local stdio server via Claude Code’s MCP commands (Node 20+):
claude mcp add neither -s user \
-e NEITHER_API_KEY=sk_ctx_… \
-e NEITHER_API_BASE=https://api.neither.online \
-- npx -y @neitherai/mcp-server@latestThen claude mcp list should show neither as Connected. Put the workspace key only in that -e / config env (never in chat). Restart or open a new Claude Code session, then ask for memory_search on a note you pushed (see llms-install.md).
Equivalent JSON (if you edit Claude Code user MCP config by hand) matches the Cursor / Claude Desktop block below.
Guide: Keeping Claude Code's rules and memory from being rewritten or lost (deny rules, a PreToolUse hook, git, and what survives /compact).
One-click local stdio bundle for Claude Desktop. Pack command:
bash scripts/pack-mcpb.shThat vendors packages/mcp-server into the .mcpb and spawns Claude’s bundled Node (node ${__dirname}/server/index.js). Cursor JSON config still uses npx -y @neitherai/mcp-server@latest.
Sideload steps, env vars, and the Windows + macOS smoke checklist (human; not run in CI): DESKTOP-EXTENSION.md.
This packaging does not mean the extension is listed or submitted to Anthropic.
See also mcpb/README.md. The release-assets workflow attaches the .mcpb and Gemini CLI archives together on a published GitHub Release. Do not remove the .mcpb.
Primary tested clients remain Cursor and Claude Desktop. Gemini CLI uses the same stdio server (npx -y @neitherai/mcp-server@0.1.3 in gemini-extension.json; Cursor JSON uses @latest). This is not a claim that a Gemini gallery card is live.
gemini extensions install https://github.com/stonianua/neither-mcpEnter NEITHER_API_KEY when prompted (required). Node.js 20+. MCP stays Disconnected until the key is set.
Gemini CLI 0.59 treats that GitHub URL as a github-release install: it downloads a custom Release asset and only extracts .tar.gz / .zip. Release v0.1.3 attaches linux.neither-mcp.tar.gz, darwin.neither-mcp.tar.gz, and win32.neither-mcp.zip (gemini-extension.json at archive root, npm pin @neitherai/mcp-server@0.1.3) in addition to the Claude Desktop .mcpb. A Release whose only custom asset is the .mcpb still makes 0.59 unpack a non-extension tree, then git clone into the same non-empty temp dir fails — do not remove the .mcpb.
If those Gemini archives misbehave, clone main instead:
gemini extensions install https://github.com/stonianua/neither-mcp --ref=mainLocal-path install of this repo (a checkout that already contains gemini-extension.json) also works.
This repo is a single Cursor Plugin (not a multi-plugin marketplace). Manifests follow cursor/plugin-template and the Cursor Plugins reference:
| Path | Role |
|---|---|
.cursor-plugin/plugin.json |
Cursor Plugin manifest + NEITHER_API_KEY user variable |
mcp.json |
Local stdio MCP: npx -y @neitherai/mcp-server@latest |
There is no .cursor-plugin/marketplace.json (that file is only for multi-plugin repos). There is no remote MCP URL and no OAuth-only install path.
After a marketplace install, set NEITHER_API_KEY under Plugins → Configure (workspace key from quickstart). Node 20+ and npx must be on PATH. This packaging does not mean Neither is listed on the Cursor Marketplace; a maintainer still submits the public repo at cursor.com/marketplace/publish for manual review.
Try-it sample: https://github.com/stonianua/neither-demo
Push local docs to decision memory (separate from MCP install):
npx -y neither@latest push <path>Homebrew (macOS / Linuxbrew):
brew install stonianua/neither/neitherDocs: https://www.neither.online/docs/cli
Published npm packages:
@neitherai/mcp-server— MCP server for Cursor, Claude Desktop, Claude Code, and Gemini CLIneither— CLI for pushing local docs to decision memory
The Neither privacy policy (collection, use and storage, third-party sharing / subprocessors, retention, and contact) is published at https://www.neither.online/privacy/. Privacy contact: privacy@neither.online. Support: support@neither.online.
This repository’s MCP server, Claude Desktop extension, and Gemini CLI extension are a local stdio process. They are not a remote HTTPS MCP server.
- Collection. Tool arguments you or the model supply (search queries, repo-relative file paths, snippet ids, and for
memory_pushsnippet text and optional provenance). The workspace API key is sent as an HTTP Bearer token to the Neither API (NEITHER_API_BASE, defaulthttps://api.neither.online). - Use and storage. The local process uses the key only to call that API. Claude Desktop stores sensitive
user_configvalues in the OS keychain. Neither stores workspace decision memory as described in the privacy policy. - Third-party sharing. The connector sends requests to the Neither API host you configure. Neither’s subprocessors and sharing rules are in the privacy policy. This connector does not add a second vendor beyond that API host.
- Retention. Per the privacy policy, workspace data is kept while the account is active; account or data deletion is removed within 30 days (backup window). The local extension does not keep a second copy of API responses on disk.
- Contact. privacy@neither.online, support@neither.online, or GitHub issues.
Report bugs and feature requests at https://github.com/stonianua/neither-mcp/issues.
| Path | Package |
|---|---|
packages/mcp-server/ |
@neitherai/mcp-server |
packages/cli/ |
neither CLI |
mcpb/ |
Claude Desktop MCPB (bundled Node stdio) |
gemini-extension.json |
Gemini CLI extension manifest (stdio npx) |
GEMINI.md |
Gemini CLI extension context |
DESKTOP-EXTENSION.md |
Build, sideload, env, Win/macOS smoke checklist |
.cursor-plugin/plugin.json |
Cursor Plugin manifest (marketplace packaging) |
mcp.json |
Cursor Plugin stdio MCP config (npx spawn) |
llms-install.md |
Short agent-installable steps |
scripts/pack-gemini-extension.sh |
Gemini CLI github-release archives (.tar.gz / .zip) |
License: MIT (see LICENSE).