paput-mcp 2.8.4 → 2.8.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 +9 -0
- package/dist/http.js +26 -4
- package/dist/http.js.map +1 -1
- package/docs/reviewer-guide.md +64 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -299,6 +299,15 @@ PaPut MCP stores local data under `~/.paput` by default.
|
|
|
299
299
|
cache/ # Synced memos, pending candidates, and processed sessions
|
|
300
300
|
```
|
|
301
301
|
|
|
302
|
+
## Troubleshooting
|
|
303
|
+
|
|
304
|
+
- **Connection fails or tools do not appear**: Make sure the server URL is `https://mcp.paput.io` and that you completed the PaPut sign-in and consent screen. Check `https://mcp.paput.io/healthz` returns `{"ok":true}`.
|
|
305
|
+
- **401 Unauthorized / asked to sign in again**: Your access token expired or the connector was disconnected. Reconnect the connector and re-authorize through PaPut OAuth.
|
|
306
|
+
- **A write or delete tool did nothing**: Write and destructive tools require user confirmation. Approve the confirmation prompt in the client before the action runs.
|
|
307
|
+
- **Read/search tools return empty results**: The account has no matching data yet. Create content first (e.g. `paput_create_memo`), then search again.
|
|
308
|
+
- **Local CLI mode: `login` required**: For stdio/local usage, run `node dist/index.js login` to complete OAuth before starting the server.
|
|
309
|
+
- **Still stuck**: Contact `paput.dev@gmail.com` or open an issue at https://github.com/mizulba-dev/paput-mcp/issues.
|
|
310
|
+
|
|
302
311
|
## Public Documents
|
|
303
312
|
|
|
304
313
|
- [Privacy Policy](docs/privacy-policy.md)
|
package/dist/http.js
CHANGED
|
@@ -5,7 +5,10 @@ import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/
|
|
|
5
5
|
import { createMcpServer } from './server.js';
|
|
6
6
|
const OAUTH_SCOPES = ['paput.read', 'paput.write'];
|
|
7
7
|
const FRONT_ORIGIN = 'https://paput.io';
|
|
8
|
-
|
|
8
|
+
// アイコン系は paput.io 上の実体を 200 で直接配信する(プロキシ)。
|
|
9
|
+
// 307 リダイレクトだと Google favicon クローラーや一部クライアントがクロスドメイン
|
|
10
|
+
// リダイレクトを追わず、ディレクトリ/ツールコールのアイコンが汎用アイコンになってしまうため。
|
|
11
|
+
const ICON_SOURCES = {
|
|
9
12
|
'/apple-touch-icon.png': '/icons/apple-touch-icon.png',
|
|
10
13
|
'/favicon.ico': '/favicon.ico',
|
|
11
14
|
'/icon.ico': '/icon.ico',
|
|
@@ -28,10 +31,9 @@ export async function startHttpMcpServer(options = {}) {
|
|
|
28
31
|
res.end(JSON.stringify({ ok: true }));
|
|
29
32
|
return;
|
|
30
33
|
}
|
|
31
|
-
const iconPath =
|
|
34
|
+
const iconPath = ICON_SOURCES[requestUrl.pathname];
|
|
32
35
|
if (iconPath) {
|
|
33
|
-
res
|
|
34
|
-
res.end();
|
|
36
|
+
await serveIcon(res, `${FRONT_ORIGIN}${iconPath}`);
|
|
35
37
|
return;
|
|
36
38
|
}
|
|
37
39
|
if (requestUrl.pathname === '/.well-known/oauth-protected-resource') {
|
|
@@ -115,6 +117,26 @@ function parseAllowedOrigins(value) {
|
|
|
115
117
|
.map((origin) => origin.trim())
|
|
116
118
|
.filter(Boolean);
|
|
117
119
|
}
|
|
120
|
+
// 上流(paput.io)のアイコンを取得し 200 で直接返す。失敗時のみ 307 リダイレクトにフォールバック。
|
|
121
|
+
async function serveIcon(res, sourceUrl) {
|
|
122
|
+
try {
|
|
123
|
+
const upstream = await fetch(sourceUrl);
|
|
124
|
+
if (upstream.ok) {
|
|
125
|
+
const body = Buffer.from(await upstream.arrayBuffer());
|
|
126
|
+
res.writeHead(200, {
|
|
127
|
+
'content-type': upstream.headers.get('content-type') ?? 'image/x-icon',
|
|
128
|
+
'cache-control': 'public, max-age=86400',
|
|
129
|
+
});
|
|
130
|
+
res.end(body);
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
// フォールスルーしてリダイレクトする
|
|
136
|
+
}
|
|
137
|
+
res.writeHead(307, { location: sourceUrl });
|
|
138
|
+
res.end();
|
|
139
|
+
}
|
|
118
140
|
function isAllowedOrigin(req, publicOrigin, apiOrigin, configuredAllowedOrigins) {
|
|
119
141
|
const originHeader = req.headers.origin;
|
|
120
142
|
const origin = Array.isArray(originHeader) ? originHeader[0] : originHeader;
|
package/dist/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":";AAEA,OAAO,EACL,YAAY,GAIb,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,eAAe,EAAyB,MAAM,aAAa,CAAC;AASrE,MAAM,YAAY,GAAG,CAAC,YAAY,EAAE,aAAa,CAAU,CAAC;AAC5D,MAAM,YAAY,GAAG,kBAAkB,CAAC;AACxC,MAAM,
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# PaPut MCP Connector — Reviewer Guide
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
PaPut is a knowledge-capture tool for engineers (memos, notes, and skill sheets).
|
|
6
|
+
This MCP connector lets Claude read and write PaPut content on behalf of an
|
|
7
|
+
authorized user.
|
|
8
|
+
|
|
9
|
+
- **Server URL:** `https://mcp.paput.io`
|
|
10
|
+
- **Transport:** Streamable HTTP
|
|
11
|
+
- **Authentication:** OAuth 2.1 (Authorization Code + PKCE/S256, Dynamic Client Registration supported)
|
|
12
|
+
- **Scopes:** `paput.read`, `paput.write`
|
|
13
|
+
|
|
14
|
+
## Capabilities (tool groups)
|
|
15
|
+
|
|
16
|
+
The connector exposes the following tools. All tools carry annotations
|
|
17
|
+
(`readOnlyHint` / `destructiveHint`).
|
|
18
|
+
|
|
19
|
+
- **Memos:** create, search, get, update, list categories
|
|
20
|
+
- **Notes:** create, search, get, update
|
|
21
|
+
- **Skill sheet:** get and update basic info, self PR, skills, and projects
|
|
22
|
+
- **Goals:** list, create, update, delete
|
|
23
|
+
- **Dashboard analysis:** get and update the user's dashboard analysis
|
|
24
|
+
|
|
25
|
+
## Test account
|
|
26
|
+
|
|
27
|
+
Test credentials (email and password) are provided in the submission form.
|
|
28
|
+
The account is pre-populated with sample memos and a note so read/search tools
|
|
29
|
+
return data.
|
|
30
|
+
|
|
31
|
+
> Note: PaPut normally uses Google sign-in only. A dedicated email/password
|
|
32
|
+
> login is enabled for the review period so you can sign in without a Google
|
|
33
|
+
> account.
|
|
34
|
+
|
|
35
|
+
## Steps
|
|
36
|
+
|
|
37
|
+
1. In Claude, add a custom connector with the server URL `https://mcp.paput.io`.
|
|
38
|
+
2. Start the connection. You will be redirected to the PaPut sign-in page.
|
|
39
|
+
3. On the sign-in page, enter the test credentials (the email/password form),
|
|
40
|
+
then approve the consent screen. You will be returned to Claude and the
|
|
41
|
+
connection completes.
|
|
42
|
+
4. Confirm the tool list loads (`tools/list` shows PaPut tools such as
|
|
43
|
+
`paput_search_memo`, `paput_get_categories`, `paput_create_memo`).
|
|
44
|
+
5. **Read:** ask Claude to list categories (`paput_get_categories`) and to
|
|
45
|
+
search memos (`paput_search_memo`). Results should be returned.
|
|
46
|
+
6. **Get:** ask Claude to open one of the returned memos (`paput_get_memo`).
|
|
47
|
+
7. **Write:** ask Claude to create a test memo (`paput_create_memo`). Confirm
|
|
48
|
+
that write/destructive tools prompt for user confirmation before executing.
|
|
49
|
+
8. Verify the created data appears when searching again.
|
|
50
|
+
|
|
51
|
+
> Some tool groups (e.g. dashboard analysis, goals, skill sheet) may return
|
|
52
|
+
> empty results on a fresh review account; the tools still respond correctly.
|
|
53
|
+
> You can populate them through the connector's write tools if you want to
|
|
54
|
+
> exercise them.
|
|
55
|
+
|
|
56
|
+
## Notes for reviewers
|
|
57
|
+
|
|
58
|
+
- Read-only tools are annotated with `readOnlyHint`; write/destructive tools are
|
|
59
|
+
annotated with `destructiveHint` and are expected to be confirmed by the
|
|
60
|
+
client.
|
|
61
|
+
- The connector accesses PaPut content only after OAuth authorization and does
|
|
62
|
+
not read Claude memory, chat history, or user files.
|
|
63
|
+
- Support contact: `paput.dev@gmail.com`
|
|
64
|
+
- Privacy policy: https://github.com/mizulba-dev/paput-mcp/blob/main/docs/privacy-policy.md
|