aismemory 0.1.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/README.md +63 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +240 -0
- package/dist/index.js.map +1 -0
- package/package.json +41 -0
package/README.md
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# aismemory
|
|
2
|
+
|
|
3
|
+
Persistent memory for AI agents. One command to give your AI agent memory that persists across sessions, tools, and runtimes.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
Add to your IDE's MCP server config:
|
|
8
|
+
|
|
9
|
+
```json
|
|
10
|
+
{
|
|
11
|
+
"mcpServers": {
|
|
12
|
+
"aismemory": {
|
|
13
|
+
"command": "npx",
|
|
14
|
+
"args": ["aismemory"]
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
On first run, you'll be prompted to authenticate:
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
Visit: https://agentsandswarms.ai/activate?user_code=ABCD-EFGH
|
|
24
|
+
Or go to https://agentsandswarms.ai/activate and enter code: ABCD-EFGH
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
After approving, your agent has persistent memory. Every future session auto-authenticates.
|
|
28
|
+
|
|
29
|
+
## Tools
|
|
30
|
+
|
|
31
|
+
| Tool | Description |
|
|
32
|
+
|------|-------------|
|
|
33
|
+
| `remember` | Store a memory (fact, event, lesson, context, goal, task) |
|
|
34
|
+
| `recall` | Search memories by natural language query |
|
|
35
|
+
| `whoami` | Get agent identity and status |
|
|
36
|
+
| `full_context` | Load complete agent context (personality, goals, facts, skills) |
|
|
37
|
+
| `dream` | Trigger memory consolidation (promotes important, archives old) |
|
|
38
|
+
| `handoff` | Save session context for the next session |
|
|
39
|
+
|
|
40
|
+
## Works With
|
|
41
|
+
|
|
42
|
+
- Claude Code
|
|
43
|
+
- Claude.ai
|
|
44
|
+
- Cursor
|
|
45
|
+
- Windsurf
|
|
46
|
+
- VS Code + Copilot
|
|
47
|
+
- Any MCP-compatible client
|
|
48
|
+
|
|
49
|
+
## How It Works
|
|
50
|
+
|
|
51
|
+
`aismemory` is a thin MCP server that connects to [Agent Identity Service](https://agentsandswarms.ai) via HTTP. No local database needed. Your agent's memories are stored securely in the cloud and accessible from any device or IDE.
|
|
52
|
+
|
|
53
|
+
Authentication uses the OAuth device flow (RFC 8628). Credentials are saved to `~/.aismemory/credentials.json`.
|
|
54
|
+
|
|
55
|
+
## Environment Variables
|
|
56
|
+
|
|
57
|
+
| Variable | Default | Description |
|
|
58
|
+
|----------|---------|-------------|
|
|
59
|
+
| `AIS_URL` | `https://ais.agentsandswarms.ai` | AIS server URL |
|
|
60
|
+
|
|
61
|
+
## License
|
|
62
|
+
|
|
63
|
+
MIT
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* aismemory — MCP server for persistent AI agent memory.
|
|
4
|
+
*
|
|
5
|
+
* Connects to the hosted Agent Identity Service at ais.agentsandswarms.ai.
|
|
6
|
+
* Uses OAuth device flow for zero-friction authentication.
|
|
7
|
+
*
|
|
8
|
+
* Usage: npx aismemory
|
|
9
|
+
*/
|
|
10
|
+
export {};
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* aismemory — MCP server for persistent AI agent memory.
|
|
4
|
+
*
|
|
5
|
+
* Connects to the hosted Agent Identity Service at ais.agentsandswarms.ai.
|
|
6
|
+
* Uses OAuth device flow for zero-friction authentication.
|
|
7
|
+
*
|
|
8
|
+
* Usage: npx aismemory
|
|
9
|
+
*/
|
|
10
|
+
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
11
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
12
|
+
import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
13
|
+
import { readFileSync, writeFileSync, mkdirSync, existsSync } from 'fs';
|
|
14
|
+
import { join } from 'path';
|
|
15
|
+
import { homedir } from 'os';
|
|
16
|
+
// ── Config ──────────────────────────────────────────────
|
|
17
|
+
const AIS_URL = process.env['AIS_URL'] ?? 'https://ais.agentsandswarms.ai';
|
|
18
|
+
const CREDS_DIR = join(homedir(), '.aismemory');
|
|
19
|
+
const CREDS_FILE = join(CREDS_DIR, 'credentials.json');
|
|
20
|
+
// ── Credential persistence ──────────────────────────────
|
|
21
|
+
function loadCredentials() {
|
|
22
|
+
try {
|
|
23
|
+
if (!existsSync(CREDS_FILE))
|
|
24
|
+
return null;
|
|
25
|
+
const data = JSON.parse(readFileSync(CREDS_FILE, 'utf-8'));
|
|
26
|
+
if (new Date(data.expiresAt) <= new Date()) {
|
|
27
|
+
stderr('Saved credentials expired. Re-authenticating...');
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
return data;
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function saveCredentials(creds) {
|
|
37
|
+
mkdirSync(CREDS_DIR, { recursive: true });
|
|
38
|
+
writeFileSync(CREDS_FILE, JSON.stringify(creds, null, 2));
|
|
39
|
+
}
|
|
40
|
+
// ── HTTP helpers ────────────────────────────────────────
|
|
41
|
+
function stderr(msg) {
|
|
42
|
+
process.stderr.write(`[aismemory] ${msg}\n`);
|
|
43
|
+
}
|
|
44
|
+
async function aisPost(path, body, token) {
|
|
45
|
+
const headers = { 'Content-Type': 'application/json' };
|
|
46
|
+
if (token)
|
|
47
|
+
headers['Authorization'] = `Bearer ${token}`;
|
|
48
|
+
const res = await fetch(`${AIS_URL}${path}`, {
|
|
49
|
+
method: 'POST',
|
|
50
|
+
headers,
|
|
51
|
+
body: JSON.stringify(body),
|
|
52
|
+
});
|
|
53
|
+
return res.json();
|
|
54
|
+
}
|
|
55
|
+
async function aisGet(path, token) {
|
|
56
|
+
const res = await fetch(`${AIS_URL}${path}`, {
|
|
57
|
+
headers: { 'Authorization': `Bearer ${token}` },
|
|
58
|
+
});
|
|
59
|
+
return res.json();
|
|
60
|
+
}
|
|
61
|
+
async function authenticate() {
|
|
62
|
+
stderr('Starting authentication...');
|
|
63
|
+
const authRes = await aisPost('/v1/oauth/device/authorize', {
|
|
64
|
+
name: `agent-${homedir().split('/').pop() ?? 'user'}`,
|
|
65
|
+
});
|
|
66
|
+
if (!authRes.success || !authRes.data) {
|
|
67
|
+
throw new Error(`Authentication failed: ${authRes.error?.message ?? 'Unknown error'}`);
|
|
68
|
+
}
|
|
69
|
+
const { device_code, user_code, verification_uri, verification_uri_complete, interval, agent_id, provisional_tenant_id } = authRes.data;
|
|
70
|
+
stderr('');
|
|
71
|
+
stderr('=== Authentication Required ===');
|
|
72
|
+
stderr(`Visit: ${verification_uri_complete}`);
|
|
73
|
+
stderr(`Or go to ${verification_uri} and enter code: ${user_code}`);
|
|
74
|
+
stderr('Waiting for approval...');
|
|
75
|
+
stderr('');
|
|
76
|
+
// Poll for token
|
|
77
|
+
const pollInterval = Math.max(interval, 5) * 1000;
|
|
78
|
+
const deadline = Date.now() + 30 * 60 * 1000; // 30 min
|
|
79
|
+
while (Date.now() < deadline) {
|
|
80
|
+
await new Promise((r) => setTimeout(r, pollInterval));
|
|
81
|
+
const pollRes = await aisPost('/v1/oauth/token', { device_code });
|
|
82
|
+
if (pollRes.access_token) {
|
|
83
|
+
const expiresAt = new Date(Date.now() + (pollRes.expires_in ?? 604800) * 1000).toISOString();
|
|
84
|
+
const creds = {
|
|
85
|
+
token: pollRes.access_token,
|
|
86
|
+
agentId: agent_id,
|
|
87
|
+
tenantId: provisional_tenant_id,
|
|
88
|
+
expiresAt,
|
|
89
|
+
};
|
|
90
|
+
saveCredentials(creds);
|
|
91
|
+
stderr('Authenticated successfully!');
|
|
92
|
+
return creds;
|
|
93
|
+
}
|
|
94
|
+
if (pollRes.error === 'authorization_pending')
|
|
95
|
+
continue;
|
|
96
|
+
if (pollRes.error === 'slow_down') {
|
|
97
|
+
await new Promise((r) => setTimeout(r, 5000));
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
if (pollRes.error === 'access_denied')
|
|
101
|
+
throw new Error('Authorization denied by user');
|
|
102
|
+
if (pollRes.error === 'expired_token')
|
|
103
|
+
throw new Error('Authorization expired. Please try again.');
|
|
104
|
+
}
|
|
105
|
+
throw new Error('Authentication timed out');
|
|
106
|
+
}
|
|
107
|
+
// ── MCP Tool definitions ────────────────────────────────
|
|
108
|
+
const tools = [
|
|
109
|
+
{
|
|
110
|
+
name: 'remember',
|
|
111
|
+
description: 'Store a memory. Types: fact, event, lesson, context, goal, task.',
|
|
112
|
+
inputSchema: {
|
|
113
|
+
type: 'object',
|
|
114
|
+
properties: {
|
|
115
|
+
content: { type: 'string', description: 'The memory content to store' },
|
|
116
|
+
type: { type: 'string', enum: ['fact', 'event', 'lesson', 'context', 'goal', 'task'], description: 'Memory type' },
|
|
117
|
+
importance: { type: 'number', minimum: 0, maximum: 1, description: 'Importance (0-1, default 0.5)' },
|
|
118
|
+
},
|
|
119
|
+
required: ['content'],
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
name: 'recall',
|
|
124
|
+
description: 'Search memories by natural language query.',
|
|
125
|
+
inputSchema: {
|
|
126
|
+
type: 'object',
|
|
127
|
+
properties: {
|
|
128
|
+
query: { type: 'string', description: 'Search query' },
|
|
129
|
+
limit: { type: 'number', description: 'Max results (default 10)' },
|
|
130
|
+
type: { type: 'string', enum: ['fact', 'event', 'lesson', 'context', 'goal', 'task'], description: 'Filter by type' },
|
|
131
|
+
},
|
|
132
|
+
required: ['query'],
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
name: 'whoami',
|
|
137
|
+
description: 'Get the current agent identity — name, DID, status, description.',
|
|
138
|
+
inputSchema: { type: 'object', properties: {} },
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
name: 'full_context',
|
|
142
|
+
description: 'Load the full agent context — identity, personality, goals, facts, skills, and last handoff.',
|
|
143
|
+
inputSchema: { type: 'object', properties: {} },
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
name: 'dream',
|
|
147
|
+
description: 'Trigger a memory consolidation dream cycle — promotes important memories and archives old ones.',
|
|
148
|
+
inputSchema: { type: 'object', properties: {} },
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
name: 'handoff',
|
|
152
|
+
description: 'Create a session handoff package — saves current context for the next session.',
|
|
153
|
+
inputSchema: {
|
|
154
|
+
type: 'object',
|
|
155
|
+
properties: {
|
|
156
|
+
summary: { type: 'string', description: 'Summary of what was accomplished this session' },
|
|
157
|
+
keyLearnings: { type: 'array', items: { type: 'string' }, description: 'Key learnings to carry forward' },
|
|
158
|
+
},
|
|
159
|
+
},
|
|
160
|
+
},
|
|
161
|
+
];
|
|
162
|
+
// ── MCP Server ──────────────────────────────────────────
|
|
163
|
+
async function main() {
|
|
164
|
+
// Authenticate
|
|
165
|
+
let creds = loadCredentials();
|
|
166
|
+
if (!creds) {
|
|
167
|
+
creds = await authenticate();
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
stderr(`Authenticated as agent ${creds.agentId}`);
|
|
171
|
+
}
|
|
172
|
+
const { token, agentId } = creds;
|
|
173
|
+
// Create MCP server
|
|
174
|
+
const server = new Server({ name: 'aismemory', version: '0.1.0' }, { capabilities: { tools: {} } });
|
|
175
|
+
server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools }));
|
|
176
|
+
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
177
|
+
const { name, arguments: args } = request.params;
|
|
178
|
+
const a = (args ?? {});
|
|
179
|
+
try {
|
|
180
|
+
let result;
|
|
181
|
+
switch (name) {
|
|
182
|
+
case 'remember':
|
|
183
|
+
result = await aisPost(`/v1/agents/${agentId}/memory`, {
|
|
184
|
+
content: a['content'],
|
|
185
|
+
type: a['type'] ?? 'context',
|
|
186
|
+
importance: a['importance'] ?? 0.5,
|
|
187
|
+
}, token);
|
|
188
|
+
break;
|
|
189
|
+
case 'recall': {
|
|
190
|
+
const params = new URLSearchParams();
|
|
191
|
+
if (a['query'])
|
|
192
|
+
params.set('query', String(a['query']));
|
|
193
|
+
if (a['limit'])
|
|
194
|
+
params.set('limit', String(a['limit']));
|
|
195
|
+
if (a['type'])
|
|
196
|
+
params.set('types', String(a['type']));
|
|
197
|
+
result = await aisGet(`/v1/agents/${agentId}/memory?${params}`, token);
|
|
198
|
+
break;
|
|
199
|
+
}
|
|
200
|
+
case 'whoami':
|
|
201
|
+
result = await aisGet(`/v1/agents/${agentId}`, token);
|
|
202
|
+
break;
|
|
203
|
+
case 'full_context':
|
|
204
|
+
result = await aisGet(`/v1/agents/${agentId}/full-context`, token);
|
|
205
|
+
break;
|
|
206
|
+
case 'dream':
|
|
207
|
+
result = await aisPost(`/v1/agents/${agentId}/dream`, {}, token);
|
|
208
|
+
break;
|
|
209
|
+
case 'handoff':
|
|
210
|
+
result = await aisPost(`/v1/agents/${agentId}/handoff`, {
|
|
211
|
+
summary: a['summary'] ?? 'Session ended',
|
|
212
|
+
keyLearnings: a['keyLearnings'] ?? [],
|
|
213
|
+
}, token);
|
|
214
|
+
break;
|
|
215
|
+
default:
|
|
216
|
+
return {
|
|
217
|
+
content: [{ type: 'text', text: JSON.stringify({ error: `Unknown tool: ${name}` }) }],
|
|
218
|
+
isError: true,
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
return {
|
|
222
|
+
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
catch (error) {
|
|
226
|
+
return {
|
|
227
|
+
content: [{ type: 'text', text: JSON.stringify({ error: error instanceof Error ? error.message : 'Unknown error' }) }],
|
|
228
|
+
isError: true,
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
const transport = new StdioServerTransport();
|
|
233
|
+
await server.connect(transport);
|
|
234
|
+
stderr('MCP server running. Tools: remember, recall, whoami, full_context, dream, handoff');
|
|
235
|
+
}
|
|
236
|
+
main().catch((error) => {
|
|
237
|
+
stderr(`Fatal: ${error instanceof Error ? error.message : String(error)}`);
|
|
238
|
+
process.exit(1);
|
|
239
|
+
});
|
|
240
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "aismemory",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Persistent memory for AI agents. MCP server that connects to Agent Identity Service.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": "dist/index.js",
|
|
7
|
+
"main": "dist/index.js",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist",
|
|
10
|
+
"README.md"
|
|
11
|
+
],
|
|
12
|
+
"scripts": {
|
|
13
|
+
"build": "tsc && chmod +x dist/index.js",
|
|
14
|
+
"prepack": "npm run build"
|
|
15
|
+
},
|
|
16
|
+
"keywords": [
|
|
17
|
+
"mcp",
|
|
18
|
+
"ai",
|
|
19
|
+
"agent",
|
|
20
|
+
"memory",
|
|
21
|
+
"identity",
|
|
22
|
+
"llm"
|
|
23
|
+
],
|
|
24
|
+
"author": "Agents & Swarms <hello@agentsandswarms.ai>",
|
|
25
|
+
"license": "MIT",
|
|
26
|
+
"dependencies": {
|
|
27
|
+
"@modelcontextprotocol/sdk": "^1.25.0"
|
|
28
|
+
},
|
|
29
|
+
"devDependencies": {
|
|
30
|
+
"typescript": "^5.7.0"
|
|
31
|
+
},
|
|
32
|
+
"publishConfig": {
|
|
33
|
+
"access": "public"
|
|
34
|
+
},
|
|
35
|
+
"repository": {
|
|
36
|
+
"type": "git",
|
|
37
|
+
"url": "https://github.com/rudedoggg/Corbot.git",
|
|
38
|
+
"directory": "packages/agentmemory"
|
|
39
|
+
},
|
|
40
|
+
"homepage": "https://agentsandswarms.ai"
|
|
41
|
+
}
|