workfullcircle-mcp 1.0.6 โ 1.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 +171 -0
- package/bin/workfullcircle-mcp.js +58 -58
- package/package.json +32 -26
- package/src/config-writer.js +2 -2
- package/test-install.js +52 -0
- package/workfullcircle-mcp-1.0.6.tgz +0 -0
package/README.md
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# WorkFullCircle MCP - Universal AI Memory
|
|
2
|
+
|
|
3
|
+
๐ง **Persistent intelligence that works anywhere across all your AI tools**
|
|
4
|
+
|
|
5
|
+
# Quick Start
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# Install and configure automatically
|
|
9
|
+
npx workfullcircle-mcp install --token uam_your_token_here
|
|
10
|
+
|
|
11
|
+
# Or use the remote server directly
|
|
12
|
+
npx workfullcircle-remote https://your-server.com/sse --header "Authorization: Bearer uam_your_token"
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Environment Variables
|
|
16
|
+
|
|
17
|
+
Configure your MCP server with these environment variables:
|
|
18
|
+
|
|
19
|
+
### Required Variables
|
|
20
|
+
```bash
|
|
21
|
+
# WorkFullCircle API Configuration
|
|
22
|
+
WFC_API_URL=https://workfullcircle.com/api # Your API endpoint
|
|
23
|
+
WFC_API_KEY=uam_your_api_key_here # Your API key
|
|
24
|
+
|
|
25
|
+
# For remote server connections
|
|
26
|
+
WFC_SSE_URL=https://workfullcircle.com/sse # SSE endpoint
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Optional Variables
|
|
30
|
+
```bash
|
|
31
|
+
# Testing
|
|
32
|
+
TEST_API_URL=http://localhost:9001/api # Local testing API
|
|
33
|
+
TEST_API_KEY=uam_test_key # Local testing key
|
|
34
|
+
|
|
35
|
+
# Server Configuration (for self-hosting)
|
|
36
|
+
HOST=0.0.0.0 # Server host
|
|
37
|
+
PORT=9001 # Server port
|
|
38
|
+
NODE_ENV=development # Environment
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Installation Methods
|
|
42
|
+
|
|
43
|
+
### Method 1: Auto-Install (Recommended)
|
|
44
|
+
```bash
|
|
45
|
+
npx @workfullcircle/mcp install --token uam_your_token
|
|
46
|
+
```
|
|
47
|
+
- Automatically detects and configures: Claude Desktop, Cursor, Windsurf, VS Code
|
|
48
|
+
- No manual config file editing required
|
|
49
|
+
|
|
50
|
+
### Method 2: Manual Configuration
|
|
51
|
+
|
|
52
|
+
**Claude Desktop** (`~/Library/Application Support/Claude/claude_desktop_config.json`):
|
|
53
|
+
```json
|
|
54
|
+
{
|
|
55
|
+
"mcpServers": {
|
|
56
|
+
"workfullcircle": {
|
|
57
|
+
"command": "npx",
|
|
58
|
+
"args": ["-y", "workfullcircle-remote", "https://workfullcircle.com/sse", "--header", "Authorization: Bearer uam_your_token"]
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**Cursor/Windsurf** (`~/.cursor/mcp.json` or `~/.windsurf/mcp.json`):
|
|
65
|
+
```json
|
|
66
|
+
{
|
|
67
|
+
"mcpServers": {
|
|
68
|
+
"workfullcircle": {
|
|
69
|
+
"command": "npx",
|
|
70
|
+
"args": ["-y", "workfullcircle-remote", "https://workfullcircle.com/sse", "--header", "Authorization: Bearer uam_your_token"]
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Method 3: Local API Connection
|
|
77
|
+
For direct API connections without SSE:
|
|
78
|
+
```json
|
|
79
|
+
{
|
|
80
|
+
"mcpServers": {
|
|
81
|
+
"workfullcircle": {
|
|
82
|
+
"command": "npx",
|
|
83
|
+
"args": ["-y", "workfullcircle-mcp-local"],
|
|
84
|
+
"env": {
|
|
85
|
+
"WFC_API_URL": "https://workfullcircle.com/api",
|
|
86
|
+
"WFC_API_KEY": "uam_your_token"
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Platform Support
|
|
94
|
+
|
|
95
|
+
โ
**Claude Desktop** - Full SSE support
|
|
96
|
+
โ
**Cursor** - Full SSE support
|
|
97
|
+
โ
**Windsurf** - Full SSE support
|
|
98
|
+
โ
**VS Code** - Via global MCP extension
|
|
99
|
+
โ
**LangChain** - Via stdio interface
|
|
100
|
+
โ
**Custom integrations** - Standard MCP protocol
|
|
101
|
+
|
|
102
|
+
## Available Tools
|
|
103
|
+
|
|
104
|
+
- `save_memory` - Store important information
|
|
105
|
+
- `get_memory` - Search and retrieve memories
|
|
106
|
+
- `capture_cognition` - Auto-capture conversations
|
|
107
|
+
- `delete_memory` - Remove stored memories
|
|
108
|
+
- `update_memory` - Modify existing memories
|
|
109
|
+
- `list_all_memories` - Browse all stored memories
|
|
110
|
+
|
|
111
|
+
## Self-Hosting
|
|
112
|
+
|
|
113
|
+
Set up your own WorkFullCircle server:
|
|
114
|
+
|
|
115
|
+
1. **Clone and setup**:
|
|
116
|
+
```bash
|
|
117
|
+
git clone https://github.com/workfullcircle/universal-ai-memory-mcp
|
|
118
|
+
cd universal-ai-memory-mcp
|
|
119
|
+
cp .env.example .env
|
|
120
|
+
# Edit .env with your configuration
|
|
121
|
+
npm install
|
|
122
|
+
npm start
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
2. **Configure environment**:
|
|
126
|
+
```bash
|
|
127
|
+
# .env file
|
|
128
|
+
SUPABASE_URL=your_supabase_url
|
|
129
|
+
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key
|
|
130
|
+
OPENAI_API_KEY=your_openai_key
|
|
131
|
+
HOST=0.0.0.0
|
|
132
|
+
PORT=9001
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
3. **Connect clients**:
|
|
136
|
+
```bash
|
|
137
|
+
npx workfullcircle-mcp install --token uam_your_token --server-url http://localhost:9001
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## Architecture
|
|
141
|
+
|
|
142
|
+
- **workfullcircle-mcp** - Main installer CLI
|
|
143
|
+
- **workfullcircle-remote** - SSE proxy for remote servers
|
|
144
|
+
- **workfullcircle-mcp-local** - Direct API client
|
|
145
|
+
|
|
146
|
+
## Troubleshooting
|
|
147
|
+
|
|
148
|
+
**Connection Issues**:
|
|
149
|
+
- Verify `WFC_API_KEY` is correct and starts with `uam_`
|
|
150
|
+
- Check `WFC_API_URL` is accessible
|
|
151
|
+
- Ensure firewall allows connections to workfullcircle.com
|
|
152
|
+
|
|
153
|
+
**Configuration Issues**:
|
|
154
|
+
- Run `npx workfullcircle-mcp install` to auto-fix configs
|
|
155
|
+
- Check JSON syntax in manual config files
|
|
156
|
+
- Restart IDE after configuration changes
|
|
157
|
+
|
|
158
|
+
**Platform-Specific**:
|
|
159
|
+
- **Windows**: Configs in `%APPDATA%\Claude\` and `%USERPROFILE%\.cursor\`
|
|
160
|
+
- **macOS**: Configs in `~/Library/Application Support/` and `~/.cursor/`
|
|
161
|
+
- **Linux**: Configs in `~/.config/` and `~/.cursor/`
|
|
162
|
+
|
|
163
|
+
## Support
|
|
164
|
+
|
|
165
|
+
- ๐ [Documentation](https://workfullcircle.com/docs)
|
|
166
|
+
- ๐ [Issues](https://github.com/workfullcircle/mcp/issues)
|
|
167
|
+
- ๐ฌ [Community](https://discord.gg/workfullcircle)
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
**WorkFullCircle** - Your AI memory, everywhere you need it.
|
|
@@ -1,59 +1,59 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
const { validateToken } = require('../src/auth');
|
|
4
|
-
const { getTargets, writeConfig } = require('../src/config-writer');
|
|
5
|
-
|
|
6
|
-
const args = process.argv.slice(2);
|
|
7
|
-
|
|
8
|
-
function printUsage() {
|
|
9
|
-
console.log('Usage: workfullcircle-mcp install --token uam_...');
|
|
10
|
-
process.exit(1);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
function parseArgs(argv) {
|
|
14
|
-
if (argv.length < 2) {
|
|
15
|
-
printUsage();
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
const command = argv[0];
|
|
19
|
-
const tokenIndex = argv.indexOf('--token');
|
|
20
|
-
const token = tokenIndex !== -1 ? argv[tokenIndex + 1] : null;
|
|
21
|
-
const projectIndex = argv.indexOf('--project');
|
|
22
|
-
const projectId = projectIndex !== -1 ? argv[projectIndex + 1] : null;
|
|
23
|
-
|
|
24
|
-
if (command !== 'install' || !token) {
|
|
25
|
-
printUsage();
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
const validation = validateToken(token);
|
|
29
|
-
if (!validation.valid) {
|
|
30
|
-
console.error(`Error: ${validation.error}`);
|
|
31
|
-
process.exit(1);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
return { token, projectId };
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
function install(token, projectId) {
|
|
38
|
-
const targets = getTargets();
|
|
39
|
-
let updated = 0;
|
|
40
|
-
targets.forEach((target) => {
|
|
41
|
-
if (!target.path) return;
|
|
42
|
-
const result = writeConfig(target, token, projectId);
|
|
43
|
-
if (result.success) {
|
|
44
|
-
console.log(`Updated ${target.name} config.`);
|
|
45
|
-
updated += 1;
|
|
46
|
-
} else {
|
|
47
|
-
console.warn(`Skipping ${target.name}: ${result.error}`);
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
if (updated === 0) {
|
|
52
|
-
console.log('No configs found. Please create a config file manually.');
|
|
53
|
-
} else {
|
|
54
|
-
console.log('Setup complete. Restart your IDE to load WorkFullCircle.');
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
const { token, projectId } = parseArgs(args);
|
|
59
|
-
install(token, projectId);
|
|
2
|
+
|
|
3
|
+
const { validateToken } = require('../src/auth');
|
|
4
|
+
const { getTargets, writeConfig } = require('../src/config-writer');
|
|
5
|
+
|
|
6
|
+
const args = process.argv.slice(2);
|
|
7
|
+
|
|
8
|
+
function printUsage() {
|
|
9
|
+
console.log('Usage: workfullcircle-mcp install --token uam_...');
|
|
10
|
+
process.exit(1);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
function parseArgs(argv) {
|
|
14
|
+
if (argv.length < 2) {
|
|
15
|
+
printUsage();
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const command = argv[0];
|
|
19
|
+
const tokenIndex = argv.indexOf('--token');
|
|
20
|
+
const token = tokenIndex !== -1 ? argv[tokenIndex + 1] : null;
|
|
21
|
+
const projectIndex = argv.indexOf('--project');
|
|
22
|
+
const projectId = projectIndex !== -1 ? argv[projectIndex + 1] : null;
|
|
23
|
+
|
|
24
|
+
if (command !== 'install' || !token) {
|
|
25
|
+
printUsage();
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const validation = validateToken(token);
|
|
29
|
+
if (!validation.valid) {
|
|
30
|
+
console.error(`Error: ${validation.error}`);
|
|
31
|
+
process.exit(1);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return { token, projectId };
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function install(token, projectId) {
|
|
38
|
+
const targets = getTargets();
|
|
39
|
+
let updated = 0;
|
|
40
|
+
targets.forEach((target) => {
|
|
41
|
+
if (!target.path) return;
|
|
42
|
+
const result = writeConfig(target, token, projectId);
|
|
43
|
+
if (result.success) {
|
|
44
|
+
console.log(`Updated ${target.name} config.`);
|
|
45
|
+
updated += 1;
|
|
46
|
+
} else {
|
|
47
|
+
console.warn(`Skipping ${target.name}: ${result.error}`);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
if (updated === 0) {
|
|
52
|
+
console.log('No configs found. Please create a config file manually.');
|
|
53
|
+
} else {
|
|
54
|
+
console.log('Setup complete. Restart your IDE to load WorkFullCircle.');
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const { token, projectId } = parseArgs(args);
|
|
59
|
+
install(token, projectId);
|
package/package.json
CHANGED
|
@@ -1,26 +1,32 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "workfullcircle-mcp",
|
|
3
|
-
"version": "1.0
|
|
4
|
-
"description": "WorkFullCircle MCP
|
|
5
|
-
"bin": {
|
|
6
|
-
"workfullcircle-mcp": "bin/workfullcircle-mcp.js"
|
|
7
|
-
},
|
|
8
|
-
"main": "bin/workfullcircle-mcp.js",
|
|
9
|
-
"scripts": {
|
|
10
|
-
"start": "node bin/workfullcircle-mcp.js"
|
|
11
|
-
},
|
|
12
|
-
"keywords": [
|
|
13
|
-
"mcp",
|
|
14
|
-
"workfullcircle",
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
"
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "workfullcircle-mcp",
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"description": "WorkFullCircle MCP - Universal AI memory that works anywhere",
|
|
5
|
+
"bin": {
|
|
6
|
+
"workfullcircle-mcp": "bin/workfullcircle-mcp.js"
|
|
7
|
+
},
|
|
8
|
+
"main": "bin/workfullcircle-mcp.js",
|
|
9
|
+
"scripts": {
|
|
10
|
+
"start": "node bin/workfullcircle-mcp.js"
|
|
11
|
+
},
|
|
12
|
+
"keywords": [
|
|
13
|
+
"mcp",
|
|
14
|
+
"workfullcircle",
|
|
15
|
+
"ai",
|
|
16
|
+
"memory",
|
|
17
|
+
"universal",
|
|
18
|
+
"cross-platform",
|
|
19
|
+
"windsurf",
|
|
20
|
+
"cursor",
|
|
21
|
+
"claude",
|
|
22
|
+
"vscode"
|
|
23
|
+
],
|
|
24
|
+
"author": "Afreensiyad",
|
|
25
|
+
"license": "MIT",
|
|
26
|
+
"dependencies": {
|
|
27
|
+
"fs-extra": "^11.2.0"
|
|
28
|
+
},
|
|
29
|
+
"engines": {
|
|
30
|
+
"node": ">=16.0.0"
|
|
31
|
+
}
|
|
32
|
+
}
|
package/src/config-writer.js
CHANGED
|
@@ -35,8 +35,8 @@ function getTargets() {
|
|
|
35
35
|
function buildConfig(token, projectId) {
|
|
36
36
|
const args = [
|
|
37
37
|
'-y',
|
|
38
|
-
'
|
|
39
|
-
'https://workfullcircle.com/sse',
|
|
38
|
+
'workfullcircle-remote',
|
|
39
|
+
process.env.WFC_SSE_URL || 'https://workfullcircle.com/sse',
|
|
40
40
|
'--header',
|
|
41
41
|
`Authorization: Bearer ${token}`
|
|
42
42
|
];
|
package/test-install.js
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Test script to verify @workfullcircle/mcp installation
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
const { spawn } = require('child_process');
|
|
8
|
+
const path = require('path');
|
|
9
|
+
|
|
10
|
+
console.log('๐งช Testing @workfullcircle/mcp package...\n');
|
|
11
|
+
|
|
12
|
+
// Test 1: Help command
|
|
13
|
+
console.log('1. Testing help command...');
|
|
14
|
+
const helpProcess = spawn('node', [path.join(__dirname, 'bin', 'workfullcircle-mcp.js')], {
|
|
15
|
+
stdio: 'pipe'
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
helpProcess.stdout.on('data', (data) => {
|
|
19
|
+
console.log('โ
Help output:', data.toString().trim());
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
helpProcess.stderr.on('data', (data) => {
|
|
23
|
+
console.log('โ Help error:', data.toString().trim());
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
// Test 2: Token validation
|
|
27
|
+
console.log('\n2. Testing token validation...');
|
|
28
|
+
const testProcess = spawn('node', [
|
|
29
|
+
path.join(__dirname, 'bin', 'workfullcircle-mcp.js'),
|
|
30
|
+
'install',
|
|
31
|
+
'--token',
|
|
32
|
+
'uam_test_token_12345'
|
|
33
|
+
], {
|
|
34
|
+
stdio: 'pipe'
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
testProcess.stdout.on('data', (data) => {
|
|
38
|
+
console.log('โ
Install output:', data.toString().trim());
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
testProcess.stderr.on('data', (data) => {
|
|
42
|
+
console.log('โ Install error:', data.toString().trim());
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
setTimeout(() => {
|
|
46
|
+
console.log('\n๐ Test completed! The package is ready for publishing.');
|
|
47
|
+
console.log('\n๐ฆ To publish to npm:');
|
|
48
|
+
console.log(' cd packages/wfc-cli');
|
|
49
|
+
console.log(' npm publish');
|
|
50
|
+
console.log('\n๐ Users can then run:');
|
|
51
|
+
console.log(' npx @workfullcircle/mcp install --token uam_their_token');
|
|
52
|
+
}, 2000);
|
|
Binary file
|