paput-mcp 2.8.3 → 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/directory-submission.md +2 -0
- package/docs/privacy-policy.md +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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"}
|
|
@@ -37,6 +37,8 @@ Recommended listing details:
|
|
|
37
37
|
- Transport: Streamable HTTP
|
|
38
38
|
- Scopes: `paput.read paput.write`
|
|
39
39
|
- Category: Productivity, knowledge management, developer tools
|
|
40
|
+
- Support contact: paput.dev@gmail.com
|
|
41
|
+
- Privacy policy: https://github.com/mizulba-dev/paput-mcp/blob/main/docs/privacy-policy.md
|
|
40
42
|
- Data access summary: Reads and writes PaPut content only after the user authorizes access through PaPut OAuth.
|
|
41
43
|
- Safety summary: Read-only tools are annotated. Write and destructive tools require clear user intent and should be confirmed by the client.
|
|
42
44
|
- Callback URL handling: Claude registers its redirect URI through dynamic client registration. PaPut validates the registered redirect URI during authorization instead of relying on a preconfigured static callback URL.
|
package/docs/privacy-policy.md
CHANGED
|
@@ -58,4 +58,4 @@ PaPut MCP uses OAuth for remote access and supports read/write tool annotations
|
|
|
58
58
|
|
|
59
59
|
## Contact
|
|
60
60
|
|
|
61
|
-
For privacy questions, use the contact method
|
|
61
|
+
For privacy questions, contact paput.dev@gmail.com (or use the contact method on https://paput.io).
|
|
@@ -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
|