velixar-mcp-server 0.1.1 → 0.1.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.
Files changed (3) hide show
  1. package/README.md +88 -18
  2. package/package.json +1 -1
  3. package/src/index.js +11 -1
package/README.md CHANGED
@@ -1,46 +1,116 @@
1
1
  # Velixar MCP Server
2
2
 
3
- MCP server that gives AI assistants persistent memory via Velixar.
3
+ [![npm](https://img.shields.io/npm/v/velixar-mcp-server)](https://www.npmjs.com/package/velixar-mcp-server)
4
+ [![License](https://img.shields.io/github/license/VelixarAi/velixar-mcp-server)](LICENSE)
5
+
6
+ MCP server that gives any AI assistant persistent memory via [Velixar](https://velixarai.com). Works with any [Model Context Protocol](https://modelcontextprotocol.io)-compatible client — Claude Desktop, Kiro, Cursor, Windsurf, Continue, or any MCP-enabled tool.
7
+
8
+ ## What It Does
9
+
10
+ Your AI assistant forgets everything between sessions. This server fixes that. It connects to Velixar's memory API and exposes 5 tools that let your assistant store, search, list, update, and delete memories that persist across conversations.
4
11
 
5
12
  ## Setup
6
13
 
7
- 1. Get an API key from https://velixarai.com/settings/api-keys
14
+ 1. Get an API key at [velixarai.com/settings/api-keys](https://velixarai.com/settings/api-keys)
8
15
 
9
16
  2. Install:
10
17
  ```bash
11
- cd /Users/velixarai/velixar-mcp-server
12
- npm install
18
+ npm install -g velixar-mcp-server
13
19
  ```
14
20
 
15
- 3. Configure Kiro CLI (`~/.kiro/settings/mcp.json`):
21
+ 3. Add to your MCP client config:
22
+
23
+ **Claude Desktop** (`~/Library/Application Support/Claude/claude_desktop_config.json`):
16
24
  ```json
17
25
  {
18
26
  "mcpServers": {
19
27
  "velixar": {
20
- "command": "node",
21
- "args": ["/Users/velixarai/velixar-mcp-server/src/index.js"],
28
+ "command": "velixar-mcp-server",
22
29
  "env": {
23
- "VELIXAR_API_KEY": "vlx_your_key_here",
24
- "VELIXAR_USER_ID": "kiro_session"
30
+ "VELIXAR_API_KEY": "vlx_your_key_here"
25
31
  }
26
32
  }
27
33
  }
28
34
  }
29
35
  ```
30
36
 
31
- 4. Restart Kiro CLI
37
+ **Kiro CLI** (`~/.kiro/settings/mcp.json`):
38
+ ```json
39
+ {
40
+ "mcpServers": {
41
+ "velixar": {
42
+ "command": "velixar-mcp-server",
43
+ "env": {
44
+ "VELIXAR_API_KEY": "vlx_your_key_here"
45
+ }
46
+ }
47
+ }
48
+ }
49
+ ```
50
+
51
+ **Cursor** (`.cursor/mcp.json` in your project):
52
+ ```json
53
+ {
54
+ "mcpServers": {
55
+ "velixar": {
56
+ "command": "velixar-mcp-server",
57
+ "env": {
58
+ "VELIXAR_API_KEY": "vlx_your_key_here"
59
+ }
60
+ }
61
+ }
62
+ }
63
+ ```
64
+
65
+ 4. Restart your AI assistant
32
66
 
33
67
  ## Tools
34
68
 
35
69
  | Tool | Description |
36
70
  |------|-------------|
37
- | `velixar_store` | Store a memory |
38
- | `velixar_search` | Search memories |
39
- | `velixar_delete` | Delete a memory |
71
+ | `velixar_store` | Store a memory with optional tags and tier |
72
+ | `velixar_search` | Semantic search across memories |
73
+ | `velixar_list` | Browse memories with pagination |
74
+ | `velixar_update` | Edit an existing memory |
75
+ | `velixar_delete` | Delete a memory by ID |
76
+
77
+ ## Memory Tiers
78
+
79
+ | Tier | Name | Use Case |
80
+ |------|------|----------|
81
+ | 0 | Pinned | Critical facts, never expire |
82
+ | 1 | Session | Current conversation context |
83
+ | 2 | Semantic | Long-term memories (default) |
84
+ | 3 | Organization | Shared team knowledge |
85
+
86
+ ## Environment Variables
87
+
88
+ | Variable | Required | Description |
89
+ |----------|----------|-------------|
90
+ | `VELIXAR_API_KEY` | Yes | Your Velixar API key |
91
+ | `VELIXAR_API_URL` | No | Custom API endpoint |
92
+ | `VELIXAR_USER_ID` | No | User ID for memory scoping (default: `kiro-cli`) |
93
+
94
+ ## Example
95
+
96
+ Once configured, your AI assistant can:
97
+
98
+ ```
99
+ You: Remember that our production database is on us-east-1 and staging is us-west-2
100
+ Assistant: ✓ Stored memory
101
+
102
+ You: Which region is our staging database in?
103
+ Assistant: Based on my memory, your staging database is in us-west-2.
104
+ ```
105
+
106
+ Memories persist across sessions, restarts, and even different machines — as long as they use the same API key.
107
+
108
+ ## Related
109
+
110
+ - [velixar (JavaScript SDK)](https://github.com/VelixarAi/velixar-js) — Use Velixar directly in Node.js/TypeScript
111
+ - [velixar (Python SDK)](https://github.com/VelixarAi/velixar-python) — Python client with LangChain/LlamaIndex integrations
112
+ - [velixarai.com](https://velixarai.com) — Dashboard, API keys, and docs
40
113
 
41
- ## Usage
114
+ ## License
42
115
 
43
- Once configured, the AI can:
44
- - Remember facts across sessions
45
- - Store user preferences
46
- - Build context over time
116
+ MIT
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "velixar-mcp-server",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "MCP server for Velixar persistent memory — give your AI agents long-term recall",
5
5
  "type": "module",
6
6
  "bin": {
package/src/index.js CHANGED
@@ -24,6 +24,10 @@ async function apiRequest(path, options = {}) {
24
24
  ...options.headers,
25
25
  },
26
26
  });
27
+ if (!res.ok) {
28
+ const body = await res.text().catch(() => "");
29
+ throw new Error(`API ${res.status}: ${body.slice(0, 200)}`);
30
+ }
27
31
  return res.json();
28
32
  }
29
33
 
@@ -113,7 +117,13 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
113
117
  }),
114
118
  });
115
119
  if (result.error) throw new Error(result.error);
116
- return { content: [{ type: "text", text: `✓ Stored memory` }] };
120
+ if (!result.id) throw new Error("Store succeeded but no ID returned");
121
+ // Verify the memory was actually persisted
122
+ const verify = await apiRequest(`/memory/search?q=${encodeURIComponent(args.content.slice(0, 60))}&user_id=${USER_ID}&limit=1`);
123
+ const verified = verify.memories?.some(m => m.id === result.id);
124
+ return { content: [{ type: "text", text: verified
125
+ ? `✓ Stored and verified memory (id: ${result.id})`
126
+ : `⚠ Stored memory (id: ${result.id}) but verification failed — may not be searchable yet` }] };
117
127
  }
118
128
 
119
129
  if (name === "velixar_search") {