@vemdev/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.
- package/README.md +128 -7
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,30 +1,151 @@
|
|
|
1
1
|
# @vemdev/mcp-server
|
|
2
2
|
|
|
3
|
-
Official [VEM](https://vem.dev) MCP Server
|
|
3
|
+
Official [VEM](https://vem.dev) MCP Server — gives AI agents (Claude, Cursor, Copilot, etc.) durable project memory via the [Model Context Protocol](https://modelcontextprotocol.io).
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Agents can read tasks, record decisions, search context, and sync snapshots to the cloud — all through structured MCP tools.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
---
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
## Quick start
|
|
10
10
|
|
|
11
11
|
```sh
|
|
12
|
-
npx @vemdev/mcp-server@latest
|
|
12
|
+
npx @vemdev/mcp-server@latest --api-key <your-api-key>
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
Get your API key from **[app.vem.dev](https://app.vem.dev) → Settings → API Keys**.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## MCP host configuration
|
|
20
|
+
|
|
21
|
+
### Claude Desktop
|
|
22
|
+
|
|
23
|
+
Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
|
|
16
24
|
|
|
17
25
|
```json
|
|
18
26
|
{
|
|
19
27
|
"mcpServers": {
|
|
20
28
|
"vem": {
|
|
21
29
|
"command": "npx",
|
|
22
|
-
"args": ["@vemdev/mcp-server@latest"]
|
|
30
|
+
"args": ["@vemdev/mcp-server@latest", "--api-key", "nk_your_key_here"]
|
|
23
31
|
}
|
|
24
32
|
}
|
|
25
33
|
}
|
|
26
34
|
```
|
|
27
35
|
|
|
36
|
+
### Cursor / VS Code
|
|
37
|
+
|
|
38
|
+
Add to your MCP settings:
|
|
39
|
+
|
|
40
|
+
```json
|
|
41
|
+
{
|
|
42
|
+
"vem": {
|
|
43
|
+
"command": "npx",
|
|
44
|
+
"args": ["@vemdev/mcp-server@latest", "--api-key", "nk_your_key_here"]
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Authentication
|
|
52
|
+
|
|
53
|
+
There are three ways to provide your API key, in priority order:
|
|
54
|
+
|
|
55
|
+
### 1. `--api-key` flag (recommended for MCP hosts)
|
|
56
|
+
|
|
57
|
+
Pass the key directly when starting the server:
|
|
58
|
+
|
|
59
|
+
```sh
|
|
60
|
+
npx @vemdev/mcp-server@latest --api-key nk_your_key_here
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
The key is saved to `~/.vem/config.json` on first run, so subsequent starts
|
|
64
|
+
without the flag will reuse it automatically.
|
|
65
|
+
|
|
66
|
+
### 2. `VEM_API_KEY` environment variable
|
|
67
|
+
|
|
68
|
+
Useful in CI or when you prefer not to store the key on disk:
|
|
69
|
+
|
|
70
|
+
```sh
|
|
71
|
+
VEM_API_KEY=nk_your_key_here npx @vemdev/mcp-server@latest
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Or in your MCP host config:
|
|
75
|
+
|
|
76
|
+
```json
|
|
77
|
+
{
|
|
78
|
+
"mcpServers": {
|
|
79
|
+
"vem": {
|
|
80
|
+
"command": "npx",
|
|
81
|
+
"args": ["@vemdev/mcp-server@latest"],
|
|
82
|
+
"env": {
|
|
83
|
+
"VEM_API_KEY": "nk_your_key_here"
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### 3. `vem login` CLI (if you already use the CLI)
|
|
91
|
+
|
|
92
|
+
If you have the VEM CLI installed and have already logged in, the MCP server
|
|
93
|
+
picks up the saved key automatically — no extra config needed:
|
|
94
|
+
|
|
95
|
+
```sh
|
|
96
|
+
npx @vemdev/cli@latest login nk_your_key_here
|
|
97
|
+
npx @vemdev/mcp-server@latest # key is read from ~/.vem/config.json
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Getting an API key
|
|
103
|
+
|
|
104
|
+
1. Go to **[app.vem.dev](https://app.vem.dev)** and sign in
|
|
105
|
+
2. Navigate to **Settings → API Keys**
|
|
106
|
+
3. Click **Create key** and copy the `nk_...` token
|
|
107
|
+
4. Pass it to the server via any of the methods above
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Available tools
|
|
112
|
+
|
|
113
|
+
| Tool | Description |
|
|
114
|
+
|---|---|
|
|
115
|
+
| `get_active_tasks` | List all active tasks in the project |
|
|
116
|
+
| `add_task` | Create a new task |
|
|
117
|
+
| `start_task` | Transition a task to in-progress |
|
|
118
|
+
| `complete_task` | Mark a task as done with evidence |
|
|
119
|
+
| `update_task` | Update task fields (title, status, priority) |
|
|
120
|
+
| `delete_task` | Delete a task |
|
|
121
|
+
| `get_task_details` | Get full details of a specific task |
|
|
122
|
+
| `get_task_context` | Get ephemeral context for a task |
|
|
123
|
+
| `update_task_context` | Update ephemeral context for a task |
|
|
124
|
+
| `get_context` | Read `CONTEXT.md` (project summary) |
|
|
125
|
+
| `update_current_state` | Update `CURRENT_STATE.md` |
|
|
126
|
+
| `list_decisions` | List recorded architectural decisions |
|
|
127
|
+
| `add_decision` | Record a new architectural decision |
|
|
128
|
+
| `search_memory` | Semantic search across project memory |
|
|
129
|
+
| `ask_question` | Ask a question about the project context |
|
|
130
|
+
| `get_changelog` | Read recent changelog entries |
|
|
131
|
+
| `apply_vem_update` | Apply a structured `vem_update` block |
|
|
132
|
+
| `sync_push` | Push a memory snapshot to the cloud |
|
|
133
|
+
| `sync_pull` | Pull the latest snapshot from the cloud |
|
|
134
|
+
| `get_subtasks` | List subtasks of a task |
|
|
135
|
+
| `list_agent_sessions` | List recorded agent sessions |
|
|
136
|
+
| `save_session_stats` | Save session stats for a task |
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## Environment variables
|
|
141
|
+
|
|
142
|
+
| Variable | Default | Description |
|
|
143
|
+
|---|---|---|
|
|
144
|
+
| `VEM_API_KEY` | — | API key (alternative to `--api-key` flag) |
|
|
145
|
+
| `VEM_API_URL` | `https://api.vem.dev` | VEM API endpoint |
|
|
146
|
+
| `VEM_AGENT_NAME` | `mcp-agent` | Agent name shown in the dashboard |
|
|
147
|
+
|
|
148
|
+
---
|
|
28
149
|
|
|
29
150
|
## License
|
|
30
151
|
|
package/dist/index.js
CHANGED
|
@@ -3021,7 +3021,9 @@ ${context}`);
|
|
|
3021
3021
|
|
|
3022
3022
|
${currentState}`);
|
|
3023
3023
|
return {
|
|
3024
|
-
content: [
|
|
3024
|
+
content: [
|
|
3025
|
+
{ type: "text", text: parts.join("\n\n---\n\n") || "(no context yet)" }
|
|
3026
|
+
]
|
|
3025
3027
|
};
|
|
3026
3028
|
}
|
|
3027
3029
|
if (name === "list_decisions") {
|
|
@@ -3740,5 +3742,10 @@ ${JSON.stringify(stats, null, 2)}`
|
|
|
3740
3742
|
throw new Error(`Tool not found: ${name}`);
|
|
3741
3743
|
});
|
|
3742
3744
|
var transport = new StdioServerTransport();
|
|
3745
|
+
var apiKeyFlagIndex = process.argv.indexOf("--api-key");
|
|
3746
|
+
if (apiKeyFlagIndex !== -1 && process.argv[apiKeyFlagIndex + 1]) {
|
|
3747
|
+
const flagKey = process.argv[apiKeyFlagIndex + 1];
|
|
3748
|
+
await configService.setApiKey(flagKey);
|
|
3749
|
+
}
|
|
3743
3750
|
await server.connect(transport);
|
|
3744
3751
|
//# sourceMappingURL=index.js.map
|