onlymcp 0.10.0 → 0.11.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 +14 -11
- package/dist/apiClient.d.ts +32 -2
- package/dist/apiClient.js +42 -4
- package/dist/apiClient.js.map +1 -1
- package/dist/bin/cli.js +189 -151
- package/dist/bin/cli.js.map +1 -1
- package/dist/import/secrets.js +1 -1
- package/dist/import/secrets.js.map +1 -1
- package/dist/import/upload.js +7 -1
- package/dist/import/upload.js.map +1 -1
- package/dist/install.d.ts +66 -12
- package/dist/install.js +137 -63
- package/dist/install.js.map +1 -1
- package/dist/registry/caveats.d.ts +17 -0
- package/dist/registry/caveats.js +50 -0
- package/dist/registry/caveats.js.map +1 -0
- package/dist/registry/clients.d.ts +11 -0
- package/dist/registry/clients.js +327 -0
- package/dist/registry/clients.js.map +1 -0
- package/dist/registry/index.d.ts +4 -0
- package/dist/registry/index.js +5 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/registry/servers.d.ts +50 -0
- package/dist/registry/servers.js +225 -0
- package/dist/registry/servers.js.map +1 -0
- package/dist/registry/types.d.ts +54 -0
- package/dist/registry/types.js +6 -0
- package/dist/registry/types.js.map +1 -0
- package/dist/stubs.js +2 -2
- package/dist/tools/getAgentDefinition.js +5 -2
- package/dist/tools/getAgentDefinition.js.map +1 -1
- package/dist/tools/getSkill.js +1 -1
- package/dist/tools/getSkill.js.map +1 -1
- package/dist/tools/getSkillFile.js +3 -3
- package/dist/tools/getSkillFile.js.map +1 -1
- package/dist/tools/memoryGraph.js +16 -11
- package/dist/tools/memoryGraph.js.map +1 -1
- package/dist/tools/memoryRead.js +1 -1
- package/dist/tools/memoryRead.js.map +1 -1
- package/dist/tools/memoryWrite.js +1 -1
- package/dist/tools/memoryWrite.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -7,10 +7,10 @@ in every MCP client you use. This package ships two binaries: the stdio MCP serv
|
|
|
7
7
|
**There is a second way in, and for most people it is the better one.** The hosted
|
|
8
8
|
server at `https://only-mcp.com/api/mcp` needs nothing installed, works from any
|
|
9
9
|
machine, and is the only way to reach the tools of the MCP servers you connect to
|
|
10
|
-
your account (GitHub,
|
|
10
|
+
your account (GitHub, Linear, Notion, your own — see "The gateway" below):
|
|
11
11
|
|
|
12
12
|
```bash
|
|
13
|
-
claude mcp add --transport http onlymcp https://only-mcp.com/api/mcp \
|
|
13
|
+
claude mcp add --transport http --scope user onlymcp https://only-mcp.com/api/mcp \
|
|
14
14
|
--header "Authorization: Bearer omk_…"
|
|
15
15
|
```
|
|
16
16
|
|
|
@@ -23,7 +23,7 @@ Requires a free account at [only-mcp.com](https://only-mcp.com) and Node.js 22 o
|
|
|
23
23
|
## Set up a client
|
|
24
24
|
|
|
25
25
|
```bash
|
|
26
|
-
npx onlymcp install --client claude # or: codex, gemini
|
|
26
|
+
npx onlymcp install --client claude-code # or: codex, gemini-cli
|
|
27
27
|
npx onlymcp login
|
|
28
28
|
```
|
|
29
29
|
|
|
@@ -36,8 +36,10 @@ merges into what is already there rather than replacing it:
|
|
|
36
36
|
| Codex | `~/.codex/config.toml` |
|
|
37
37
|
| Gemini CLI | `~/.gemini/settings.json` |
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
the
|
|
39
|
+
`npx onlymcp install --all` writes into every one of these whose config file already
|
|
40
|
+
exists on this machine, and skips the rest. Any other MCP client works too:
|
|
41
|
+
`npx onlymcp install --print --client claude-code` prints the JSON snippet to paste in
|
|
42
|
+
by hand.
|
|
41
43
|
|
|
42
44
|
`login` connects the device over an OAuth device code (a code plus a QR in the
|
|
43
45
|
terminal) and stores the token in the operating system keyring, never in a file.
|
|
@@ -46,12 +48,13 @@ terminal) and stores the token in the operating system keyring, never in a file.
|
|
|
46
48
|
|
|
47
49
|
| Command | What it does |
|
|
48
50
|
| --- | --- |
|
|
49
|
-
| `onlymcp install --client <id>` | Add OnlyMCP to a client's config |
|
|
50
|
-
| `onlymcp install --
|
|
51
|
-
| `onlymcp
|
|
52
|
-
| `onlymcp
|
|
53
|
-
| `onlymcp
|
|
54
|
-
| `onlymcp
|
|
51
|
+
| `npx onlymcp install --client <id>` | Add OnlyMCP to a client's config |
|
|
52
|
+
| `npx onlymcp install --all` | Add OnlyMCP to every client already set up on this machine |
|
|
53
|
+
| `npx onlymcp install --print --client <id>` | Print the snippet, write nothing |
|
|
54
|
+
| `npx onlymcp login` | Connect this device |
|
|
55
|
+
| `npx onlymcp status` | Show whether this device is connected |
|
|
56
|
+
| `npx onlymcp sync` | Rewrite the local stub files |
|
|
57
|
+
| `npx onlymcp logout` | End this device's session on the server, then remove the token and the local cache |
|
|
55
58
|
|
|
56
59
|
## What the agent gets
|
|
57
60
|
|
package/dist/apiClient.d.ts
CHANGED
|
@@ -64,6 +64,7 @@ export type MemoryFile = {
|
|
|
64
64
|
};
|
|
65
65
|
updatedAt: string;
|
|
66
66
|
updatedByDevice: string | null;
|
|
67
|
+
updatedByName?: string | null;
|
|
67
68
|
};
|
|
68
69
|
export type SearchHit = {
|
|
69
70
|
kind: 'memory' | 'skill' | 'agent';
|
|
@@ -148,6 +149,22 @@ export declare class ApiClient {
|
|
|
148
149
|
/** Optional, weil eine aeltere API sie nicht schickt. Fehlt sie, gilt an. */
|
|
149
150
|
brainvaultMode?: boolean;
|
|
150
151
|
}>;
|
|
152
|
+
/**
|
|
153
|
+
* Tells the server this device just finished an import or a sync (POST
|
|
154
|
+
* /api/devices/current/run), so the devices page can show when and how many files. The caller
|
|
155
|
+
* treats a failure as nothing: an older server answers 404, and a report is never worth a
|
|
156
|
+
* failed command. Five seconds at most, so a slow server cannot hold the command up.
|
|
157
|
+
*/
|
|
158
|
+
reportRun(kind: 'import' | 'sync', files: number): Promise<void>;
|
|
159
|
+
/**
|
|
160
|
+
* Ends this device's session on the server (POST /api/auth/sign-out, Better Auth's own sign-out:
|
|
161
|
+
* the API's bearer plugin turns the token into the session cookie that endpoint reads). For
|
|
162
|
+
* `onlymcp logout`, which forgets the login on this machine whatever this answers. Five seconds
|
|
163
|
+
* at most, so an unreachable server cannot hold the logout up.
|
|
164
|
+
*/
|
|
165
|
+
signOut(): Promise<{
|
|
166
|
+
success: boolean;
|
|
167
|
+
}>;
|
|
151
168
|
listSkills(): Promise<{
|
|
152
169
|
skills: SkillListItem[];
|
|
153
170
|
}>;
|
|
@@ -189,7 +206,15 @@ export declare class ApiClient {
|
|
|
189
206
|
name: string;
|
|
190
207
|
updatedAt: string;
|
|
191
208
|
}>;
|
|
192
|
-
|
|
209
|
+
/**
|
|
210
|
+
* `use` says "I am loading this definition to run it", and the server counts
|
|
211
|
+
* a load for the agent's "Used" line. Only `get_agent_definition` asks. Any
|
|
212
|
+
* other read of the same route (the write tool looking at the previous state)
|
|
213
|
+
* is not a use and must not send it.
|
|
214
|
+
*/
|
|
215
|
+
getAgent(name: string, { use }?: {
|
|
216
|
+
use?: boolean;
|
|
217
|
+
}): Promise<Scoped & {
|
|
193
218
|
name: string;
|
|
194
219
|
description: string;
|
|
195
220
|
model: string | null;
|
|
@@ -213,7 +238,12 @@ export declare class ApiClient {
|
|
|
213
238
|
memoryTree(scope?: string): Promise<{
|
|
214
239
|
nodes: TreeEntry[];
|
|
215
240
|
}>;
|
|
216
|
-
|
|
241
|
+
/**
|
|
242
|
+
* A move is a write of the moved file and of every file whose links it rewrites, and the
|
|
243
|
+
* server records the device each write came from. This machine's host name, as the
|
|
244
|
+
* memory_write tool and the import name it, so a write and a move from here are one device.
|
|
245
|
+
*/
|
|
246
|
+
moveMemory(from: string, to: string, updateLinks?: boolean, deviceLabel?: string): Promise<{
|
|
217
247
|
from: string;
|
|
218
248
|
to: string;
|
|
219
249
|
rewritten: number;
|
package/dist/apiClient.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { hostname } from 'node:os';
|
|
1
2
|
import { identityHeaders } from './identity.js';
|
|
2
3
|
export class ApiError extends Error {
|
|
3
4
|
code;
|
|
@@ -44,6 +45,32 @@ export class ApiClient {
|
|
|
44
45
|
getMe() {
|
|
45
46
|
return this.call('/api/me');
|
|
46
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Tells the server this device just finished an import or a sync (POST
|
|
50
|
+
* /api/devices/current/run), so the devices page can show when and how many files. The caller
|
|
51
|
+
* treats a failure as nothing: an older server answers 404, and a report is never worth a
|
|
52
|
+
* failed command. Five seconds at most, so a slow server cannot hold the command up.
|
|
53
|
+
*/
|
|
54
|
+
reportRun(kind, files) {
|
|
55
|
+
return this.call('/api/devices/current/run', {
|
|
56
|
+
method: 'POST',
|
|
57
|
+
body: JSON.stringify({ kind, files }),
|
|
58
|
+
signal: AbortSignal.timeout(5000),
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Ends this device's session on the server (POST /api/auth/sign-out, Better Auth's own sign-out:
|
|
63
|
+
* the API's bearer plugin turns the token into the session cookie that endpoint reads). For
|
|
64
|
+
* `onlymcp logout`, which forgets the login on this machine whatever this answers. Five seconds
|
|
65
|
+
* at most, so an unreachable server cannot hold the logout up.
|
|
66
|
+
*/
|
|
67
|
+
signOut() {
|
|
68
|
+
return this.call('/api/auth/sign-out', {
|
|
69
|
+
method: 'POST',
|
|
70
|
+
body: '{}',
|
|
71
|
+
signal: AbortSignal.timeout(5000),
|
|
72
|
+
});
|
|
73
|
+
}
|
|
47
74
|
listSkills() {
|
|
48
75
|
return this.call('/api/skills');
|
|
49
76
|
}
|
|
@@ -79,8 +106,14 @@ export class ApiClient {
|
|
|
79
106
|
putAgent(name, a) {
|
|
80
107
|
return this.call(`/api/agents/${encodeURIComponent(name)}`, { method: 'PUT', body: JSON.stringify(a) });
|
|
81
108
|
}
|
|
82
|
-
|
|
83
|
-
|
|
109
|
+
/**
|
|
110
|
+
* `use` says "I am loading this definition to run it", and the server counts
|
|
111
|
+
* a load for the agent's "Used" line. Only `get_agent_definition` asks. Any
|
|
112
|
+
* other read of the same route (the write tool looking at the previous state)
|
|
113
|
+
* is not a use and must not send it.
|
|
114
|
+
*/
|
|
115
|
+
getAgent(name, { use = false } = {}) {
|
|
116
|
+
return this.call(`/api/agents/${encodeURIComponent(name)}${use ? '?use=1' : ''}`);
|
|
84
117
|
}
|
|
85
118
|
readMemory(path) {
|
|
86
119
|
return this.call(this.memoryUrl(path));
|
|
@@ -111,10 +144,15 @@ export class ApiClient {
|
|
|
111
144
|
memoryTree(scope = 'all') {
|
|
112
145
|
return this.call(`/api/memory/tree?scope=${encodeURIComponent(scope)}`);
|
|
113
146
|
}
|
|
114
|
-
|
|
147
|
+
/**
|
|
148
|
+
* A move is a write of the moved file and of every file whose links it rewrites, and the
|
|
149
|
+
* server records the device each write came from. This machine's host name, as the
|
|
150
|
+
* memory_write tool and the import name it, so a write and a move from here are one device.
|
|
151
|
+
*/
|
|
152
|
+
moveMemory(from, to, updateLinks = true, deviceLabel = hostname()) {
|
|
115
153
|
return this.call('/api/memory/move', {
|
|
116
154
|
method: 'POST',
|
|
117
|
-
body: JSON.stringify({ from, to, updateLinks }),
|
|
155
|
+
body: JSON.stringify({ from, to, updateLinks, deviceLabel }),
|
|
118
156
|
});
|
|
119
157
|
}
|
|
120
158
|
// --- Der Weg nach draussen ---------------------------------------------
|
package/dist/apiClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiClient.js","sourceRoot":"","sources":["../src/apiClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,MAAM,OAAO,QAAS,SAAQ,KAAK;IAEtB;IACA;IACA;IAHX,YACW,IAAY,EACZ,SAAkC,EAAE,EACpC,SAAS,CAAC;QAEnB,KAAK,CAAC,IAAI,CAAC,CAAC;QAJH,SAAI,GAAJ,IAAI,CAAQ;QACZ,WAAM,GAAN,MAAM,CAA8B;QACpC,WAAM,GAAN,MAAM,CAAI;QAGnB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"apiClient.js","sourceRoot":"","sources":["../src/apiClient.ts"],"names":[],"mappings":"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"}
|