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
|
@@ -0,0 +1,327 @@
|
|
|
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, Gemini CLI) 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: [],
|
|
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
|
+
const claudeApp = {
|
|
45
|
+
id: 'claude-app',
|
|
46
|
+
name: 'Claude',
|
|
47
|
+
category: 'chat',
|
|
48
|
+
brand: 'claude',
|
|
49
|
+
methods: ['remote-oauth'],
|
|
50
|
+
docsUrl: 'https://support.claude.com/en/articles/11175166-get-started-with-custom-connectors-using-remote-mcp',
|
|
51
|
+
verifiedOn: '2026-09-25',
|
|
52
|
+
caveats: ['clients.caveat.claudeHeaderBeta'],
|
|
53
|
+
install: null,
|
|
54
|
+
remote: () => null,
|
|
55
|
+
};
|
|
56
|
+
// -- ChatGPT --------------------------------------------------------------
|
|
57
|
+
// Docs: https://help.openai.com/en/articles/12584461-developer-mode-and-mcp-apps-in-chatgpt
|
|
58
|
+
// Developer mode (where custom MCP connectors are built and tested) is
|
|
59
|
+
// available for ChatGPT Business and Enterprise/Edu customers on the web;
|
|
60
|
+
// only admins/owners can enable it. Connectors authorize through OAuth.
|
|
61
|
+
const chatgpt = {
|
|
62
|
+
id: 'chatgpt',
|
|
63
|
+
name: 'ChatGPT',
|
|
64
|
+
category: 'chat',
|
|
65
|
+
brand: null,
|
|
66
|
+
methods: ['remote-oauth'],
|
|
67
|
+
docsUrl: 'https://help.openai.com/en/articles/12584461-developer-mode-and-mcp-apps-in-chatgpt',
|
|
68
|
+
verifiedOn: '2026-09-25',
|
|
69
|
+
caveats: ['clients.caveat.chatgptDeveloperMode'],
|
|
70
|
+
install: null,
|
|
71
|
+
remote: () => null,
|
|
72
|
+
};
|
|
73
|
+
// -- Codex ------------------------------------------------------------
|
|
74
|
+
// Verified locally: `codex mcp add --help` (codex-cli 0.154.0) has `--url`
|
|
75
|
+
// and `--bearer-token-env-var`, no header flag.
|
|
76
|
+
// Docs: https://learn.chatgpt.com/docs/extend/mcp?surface=cli (the current
|
|
77
|
+
// redirect target of developers.openai.com/codex/mcp) confirms
|
|
78
|
+
// `bearer_token_env_var` names an environment variable, read by Codex, not
|
|
79
|
+
// a literal token; `http_headers` and `env_http_headers` exist as separate,
|
|
80
|
+
// alternative fields for static/derived headers, never combined with
|
|
81
|
+
// `--header` (Codex has no such flag).
|
|
82
|
+
const codex = {
|
|
83
|
+
id: 'codex',
|
|
84
|
+
name: 'Codex',
|
|
85
|
+
category: 'coding',
|
|
86
|
+
brand: null,
|
|
87
|
+
methods: ['remote-header', 'remote-oauth', 'stdio'],
|
|
88
|
+
docsUrl: 'https://learn.chatgpt.com/docs/extend/mcp?surface=cli',
|
|
89
|
+
verifiedOn: '2026-09-25',
|
|
90
|
+
// `bearer_token_env_var` stores only the environment variable's NAME in
|
|
91
|
+
// config.toml, never the token value: Codex must therefore read the
|
|
92
|
+
// variable itself at every startup, so the export belongs in the user's
|
|
93
|
+
// shell profile, not just the terminal session that ran `mcp add`.
|
|
94
|
+
caveats: ['clients.caveat.codexTokenEnv'],
|
|
95
|
+
install: { configPath: '~/.codex/config.toml', format: 'toml', stubDir: '~/.codex/skills' },
|
|
96
|
+
remote: (ctx) => [
|
|
97
|
+
bash([
|
|
98
|
+
`export ONLYMCP_TOKEN=${ctx.token}`,
|
|
99
|
+
`codex mcp add onlymcp --url ${ctx.endpoint} --bearer-token-env-var ONLYMCP_TOKEN`,
|
|
100
|
+
].join('\n')),
|
|
101
|
+
],
|
|
102
|
+
};
|
|
103
|
+
// -- Gemini CLI -------------------------------------------------------
|
|
104
|
+
// Verified locally: `npx @google/gemini-cli@0.61.0 mcp add --help` has
|
|
105
|
+
// `-s, --scope (user or project) [default: "project"]`, `-t, --transport`,
|
|
106
|
+
// `-H, --header`. Deviation from spec §3.4: without `--scope user` the
|
|
107
|
+
// server lands in the settings of whatever directory the command runs in,
|
|
108
|
+
// not in `~/.gemini/settings.json`, so `--scope user` is required here.
|
|
109
|
+
// Docs: https://github.com/google-gemini/gemini-cli/blob/main/docs/tools/mcp-server.md
|
|
110
|
+
const geminiCli = {
|
|
111
|
+
id: 'gemini-cli',
|
|
112
|
+
name: 'Gemini CLI',
|
|
113
|
+
category: 'coding',
|
|
114
|
+
brand: 'googlegemini',
|
|
115
|
+
methods: ['remote-header', 'remote-oauth', 'stdio'],
|
|
116
|
+
docsUrl: 'https://github.com/google-gemini/gemini-cli/blob/main/docs/tools/mcp-server.md',
|
|
117
|
+
verifiedOn: '2026-09-25',
|
|
118
|
+
caveats: [],
|
|
119
|
+
install: { configPath: '~/.gemini/settings.json', format: 'json', stubDir: null },
|
|
120
|
+
remote: (ctx) => [
|
|
121
|
+
bash(`gemini mcp add --transport http --scope user onlymcp ${ctx.endpoint} --header "Authorization: Bearer ${ctx.token}"`),
|
|
122
|
+
],
|
|
123
|
+
};
|
|
124
|
+
// -- Gemini app (Gemini Spark) --------------------------------------------
|
|
125
|
+
// Docs: https://support.google.com/gemini/answer/17209137
|
|
126
|
+
// Custom connected apps take an MCP server URL, are limited to Gemini
|
|
127
|
+
// Spark tasks, and require a personal Google account that is 18+ and in
|
|
128
|
+
// the US - so both "limited to Spark" and "not available in every
|
|
129
|
+
// country" in the caveat are documented, not assumed.
|
|
130
|
+
const geminiApp = {
|
|
131
|
+
id: 'gemini-app',
|
|
132
|
+
name: 'Gemini',
|
|
133
|
+
category: 'chat',
|
|
134
|
+
brand: 'googlegemini',
|
|
135
|
+
methods: ['remote-oauth'],
|
|
136
|
+
docsUrl: 'https://support.google.com/gemini/answer/17209137',
|
|
137
|
+
verifiedOn: '2026-09-25',
|
|
138
|
+
caveats: ['clients.caveat.geminiAppSpark'],
|
|
139
|
+
install: null,
|
|
140
|
+
remote: () => null,
|
|
141
|
+
};
|
|
142
|
+
// -- GitHub Copilot in VS Code --------------------------------------------
|
|
143
|
+
// Docs: https://code.visualstudio.com/docs/agents/reference/mcp-configuration
|
|
144
|
+
// `.vscode/mcp.json` (workspace) with a top-level `servers` object, entries
|
|
145
|
+
// take `type: "http"`, `url`, `headers`. Copilot policy per
|
|
146
|
+
// https://docs.github.com/en/copilot/how-tos/provide-context/use-mcp-in-your-ide/set-up-the-github-mcp-server:
|
|
147
|
+
// Business/Enterprise tenants must enable "MCP servers in Copilot" first.
|
|
148
|
+
const copilotVscode = {
|
|
149
|
+
id: 'copilot-vscode',
|
|
150
|
+
name: 'GitHub Copilot (VS Code)',
|
|
151
|
+
category: 'ide',
|
|
152
|
+
brand: 'githubcopilot',
|
|
153
|
+
methods: ['remote-header', 'remote-oauth', 'stdio'],
|
|
154
|
+
docsUrl: 'https://code.visualstudio.com/docs/agents/reference/mcp-configuration',
|
|
155
|
+
verifiedOn: '2026-09-25',
|
|
156
|
+
caveats: ['clients.caveat.copilotPolicy'],
|
|
157
|
+
install: null,
|
|
158
|
+
remote: (ctx) => [
|
|
159
|
+
json({ servers: { onlymcp: { type: 'http', url: ctx.endpoint, headers: { Authorization: `Bearer ${ctx.token}` } } } }, '.vscode/mcp.json'),
|
|
160
|
+
],
|
|
161
|
+
};
|
|
162
|
+
// -- Cursor ---------------------------------------------------------------
|
|
163
|
+
// Docs: https://cursor.com/docs/mcp - `~/.cursor/mcp.json` (global) or
|
|
164
|
+
// `.cursor/mcp.json` (project), top-level `mcpServers`, entries take `url`
|
|
165
|
+
// and `headers`.
|
|
166
|
+
const cursor = {
|
|
167
|
+
id: 'cursor',
|
|
168
|
+
name: 'Cursor',
|
|
169
|
+
category: 'ide',
|
|
170
|
+
brand: 'cursor',
|
|
171
|
+
methods: ['remote-header', 'remote-oauth', 'stdio'],
|
|
172
|
+
docsUrl: 'https://cursor.com/docs/mcp',
|
|
173
|
+
verifiedOn: '2026-09-25',
|
|
174
|
+
caveats: [],
|
|
175
|
+
install: null,
|
|
176
|
+
remote: (ctx) => [
|
|
177
|
+
json({ mcpServers: { onlymcp: { url: ctx.endpoint, headers: { Authorization: `Bearer ${ctx.token}` } } } }, '~/.cursor/mcp.json'),
|
|
178
|
+
],
|
|
179
|
+
};
|
|
180
|
+
// -- Windsurf ---------------------------------------------------------
|
|
181
|
+
// Docs: https://docs.windsurf.com/windsurf/cascade/mcp -
|
|
182
|
+
// `~/.codeium/windsurf/mcp_config.json`, top-level `mcpServers`, entries
|
|
183
|
+
// take `serverUrl` and `headers`. The 2026 Cognition rebrand to "Devin
|
|
184
|
+
// Desktop" folds Cascade into "Devin Local", but the config path and MCP
|
|
185
|
+
// JSON keys are unchanged (corroborated by a second, independent search,
|
|
186
|
+
// since the docs.windsurf.com redirect briefly showed a Devin-only path).
|
|
187
|
+
// Admin allowlist: once a team allowlists even one server, every
|
|
188
|
+
// non-allowlisted server is blocked for that team.
|
|
189
|
+
const windsurf = {
|
|
190
|
+
id: 'windsurf',
|
|
191
|
+
name: 'Windsurf',
|
|
192
|
+
category: 'ide',
|
|
193
|
+
brand: 'windsurf',
|
|
194
|
+
methods: ['remote-header', 'stdio'],
|
|
195
|
+
docsUrl: 'https://docs.windsurf.com/windsurf/cascade/mcp',
|
|
196
|
+
verifiedOn: '2026-09-25',
|
|
197
|
+
caveats: ['clients.caveat.windsurfAllowlist'],
|
|
198
|
+
install: null,
|
|
199
|
+
remote: (ctx) => [
|
|
200
|
+
json({ mcpServers: { onlymcp: { serverUrl: ctx.endpoint, headers: { Authorization: `Bearer ${ctx.token}` } } } }, '~/.codeium/windsurf/mcp_config.json'),
|
|
201
|
+
],
|
|
202
|
+
};
|
|
203
|
+
// -- Cline ------------------------------------------------------------
|
|
204
|
+
// Docs: https://docs.cline.bot/mcp/mcp-overview - the transport type must
|
|
205
|
+
// be the literal string "streamableHttp" (camelCase, no hyphen); "
|
|
206
|
+
// streamable-http" or an omitted type falls back to legacy SSE and a 405.
|
|
207
|
+
const cline = {
|
|
208
|
+
id: 'cline',
|
|
209
|
+
name: 'Cline',
|
|
210
|
+
category: 'ide',
|
|
211
|
+
brand: 'cline',
|
|
212
|
+
methods: ['remote-header', 'stdio'],
|
|
213
|
+
docsUrl: 'https://docs.cline.bot/mcp/mcp-overview',
|
|
214
|
+
verifiedOn: '2026-09-25',
|
|
215
|
+
caveats: [],
|
|
216
|
+
install: null,
|
|
217
|
+
remote: (ctx) => [
|
|
218
|
+
json({
|
|
219
|
+
mcpServers: {
|
|
220
|
+
onlymcp: { type: 'streamableHttp', url: ctx.endpoint, headers: { Authorization: `Bearer ${ctx.token}` } },
|
|
221
|
+
},
|
|
222
|
+
}, '~/.cline/mcp.json'),
|
|
223
|
+
],
|
|
224
|
+
};
|
|
225
|
+
// -- Zed --------------------------------------------------------------
|
|
226
|
+
// Docs: https://zed.dev/docs/assistant/model-context-protocol - a remote
|
|
227
|
+
// server is keyed under `context_servers` with `url` and `headers`
|
|
228
|
+
// directly (no local proxy needed); an entry without an `Authorization`
|
|
229
|
+
// header triggers Zed's own OAuth prompt.
|
|
230
|
+
const zed = {
|
|
231
|
+
id: 'zed',
|
|
232
|
+
name: 'Zed',
|
|
233
|
+
category: 'ide',
|
|
234
|
+
brand: 'zedindustries',
|
|
235
|
+
methods: ['remote-header', 'remote-oauth', 'stdio'],
|
|
236
|
+
docsUrl: 'https://zed.dev/docs/assistant/model-context-protocol',
|
|
237
|
+
verifiedOn: '2026-09-25',
|
|
238
|
+
caveats: [],
|
|
239
|
+
install: null,
|
|
240
|
+
remote: (ctx) => [
|
|
241
|
+
json({ context_servers: { onlymcp: { url: ctx.endpoint, headers: { Authorization: `Bearer ${ctx.token}` } } } }, 'settings.json'),
|
|
242
|
+
],
|
|
243
|
+
};
|
|
244
|
+
// -- Continue -----------------------------------------------------------
|
|
245
|
+
// No local binary to run `--help` against. Docs:
|
|
246
|
+
// https://docs.continue.dev/customize/deep-dives/mcp - `config.yaml`,
|
|
247
|
+
// `mcpServers` list entries take `type: streamable-http`, `url`, and
|
|
248
|
+
// `requestOptions.headers`; confirmed a third way in
|
|
249
|
+
// `core/context/mcp/MCPConnection.ts` on `main`, which builds the
|
|
250
|
+
// streamable-http transport's headers from `requestOptions?.headers`.
|
|
251
|
+
const continueClient = {
|
|
252
|
+
id: 'continue',
|
|
253
|
+
name: 'Continue',
|
|
254
|
+
category: 'ide',
|
|
255
|
+
brand: null,
|
|
256
|
+
methods: ['remote-header', 'stdio'],
|
|
257
|
+
docsUrl: 'https://docs.continue.dev/customize/deep-dives/mcp',
|
|
258
|
+
verifiedOn: '2026-09-25',
|
|
259
|
+
caveats: [],
|
|
260
|
+
install: null,
|
|
261
|
+
remote: (ctx) => [
|
|
262
|
+
{
|
|
263
|
+
language: 'yaml',
|
|
264
|
+
path: 'config.yaml',
|
|
265
|
+
text: [
|
|
266
|
+
'mcpServers:',
|
|
267
|
+
' - name: onlymcp',
|
|
268
|
+
' type: streamable-http',
|
|
269
|
+
` url: ${ctx.endpoint}`,
|
|
270
|
+
' requestOptions:',
|
|
271
|
+
' headers:',
|
|
272
|
+
` Authorization: Bearer ${ctx.token}`,
|
|
273
|
+
].join('\n'),
|
|
274
|
+
},
|
|
275
|
+
],
|
|
276
|
+
};
|
|
277
|
+
// -- opencode -----------------------------------------------------------
|
|
278
|
+
// Docs: https://opencode.ai/docs/mcp-servers/ - `opencode.json`, servers
|
|
279
|
+
// live under `mcp`, a remote entry takes `type: "remote"`, `url`, and
|
|
280
|
+
// `headers`; OAuth is the default for a remote server unless `oauth:
|
|
281
|
+
// false` is set for a header/API-key-only server. OnlyMCP uses a bearer
|
|
282
|
+
// header here, so no `oauth` field is emitted.
|
|
283
|
+
const opencode = {
|
|
284
|
+
id: 'opencode',
|
|
285
|
+
name: 'opencode',
|
|
286
|
+
category: 'coding',
|
|
287
|
+
brand: 'opencode',
|
|
288
|
+
methods: ['remote-header', 'remote-oauth', 'stdio'],
|
|
289
|
+
docsUrl: 'https://opencode.ai/docs/mcp-servers/',
|
|
290
|
+
verifiedOn: '2026-09-25',
|
|
291
|
+
caveats: [],
|
|
292
|
+
install: null,
|
|
293
|
+
remote: (ctx) => [
|
|
294
|
+
json({ mcp: { onlymcp: { type: 'remote', url: ctx.endpoint, headers: { Authorization: `Bearer ${ctx.token}` } } } }, 'opencode.json'),
|
|
295
|
+
],
|
|
296
|
+
};
|
|
297
|
+
export const CLIENTS = [
|
|
298
|
+
claudeCode,
|
|
299
|
+
claudeApp,
|
|
300
|
+
chatgpt,
|
|
301
|
+
codex,
|
|
302
|
+
geminiCli,
|
|
303
|
+
geminiApp,
|
|
304
|
+
copilotVscode,
|
|
305
|
+
cursor,
|
|
306
|
+
windsurf,
|
|
307
|
+
cline,
|
|
308
|
+
zed,
|
|
309
|
+
continueClient,
|
|
310
|
+
opencode,
|
|
311
|
+
];
|
|
312
|
+
export function clientById(id) {
|
|
313
|
+
return CLIENTS.find((c) => c.id === id);
|
|
314
|
+
}
|
|
315
|
+
export function remoteSnippets(id, ctx) {
|
|
316
|
+
return clientById(id)?.remote(ctx) ?? null;
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* The local-install command for a client `npx onlymcp install` can set up,
|
|
320
|
+
* or null for every other one. Spec 07 §3.4: always with `npx`, always with
|
|
321
|
+
* `--client`, because the CLI without `--client` only lists the targets and
|
|
322
|
+
* exits 2.
|
|
323
|
+
*/
|
|
324
|
+
export function installCommand(id) {
|
|
325
|
+
return clientById(id)?.install ? `npx onlymcp install --client ${id}` : null;
|
|
326
|
+
}
|
|
327
|
+
//# sourceMappingURL=clients.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clients.js","sourceRoot":"","sources":["../../src/registry/clients.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { CAVEATS, caveatText, type CaveatLanguage } from './caveats.js';
|
|
2
|
+
export { CLIENTS, clientById, installCommand, remoteSnippets } from './clients.js';
|
|
3
|
+
export { SERVERS } from './servers.js';
|
|
4
|
+
export type { ClientCategory, ClientId, ClientInstall, ClientRecord, ConnectMethod, RemoteContext, ServerRecord, Snippet, SnippetLanguage, } from './types.js';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// Generated by scripts/sync-registry.mjs. Do not edit.
|
|
2
|
+
export { CAVEATS, caveatText } from './caveats.js';
|
|
3
|
+
export { CLIENTS, clientById, installCommand, remoteSnippets } from './clients.js';
|
|
4
|
+
export { SERVERS } from './servers.js';
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { ServerRecord } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* The picture the product is named after: many MCP servers behind one
|
|
4
|
+
* connection. This catalogue backs the rotating tiles in
|
|
5
|
+
* `packages/web/src/components/McpHub.tsx`, `/api/mcp-catalog`, and the
|
|
6
|
+
* "add a server" step of Connect.
|
|
7
|
+
*
|
|
8
|
+
* Every server in the pool was verified, not remembered. Originally
|
|
9
|
+
* (2026-09-05): each URL was pushed through this product's own
|
|
10
|
+
* POST /api/mcp-connections/test, and only the ones that completed an MCP
|
|
11
|
+
* handshake or answered UNAUTHORIZED (which means a real MCP server is
|
|
12
|
+
* there and wants credentials) were listed. Dropped on that evidence:
|
|
13
|
+
* GitLab (mcp.gitlab.com does not resolve), Figma, Google Drive, Slack.
|
|
14
|
+
* Dropped for want of a brand icon: Canva, monday.com.
|
|
15
|
+
*
|
|
16
|
+
* Re-verified 2026-09-25 for this registry, this time against each
|
|
17
|
+
* vendor's own documentation (`docsUrl` below) AND a fresh local probe: a
|
|
18
|
+
* scratch script POSTed an MCP `initialize` request, unauthenticated, to
|
|
19
|
+
* every URL below. All 17 answered `401` with a `WWW-Authenticate: Bearer`
|
|
20
|
+
* header naming an OAuth protected-resource metadata document (for
|
|
21
|
+
* example `resource_metadata="https://mcp.notion.com/.well-known/oauth-
|
|
22
|
+
* protected-resource/mcp"`), which is exactly what a live MCP server
|
|
23
|
+
* behind OAuth returns - confirming each URL is real and reachable, not
|
|
24
|
+
* only documented. The finer distinction of `auth` below (whether a
|
|
25
|
+
* static bearer token is ALSO accepted, alongside OAuth) came from each
|
|
26
|
+
* vendor's docs, because a 401 alone cannot tell OAuth-only apart from
|
|
27
|
+
* OAuth-or-bearer.
|
|
28
|
+
*
|
|
29
|
+
* One correction from the 2026-09-05 note: this pass found Linear's docs
|
|
30
|
+
* now document `Authorization: Bearer <token>` as an accepted alternative
|
|
31
|
+
* to the interactive OAuth flow. The original spec text (problem #6)
|
|
32
|
+
* called Linear OAuth-only as of that date; either that capability is new,
|
|
33
|
+
* or it was missed in the first pass. `auth` below reflects the current,
|
|
34
|
+
* re-verified state, and this comment records the discrepancy rather than
|
|
35
|
+
* silently overwriting it.
|
|
36
|
+
*
|
|
37
|
+
* The open MCP registry is not a usable source for this list, by the way -
|
|
38
|
+
* anyone may publish there, and a search for "github" returns community
|
|
39
|
+
* wrappers hosted by third parties, not GitHub's own server.
|
|
40
|
+
*
|
|
41
|
+
* `filesystem` and `postgres`, the textbook examples, are absent on purpose:
|
|
42
|
+
* they are local stdio processes, and OnlyMCP deliberately does not run those
|
|
43
|
+
* (a process we spawn on a user's behalf is code execution on our side, see
|
|
44
|
+
* docs/SECURITY.md).
|
|
45
|
+
*
|
|
46
|
+
* The prefixes are real. `github__create_issue` is exactly what a client
|
|
47
|
+
* sees, because the gateway namespaces every proxied tool with the
|
|
48
|
+
* connection's slug (packages/api/src/mcp/gateway.ts).
|
|
49
|
+
*/
|
|
50
|
+
export declare const SERVERS: readonly ServerRecord[];
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The picture the product is named after: many MCP servers behind one
|
|
3
|
+
* connection. This catalogue backs the rotating tiles in
|
|
4
|
+
* `packages/web/src/components/McpHub.tsx`, `/api/mcp-catalog`, and the
|
|
5
|
+
* "add a server" step of Connect.
|
|
6
|
+
*
|
|
7
|
+
* Every server in the pool was verified, not remembered. Originally
|
|
8
|
+
* (2026-09-05): each URL was pushed through this product's own
|
|
9
|
+
* POST /api/mcp-connections/test, and only the ones that completed an MCP
|
|
10
|
+
* handshake or answered UNAUTHORIZED (which means a real MCP server is
|
|
11
|
+
* there and wants credentials) were listed. Dropped on that evidence:
|
|
12
|
+
* GitLab (mcp.gitlab.com does not resolve), Figma, Google Drive, Slack.
|
|
13
|
+
* Dropped for want of a brand icon: Canva, monday.com.
|
|
14
|
+
*
|
|
15
|
+
* Re-verified 2026-09-25 for this registry, this time against each
|
|
16
|
+
* vendor's own documentation (`docsUrl` below) AND a fresh local probe: a
|
|
17
|
+
* scratch script POSTed an MCP `initialize` request, unauthenticated, to
|
|
18
|
+
* every URL below. All 17 answered `401` with a `WWW-Authenticate: Bearer`
|
|
19
|
+
* header naming an OAuth protected-resource metadata document (for
|
|
20
|
+
* example `resource_metadata="https://mcp.notion.com/.well-known/oauth-
|
|
21
|
+
* protected-resource/mcp"`), which is exactly what a live MCP server
|
|
22
|
+
* behind OAuth returns - confirming each URL is real and reachable, not
|
|
23
|
+
* only documented. The finer distinction of `auth` below (whether a
|
|
24
|
+
* static bearer token is ALSO accepted, alongside OAuth) came from each
|
|
25
|
+
* vendor's docs, because a 401 alone cannot tell OAuth-only apart from
|
|
26
|
+
* OAuth-or-bearer.
|
|
27
|
+
*
|
|
28
|
+
* One correction from the 2026-09-05 note: this pass found Linear's docs
|
|
29
|
+
* now document `Authorization: Bearer <token>` as an accepted alternative
|
|
30
|
+
* to the interactive OAuth flow. The original spec text (problem #6)
|
|
31
|
+
* called Linear OAuth-only as of that date; either that capability is new,
|
|
32
|
+
* or it was missed in the first pass. `auth` below reflects the current,
|
|
33
|
+
* re-verified state, and this comment records the discrepancy rather than
|
|
34
|
+
* silently overwriting it.
|
|
35
|
+
*
|
|
36
|
+
* The open MCP registry is not a usable source for this list, by the way -
|
|
37
|
+
* anyone may publish there, and a search for "github" returns community
|
|
38
|
+
* wrappers hosted by third parties, not GitHub's own server.
|
|
39
|
+
*
|
|
40
|
+
* `filesystem` and `postgres`, the textbook examples, are absent on purpose:
|
|
41
|
+
* they are local stdio processes, and OnlyMCP deliberately does not run those
|
|
42
|
+
* (a process we spawn on a user's behalf is code execution on our side, see
|
|
43
|
+
* docs/SECURITY.md).
|
|
44
|
+
*
|
|
45
|
+
* The prefixes are real. `github__create_issue` is exactly what a client
|
|
46
|
+
* sees, because the gateway namespaces every proxied tool with the
|
|
47
|
+
* connection's slug (packages/api/src/mcp/gateway.ts).
|
|
48
|
+
*/
|
|
49
|
+
export const SERVERS = [
|
|
50
|
+
{
|
|
51
|
+
id: 'github',
|
|
52
|
+
name: 'GitHub',
|
|
53
|
+
brand: 'github',
|
|
54
|
+
url: 'https://api.githubcopilot.com/mcp/',
|
|
55
|
+
auth: 'oauth-or-bearer',
|
|
56
|
+
docsUrl: 'https://docs.github.com/en/copilot/how-tos/provide-context/use-mcp-in-your-ide/set-up-the-github-mcp-server',
|
|
57
|
+
verifiedOn: '2026-09-25',
|
|
58
|
+
suggestedSlug: 'github',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
id: 'linear',
|
|
62
|
+
name: 'Linear',
|
|
63
|
+
brand: 'linear',
|
|
64
|
+
url: 'https://mcp.linear.app/mcp',
|
|
65
|
+
auth: 'oauth-or-bearer',
|
|
66
|
+
docsUrl: 'https://linear.app/docs/mcp',
|
|
67
|
+
verifiedOn: '2026-09-25',
|
|
68
|
+
suggestedSlug: 'linear',
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
id: 'notion',
|
|
72
|
+
name: 'Notion',
|
|
73
|
+
brand: 'notion',
|
|
74
|
+
url: 'https://mcp.notion.com/mcp',
|
|
75
|
+
auth: 'oauth',
|
|
76
|
+
docsUrl: 'https://developers.notion.com/guides/mcp/get-started-with-mcp',
|
|
77
|
+
verifiedOn: '2026-09-25',
|
|
78
|
+
suggestedSlug: 'notion',
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
id: 'sentry',
|
|
82
|
+
name: 'Sentry',
|
|
83
|
+
brand: 'sentry',
|
|
84
|
+
url: 'https://mcp.sentry.dev/mcp',
|
|
85
|
+
auth: 'oauth',
|
|
86
|
+
docsUrl: 'https://docs.sentry.io/product/mcp-servers/getting-started/',
|
|
87
|
+
verifiedOn: '2026-09-25',
|
|
88
|
+
suggestedSlug: 'sentry',
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
id: 'stripe',
|
|
92
|
+
name: 'Stripe',
|
|
93
|
+
brand: 'stripe',
|
|
94
|
+
url: 'https://mcp.stripe.com',
|
|
95
|
+
auth: 'oauth-or-bearer',
|
|
96
|
+
docsUrl: 'https://docs.stripe.com/mcp',
|
|
97
|
+
verifiedOn: '2026-09-25',
|
|
98
|
+
suggestedSlug: 'stripe',
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
id: 'supabase',
|
|
102
|
+
name: 'Supabase',
|
|
103
|
+
brand: 'supabase',
|
|
104
|
+
url: 'https://mcp.supabase.com/mcp',
|
|
105
|
+
auth: 'oauth-or-bearer',
|
|
106
|
+
docsUrl: 'https://supabase.com/docs/guides/ai-tools/mcp',
|
|
107
|
+
verifiedOn: '2026-09-25',
|
|
108
|
+
suggestedSlug: 'supabase',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
id: 'vercel',
|
|
112
|
+
name: 'Vercel',
|
|
113
|
+
brand: 'vercel',
|
|
114
|
+
url: 'https://mcp.vercel.com',
|
|
115
|
+
auth: 'oauth',
|
|
116
|
+
docsUrl: 'https://vercel.com/docs/mcp/vercel-mcp',
|
|
117
|
+
verifiedOn: '2026-09-25',
|
|
118
|
+
suggestedSlug: 'vercel',
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
id: 'atlassian',
|
|
122
|
+
name: 'Atlassian',
|
|
123
|
+
brand: 'atlassian',
|
|
124
|
+
url: 'https://mcp.atlassian.com/v2/mcp',
|
|
125
|
+
auth: 'oauth-or-bearer',
|
|
126
|
+
docsUrl: 'https://support.atlassian.com/atlassian-rovo-mcp-server/docs/getting-started-with-the-atlassian-remote-mcp-server/',
|
|
127
|
+
verifiedOn: '2026-09-25',
|
|
128
|
+
suggestedSlug: 'atlassian',
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
id: 'asana',
|
|
132
|
+
name: 'Asana',
|
|
133
|
+
brand: 'asana',
|
|
134
|
+
// V2. The V1 Beta server (mcp.asana.com/sse) shut down 2026-08-05.
|
|
135
|
+
url: 'https://mcp.asana.com/v2/mcp',
|
|
136
|
+
auth: 'oauth',
|
|
137
|
+
docsUrl: 'https://developers.asana.com/docs/integrating-with-asanas-mcp-server',
|
|
138
|
+
verifiedOn: '2026-09-25',
|
|
139
|
+
suggestedSlug: 'asana',
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
id: 'cloudflare',
|
|
143
|
+
name: 'Cloudflare',
|
|
144
|
+
brand: 'cloudflare',
|
|
145
|
+
// The general-purpose one: 2,500+ endpoints across DNS, Workers, R2,
|
|
146
|
+
// Zero Trust. Cloudflare also hosts 16 narrower servers (docs,
|
|
147
|
+
// bindings, observability, ...), not used here.
|
|
148
|
+
url: 'https://mcp.cloudflare.com/mcp',
|
|
149
|
+
auth: 'oauth',
|
|
150
|
+
docsUrl: 'https://developers.cloudflare.com/agents/model-context-protocol/cloudflare/servers-for-cloudflare/',
|
|
151
|
+
verifiedOn: '2026-09-25',
|
|
152
|
+
suggestedSlug: 'cloudflare',
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
id: 'intercom',
|
|
156
|
+
name: 'Intercom',
|
|
157
|
+
brand: 'intercom',
|
|
158
|
+
url: 'https://mcp.intercom.com/mcp',
|
|
159
|
+
auth: 'oauth-or-bearer',
|
|
160
|
+
docsUrl: 'https://developers.intercom.com/docs/guides/mcp',
|
|
161
|
+
verifiedOn: '2026-09-25',
|
|
162
|
+
suggestedSlug: 'intercom',
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
id: 'hubspot',
|
|
166
|
+
name: 'HubSpot',
|
|
167
|
+
brand: 'hubspot',
|
|
168
|
+
url: 'https://mcp.hubspot.com',
|
|
169
|
+
auth: 'oauth',
|
|
170
|
+
docsUrl: 'https://developers.hubspot.com/docs/apps/developer-platform/build-apps/integrate-with-the-remote-hubspot-mcp-server',
|
|
171
|
+
verifiedOn: '2026-09-25',
|
|
172
|
+
suggestedSlug: 'hubspot',
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
id: 'netlify',
|
|
176
|
+
name: 'Netlify',
|
|
177
|
+
brand: 'netlify',
|
|
178
|
+
url: 'https://netlify-mcp.netlify.app/mcp',
|
|
179
|
+
auth: 'oauth-or-bearer',
|
|
180
|
+
docsUrl: 'https://docs.netlify.com/build/build-with-ai/netlify-mcp-server/',
|
|
181
|
+
verifiedOn: '2026-09-25',
|
|
182
|
+
suggestedSlug: 'netlify',
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
id: 'neon',
|
|
186
|
+
name: 'Neon',
|
|
187
|
+
brand: 'neon',
|
|
188
|
+
url: 'https://mcp.neon.tech/mcp',
|
|
189
|
+
auth: 'oauth-or-bearer',
|
|
190
|
+
docsUrl: 'https://neon.com/docs/ai/connect-mcp-clients-to-neon',
|
|
191
|
+
verifiedOn: '2026-09-25',
|
|
192
|
+
suggestedSlug: 'neon',
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
id: 'zapier',
|
|
196
|
+
name: 'Zapier',
|
|
197
|
+
brand: 'zapier',
|
|
198
|
+
url: 'https://mcp.zapier.com/api/v1/connect',
|
|
199
|
+
auth: 'oauth-or-bearer',
|
|
200
|
+
docsUrl: 'https://docs.zapier.com/mcp/overview/how-connections-work',
|
|
201
|
+
verifiedOn: '2026-09-25',
|
|
202
|
+
suggestedSlug: 'zapier',
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
id: 'webflow',
|
|
206
|
+
name: 'Webflow',
|
|
207
|
+
brand: 'webflow',
|
|
208
|
+
url: 'https://mcp.webflow.com/mcp',
|
|
209
|
+
auth: 'oauth',
|
|
210
|
+
docsUrl: 'https://developers.webflow.com/mcp/reference/getting-started',
|
|
211
|
+
verifiedOn: '2026-09-25',
|
|
212
|
+
suggestedSlug: 'webflow',
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
id: 'wix',
|
|
216
|
+
name: 'Wix',
|
|
217
|
+
brand: 'wix',
|
|
218
|
+
url: 'https://mcp.wix.com/mcp',
|
|
219
|
+
auth: 'oauth-or-bearer',
|
|
220
|
+
docsUrl: 'https://dev.wix.com/docs/overview/ai-the-wix-platform/the-wix-mcp',
|
|
221
|
+
verifiedOn: '2026-09-25',
|
|
222
|
+
suggestedSlug: 'wix',
|
|
223
|
+
},
|
|
224
|
+
];
|
|
225
|
+
//# sourceMappingURL=servers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"servers.js","sourceRoot":"","sources":["../../src/registry/servers.ts"],"names":[],"mappings":"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"}
|