stifler-memex-mcp 1.0.0 → 1.0.2
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/README.md +50 -17
- package/bin/memex-mcp.js +5 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,22 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- mcp-name: io.github.STiFLeR7/memex -->
|
|
4
4
|
|
|
5
|
-
>
|
|
6
|
-
> builds a bitemporal knowledge graph of your repository (modules,
|
|
7
|
-
> decisions, problems, evidence, and code evolution)
|
|
8
|
-
>
|
|
5
|
+
> Keeps your AI coding agents' engineering context current as the code changes.
|
|
6
|
+
> memex builds a bitemporal knowledge graph of your repository (modules,
|
|
7
|
+
> symbols, decisions, problems, evidence, and code evolution). In v1 it also
|
|
8
|
+
> hooks into Claude Code and Codex: each session starts with the right context,
|
|
9
|
+
> each edit is checked against the current code, and the agent is told exactly
|
|
10
|
+
> what changed.
|
|
9
11
|
|
|
10
12
|
**[memex.stifler.in](https://memex.stifler.in)**
|
|
11
13
|
|
|
12
|
-
A daemon and MCP server that
|
|
13
|
-
engineering knowledge
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
A daemon, hook service and MCP server that turn commits and file changes into
|
|
15
|
+
structured engineering knowledge and deliver it to agents with freshness and
|
|
16
|
+
provenance preserved, without making memex a source of personal memory or raw
|
|
17
|
+
session state.
|
|
16
18
|
|
|
17
19
|
[](https://memex.stifler.in)
|
|
18
|
-
[](https://pypi.org/project/memex-mcp/)
|
|
19
21
|
[](https://pypistats.org/packages/memex-mcp)
|
|
20
|
-
[](https://www.npmjs.com/package/stifler-memex-mcp)
|
|
21
23
|
[](https://www.npmjs.com/package/stifler-memex-mcp)
|
|
22
24
|
[](https://github.com/STiFLeR7/claude-plugins)
|
|
23
25
|
[](https://glama.ai/mcp/servers/STiFLeR7/memex)
|
|
@@ -45,23 +47,52 @@ Evaluation record in [BENCHMARK.md](BENCHMARK.md), release history in
|
|
|
45
47
|
[CHANGELOG.md](CHANGELOG.md), reporting process in [SECURITY.md](SECURITY.md),
|
|
46
48
|
and how to work on it in [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
47
49
|
|
|
48
|
-
[](https://raw.githubusercontent.com/STiFLeR7/memex/master/assets/memex-v1.mp4)
|
|
49
51
|
|
|
50
52
|
▶ **[Watch memex v1 in 60 seconds](https://raw.githubusercontent.com/STiFLeR7/memex/master/assets/memex-v1.mp4)**
|
|
51
53
|
|
|
54
|
+
## Live context (v1)
|
|
55
|
+
|
|
56
|
+
Coding agents work from a snapshot of the code. A teammate pushes, another
|
|
57
|
+
agent edits a file, a branch moves, and the agent keeps acting on what it read
|
|
58
|
+
earlier. v1 keeps that snapshot current, inside Claude Code and Codex:
|
|
59
|
+
|
|
60
|
+
| When | What memex does |
|
|
61
|
+
|---|---|
|
|
62
|
+
| **Session start** | Delivers a bounded working set for the task, and confirms delivery from the client's own session record |
|
|
63
|
+
| **Before each edit** | Checks whether the context the edit rests on still holds. If not, the edit is held, the agent gets a scoped correction, and it revises |
|
|
64
|
+
| **On resume** | If the code changed while the session was away, names the files to re-read |
|
|
65
|
+
| **Parallel agents** | Gives each linked worktree its own view, so agents side by side each see their own code |
|
|
66
|
+
| **Trying it out** | `memex v1 mode shadow` records what would be corrected without changing anything; hooks fail open; `memex v1 rollback` stops memex at once |
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
uv tool install memex-mcp # installs the `memex` command
|
|
70
|
+
cd your-repo
|
|
71
|
+
memex v1 doctor # what is set up, what is missing, what to do next
|
|
72
|
+
memex v1 install claude # hooks in .claude/settings.json; global settings untouched
|
|
73
|
+
memex v1 install codex --neo4j-uri bolt://localhost:7687 # optional, for Codex
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
memex needs a Neo4j 5 server you already run (Docker is not required). Hooks go
|
|
77
|
+
only into the checkout's own project configuration, and memex never asks for or
|
|
78
|
+
stores your client credentials. Full guide, host recipes and rollback:
|
|
79
|
+
[docs/v1/25_ONBOARDING.md](docs/v1/25_ONBOARDING.md).
|
|
80
|
+
|
|
52
81
|
```mermaid
|
|
53
82
|
flowchart LR
|
|
54
83
|
A[Your repository<br/>files + git] --> B[memex watcher<br/>tree-sitter + Gemini]
|
|
55
84
|
B --> C[Neo4j graph<br/>bitemporal facts]
|
|
56
85
|
C --> D[memex core<br/>ContextPacket selection]
|
|
86
|
+
D --> H[Hook service<br/>session start · edit checks · resume notice]
|
|
57
87
|
D --> E[Hermes MemoryProvider<br/>automatic read-only prefetch]
|
|
58
|
-
D --> F[MCP
|
|
59
|
-
|
|
88
|
+
D --> F[MCP tools<br/>explicit lookup]
|
|
89
|
+
H --> G[Claude Code / Codex]
|
|
90
|
+
E --> G
|
|
60
91
|
F --> G
|
|
61
92
|
|
|
62
93
|
style B fill:#cfe8ff,stroke:#0066cc,color:#000
|
|
63
94
|
style C fill:#fff4cf,stroke:#cc9900,color:#000
|
|
64
|
-
style
|
|
95
|
+
style H fill:#d4f5d4,stroke:#2d8f2d,color:#000
|
|
65
96
|
```
|
|
66
97
|
|
|
67
98
|
## Install
|
|
@@ -92,7 +123,7 @@ npx stifler-memex-mcp serve --repo .
|
|
|
92
123
|
|
|
93
124
|
### Hermes integration
|
|
94
125
|
|
|
95
|
-
The
|
|
126
|
+
The Hermes integration is read-only. Hermes retains personal memory, raw
|
|
96
127
|
session state, and execution state. memex supplies repository engineering
|
|
97
128
|
context through a bounded `ContextPacket`; it does not ingest Hermes
|
|
98
129
|
`state.db`, transcripts, prompts, or tool results.
|
|
@@ -142,6 +173,7 @@ initial admin key, and the `down -v` footgun to avoid.
|
|
|
142
173
|
| Output | A Neo4j graph populated continuously from your repo |
|
|
143
174
|
| Storage | Neo4j via [Graphiti](https://github.com/getzep/graphiti). Bitemporal: every edge has `created_at` and optional `expired_at` |
|
|
144
175
|
| Context | Bounded, ranked, provenance-aware `ContextPacket` |
|
|
176
|
+
| Live context (v1) | Session-start working set, edit checks with scoped corrections, resume change notice, per-worktree views (Claude Code and Codex hooks) |
|
|
145
177
|
| Integrations | Hermes MemoryProvider, MCP resources/tools, Claude Code, Cursor, Codex, Gemini CLI |
|
|
146
178
|
| Failure mode | Fail-open; agent execution continues without memex |
|
|
147
179
|
| Granularity | Scales from 50 to 5000+ modules via hierarchical Leiden clusters |
|
|
@@ -435,7 +467,8 @@ Run `uv run pytest -m "not integration"` for the offline suite and `uv run ruff
|
|
|
435
467
|
check .` before opening a PR. Version bumps must update `pyproject.toml`,
|
|
436
468
|
`npm/package.json`, `server.json`, and the team Docker image tag together.
|
|
437
469
|
|
|
438
|
-
|
|
439
|
-
|
|
470
|
+
Release history is in [`CHANGELOG.md`](CHANGELOG.md). The v1 design and
|
|
471
|
+
evaluation records are under [`docs/v1/`](docs/v1/), and the v0.9 architecture
|
|
472
|
+
under [`docs/architecture/v0.9/`](docs/architecture/v0.9/).
|
|
440
473
|
|
|
441
474
|
> *Vannevar Bush, 1945:* "Consider a future device for individual use, which is a sort of mechanized private file and library. It needs a name, and to coin one at random, **memex** will do."
|
package/bin/memex-mcp.js
CHANGED
|
@@ -23,8 +23,11 @@ if (!isCommand('uv')) {
|
|
|
23
23
|
const args = process.argv.slice(2);
|
|
24
24
|
|
|
25
25
|
// We use '--from memex-mcp' because the package name is memex-mcp on PyPI,
|
|
26
|
-
// but it provides the 'memex' executable.
|
|
27
|
-
|
|
26
|
+
// but it provides the 'memex' executable. It is pinned to this package's own
|
|
27
|
+
// version (the release workflow keeps npm and PyPI versions equal), so uv
|
|
28
|
+
// never reuses a cached older memex-mcp.
|
|
29
|
+
const { version } = require('../package.json');
|
|
30
|
+
const child = spawn('uv', ['tool', 'run', '--from', `memex-mcp==${version}`, 'memex', ...args], {
|
|
28
31
|
stdio: 'inherit',
|
|
29
32
|
shell: process.platform === 'win32',
|
|
30
33
|
});
|
package/package.json
CHANGED