onlymcp 0.17.0 → 0.20.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 (126) hide show
  1. package/LICENSE +33 -17
  2. package/README.md +2 -1
  3. package/dist/bin/cli.js +68 -583
  4. package/dist/bin/mcp.js +45 -73
  5. package/package.json +7 -10
  6. package/dist/apiBaseUrl.d.ts +0 -12
  7. package/dist/apiBaseUrl.js +0 -28
  8. package/dist/apiBaseUrl.js.map +0 -1
  9. package/dist/apiClient.d.ts +0 -296
  10. package/dist/apiClient.js +0 -224
  11. package/dist/apiClient.js.map +0 -1
  12. package/dist/auth/deviceLogin.d.ts +0 -5
  13. package/dist/auth/deviceLogin.js +0 -40
  14. package/dist/auth/deviceLogin.js.map +0 -1
  15. package/dist/auth/keyring.d.ts +0 -16
  16. package/dist/auth/keyring.js +0 -33
  17. package/dist/auth/keyring.js.map +0 -1
  18. package/dist/bin/cli.d.ts +0 -2
  19. package/dist/bin/cli.js.map +0 -1
  20. package/dist/bin/mcp.d.ts +0 -2
  21. package/dist/bin/mcp.js.map +0 -1
  22. package/dist/cache.d.ts +0 -7
  23. package/dist/cache.js +0 -32
  24. package/dist/cache.js.map +0 -1
  25. package/dist/deviceId.d.ts +0 -2
  26. package/dist/deviceId.js +0 -97
  27. package/dist/deviceId.js.map +0 -1
  28. package/dist/export/unpack.d.ts +0 -33
  29. package/dist/export/unpack.js +0 -54
  30. package/dist/export/unpack.js.map +0 -1
  31. package/dist/identity.d.ts +0 -29
  32. package/dist/identity.js +0 -116
  33. package/dist/identity.js.map +0 -1
  34. package/dist/import/collect.d.ts +0 -25
  35. package/dist/import/collect.js +0 -101
  36. package/dist/import/collect.js.map +0 -1
  37. package/dist/import/frontmatter.d.ts +0 -44
  38. package/dist/import/frontmatter.js +0 -93
  39. package/dist/import/frontmatter.js.map +0 -1
  40. package/dist/import/plan.d.ts +0 -74
  41. package/dist/import/plan.js +0 -190
  42. package/dist/import/plan.js.map +0 -1
  43. package/dist/import/prune.d.ts +0 -46
  44. package/dist/import/prune.js +0 -61
  45. package/dist/import/prune.js.map +0 -1
  46. package/dist/import/secrets.d.ts +0 -7
  47. package/dist/import/secrets.js +0 -77
  48. package/dist/import/secrets.js.map +0 -1
  49. package/dist/import/upload.d.ts +0 -21
  50. package/dist/import/upload.js +0 -99
  51. package/dist/import/upload.js.map +0 -1
  52. package/dist/install.d.ts +0 -81
  53. package/dist/install.js +0 -168
  54. package/dist/install.js.map +0 -1
  55. package/dist/instructions.d.ts +0 -4
  56. package/dist/instructions.js +0 -67
  57. package/dist/instructions.js.map +0 -1
  58. package/dist/memoryPath.d.ts +0 -1
  59. package/dist/memoryPath.js +0 -13
  60. package/dist/memoryPath.js.map +0 -1
  61. package/dist/memorySync.d.ts +0 -28
  62. package/dist/memorySync.js +0 -56
  63. package/dist/memorySync.js.map +0 -1
  64. package/dist/paths.d.ts +0 -18
  65. package/dist/paths.js +0 -62
  66. package/dist/paths.js.map +0 -1
  67. package/dist/registry/caveats.d.ts +0 -17
  68. package/dist/registry/caveats.js +0 -74
  69. package/dist/registry/caveats.js.map +0 -1
  70. package/dist/registry/clients.d.ts +0 -17
  71. package/dist/registry/clients.js +0 -402
  72. package/dist/registry/clients.js.map +0 -1
  73. package/dist/registry/index.d.ts +0 -6
  74. package/dist/registry/index.js +0 -7
  75. package/dist/registry/index.js.map +0 -1
  76. package/dist/registry/serverInfo.d.ts +0 -25
  77. package/dist/registry/serverInfo.js +0 -33
  78. package/dist/registry/serverInfo.js.map +0 -1
  79. package/dist/registry/servers.d.ts +0 -58
  80. package/dist/registry/servers.js +0 -259
  81. package/dist/registry/servers.js.map +0 -1
  82. package/dist/registry/toolHints.d.ts +0 -29
  83. package/dist/registry/toolHints.js +0 -41
  84. package/dist/registry/toolHints.js.map +0 -1
  85. package/dist/registry/types.d.ts +0 -71
  86. package/dist/registry/types.js +0 -6
  87. package/dist/registry/types.js.map +0 -1
  88. package/dist/skillFilePath.d.ts +0 -1
  89. package/dist/skillFilePath.js +0 -29
  90. package/dist/skillFilePath.js.map +0 -1
  91. package/dist/stubIgnore.d.ts +0 -22
  92. package/dist/stubIgnore.js +0 -29
  93. package/dist/stubIgnore.js.map +0 -1
  94. package/dist/stubs.d.ts +0 -12
  95. package/dist/stubs.js +0 -188
  96. package/dist/stubs.js.map +0 -1
  97. package/dist/tools/connections.d.ts +0 -154
  98. package/dist/tools/connections.js +0 -164
  99. package/dist/tools/connections.js.map +0 -1
  100. package/dist/tools/getAgentDefinition.d.ts +0 -26
  101. package/dist/tools/getAgentDefinition.js +0 -29
  102. package/dist/tools/getAgentDefinition.js.map +0 -1
  103. package/dist/tools/getSkill.d.ts +0 -26
  104. package/dist/tools/getSkill.js +0 -26
  105. package/dist/tools/getSkill.js.map +0 -1
  106. package/dist/tools/getSkillFile.d.ts +0 -27
  107. package/dist/tools/getSkillFile.js +0 -39
  108. package/dist/tools/getSkillFile.js.map +0 -1
  109. package/dist/tools/index.d.ts +0 -263
  110. package/dist/tools/index.js +0 -69
  111. package/dist/tools/index.js.map +0 -1
  112. package/dist/tools/lists.d.ts +0 -38
  113. package/dist/tools/lists.js +0 -39
  114. package/dist/tools/lists.js.map +0 -1
  115. package/dist/tools/memoryGraph.d.ts +0 -69
  116. package/dist/tools/memoryGraph.js +0 -128
  117. package/dist/tools/memoryGraph.js.map +0 -1
  118. package/dist/tools/memoryRead.d.ts +0 -25
  119. package/dist/tools/memoryRead.js +0 -33
  120. package/dist/tools/memoryRead.js.map +0 -1
  121. package/dist/tools/memoryWrite.d.ts +0 -27
  122. package/dist/tools/memoryWrite.js +0 -34
  123. package/dist/tools/memoryWrite.js.map +0 -1
  124. package/dist/tools/write.d.ts +0 -166
  125. package/dist/tools/write.js +0 -193
  126. package/dist/tools/write.js.map +0 -1
@@ -1,402 +0,0 @@
1
- // Every command below is verified, not remembered: see the "Done 2026-09-25"
2
- // note under Task 1 Step 1 of
3
- // docs/superpowers/plans/2026-09-12-onlymcp-v2-07-mcp-clients.md for the
4
- // local `--help` runs (Claude Code, Codex) and the Continue
5
- // source check. Docs for every other client are linked below in `docsUrl`,
6
- // fetched and cross-checked on `verifiedOn`.
7
- //
8
- // Roo Code is excluded on purpose: its repository was archived on
9
- // 2026-05-15, and overview §4.7 forbids claiming unverified or dead
10
- // integrations.
11
- function bash(text) {
12
- return { language: 'bash', text };
13
- }
14
- function json(value, path) {
15
- return { language: 'json', text: JSON.stringify(value, null, 2), path };
16
- }
17
- // -- Claude Code --------------------------------------------------------
18
- // Verified locally: `claude mcp add --help` (Claude Code 2.1.281) has
19
- // `-s, --scope <scope>` (default "local") and `-H, --header <header...>`.
20
- // Docs: https://code.claude.com/docs/en/mcp-quickstart, confirms
21
- // `--transport http`, `--scope user` and
22
- // `--header "Authorization: Bearer <token>"` for servers that take a
23
- // static token instead of OAuth.
24
- const claudeCode = {
25
- id: 'claude-code',
26
- name: 'Claude Code',
27
- category: 'coding',
28
- brand: 'claudecode',
29
- methods: ['remote-header', 'remote-oauth', 'stdio'],
30
- docsUrl: 'https://code.claude.com/docs/en/mcp-quickstart',
31
- verifiedOn: '2026-09-25',
32
- caveats: ['clients.caveat.claudeCodeConnectorSynced'],
33
- install: { configPath: '~/.claude.json', format: 'json', stubDir: null },
34
- remote: (ctx) => [
35
- bash(`claude mcp add --transport http --scope user onlymcp ${ctx.endpoint} --header "Authorization: Bearer ${ctx.token}"`),
36
- ],
37
- };
38
- // -- Claude (claude.ai / Claude Desktop) ---------------------------------
39
- // Docs: https://support.claude.com/en/articles/11175166-get-started-with-custom-connectors-using-remote-mcp
40
- // Custom connectors are added at claude.ai/customize/connectors with a name
41
- // and a URL; the page documents an OAuth Client ID/Secret in "Advanced
42
- // settings" and does not document a static API key or header option, so
43
- // the only connect method is OAuth.
44
- // OAuth redirect (checked 2026-10-18): https://claude.ai/api/mcp/auth_callback per
45
- // https://support.claude.com/en/articles/11503834, which says it may move to claude.com and to allow both.
46
- const claudeApp = {
47
- id: 'claude-app',
48
- name: 'Claude',
49
- category: 'chat',
50
- brand: 'claude',
51
- methods: ['remote-oauth'],
52
- docsUrl: 'https://support.claude.com/en/articles/11175166-get-started-with-custom-connectors-using-remote-mcp',
53
- verifiedOn: '2026-09-25',
54
- caveats: ['clients.caveat.claudeHeaderBeta'],
55
- install: null,
56
- oauthRedirectHosts: ['claude.ai', 'claude.com'],
57
- remote: () => null,
58
- };
59
- // -- ChatGPT --------------------------------------------------------------
60
- // Brand 'openai': OpenAI publishes the blossom only, no mark of its own for ChatGPT or for Codex. Both are OpenAI
61
- // services, so both show the official blossom files (web/public/brand/clients/SOURCES.md has the terms and conditions).
62
- // Docs: https://help.openai.com/en/articles/12584461-developer-mode-and-mcp-apps-in-chatgpt
63
- // Developer mode (where custom MCP connectors are built and tested) is
64
- // available for ChatGPT Business and Enterprise/Edu customers on the web;
65
- // only admins/owners can enable it. Connectors authorize through OAuth.
66
- // OAuth redirect (checked 2026-10-18): https://chatgpt.com/connector/oauth/{callback_id}, and the legacy
67
- // https://chatgpt.com/connector_platform_oauth_redirect, per https://developers.openai.com/plugins/build/auth.
68
- const chatgpt = {
69
- id: 'chatgpt',
70
- name: 'ChatGPT',
71
- category: 'chat',
72
- brand: 'openai',
73
- methods: ['remote-oauth'],
74
- docsUrl: 'https://help.openai.com/en/articles/12584461-developer-mode-and-mcp-apps-in-chatgpt',
75
- verifiedOn: '2026-09-25',
76
- caveats: ['clients.caveat.chatgptDeveloperMode'],
77
- install: null,
78
- oauthRedirectHosts: ['chatgpt.com'],
79
- remote: () => null,
80
- };
81
- // -- Codex ------------------------------------------------------------
82
- // Verified locally: `codex mcp add --help` (codex-cli 0.154.0) has `--url`
83
- // and `--bearer-token-env-var`, no header flag.
84
- // Docs: https://learn.chatgpt.com/docs/extend/mcp?surface=cli (the current
85
- // redirect target of developers.openai.com/codex/mcp) confirms
86
- // `bearer_token_env_var` names an environment variable, read by Codex, not
87
- // a literal token; `http_headers` and `env_http_headers` exist as separate,
88
- // alternative fields for static/derived headers, never combined with
89
- // `--header` (Codex has no such flag).
90
- const codex = {
91
- id: 'codex',
92
- name: 'Codex',
93
- category: 'coding',
94
- brand: 'openai',
95
- methods: ['remote-header', 'remote-oauth', 'stdio'],
96
- docsUrl: 'https://learn.chatgpt.com/docs/extend/mcp?surface=cli',
97
- verifiedOn: '2026-09-25',
98
- // `bearer_token_env_var` stores only the environment variable's NAME in
99
- // config.toml, never the token value: Codex must therefore read the
100
- // variable itself at every startup, so the export belongs in the user's
101
- // shell profile, not just the terminal session that ran `mcp add`.
102
- caveats: ['clients.caveat.codexTokenEnv'],
103
- install: { configPath: '~/.codex/config.toml', format: 'toml', stubDir: '~/.codex/skills' },
104
- remote: (ctx) => [
105
- bash([
106
- `export ONLYMCP_TOKEN=${ctx.token}`,
107
- `codex mcp add onlymcp --url ${ctx.endpoint} --bearer-token-env-var ONLYMCP_TOKEN`,
108
- ].join('\n')),
109
- ],
110
- };
111
- // -- Antigravity -------------------------------------------------------
112
- // Google retired its Gemini command line client for personal accounts on 2026-06-18
113
- // (github.com/google-gemini/gemini-cli/discussions/27274); the successor is
114
- // Antigravity, whose CLI is `agy`. The old id stays as an alias, so old links and
115
- // `install --client gemini-cli` land here.
116
- // Docs: https://antigravity.google/docs/mcp (checked 2026-10-17) - global
117
- // `~/.gemini/config/mcp_config.json`, workspace `.agents/mcp_config.json`, top-level
118
- // `mcpServers`. A remote server takes `serverUrl` (the keys `url` and `httpUrl` are
119
- // NOT supported) and optional `headers`; a remote server with OAuth and dynamic
120
- // client registration needs only `serverUrl`. Entries the retired client
121
- // left in `~/.gemini/settings.json` are left alone.
122
- // Brand 'antigravity': Google's own icon files, shown under the owner's decision D9
123
- // (web/public/brand/clients/SOURCES.md has the source, the wording and the residual risk).
124
- // OAuth redirect: the docs name none. Its registrations on only-mcp.com (seen 2026-10-18) all use
125
- // https://antigravity.google/oauth-callback, under the names "antigravity-client" and "Google Antigravity".
126
- const antigravity = {
127
- id: 'antigravity',
128
- aliases: ['gemini-cli'],
129
- name: 'Antigravity',
130
- category: 'coding',
131
- brand: 'antigravity',
132
- methods: ['remote-oauth', 'remote-header', 'stdio'],
133
- docsUrl: 'https://antigravity.google/docs/mcp',
134
- verifiedOn: '2026-10-17',
135
- caveats: [],
136
- install: { configPath: '~/.gemini/config/mcp_config.json', format: 'json', stubDir: null },
137
- oauthRedirectHosts: ['antigravity.google'],
138
- remote: (ctx) => [
139
- json({ mcpServers: { onlymcp: { serverUrl: ctx.endpoint, headers: { Authorization: `Bearer ${ctx.token}` } } } }, '~/.gemini/config/mcp_config.json'),
140
- ],
141
- };
142
- // -- Gemini app (Gemini Spark) --------------------------------------------
143
- // Docs: https://support.google.com/gemini/answer/17209137
144
- // The page is live although a HEAD request says 404: support.google.com
145
- // answers HEAD with 404 for every article and GET with 200 (checked
146
- // 2026-10-05, also on answer/13695044), so a link check has to GET it.
147
- // Custom connected apps take an MCP server URL and require a personal
148
- // Google account that is 18+ and in the US, with Keep Activity on. On
149
- // 2026-09-25 the page limited them to Gemini Spark tasks; since 2026-10-05
150
- // it reads "workflows with Gemini Spark or take quick actions in chat".
151
- // The caveat says that since 2026-10-10 (page read with GET that day).
152
- const geminiApp = {
153
- id: 'gemini-app',
154
- name: 'Gemini',
155
- category: 'chat',
156
- brand: 'googlegemini',
157
- methods: ['remote-oauth'],
158
- docsUrl: 'https://support.google.com/gemini/answer/17209137',
159
- verifiedOn: '2026-10-10',
160
- caveats: ['clients.caveat.geminiAppSpark'],
161
- install: null,
162
- remote: () => null,
163
- };
164
- // -- Grok -----------------------------------------------------------------
165
- // Docs: https://docs.x.ai/grok/connectors (checked 2026-10-17) - custom remote MCP connectors live at
166
- // grok.com/connectors (New Connector, Custom, the server URL, then the server's own OAuth sign-in), on a paid plan;
167
- // Business and Enterprise need an admin to add the connector in console.x.ai first. No command exists, so the steps
168
- // are in the caveats.
169
- // Brand 'grok': xAI's official logomark files (web/public/brand/clients/SOURCES.md has the source and the terms).
170
- // OAuth redirect: the docs name none. Its registrations on only-mcp.com (seen 2026-10-18) use
171
- // https://grok.com/connectors-oauth-exchange-code/.
172
- const grok = {
173
- id: 'grok',
174
- name: 'Grok',
175
- category: 'chat',
176
- brand: 'grok',
177
- methods: ['remote-oauth'],
178
- docsUrl: 'https://docs.x.ai/grok/connectors',
179
- verifiedOn: '2026-10-17',
180
- caveats: ['clients.caveat.grokConnectors', 'clients.caveat.grokBusinessAdmin'],
181
- install: null,
182
- oauthRedirectHosts: ['grok.com'],
183
- remote: () => null,
184
- };
185
- // -- GitHub Copilot in VS Code --------------------------------------------
186
- // Docs: https://code.visualstudio.com/docs/agents/reference/mcp-configuration
187
- // `.vscode/mcp.json` (workspace) with a top-level `servers` object, entries
188
- // take `type: "http"`, `url`, `headers`. Copilot policy per
189
- // https://docs.github.com/en/copilot/how-tos/provide-context/use-mcp-in-your-ide/set-up-the-github-mcp-server:
190
- // Business/Enterprise tenants must enable "MCP servers in Copilot" first.
191
- const copilotVscode = {
192
- id: 'copilot-vscode',
193
- name: 'GitHub Copilot (VS Code)',
194
- category: 'ide',
195
- brand: 'githubcopilot',
196
- methods: ['remote-header', 'remote-oauth', 'stdio'],
197
- docsUrl: 'https://code.visualstudio.com/docs/agents/reference/mcp-configuration',
198
- verifiedOn: '2026-09-25',
199
- caveats: ['clients.caveat.copilotPolicy'],
200
- install: null,
201
- remote: (ctx) => [
202
- json({ servers: { onlymcp: { type: 'http', url: ctx.endpoint, headers: { Authorization: `Bearer ${ctx.token}` } } } }, '.vscode/mcp.json'),
203
- ],
204
- };
205
- // -- Cursor ---------------------------------------------------------------
206
- // Docs: https://cursor.com/docs/mcp - `~/.cursor/mcp.json` (global) or
207
- // `.cursor/mcp.json` (project), top-level `mcpServers`, entries take `url`
208
- // and `headers`.
209
- const cursor = {
210
- id: 'cursor',
211
- name: 'Cursor',
212
- category: 'ide',
213
- brand: 'cursor',
214
- methods: ['remote-header', 'remote-oauth', 'stdio'],
215
- docsUrl: 'https://cursor.com/docs/mcp',
216
- verifiedOn: '2026-09-25',
217
- caveats: [],
218
- install: null,
219
- remote: (ctx) => [
220
- json({ mcpServers: { onlymcp: { url: ctx.endpoint, headers: { Authorization: `Bearer ${ctx.token}` } } } }, '~/.cursor/mcp.json'),
221
- ],
222
- };
223
- // -- Windsurf ---------------------------------------------------------
224
- // Docs: https://docs.windsurf.com/windsurf/cascade/mcp -
225
- // `~/.codeium/windsurf/mcp_config.json`, top-level `mcpServers`, entries
226
- // take `serverUrl` and `headers`. The 2026 Cognition rebrand to "Devin
227
- // Desktop" folds Cascade into "Devin Local", but the config path and MCP
228
- // JSON keys are unchanged (corroborated by a second, independent search,
229
- // since the docs.windsurf.com redirect briefly showed a Devin-only path).
230
- // Admin allowlist: once a team allowlists even one server, every
231
- // non-allowlisted server is blocked for that team.
232
- const windsurf = {
233
- id: 'windsurf',
234
- name: 'Windsurf',
235
- category: 'ide',
236
- brand: 'windsurf',
237
- methods: ['remote-header', 'stdio'],
238
- docsUrl: 'https://docs.windsurf.com/windsurf/cascade/mcp',
239
- verifiedOn: '2026-09-25',
240
- caveats: ['clients.caveat.windsurfAllowlist'],
241
- install: null,
242
- remote: (ctx) => [
243
- json({ mcpServers: { onlymcp: { serverUrl: ctx.endpoint, headers: { Authorization: `Bearer ${ctx.token}` } } } }, '~/.codeium/windsurf/mcp_config.json'),
244
- ],
245
- };
246
- // -- Cline ------------------------------------------------------------
247
- // Docs: https://docs.cline.bot/mcp/mcp-overview - the transport type must
248
- // be the literal string "streamableHttp" (camelCase, no hyphen); "
249
- // streamable-http" or an omitted type falls back to legacy SSE and a 405.
250
- const cline = {
251
- id: 'cline',
252
- name: 'Cline',
253
- category: 'ide',
254
- brand: 'cline',
255
- methods: ['remote-header', 'stdio'],
256
- docsUrl: 'https://docs.cline.bot/mcp/mcp-overview',
257
- verifiedOn: '2026-09-25',
258
- caveats: [],
259
- install: null,
260
- remote: (ctx) => [
261
- json({
262
- mcpServers: {
263
- onlymcp: { type: 'streamableHttp', url: ctx.endpoint, headers: { Authorization: `Bearer ${ctx.token}` } },
264
- },
265
- }, '~/.cline/mcp.json'),
266
- ],
267
- };
268
- // -- Zed --------------------------------------------------------------
269
- // Docs: https://zed.dev/docs/assistant/model-context-protocol - a remote
270
- // server is keyed under `context_servers` with `url` and `headers`
271
- // directly (no local proxy needed); an entry without an `Authorization`
272
- // header triggers Zed's own OAuth prompt.
273
- const zed = {
274
- id: 'zed',
275
- name: 'Zed',
276
- category: 'ide',
277
- brand: 'zedindustries',
278
- methods: ['remote-header', 'remote-oauth', 'stdio'],
279
- docsUrl: 'https://zed.dev/docs/assistant/model-context-protocol',
280
- verifiedOn: '2026-09-25',
281
- caveats: [],
282
- install: null,
283
- remote: (ctx) => [
284
- json({ context_servers: { onlymcp: { url: ctx.endpoint, headers: { Authorization: `Bearer ${ctx.token}` } } } }, 'settings.json'),
285
- ],
286
- };
287
- // -- Continue -----------------------------------------------------------
288
- // No local binary to run `--help` against. Docs:
289
- // https://docs.continue.dev/customize/deep-dives/mcp - `config.yaml`,
290
- // `mcpServers` list entries take `type: streamable-http`, `url`, and
291
- // `requestOptions.headers`; confirmed a third way in
292
- // `core/context/mcp/MCPConnection.ts` on `main`, which builds the
293
- // streamable-http transport's headers from `requestOptions?.headers`.
294
- const continueClient = {
295
- id: 'continue',
296
- name: 'Continue',
297
- category: 'ide',
298
- brand: null,
299
- methods: ['remote-header', 'stdio'],
300
- docsUrl: 'https://docs.continue.dev/customize/deep-dives/mcp',
301
- verifiedOn: '2026-09-25',
302
- caveats: [],
303
- install: null,
304
- remote: (ctx) => [
305
- {
306
- language: 'yaml',
307
- path: 'config.yaml',
308
- text: [
309
- 'mcpServers:',
310
- ' - name: onlymcp',
311
- ' type: streamable-http',
312
- ` url: ${ctx.endpoint}`,
313
- ' requestOptions:',
314
- ' headers:',
315
- ` Authorization: Bearer ${ctx.token}`,
316
- ].join('\n'),
317
- },
318
- ],
319
- };
320
- // -- opencode -----------------------------------------------------------
321
- // Docs: https://opencode.ai/docs/mcp-servers/ - `opencode.json`, servers
322
- // live under `mcp`, a remote entry takes `type: "remote"`, `url`, and
323
- // `headers`; OAuth is the default for a remote server unless `oauth:
324
- // false` is set for a header/API-key-only server. OnlyMCP uses a bearer
325
- // header here, so no `oauth` field is emitted.
326
- const opencode = {
327
- id: 'opencode',
328
- name: 'opencode',
329
- category: 'coding',
330
- brand: 'opencode',
331
- methods: ['remote-header', 'remote-oauth', 'stdio'],
332
- docsUrl: 'https://opencode.ai/docs/mcp-servers/',
333
- verifiedOn: '2026-09-25',
334
- caveats: [],
335
- install: null,
336
- remote: (ctx) => [
337
- json({ mcp: { onlymcp: { type: 'remote', url: ctx.endpoint, headers: { Authorization: `Bearer ${ctx.token}` } } } }, 'opencode.json'),
338
- ],
339
- };
340
- // -- GitLab Duo -------------------------------------------------------------
341
- // Docs: https://docs.gitlab.com/user/gitlab_duo/model_context_protocol/mcp_clients (checked 2026-10-18) - the user
342
- // file is `~/.gitlab/duo/mcp.json` (JetBrains IDEs and the GitLab Duo CLI; in VS Code the command "GitLab MCP: Open
343
- // User Settings (JSON)" opens it), a workspace file is `.gitlab/duo/mcp.json`; configuration files need the GitLab for
344
- // VS Code extension 6.35.6 or later. `mcpServers` entries take `type: "http"` and `url`. The docs document no
345
- // `headers` key and show a remote server's own sign-in starting by itself, so the only method is OAuth and the snippet
346
- // carries no token. `approvedTools` is left out: the user approves tools in the IDE.
347
- const gitlabDuo = {
348
- id: 'gitlab-duo',
349
- name: 'GitLab Duo',
350
- category: 'ide',
351
- brand: 'gitlab',
352
- methods: ['remote-oauth'],
353
- docsUrl: 'https://docs.gitlab.com/user/gitlab_duo/model_context_protocol/mcp_clients',
354
- verifiedOn: '2026-10-18',
355
- caveats: ['clients.caveat.gitlabDuoUserFile'],
356
- install: null,
357
- remote: (ctx) => [
358
- json({ mcpServers: { onlymcp: { type: 'http', url: ctx.endpoint } } }, '~/.gitlab/duo/mcp.json'),
359
- ],
360
- };
361
- // The AI apps come first (chat, then coding agents), the editors last; inside a group the order is the order below.
362
- export const CLIENTS = [
363
- claudeApp,
364
- chatgpt,
365
- geminiApp,
366
- grok,
367
- claudeCode,
368
- codex,
369
- antigravity,
370
- opencode,
371
- copilotVscode,
372
- cursor,
373
- windsurf,
374
- cline,
375
- zed,
376
- continueClient,
377
- gitlabDuo,
378
- ];
379
- export function clientById(id) {
380
- return CLIENTS.find((c) => c.id === id);
381
- }
382
- /**
383
- * A client by its id or by one of its retired aliases (`gemini-cli` is Antigravity), or undefined. For input that
384
- * comes from outside, such as an address, where an old spelling must keep working. Code that holds a `ClientId`
385
- * uses `clientById`.
386
- */
387
- export function findClient(idOrAlias) {
388
- return CLIENTS.find((c) => c.id === idOrAlias || c.aliases?.includes(idOrAlias));
389
- }
390
- export function remoteSnippets(id, ctx) {
391
- return clientById(id)?.remote(ctx) ?? null;
392
- }
393
- /**
394
- * The local-install command for a client `npx onlymcp install` can set up,
395
- * or null for every other one. Spec 07 §3.4: always with `npx`, always with
396
- * `--client`, because the CLI without `--client` only lists the targets and
397
- * exits 2.
398
- */
399
- export function installCommand(id) {
400
- return clientById(id)?.install ? `npx onlymcp install --client ${id}` : null;
401
- }
402
- //# sourceMappingURL=clients.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clients.js","sourceRoot":"","sources":["../../src/registry/clients.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- export { CAVEATS, caveatText, type CaveatLanguage } from './caveats.js';
2
- export { CLIENTS, clientById, findClient, installCommand, remoteSnippets } from './clients.js';
3
- export { SERVERS } from './servers.js';
4
- export { serverInfo } from './serverInfo.js';
5
- export { TOOL_HINTS, type ToolHint } from './toolHints.js';
6
- export type { ClientCategory, ClientId, ClientInstall, ClientRecord, ConnectMethod, RemoteContext, ServerRecord, Snippet, SnippetLanguage, } from './types.js';
@@ -1,7 +0,0 @@
1
- // Generated by scripts/sync-registry.mjs. Do not edit.
2
- export { CAVEATS, caveatText } from './caveats.js';
3
- export { CLIENTS, clientById, findClient, installCommand, remoteSnippets } from './clients.js';
4
- export { SERVERS } from './servers.js';
5
- export { serverInfo } from './serverInfo.js';
6
- export { TOOL_HINTS } from './toolHints.js';
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAuB,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC/F,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAiB,MAAM,gBAAgB,CAAC"}
@@ -1,25 +0,0 @@
1
- /**
2
- * What an MCP client shows for OnlyMCP in its connector list (spec 2025-11-25: `title`, `icons`, `websiteUrl`).
3
- * One definition for the hosted server (api) and the stdio server (cli); the CLI gets it through the generated copy.
4
- * Icon URLs are absolute because a stdio server has no origin of its own. The PNG is a full-bleed square (no
5
- * transparent corners that a white list row turns into a tile on a white rectangle); the SVG is for clients that
6
- * prefer vectors.
7
- *
8
- * The icons carry no `sizes`: it is optional, and absent means "any size". The spec and MCP TS SDK 1.19.1+ type it as
9
- * an array, but 1.18.0 to 1.18.2 type it as a string and throw in `connect()` on an array, which would lock those
10
- * clients out of OnlyMCP altogether.
11
- *
12
- * `origin` must be http(s) and is reduced to scheme, host and port: a path, a query or credentials in it (the CLI
13
- * passes ONLYMCP_API_URL on as the user wrote it, after `apiBaseUrl` accepted it) must not end up in `websiteUrl` or
14
- * the icon URLs.
15
- */
16
- export declare function serverInfo(origin: string, version: string): {
17
- name: "onlymcp";
18
- title: "OnlyMCP";
19
- version: string;
20
- websiteUrl: string;
21
- icons: {
22
- src: string;
23
- mimeType: string;
24
- }[];
25
- };
@@ -1,33 +0,0 @@
1
- // Generated by scripts/sync-registry.mjs. Do not edit.
2
- /**
3
- * What an MCP client shows for OnlyMCP in its connector list (spec 2025-11-25: `title`, `icons`, `websiteUrl`).
4
- * One definition for the hosted server (api) and the stdio server (cli); the CLI gets it through the generated copy.
5
- * Icon URLs are absolute because a stdio server has no origin of its own. The PNG is a full-bleed square (no
6
- * transparent corners that a white list row turns into a tile on a white rectangle); the SVG is for clients that
7
- * prefer vectors.
8
- *
9
- * The icons carry no `sizes`: it is optional, and absent means "any size". The spec and MCP TS SDK 1.19.1+ type it as
10
- * an array, but 1.18.0 to 1.18.2 type it as a string and throw in `connect()` on an array, which would lock those
11
- * clients out of OnlyMCP altogether.
12
- *
13
- * `origin` must be http(s) and is reduced to scheme, host and port: a path, a query or credentials in it (the CLI
14
- * passes ONLYMCP_API_URL on as the user wrote it, after `apiBaseUrl` accepted it) must not end up in `websiteUrl` or
15
- * the icon URLs.
16
- */
17
- export function serverInfo(origin, version) {
18
- const url = new URL(origin);
19
- if (url.protocol !== 'http:' && url.protocol !== 'https:')
20
- throw new TypeError(`serverInfo: "${origin}" is not an http(s) origin`);
21
- const base = url.origin;
22
- return {
23
- name: 'onlymcp',
24
- title: 'OnlyMCP',
25
- version,
26
- websiteUrl: base,
27
- icons: [
28
- { src: `${base}/brand/connector-512.png`, mimeType: 'image/png' },
29
- { src: `${base}/brand/favicon.svg`, mimeType: 'image/svg+xml' },
30
- ],
31
- };
32
- }
33
- //# sourceMappingURL=serverInfo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serverInfo.js","sourceRoot":"","sources":["../../src/registry/serverInfo.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,UAAU,CAAC,MAAc,EAAE,OAAe;IACxD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ;QAAE,MAAM,IAAI,SAAS,CAAC,gBAAgB,MAAM,4BAA4B,CAAC,CAAC;IACnI,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC;IACxB,OAAO;QACL,IAAI,EAAE,SAAkB;QACxB,KAAK,EAAE,SAAkB;QACzB,OAAO;QACP,UAAU,EAAE,IAAI;QAChB,KAAK,EAAE;YACL,EAAE,GAAG,EAAE,GAAG,IAAI,0BAA0B,EAAE,QAAQ,EAAE,WAAW,EAAE;YACjE,EAAE,GAAG,EAAE,GAAG,IAAI,oBAAoB,EAAE,QAAQ,EAAE,eAAe,EAAE;SAChE;KACF,CAAC;AACJ,CAAC"}
@@ -1,58 +0,0 @@
1
- import type { ServerRecord } from './types.js';
2
- /**
3
- * The picture the product is named after: many MCP servers behind one
4
- * connection. This list backs the rotating tiles in
5
- * `packages/web/src/components/McpHub.tsx` and the docs page of connectable
6
- * servers. Since 2026-10-18 it also seeds the server catalogue table
7
- * (`packages/api/src/catalogue/store.ts`), which an admin edits and which
8
- * `/api/mcp-catalog` and the "add a server" step of Connect read; only the
9
- * addresses of this list are trusted for tool hints (api mcp/tool-hints.ts).
10
- *
11
- * Every server in the pool was verified, not remembered. Originally
12
- * (2026-09-05): each URL was pushed through this product's own
13
- * POST /api/mcp-connections/test, and only the ones that completed an MCP
14
- * handshake or answered UNAUTHORIZED (which means a real MCP server is
15
- * there and wants credentials) were listed. Dropped on that evidence:
16
- * GitLab (mcp.gitlab.com does not resolve), Figma, Google Drive, Slack.
17
- * Dropped for want of a brand icon: Canva, monday.com.
18
- * GitLab came back on 2026-10-18 at gitlab.com/api/v4/mcp: an unauthenticated
19
- * MCP initialize POST answered 401 with a `WWW-Authenticate: Bearer ...
20
- * resource_metadata=...` header, and the OAuth metadata names a registration
21
- * endpoint. Gamma joined the same day on the same evidence, with `brand: null`
22
- * (simple-icons has no Gamma mark; the catalogue draws a letter tile).
23
- *
24
- * Re-verified 2026-09-25 for this registry, this time against each
25
- * vendor's own documentation (`docsUrl` below) AND a fresh local probe: a
26
- * scratch script POSTed an MCP `initialize` request, unauthenticated, to
27
- * every URL below. All 17 answered `401` with a `WWW-Authenticate: Bearer`
28
- * header naming an OAuth protected-resource metadata document (for
29
- * example `resource_metadata="https://mcp.notion.com/.well-known/oauth-
30
- * protected-resource/mcp"`), which is exactly what a live MCP server
31
- * behind OAuth returns - confirming each URL is real and reachable, not
32
- * only documented. The finer distinction of `auth` below (whether a
33
- * static bearer token is ALSO accepted, alongside OAuth) came from each
34
- * vendor's docs, because a 401 alone cannot tell OAuth-only apart from
35
- * OAuth-or-bearer.
36
- *
37
- * One correction from the 2026-09-05 note: this pass found Linear's docs
38
- * now document `Authorization: Bearer <token>` as an accepted alternative
39
- * to the interactive OAuth flow. The original spec text (problem #6)
40
- * called Linear OAuth-only as of that date; either that capability is new,
41
- * or it was missed in the first pass. `auth` below reflects the current,
42
- * re-verified state, and this comment records the discrepancy rather than
43
- * silently overwriting it.
44
- *
45
- * The open MCP registry is not a usable source for this list, by the way -
46
- * anyone may publish there, and a search for "github" returns community
47
- * wrappers hosted by third parties, not GitHub's own server.
48
- *
49
- * `filesystem` and `postgres`, the textbook examples, are absent on purpose:
50
- * they are local stdio processes, and OnlyMCP deliberately does not run those
51
- * (a process we spawn on a user's behalf is code execution on our side, see
52
- * docs/SECURITY.md).
53
- *
54
- * The prefixes are real. `github__create_issue` is exactly what a client
55
- * sees, because the gateway namespaces every proxied tool with the
56
- * connection's slug (packages/api/src/mcp/gateway.ts).
57
- */
58
- export declare const SERVERS: readonly ServerRecord[];