@equationalapplications/mcp-server 0.0.0-stage β†’ 7.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Equational Applications
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,160 @@
1
- # Temporary Holding Version
1
+ # @equationalapplications/mcp-server
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ SynapseTree memory for coding agents: an MCP server that lets Claude Code, Cursor, Windsurf, Claude Desktop, or any MCP client search, remember, supersede, ingest, log events, and walk the knowledge graph in your [SynapseTree](https://synapsetree.dev) database.
4
+
5
+ [![npm version](https://img.shields.io/npm/v/%40equationalapplications%2Fmcp-server?label=mcp-server)](https://www.npmjs.com/package/@equationalapplications/mcp-server)
6
+ [![TypeScript](https://img.shields.io/badge/TypeScript-5.x-3178C6?logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
7
+ [![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/equationalapplications/expo-llm-wiki/blob/main/packages/mcp-server/LICENSE)
8
+
9
+ **[πŸ“– Docs](https://equationalapplications.github.io/expo-llm-wiki/)** Β· **[GitHub](https://github.com/equationalapplications/expo-llm-wiki)** Β· **[ScopeLab](https://equationalapplications.github.io/expo-llm-wiki/scopelab/)** Β· **[WikiDemo](https://equationalapplications.github.io/expo-llm-wiki/wiki-demo/)** Β· **[Changelog](https://github.com/equationalapplications/expo-llm-wiki/blob/main/CHANGELOG.md)** Β· **[Issues](https://github.com/equationalapplications/expo-llm-wiki/issues)**
10
+
11
+ ## What it is
12
+
13
+ A small Node program your MCP client launches on your own machine over stdio. It exposes eight SynapseTree memory operations as tools and forwards each call to `https://api.synapsetree.dev` with your API key. It stores nothing but that key, a base URL, and a default namespace. It never runs in anyone's cloud, and it never sees your conversation with the model β€” only tool calls.
14
+
15
+ ## Install
16
+
17
+ ```bash
18
+ npm install -g @equationalapplications/mcp-server
19
+ ```
20
+
21
+ Node 20 or newer. One command is installed: `synapsetree-mcp`.
22
+
23
+ To run from source instead:
24
+
25
+ ```bash
26
+ git clone https://github.com/equationalapplications/expo-llm-wiki && cd expo-llm-wiki
27
+ pnpm install && pnpm --filter @equationalapplications/mcp-server build
28
+ cd packages/mcp-server && pnpm link --global # puts synapsetree-mcp on PATH
29
+ ```
30
+
31
+ ## Get a key
32
+
33
+ **From the dashboard.** Sign in at https://synapsetree.dev/dashboard, open *API keys*, issue a key next to your database, then:
34
+
35
+ ```bash
36
+ synapsetree-mcp auth --key stree_…
37
+ ```
38
+
39
+ The `--key` form puts the secret in your shell history and process list. To
40
+ keep it out of both, read it silently and export it for the session:
41
+
42
+ ```bash
43
+ read -rs SYNAPSETREE_API_KEY && export SYNAPSETREE_API_KEY
44
+ ```
45
+
46
+ `synapsetree-mcp status` picks it up and `auth --revoke` still works.
47
+
48
+ **By email, from the terminal** (the [auth.md](https://synapsetree.dev/auth.md) flow):
49
+
50
+ ```bash
51
+ synapsetree-mcp auth --email you@example.com
52
+ ```
53
+
54
+ A six-digit code is printed. SynapseTree emails you an approval link within about a minute; the page shows the same code. Approve only if the codes match. The link expires after 15 minutes. The first poll after approval receives the only copy of the key and stores it.
55
+
56
+ The key is stored in `credentials.json` under your config directory with mode `0600` and is never printed again; `status` shows the last four characters.
57
+
58
+ ## Set a namespace
59
+
60
+ Every memory tool needs a namespace. Set a default once per machine, or pass `namespace` on each call:
61
+
62
+ ```bash
63
+ synapsetree-mcp config set namespace repo:myproject
64
+ ```
65
+
66
+ Convention: `repo:<directory name>`. The server never invents a namespace.
67
+
68
+ ## Connect your client
69
+
70
+ Claude Code:
71
+
72
+ ```bash
73
+ claude mcp add synapsetree -- synapsetree-mcp
74
+ ```
75
+
76
+ Cursor (`.cursor/mcp.json`), Windsurf (`~/.codeium/windsurf/mcp_config.json`), Claude Desktop (`claude_desktop_config.json`):
77
+
78
+ ```json
79
+ { "mcpServers": { "synapsetree": { "command": "synapsetree-mcp" } } }
80
+ ```
81
+
82
+ ## Tools
83
+
84
+ | Tool | What it does |
85
+ |---|---|
86
+ | `memory_search` | Hybrid search over facts; also returns pending tasks and recent events. Keyword-only until the account owner registers an embeddings provider (`diagnostics.keyword_only`). |
87
+ | `memory_remember` | Store one fact (title, body, tags, confidence, type). Works with no provider. |
88
+ | `memory_supersede` | Replace a fact with a corrected one; history is kept. Never deletes. |
89
+ | `memory_ingest` | Store a whole document and let SynapseTree extract facts. Needs an extraction provider registered in the dashboard (BYOK). |
90
+ | `memory_log_event` | Record an observation, decision, action, or outcome. |
91
+ | `graph_traverse` | Walk the knowledge graph from a fact or node, up to three hops. |
92
+ | `namespaces_list` | List namespaces, optionally by prefix. |
93
+ | `whoami` | Account, database, scope, plan, subscription status. |
94
+
95
+ ## Environment variables
96
+
97
+ | Variable | Effect |
98
+ |---|---|
99
+ | `SYNAPSETREE_API_KEY` | Use this key instead of the stored one. |
100
+ | `SYNAPSETREE_BASE_URL` | API base URL (default `https://api.synapsetree.dev`). |
101
+ | `SYNAPSETREE_NAMESPACE` | Default namespace, overriding `config.json`. |
102
+ | `SYNAPSETREE_CONFIG_DIR` | Where `credentials.json` and `config.json` live. |
103
+
104
+ Default config directory: macOS `~/Library/Application Support/synapsetree`, Linux `$XDG_CONFIG_HOME/synapsetree` or `~/.config/synapsetree`, Windows `%APPDATA%\synapsetree`. On Windows the `0600`/`0700` file modes are best-effort.
105
+
106
+ ## What it never does
107
+
108
+ - Export, delete, or run maintenance on your memory. Those are owner actions in the dashboard, and this server does not expose them even if your key could.
109
+ - Print your key, or the claim token used during email registration.
110
+ - Run anywhere but your machine. Memories go only to SynapseTree; SynapseTree calls an inference provider only if the account owner registered one.
111
+
112
+ ## Verify
113
+
114
+ ```bash
115
+ synapsetree-mcp status
116
+ npx @modelcontextprotocol/inspector synapsetree-mcp
117
+ ```
118
+
119
+ ## Release checklist (maintainers)
120
+
121
+ Before publishing a version, run the whole sequence against the SynapseTree
122
+ **test** stage with a dashboard key and an isolated config directory, so no
123
+ step can touch your real credentials:
124
+
125
+ ```bash
126
+ unset SYNAPSETREE_API_KEY # an inherited key would take
127
+ # precedence over the isolated
128
+ # credentials file below
129
+ export SYNAPSETREE_BASE_URL=https://test-stage… # the test stage, for EVERY step below
130
+ export SYNAPSETREE_CONFIG_DIR=$(mktemp -d) # isolated credentials
131
+ export SYNAPSETREE_LIVE_TESTS=1 # opts the live chain into `pnpm test`
132
+ cd "$(git rev-parse --show-toplevel)" # back to the repo root: all paths below are repo-root paths
133
+ CLI="$(pwd)/packages/mcp-server/dist/cli.js" # the CLI built from this checkout, not a global install
134
+ pnpm build
135
+ ```
136
+
137
+ 1. `node "$CLI" auth --key …` then `node "$CLI" status`.
138
+ 2. `SYNAPSETREE_API_KEY=… pnpm --filter @equationalapplications/mcp-server test` β€” runs the live chain (`whoami` β†’ remember β†’ search β†’ supersede β†’ search β†’ log event β†’ list). The suite is excluded unless `SYNAPSETREE_LIVE_TESTS=1` is set.
139
+ 3. `npx @modelcontextprotocol/inspector node "$CLI" serve` and run one `memory_search`.
140
+ 4. `node "$CLI" auth --email …` once, approve the email, then `node "$CLI" auth --revoke`.
141
+
142
+ The vendored contract in `contract/` is generated in the SynapseTree repository and must not be hand-edited; the unit tests fail if it drifts from what the tools send or if it ever contains an owner-only operation.
143
+
144
+ ## Monorepo Ecosystem
145
+
146
+ | Package | Purpose |
147
+ | ----- | ----- |
148
+ | [@equationalapplications/core-llm-wiki](https://github.com/equationalapplications/expo-llm-wiki/blob/main/packages/core/README.md) | Persistent episodic memory |
149
+ | [@equationalapplications/expo-llm-wiki](https://github.com/equationalapplications/expo-llm-wiki/blob/main/packages/expo/README.md) | Persistent episodic memory for Expo/React Native |
150
+ | [@equationalapplications/react-llm-wiki](https://github.com/equationalapplications/expo-llm-wiki/blob/main/packages/react/README.md) | Persistent episodic memory for Web |
151
+ | [@equationalapplications/prisma-outbox](https://github.com/equationalapplications/expo-llm-wiki/blob/main/packages/prisma-outbox/README.md) | Sync SQLite outbox events to Prisma |
152
+ | [@equationalapplications/core-llm-tools](https://github.com/equationalapplications/expo-llm-wiki/blob/main/packages/core-llm-tools/README.md) | Gemini tool schemas and capability injector |
153
+ | [@equationalapplications/core-okf](https://github.com/equationalapplications/expo-llm-wiki/blob/main/packages/okf/README.md) | Zero-dependency Open Knowledge Format (OKF) v0.1 + v0.2 primitives β€” parse and produce interoperable knowledge bundles. |
154
+ | [@equationalapplications/schema-org-llm-wiki](https://github.com/equationalapplications/expo-llm-wiki/blob/main/packages/schema-org/README.md) | Curated schema.org warm-agent ontology manifest |
155
+ | [@equationalapplications/schema-software-org](https://github.com/equationalapplications/expo-llm-wiki/blob/main/packages/schema-software-org/README.md) | Software-organization executive ontology manifest β€” 17 node types, 40 edges, warm-agent superset, data-only |
156
+ | [**@equationalapplications/mcp-server**](https://github.com/equationalapplications/expo-llm-wiki/blob/main/packages/mcp-server/README.md) | MCP server exposing SynapseTree memory tools to coding agents |
157
+
158
+ ---
159
+
160
+ Made with ❀️ by Equational Applications LLC. [https://equationalapplications.com/](https://equationalapplications.com/)