notion-mcp-cli 0.0.3 → 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 +72 -0
- package/dist/cli.js +5 -6
- package/package.json +3 -3
- package/dist/cli.js.map +0 -1
package/README.md
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# notion-mcp-cli
|
|
2
|
+
|
|
3
|
+
CLI for Notion MCP with OAuth support.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install -g notion-mcp-cli
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# Login (saves MCP URL, auth happens on first command)
|
|
15
|
+
notion-mcp-cli login
|
|
16
|
+
|
|
17
|
+
# Run any Notion MCP tool
|
|
18
|
+
notion-mcp-cli notion-search --query "meeting notes"
|
|
19
|
+
notion-mcp-cli notion-get-page --pageId "abc123"
|
|
20
|
+
|
|
21
|
+
# Check status
|
|
22
|
+
notion-mcp-cli status
|
|
23
|
+
|
|
24
|
+
# Logout
|
|
25
|
+
notion-mcp-cli logout
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## How it works
|
|
29
|
+
|
|
30
|
+
1. On first command, opens browser for Notion OAuth
|
|
31
|
+
2. Caches tools and session for 1 hour
|
|
32
|
+
3. Auto-refreshes tokens when needed
|
|
33
|
+
|
|
34
|
+
## Packages
|
|
35
|
+
|
|
36
|
+
This monorepo contains:
|
|
37
|
+
|
|
38
|
+
| Package | Description |
|
|
39
|
+
|---------|-------------|
|
|
40
|
+
| [notion-mcp-cli](./notion-mcp-cli) | CLI for Notion MCP |
|
|
41
|
+
| [@goke/mcp](./mcp) | Generate CLI commands from any MCP server |
|
|
42
|
+
| [goke](./goke) | cac-inspired CLI framework with space-separated subcommands |
|
|
43
|
+
|
|
44
|
+
## @goke/mcp
|
|
45
|
+
|
|
46
|
+
Use `@goke/mcp` to build your own MCP CLI:
|
|
47
|
+
|
|
48
|
+
```ts
|
|
49
|
+
import { goke } from 'goke'
|
|
50
|
+
import { addMcpCommands } from '@goke/mcp'
|
|
51
|
+
|
|
52
|
+
const cli = goke('mycli')
|
|
53
|
+
|
|
54
|
+
await addMcpCommands({
|
|
55
|
+
cli,
|
|
56
|
+
commandPrefix: 'mcp',
|
|
57
|
+
getMcpUrl: () => 'https://your-mcp-server.com/mcp',
|
|
58
|
+
oauth: {
|
|
59
|
+
clientName: 'My CLI',
|
|
60
|
+
load: () => loadConfig().oauth,
|
|
61
|
+
save: (state) => saveConfig({ oauth: state }),
|
|
62
|
+
},
|
|
63
|
+
loadCache: () => loadConfig().cache,
|
|
64
|
+
saveCache: (cache) => saveConfig({ cache }),
|
|
65
|
+
})
|
|
66
|
+
|
|
67
|
+
cli.parse()
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## License
|
|
71
|
+
|
|
72
|
+
MIT
|
package/dist/cli.js
CHANGED
|
@@ -9,8 +9,9 @@
|
|
|
9
9
|
* notion-mcp-cli status # Show current config
|
|
10
10
|
* notion-mcp-cli logout # Clear OAuth tokens
|
|
11
11
|
*/
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
12
|
+
import { goke } from "goke";
|
|
13
|
+
import { wrapJsonSchema } from "goke";
|
|
14
|
+
import { addMcpCommands } from "@goke/mcp";
|
|
14
15
|
import fs from "node:fs";
|
|
15
16
|
import path from "node:path";
|
|
16
17
|
import os from "node:os";
|
|
@@ -35,11 +36,10 @@ function saveConfig(config) {
|
|
|
35
36
|
}
|
|
36
37
|
fs.writeFileSync(CONFIG_FILE, JSON.stringify(merged, null, 2));
|
|
37
38
|
}
|
|
38
|
-
const cli =
|
|
39
|
+
const cli = goke("notion-mcp-cli");
|
|
39
40
|
// Add MCP commands with OAuth support (no prefix - commands are top-level)
|
|
40
41
|
await addMcpCommands({
|
|
41
42
|
cli,
|
|
42
|
-
commandPrefix: "",
|
|
43
43
|
clientName: "notion-mcp-cli",
|
|
44
44
|
getMcpUrl: () => loadConfig().mcpUrl,
|
|
45
45
|
oauth: {
|
|
@@ -57,7 +57,7 @@ await addMcpCommands({
|
|
|
57
57
|
// Login command - just saves URL, auth happens on first tool call
|
|
58
58
|
cli
|
|
59
59
|
.command("login", "Save MCP URL and prepare for authentication")
|
|
60
|
-
.option("--url <url>",
|
|
60
|
+
.option("--url <url>", wrapJsonSchema({ type: "string", default: "https://mcp.notion.com/mcp", description: "MCP server URL" }))
|
|
61
61
|
.action((options) => {
|
|
62
62
|
saveConfig({ mcpUrl: options.url });
|
|
63
63
|
console.log(`Saved MCP URL: ${options.url}`);
|
|
@@ -84,4 +84,3 @@ cli.command("status", "Show current config").action(() => {
|
|
|
84
84
|
cli.help();
|
|
85
85
|
cli.version("0.0.3");
|
|
86
86
|
cli.parse();
|
|
87
|
-
//# sourceMappingURL=cli.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "notion-mcp-cli",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "CLI for Notion MCP with OAuth support",
|
|
6
6
|
"bin": {
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
"node": ">=18.0.0"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"
|
|
27
|
-
"
|
|
26
|
+
"goke": "6.1.0",
|
|
27
|
+
"@goke/mcp": "0.0.4"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@types/node": "^22.15.21",
|
package/dist/cli.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|