onlymcp 0.10.0 → 0.12.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.
Files changed (63) hide show
  1. package/README.md +14 -11
  2. package/dist/apiBaseUrl.d.ts +12 -0
  3. package/dist/apiBaseUrl.js +28 -0
  4. package/dist/apiBaseUrl.js.map +1 -0
  5. package/dist/apiClient.d.ts +37 -2
  6. package/dist/apiClient.js +42 -4
  7. package/dist/apiClient.js.map +1 -1
  8. package/dist/bin/cli.js +189 -151
  9. package/dist/bin/cli.js.map +1 -1
  10. package/dist/bin/mcp.js +4 -2
  11. package/dist/bin/mcp.js.map +1 -1
  12. package/dist/deviceId.d.ts +2 -0
  13. package/dist/deviceId.js +97 -0
  14. package/dist/deviceId.js.map +1 -0
  15. package/dist/identity.d.ts +5 -1
  16. package/dist/identity.js +12 -2
  17. package/dist/identity.js.map +1 -1
  18. package/dist/import/secrets.js +1 -1
  19. package/dist/import/secrets.js.map +1 -1
  20. package/dist/import/upload.js +7 -1
  21. package/dist/import/upload.js.map +1 -1
  22. package/dist/install.d.ts +66 -12
  23. package/dist/install.js +137 -63
  24. package/dist/install.js.map +1 -1
  25. package/dist/instructions.js +2 -0
  26. package/dist/instructions.js.map +1 -1
  27. package/dist/paths.d.ts +2 -0
  28. package/dist/paths.js +4 -0
  29. package/dist/paths.js.map +1 -1
  30. package/dist/registry/caveats.d.ts +17 -0
  31. package/dist/registry/caveats.js +50 -0
  32. package/dist/registry/caveats.js.map +1 -0
  33. package/dist/registry/clients.d.ts +11 -0
  34. package/dist/registry/clients.js +333 -0
  35. package/dist/registry/clients.js.map +1 -0
  36. package/dist/registry/index.d.ts +5 -0
  37. package/dist/registry/index.js +6 -0
  38. package/dist/registry/index.js.map +1 -0
  39. package/dist/registry/serverInfo.d.ts +25 -0
  40. package/dist/registry/serverInfo.js +33 -0
  41. package/dist/registry/serverInfo.js.map +1 -0
  42. package/dist/registry/servers.d.ts +50 -0
  43. package/dist/registry/servers.js +225 -0
  44. package/dist/registry/servers.js.map +1 -0
  45. package/dist/registry/types.d.ts +60 -0
  46. package/dist/registry/types.js +6 -0
  47. package/dist/registry/types.js.map +1 -0
  48. package/dist/stubs.js +2 -2
  49. package/dist/tools/getAgentDefinition.js +5 -2
  50. package/dist/tools/getAgentDefinition.js.map +1 -1
  51. package/dist/tools/getSkill.js +1 -1
  52. package/dist/tools/getSkill.js.map +1 -1
  53. package/dist/tools/getSkillFile.js +3 -3
  54. package/dist/tools/getSkillFile.js.map +1 -1
  55. package/dist/tools/memoryGraph.js +16 -11
  56. package/dist/tools/memoryGraph.js.map +1 -1
  57. package/dist/tools/memoryRead.js +1 -1
  58. package/dist/tools/memoryRead.js.map +1 -1
  59. package/dist/tools/memoryWrite.js +4 -2
  60. package/dist/tools/memoryWrite.js.map +1 -1
  61. package/dist/tools/write.js +3 -3
  62. package/dist/tools/write.js.map +1 -1
  63. package/package.json +4 -4
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, Google Drive, your own — see "The gateway" below):
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
- Any other MCP client works too. `npx onlymcp install --print --client claude` prints
40
- the JSON snippet to paste in by hand.
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 --print --client <id>` | Print the snippet, write nothing |
51
- | `onlymcp login` | Connect this device |
52
- | `onlymcp status` | Show whether this device is connected |
53
- | `onlymcp sync` | Rewrite the local stub files |
54
- | `onlymcp logout` | Remove the token and the local cache |
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
 
@@ -0,0 +1,12 @@
1
+ /**
2
+ * The address of the OnlyMCP API that the stdio server talks to: ONLYMCP_API_URL, or https://only-mcp.com when the
3
+ * variable is not set. A variable that is set but empty is not "not set": it is a misconfiguration (an unexpanded
4
+ * `${VAR}` in an MCP client's config file lands here as the literal text).
5
+ *
6
+ * Fails fast and does not fall back: the stdio server has no degraded mode, every tool calls the API, and a guessed
7
+ * origin would hide the mistake. The message names the variable and shows the value, because the MCP client reports
8
+ * nothing but a closed connection; credentials in the value (`user:pass@`) are masked, as stderr ends up in client logs.
9
+ * Only http: and https: are accepted.
10
+ */
11
+ export declare const DEFAULT_API_URL = "https://only-mcp.com";
12
+ export declare function apiBaseUrl(raw?: string | undefined): string;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * The address of the OnlyMCP API that the stdio server talks to: ONLYMCP_API_URL, or https://only-mcp.com when the
3
+ * variable is not set. A variable that is set but empty is not "not set": it is a misconfiguration (an unexpanded
4
+ * `${VAR}` in an MCP client's config file lands here as the literal text).
5
+ *
6
+ * Fails fast and does not fall back: the stdio server has no degraded mode, every tool calls the API, and a guessed
7
+ * origin would hide the mistake. The message names the variable and shows the value, because the MCP client reports
8
+ * nothing but a closed connection; credentials in the value (`user:pass@`) are masked, as stderr ends up in client logs.
9
+ * Only http: and https: are accepted.
10
+ */
11
+ export const DEFAULT_API_URL = 'https://only-mcp.com';
12
+ export function apiBaseUrl(raw = process.env.ONLYMCP_API_URL) {
13
+ if (raw === undefined)
14
+ return DEFAULT_API_URL;
15
+ let protocol;
16
+ try {
17
+ protocol = new URL(raw).protocol;
18
+ }
19
+ catch {
20
+ // Not parseable at all: reported below like a wrong scheme.
21
+ }
22
+ if (protocol !== 'http:' && protocol !== 'https:') {
23
+ const shown = raw.replace(/\/\/[^/@]*@/, '//***@');
24
+ throw new Error(`ONLYMCP_API_URL is not a valid http(s) URL: ${JSON.stringify(shown)}`);
25
+ }
26
+ return raw;
27
+ }
28
+ //# sourceMappingURL=apiBaseUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiBaseUrl.js","sourceRoot":"","sources":["../src/apiBaseUrl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,sBAAsB,CAAC;AAEtD,MAAM,UAAU,UAAU,CAAC,MAA0B,OAAO,CAAC,GAAG,CAAC,eAAe;IAC9E,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,eAAe,CAAC;IAC9C,IAAI,QAA4B,CAAC;IACjC,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,4DAA4D;IAC9D,CAAC;IACD,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,+CAA+C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -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';
@@ -133,6 +134,11 @@ export type WriteResult = {
133
134
  code: string;
134
135
  params: Record<string, unknown>;
135
136
  };
137
+ /** Set when the server created the file in a team instead of the personal space. */
138
+ routedTo?: {
139
+ teamId: string;
140
+ teamName: string;
141
+ };
136
142
  };
137
143
  export declare class ApiClient {
138
144
  private readonly baseUrl;
@@ -148,6 +154,22 @@ export declare class ApiClient {
148
154
  /** Optional, weil eine aeltere API sie nicht schickt. Fehlt sie, gilt an. */
149
155
  brainvaultMode?: boolean;
150
156
  }>;
157
+ /**
158
+ * Tells the server this device just finished an import or a sync (POST
159
+ * /api/devices/current/run), so the devices page can show when and how many files. The caller
160
+ * treats a failure as nothing: an older server answers 404, and a report is never worth a
161
+ * failed command. Five seconds at most, so a slow server cannot hold the command up.
162
+ */
163
+ reportRun(kind: 'import' | 'sync', files: number): Promise<void>;
164
+ /**
165
+ * Ends this device's session on the server (POST /api/auth/sign-out, Better Auth's own sign-out:
166
+ * the API's bearer plugin turns the token into the session cookie that endpoint reads). For
167
+ * `onlymcp logout`, which forgets the login on this machine whatever this answers. Five seconds
168
+ * at most, so an unreachable server cannot hold the logout up.
169
+ */
170
+ signOut(): Promise<{
171
+ success: boolean;
172
+ }>;
151
173
  listSkills(): Promise<{
152
174
  skills: SkillListItem[];
153
175
  }>;
@@ -189,7 +211,15 @@ export declare class ApiClient {
189
211
  name: string;
190
212
  updatedAt: string;
191
213
  }>;
192
- getAgent(name: string): Promise<Scoped & {
214
+ /**
215
+ * `use` says "I am loading this definition to run it", and the server counts
216
+ * a load for the agent's "Used" line. Only `get_agent_definition` asks. Any
217
+ * other read of the same route (the write tool looking at the previous state)
218
+ * is not a use and must not send it.
219
+ */
220
+ getAgent(name: string, { use }?: {
221
+ use?: boolean;
222
+ }): Promise<Scoped & {
193
223
  name: string;
194
224
  description: string;
195
225
  model: string | null;
@@ -213,7 +243,12 @@ export declare class ApiClient {
213
243
  memoryTree(scope?: string): Promise<{
214
244
  nodes: TreeEntry[];
215
245
  }>;
216
- moveMemory(from: string, to: string, updateLinks?: boolean): Promise<{
246
+ /**
247
+ * A move is a write of the moved file and of every file whose links it rewrites, and the
248
+ * server records the device each write came from. This machine's host name, as the
249
+ * memory_write tool and the import name it, so a write and a move from here are one device.
250
+ */
251
+ moveMemory(from: string, to: string, updateLinks?: boolean, deviceLabel?: string): Promise<{
217
252
  from: string;
218
253
  to: string;
219
254
  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
- getAgent(name) {
83
- return this.call(`/api/agents/${encodeURIComponent(name)}`);
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
- moveMemory(from, to, updateLinks = true) {
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 ---------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"apiClient.js","sourceRoot":"","sources":["../src/apiClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apiClient.js","sourceRoot":"","sources":["../src/apiClient.ts"],"names":[],"mappings":"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"}