dsh-oauth-mcp 0.0.4 → 0.0.5
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 +2 -2
- package/client/index.js +9 -0
- package/lib/build-info.js +2 -2
- package/lib/profiles/known-profiles.js +18 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -79,7 +79,7 @@ dsh plugin list | grep oauth # 确认装上了
|
|
|
79
79
|
|
|
80
80
|
1. 打开 设置 →「OAuth 授权管理」,点「添加服务器」。
|
|
81
81
|
|
|
82
|
-
2. 在厂商下拉里选一家。内置
|
|
82
|
+
2. 在厂商下拉里选一家。内置 41 家实测过的远程 MCP 服务器,选中之后服务器地址、ID、名称、默认权限范围、授权服务器地址自动填好。
|
|
83
83
|
|
|
84
84
|
3. 勾选权限范围,保存。
|
|
85
85
|
|
|
@@ -248,7 +248,7 @@ npm 发布那一步需要 GitHub 仓库里配一个 `NPM_TOKEN` secret。
|
|
|
248
248
|
| 文档 | 内容 |
|
|
249
249
|
| --- | --- |
|
|
250
250
|
| [docs/usage.md](docs/usage.md) | 字段表、命令与工具参考、回调模式、令牌存储、错误码、故障排查 |
|
|
251
|
-
| [docs/vendors.md](docs/vendors.md) |
|
|
251
|
+
| [docs/vendors.md](docs/vendors.md) | 41 家远程 MCP 服务器的 OAuth 元数据实测表 |
|
|
252
252
|
| [docs/verification.md](docs/verification.md) | 12 步手工验收清单 |
|
|
253
253
|
| [docs/contract.md](docs/contract.md) | 模块级接口契约 |
|
|
254
254
|
| [docs/review-2026-11-07.md](docs/review-2026-11-07.md) | 六个方面的评审记录:已改的问题与剩下的清单 |
|
package/client/index.js
CHANGED
|
@@ -1509,6 +1509,15 @@ function createCommandView(React, options = {}) {
|
|
|
1509
1509
|
defaultScopes: Object.freeze(['data.records:read', 'schema.bases:read', 'workspacesAndBases:read']),
|
|
1510
1510
|
needsClientId: false,
|
|
1511
1511
|
},
|
|
1512
|
+
{
|
|
1513
|
+
id: 'todoist',
|
|
1514
|
+
label: 'Todoist MCP',
|
|
1515
|
+
endpoint: 'https://ai.todoist.net/mcp',
|
|
1516
|
+
authorizationServerUrl: 'https://todoist.com',
|
|
1517
|
+
scopes: Object.freeze(['data:read_write']),
|
|
1518
|
+
defaultScopes: Object.freeze(['data:read_write']),
|
|
1519
|
+
needsClientId: false,
|
|
1520
|
+
},
|
|
1512
1521
|
{
|
|
1513
1522
|
id: 'cloudbase',
|
|
1514
1523
|
label: '腾讯云 CloudBase MCP',
|
package/lib/build-info.js
CHANGED
|
@@ -12,13 +12,13 @@ import { createTranslator } from './i18n/index.js'
|
|
|
12
12
|
export const PLUGIN_ID = 'dsh-oauth-mcp'
|
|
13
13
|
|
|
14
14
|
/** The version of the plugin. It is reported to every server it talks to. */
|
|
15
|
-
export const PLUGIN_VERSION = '0.0.
|
|
15
|
+
export const PLUGIN_VERSION = '0.0.5'
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* Short marker of the current source revision. Bump it whenever the behaviour
|
|
19
19
|
* of the user facing surfaces (commands, tools, panel, callback pages) changes.
|
|
20
20
|
*/
|
|
21
|
-
export const BUILD_STAMP = '2026-11-
|
|
21
|
+
export const BUILD_STAMP = '2026-11-09-todoist-vendor'
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
24
|
* One line that names the version and the build of the running code.
|
|
@@ -832,6 +832,24 @@ export const KNOWN_PROFILES = Object.freeze([
|
|
|
832
832
|
note: 'AS 在 `airtable.com/oauth2/v1`;scope 按记录/表/评论读写成对',
|
|
833
833
|
verifiedOn: '2026-11-07',
|
|
834
834
|
}),
|
|
835
|
+
Object.freeze({
|
|
836
|
+
id: 'todoist',
|
|
837
|
+
label: 'Todoist MCP',
|
|
838
|
+
endpoint: 'https://ai.todoist.net/mcp',
|
|
839
|
+
resource: 'https://ai.todoist.net/mcp',
|
|
840
|
+
authorizationServerUrl: 'https://todoist.com',
|
|
841
|
+
registrationEndpoint: 'https://todoist.com/oauth/register',
|
|
842
|
+
defaultScopes: Object.freeze(['data:read_write']),
|
|
843
|
+
scopesSupported: Object.freeze([
|
|
844
|
+
'data:read_write',
|
|
845
|
+
]),
|
|
846
|
+
tokenEndpointAuthMethods: Object.freeze(['client_secret_basic', 'client_secret_post', 'none']),
|
|
847
|
+
pkce: 'S256',
|
|
848
|
+
requiresClientId: false,
|
|
849
|
+
notes: 'Todoist hosts the MCP server on ai.todoist.net and runs the authorization server on todoist.com, so the resource and the issuer are two different domains. The endpoint is ai.todoist.net/mcp; mcp.todoist.com does not exist. The server publishes both the protected-resource metadata and the RFC 8414 authorization-server metadata, and it offers dynamic client registration, so the plugin registers itself and the user only has to approve the request in the browser. The protected-resource metadata publishes a single scope, data:read_write, which covers reading and changing tasks and projects; the many further scopes of the Todoist API are not usable on the MCP server.',
|
|
850
|
+
note: '资源在 `ai.todoist.net`、AS 在 `todoist.com`,两个域;只有 `data:read_write` 一个 scope',
|
|
851
|
+
verifiedOn: '2026-11-09',
|
|
852
|
+
}),
|
|
835
853
|
Object.freeze({
|
|
836
854
|
id: 'cloudbase',
|
|
837
855
|
label: '腾讯云 CloudBase MCP',
|
package/package.json
CHANGED