@pandanpc/mcp-server 0.1.1 → 0.1.3
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 +16 -16
- package/index.js +3 -2
- package/install.js +6 -6
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
# @pandanpc/mcp-server
|
|
2
2
|
|
|
3
|
-
PandaNpc MCP Server —
|
|
3
|
+
PandaNpc MCP Server — expose PandaNote, workspaces, AI models, and provider management to Claude Code, Cursor, Windsurf, and other MCP clients.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Installation
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
8
|
npm install -g @pandanpc/mcp-server
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
The `postinstall` script downloads the matching Rust binary for your platform from `https://cos.pandanpc.com/mcp-server/`.
|
|
12
12
|
|
|
13
|
-
###
|
|
13
|
+
### Supported platforms
|
|
14
14
|
|
|
15
15
|
- Linux x64
|
|
16
16
|
- macOS x64 (Intel)
|
|
17
17
|
- macOS arm64 (Apple Silicon)
|
|
18
18
|
- Windows x64
|
|
19
19
|
|
|
20
|
-
## Claude Code
|
|
20
|
+
## Claude Code configuration
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
Edit `~/.config/claude-code/config.json` (or the platform equivalent):
|
|
23
23
|
|
|
24
24
|
```json
|
|
25
25
|
{
|
|
@@ -31,29 +31,29 @@ npm install -g @pandanpc/mcp-server
|
|
|
31
31
|
}
|
|
32
32
|
```
|
|
33
33
|
|
|
34
|
-
##
|
|
34
|
+
## CLI usage
|
|
35
35
|
|
|
36
36
|
```bash
|
|
37
|
-
# stdio
|
|
37
|
+
# stdio mode (default for MCP clients)
|
|
38
38
|
pandanpc-mcp
|
|
39
39
|
|
|
40
|
-
# HTTP/SSE
|
|
40
|
+
# HTTP/SSE mode
|
|
41
41
|
pandanpc-mcp --http --port 3100
|
|
42
42
|
```
|
|
43
43
|
|
|
44
|
-
##
|
|
44
|
+
## Available tools
|
|
45
45
|
|
|
46
|
-
- `note_login` —
|
|
46
|
+
- `note_login` — log in to your PandaNpc account
|
|
47
47
|
- `list_workspaces` / `create_workspace` / `update_workspace` / `delete_workspace`
|
|
48
48
|
- `list_notes` / `create_note` / `read_note` / `update_note` / `delete_note` / `move_note_to_workspace`
|
|
49
|
-
- `search_notes` —
|
|
50
|
-
- `generate_note_title` — AI
|
|
49
|
+
- `search_notes` — title + full-text + semantic search
|
|
50
|
+
- `generate_note_title` — AI-generated title and icon
|
|
51
51
|
- `list_providers` / `create_provider` / `update_provider` / `delete_provider`
|
|
52
52
|
- `list_models` / `list_model_types` / `create_model` / `update_model` / `delete_model`
|
|
53
|
-
- `sync_rules` —
|
|
53
|
+
- `sync_rules` — sync `.claude/rules/` and `.claude/skills/` Markdown files to PandaNote
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
Call `note_login` first to authenticate.
|
|
56
56
|
|
|
57
|
-
##
|
|
57
|
+
## License
|
|
58
58
|
|
|
59
59
|
MIT © PandaNpc
|
package/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* bin
|
|
3
|
+
* bin entry: spawn the platform-specific pandanpc-mcp binary,
|
|
4
|
+
* forwarding all arguments and stdio streams.
|
|
4
5
|
*/
|
|
5
6
|
|
|
6
7
|
const path = require('path')
|
|
@@ -12,7 +13,7 @@ const binPath = path.join(__dirname, 'bin', binName)
|
|
|
12
13
|
|
|
13
14
|
if (!fs.existsSync(binPath)) {
|
|
14
15
|
console.error(`[pandanpc-mcp] binary not found at ${binPath}`)
|
|
15
|
-
console.error(`[pandanpc-mcp] try
|
|
16
|
+
console.error(`[pandanpc-mcp] try reinstalling: npm install -g @pandanpc/mcp-server`)
|
|
16
17
|
process.exit(1)
|
|
17
18
|
}
|
|
18
19
|
|
package/install.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* postinstall:
|
|
3
|
+
* postinstall: download the pandanpc-mcp binary matching the current platform
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* Source: https://cos.pandanpc.com/mcp-server/v<version>/pandanpc-mcp-<platform>
|
|
6
|
+
* Integrity: verified against SHA256SUMS
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
const fs = require('fs')
|
|
@@ -86,14 +86,14 @@ async function main() {
|
|
|
86
86
|
if (!fs.existsSync(binDir)) fs.mkdirSync(binDir, { recursive: true })
|
|
87
87
|
const localBin = path.join(binDir, process.platform === 'win32' ? 'pandanpc-mcp.exe' : 'pandanpc-mcp')
|
|
88
88
|
|
|
89
|
-
//
|
|
89
|
+
// Skip download if binary already exists (e.g. manually placed for development)
|
|
90
90
|
if (fs.existsSync(localBin) && fs.statSync(localBin).size > 0) {
|
|
91
91
|
console.log(`[pandanpc-mcp] binary already present at ${localBin}, skipping download`)
|
|
92
92
|
return
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
const url = `${BASE_URL}/${name}`
|
|
96
|
-
console.log(`[pandanpc-mcp] downloading ${url}
|
|
96
|
+
console.log(`[pandanpc-mcp] downloading ${url} -> ${localBin}`)
|
|
97
97
|
|
|
98
98
|
try {
|
|
99
99
|
await download(url, localBin)
|
|
@@ -103,7 +103,7 @@ async function main() {
|
|
|
103
103
|
process.exit(1)
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
//
|
|
106
|
+
// Verify SHA256 checksum
|
|
107
107
|
try {
|
|
108
108
|
const sumsText = await fetchText(`${BASE_URL}/SHA256SUMS`)
|
|
109
109
|
const line = sumsText.split('\n').find((l) => l.includes(name))
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pandanpc/mcp-server",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "PandaNpc MCP Server — Claude Code and MCP clients integration for PandaNote",
|
|
5
5
|
"keywords": ["mcp", "pandanpc", "claude", "notes", "panda-note"],
|
|
6
6
|
"homepage": "https://pandanpc.com",
|