qdrant-memory-mcp 0.1.0__py3-none-any.whl

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.
@@ -0,0 +1,173 @@
1
+ Metadata-Version: 2.4
2
+ Name: qdrant-memory-mcp
3
+ Version: 0.1.0
4
+ Summary: Metadata-only stdio MCP distribution of the Qdrant Memory Runtime
5
+ License-Expression: MIT
6
+ Project-URL: Homepage, https://github.com/cnkang/qdrant-memory-mcp
7
+ Project-URL: Repository, https://github.com/cnkang/qdrant-memory-mcp
8
+ Project-URL: Issues, https://github.com/cnkang/qdrant-memory-mcp/issues
9
+ Project-URL: Changelog, https://github.com/cnkang/qdrant-memory-mcp/blob/main/CHANGELOG.md
10
+ Project-URL: Runtime, https://github.com/cnkang/hermes-plugin-qdrant-memory
11
+ Project-URL: Skill, https://github.com/cnkang/skills/tree/main/qdrant-memory
12
+ Keywords: mcp,memory,qdrant,agents
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Operating System :: OS Independent
15
+ Requires-Python: >=3.11
16
+ Description-Content-Type: text/markdown
17
+ License-File: LICENSE
18
+ Requires-Dist: hermes-plugin-qdrant-memory[mcp]==0.2.0
19
+ Dynamic: license-file
20
+
21
+ # Qdrant Memory MCP
22
+
23
+ <!-- mcp-name: io.github.cnkang/qdrant-memory -->
24
+
25
+ [简体中文](README.zh-CN.md)
26
+
27
+ Persistent, scoped memory for AI agents through four explicit **stdio MCP** tools.
28
+ This repository distributes the existing [Python Runtime](https://github.com/cnkang/hermes-plugin-qdrant-memory).
29
+ Its metadata-only wheel contains no Python business implementation. The console
30
+ script points directly to `qdrant_memory.standalone:main` and depends on
31
+ `hermes-plugin-qdrant-memory[mcp]==0.2.0`.
32
+
33
+ **Versions:** MCP distribution 0.1.0 depends on Runtime 0.2.0. Release artifacts
34
+ are available through the [distribution PyPI page](https://pypi.org/project/qdrant-memory-mcp/)
35
+ and [Runtime PyPI page](https://pypi.org/project/hermes-plugin-qdrant-memory/).
36
+ See [release checklist](docs/publishing.md) for the publishing sequence.
37
+
38
+ Runtime, [optional Agent Skill](https://github.com/cnkang/skills/tree/main/qdrant-memory)
39
+ and MCP distribution versions are independent. The Skill is usage guidance,
40
+ not a runtime dependency. Hermes retains its native MemoryProvider, automatic
41
+ extraction and prefetch. Ordinary MCP performs only explicitly requested memory
42
+ operations; it does not automatically extract every conversation turn.
43
+
44
+ ## Install and initialize
45
+
46
+ Requires Python 3.11+ and either [uv](https://docs.astral.sh/uv/) or a Python
47
+ virtual environment. You must configure storage and an embedding service.
48
+ For the example below, run Ollama and install `qwen3-embedding:4b` yourself.
49
+
50
+ Create an operator-owned profile directory and save `qdrant-memory.json` inside:
51
+
52
+ ```json
53
+ {
54
+ "schema_version": 1,
55
+ "scope": {"user_id": "my-user", "agent_id": "my-agent"},
56
+ "qdrant": {"mode": "embedded", "collection": "qdrant_memory"},
57
+ "embedding": {
58
+ "mode": "plugin", "provider": "ollama", "model": "qwen3-embedding:4b",
59
+ "base_url": "http://127.0.0.1:11434", "dimensions": 2560, "distance": "Cosine"
60
+ }
61
+ }
62
+ ```
63
+
64
+ Initialize, then launch (replace `/path/to/profile` with your absolute path):
65
+
66
+ ```bash
67
+ uvx --from qdrant-memory-mcp==0.1.0 qdrant-memory-mcp --home /path/to/profile init
68
+ uvx --from qdrant-memory-mcp==0.1.0 qdrant-memory-mcp --home /path/to/profile mcp
69
+ ```
70
+
71
+ The command without `--home` uses `~/.qdrant-memory`, independent of Hermes.
72
+ Configure and initialize that directory before letting a Registry client launch
73
+ `uvx qdrant-memory-mcp==0.1.0 mcp`. The executable name matches the package name;
74
+ the Registry's positional `mcp` selects protocol mode. Its optional named
75
+ `--home` precedes `mcp` when a client supplies a custom profile.
76
+
77
+ Alternatively:
78
+
79
+ ```bash
80
+ python3 -m venv .venv
81
+ .venv/bin/python -m pip install qdrant-memory-mcp==0.1.0
82
+ .venv/bin/qdrant-memory-mcp --home /path/to/profile init
83
+ .venv/bin/qdrant-memory-mcp --home /path/to/profile mcp
84
+ ```
85
+
86
+ On Windows use `.venv\Scripts\python.exe` and
87
+ `.venv\Scripts\qdrant-memory-mcp.exe`.
88
+
89
+ Qdrant embedded, self-hosted server and Cloud, plus Ollama and OpenAI-compatible
90
+ embeddings, are configured in the Runtime's [configuration reference](https://github.com/cnkang/hermes-plugin-qdrant-memory/blob/main/docs/configuration.md).
91
+ Keep credentials in operator environment variables (`QDRANT_API_KEY`,
92
+ `EMBEDDING_API_KEY`, or configured names); never commit their values.
93
+ Initialization against an existing collection requires explicit operator choice;
94
+ do not use a production destination for a first test.
95
+
96
+ ## Connect a client
97
+
98
+ Codex `config.toml` example:
99
+
100
+ ```toml
101
+ [mcp_servers.qdrant_memory]
102
+ command = "uvx"
103
+ args = ["--from", "qdrant-memory-mcp==0.1.0", "qdrant-memory-mcp", "--home", "/path/to/profile", "mcp"]
104
+ ```
105
+
106
+ OpenCode `opencode.json` example:
107
+
108
+ ```json
109
+ {
110
+ "$schema": "https://opencode.ai/config.json",
111
+ "mcp": {
112
+ "qdrant_memory": {
113
+ "type": "local",
114
+ "command": ["uvx", "--from", "qdrant-memory-mcp==0.1.0", "qdrant-memory-mcp", "--home", "/path/to/profile", "mcp"],
115
+ "enabled": true
116
+ }
117
+ }
118
+ }
119
+ ```
120
+
121
+ Pi needs a separately installed MCP client/extension. In that extension, use
122
+ `command: uvx` and the same argument list. No built-in Pi MCP support or universal
123
+ extension config format is claimed. These are configuration examples; this
124
+ distribution's acceptance tests use the official Python MCP SDK, not live agent
125
+ applications. See the Runtime's [client evidence and limits](https://github.com/cnkang/hermes-plugin-qdrant-memory/blob/main/docs/mcp.md).
126
+
127
+ ## Tools and boundaries
128
+
129
+ | Tool | Input | Result |
130
+ |---|---|---|
131
+ | `qdrant_memory_search` | `query`, optional `category` | Scoped memories with IDs, scores and provenance |
132
+ | `qdrant_memory_add` | `text` | Durable memory ID |
133
+ | `qdrant_memory_update` | exact `id`, replacement `text` | Scoped replacement |
134
+ | `qdrant_memory_delete` | exact `id` | Scoped deletion |
135
+
136
+ Scope is fixed by the operator's profile (`user_id`, `agent_id`). Model inputs
137
+ and MCP client identity cannot override it; knowing an ID does not grant access.
138
+ Migration, export, reset and bulk deletion remain trusted operator CLI commands;
139
+ see [standalone maintenance](https://github.com/cnkang/hermes-plugin-qdrant-memory/blob/main/docs/standalone.md).
140
+ No resources or prompts are advertised. This is a local subprocess, with no
141
+ public HTTP/SSE listener or remote authentication service. Stdout is reserved
142
+ for protocol messages, with sanitized diagnostics on stderr.
143
+
144
+ Data flows from client → Runtime → embedding provider → Qdrant and the local
145
+ SQLite ledger. With local Ollama and embedded Qdrant, memory processing stays
146
+ local; cloud embedding receives memory/query text, and cloud Qdrant receives
147
+ vectors and stored payloads. The client/model may also receive recalled text.
148
+ The operator must authorize retention and access and protect the profile files.
149
+
150
+ One writer lease coordinates a profile/destination. Do not overlap MCP, CLI
151
+ or Hermes processes writing to it. Separate profiles or machines do not provide
152
+ a distributed lock. This package does not support uncoordinated multiprocess
153
+ writes, auto-extraction, an HTTP transport, or implicit credential discovery
154
+ from Hermes. It preserves the Runtime's ledger, IDs and recovery semantics.
155
+
156
+ ## Verification and development
157
+
158
+ CI builds wheel/sdist, checks metadata and ownership marker, and runs installed
159
+ protocol tests with temporary profiles, embedded Qdrant and a deterministic
160
+ loopback embedding fixture on Linux/macOS/Windows, Python 3.11 and 3.14.
161
+ No test connects to personal Qdrant, Hermes profiles or memory data. These tests
162
+ cover initialize, discovery, four tools, persistence, recovery, scope isolation,
163
+ error redaction and protocol stdout. Provider/cloud compatibility evidence
164
+ belongs to the [Runtime](https://github.com/cnkang/hermes-plugin-qdrant-memory/blob/main/docs/validation.md).
165
+
166
+ CI prefers the immutable Runtime PyPI release. Before Runtime 0.2.0 reaches PyPI,
167
+ CI builds a wheel from an immutable candidate
168
+ commit recorded in `runtime-source.json`. This is only a preparation fixture:
169
+ published dependency metadata always uses the exact PyPI version. Release
170
+ workflow acceptance requires installation from PyPI and never uses that fallback.
171
+
172
+ See [CI and dependency maintenance](docs/ci.md), [publishing](docs/publishing.md), [architecture](docs/architecture.md), and
173
+ the optional [Skill](https://github.com/cnkang/skills/tree/main/qdrant-memory).
@@ -0,0 +1,6 @@
1
+ qdrant_memory_mcp-0.1.0.dist-info/licenses/LICENSE,sha256=tI3MOOwKR6ncyQZfZF_QsRjB8_yoGYttXJp5oeLlqZQ,1065
2
+ qdrant_memory_mcp-0.1.0.dist-info/METADATA,sha256=VmrBkKcFfOYJ-4CmrfPTZjTNINdS39HN7uWf_-QX9PY,8149
3
+ qdrant_memory_mcp-0.1.0.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
4
+ qdrant_memory_mcp-0.1.0.dist-info/entry_points.txt,sha256=64_yXmNAAfk6PJaYblxeXVbiTNjP42nE8uxPZztu8YE,68
5
+ qdrant_memory_mcp-0.1.0.dist-info/top_level.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
6
+ qdrant_memory_mcp-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (84.0.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ qdrant-memory-mcp = qdrant_memory.standalone:main
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Kang Liu
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.