paput-mcp 2.5.0 → 2.6.1
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 +35 -6
- package/dist/cli/index.js +29 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/login.js +385 -0
- package/dist/cli/login.js.map +1 -0
- package/dist/cli/logout.js +65 -0
- package/dist/cli/logout.js.map +1 -0
- package/dist/handlers/create-memo/handler.js +3 -23
- package/dist/handlers/create-memo/handler.js.map +1 -1
- package/dist/handlers/memo-projects.js +29 -0
- package/dist/handlers/memo-projects.js.map +1 -0
- package/dist/handlers/update-memo/handler.js +3 -23
- package/dist/handlers/update-memo/handler.js.map +1 -1
- package/dist/http.js +7 -3
- package/dist/http.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/schemas/tool-input.js +16 -0
- package/dist/schemas/tool-input.js.map +1 -1
- package/dist/server.js +5 -2
- package/dist/server.js.map +1 -1
- package/dist/services/api/client.js +7 -7
- package/dist/services/api/client.js.map +1 -1
- package/dist/services/oauth/local-auth.js +128 -0
- package/dist/services/oauth/local-auth.js.map +1 -0
- package/dist/tool.js +21 -7
- package/dist/tool.js.map +1 -1
- package/docs/directory-submission.md +15 -4
- package/docs/privacy-policy.md +5 -4
- package/docs/tools.md +11 -0
- package/docs/usage-examples.md +28 -5
- package/package.json +1 -1
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { searchSkillSheetProjects } from '../services/api/skill-sheet.js';
|
|
2
|
+
export async function resolveMemoProjects(args, apiClient, context) {
|
|
3
|
+
if (Array.isArray(args.projects)) {
|
|
4
|
+
return args.projects.filter((item) => typeof item === 'object' &&
|
|
5
|
+
item !== null &&
|
|
6
|
+
'id' in item &&
|
|
7
|
+
typeof item.id === 'number');
|
|
8
|
+
}
|
|
9
|
+
const projectMatch = getProjectMatch(args, context);
|
|
10
|
+
if (!projectMatch)
|
|
11
|
+
return undefined;
|
|
12
|
+
try {
|
|
13
|
+
const projects = await searchSkillSheetProjects(apiClient, projectMatch);
|
|
14
|
+
return projects.length > 0 ? [projects[0]] : undefined;
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
console.error('Failed to search projects:', error);
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
function getProjectMatch(args, context) {
|
|
22
|
+
const explicit = typeof args.project_match === 'string' ? args.project_match.trim() : '';
|
|
23
|
+
if (explicit)
|
|
24
|
+
return explicit;
|
|
25
|
+
if (context?.projectMatch)
|
|
26
|
+
return context.projectMatch;
|
|
27
|
+
return process.env.PAPUT_PROJECT_MATCH;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=memo-projects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memo-projects.js","sourceRoot":"","sources":["../../src/handlers/memo-projects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAK1E,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAA6B,EAC7B,SAAoB,EACpB,OAAqB;IAErB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CACzB,CAAC,IAAI,EAA4B,EAAE,CACjC,OAAO,IAAI,KAAK,QAAQ;YACxB,IAAI,KAAK,IAAI;YACb,IAAI,IAAI,IAAI;YACZ,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,CAC9B,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpD,IAAI,CAAC,YAAY;QAAE,OAAO,SAAS,CAAC;IAEpC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QACzE,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;QACnD,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CACtB,IAA6B,EAC7B,OAAqB;IAErB,MAAM,QAAQ,GACZ,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,IAAI,OAAO,EAAE,YAAY;QAAE,OAAO,OAAO,CAAC,YAAY,CAAC;IACvD,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;AACzC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { searchSkillSheetProjects } from '../../services/api/skill-sheet.js';
|
|
2
1
|
import { updateMemo } from '../../services/api/memo.js';
|
|
3
|
-
|
|
2
|
+
import { resolveMemoProjects } from '../memo-projects.js';
|
|
3
|
+
export async function handleUpdateMemo(args, apiClient, context) {
|
|
4
4
|
if (!args) {
|
|
5
5
|
return {
|
|
6
6
|
content: [
|
|
@@ -47,27 +47,7 @@ export async function handleUpdateMemo(args, apiClient) {
|
|
|
47
47
|
is_public: args.is_public,
|
|
48
48
|
categories,
|
|
49
49
|
};
|
|
50
|
-
|
|
51
|
-
if (Array.isArray(args.projects)) {
|
|
52
|
-
params.projects = args.projects.filter((item) => typeof item === 'object' &&
|
|
53
|
-
item !== null &&
|
|
54
|
-
'id' in item &&
|
|
55
|
-
typeof item.id === 'number');
|
|
56
|
-
}
|
|
57
|
-
else if (!args.projects && process.env.PAPUT_PROJECT_MATCH) {
|
|
58
|
-
// When configured, search for a project and link it automatically
|
|
59
|
-
try {
|
|
60
|
-
const projects = await searchSkillSheetProjects(apiClient, process.env.PAPUT_PROJECT_MATCH);
|
|
61
|
-
if (projects.length > 0) {
|
|
62
|
-
// Use the first matched project
|
|
63
|
-
params.projects = [projects[0]];
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
catch (error) {
|
|
67
|
-
// Continue updating the memo even if project search fails
|
|
68
|
-
console.error('Failed to search projects:', error);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
50
|
+
params.projects = await resolveMemoProjects(args, apiClient, context);
|
|
71
51
|
try {
|
|
72
52
|
const result = await updateMemo(apiClient, params);
|
|
73
53
|
if (!result.success) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/handlers/update-memo/handler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/handlers/update-memo/handler.ts"],"names":[],"mappings":"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"}
|
package/dist/http.js
CHANGED
|
@@ -10,7 +10,6 @@ export async function startHttpMcpServer(options = {}) {
|
|
|
10
10
|
const host = options.host ?? process.env.HOST;
|
|
11
11
|
const apiUrl = options.apiUrl ?? process.env.PAPUT_API_URL ?? 'https://api.paput.io';
|
|
12
12
|
const apiOrigin = new URL(apiUrl).origin;
|
|
13
|
-
const oauthRequired = options.oauthRequired ?? (!options.apiKey && !process.env.PAPUT_API_KEY);
|
|
14
13
|
const httpServer = createServer(async (req, res) => {
|
|
15
14
|
const requestUrl = new URL(req.url ?? '/', `http://${req.headers.host ?? 'localhost'}`);
|
|
16
15
|
const publicOrigin = getPublicOrigin(req, requestUrl);
|
|
@@ -47,11 +46,16 @@ export async function startHttpMcpServer(options = {}) {
|
|
|
47
46
|
return;
|
|
48
47
|
}
|
|
49
48
|
const accessToken = extractBearerToken(req.headers.authorization);
|
|
50
|
-
if (
|
|
49
|
+
if (!accessToken) {
|
|
51
50
|
sendOAuthChallenge(res, protectedResourceMetadataUrl);
|
|
52
51
|
return;
|
|
53
52
|
}
|
|
54
|
-
const mcpServer = createMcpServer({
|
|
53
|
+
const mcpServer = createMcpServer({
|
|
54
|
+
...options,
|
|
55
|
+
accessToken,
|
|
56
|
+
includeLocalTools: false,
|
|
57
|
+
projectMatch: options.projectMatch,
|
|
58
|
+
});
|
|
55
59
|
const transport = new StreamableHTTPServerTransport({
|
|
56
60
|
sessionIdGenerator: undefined,
|
|
57
61
|
});
|
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;
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { MCPServer } from './server.js';
|
|
3
3
|
import { runCli } from './cli/index.js';
|
|
4
|
-
if (runCli(process.argv.slice(2))) {
|
|
4
|
+
if (await runCli(process.argv.slice(2))) {
|
|
5
5
|
process.exit(process.exitCode || 0);
|
|
6
6
|
}
|
|
7
7
|
const server = new MCPServer();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,IAAI,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;AAC/B,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAC3B,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;IAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -73,6 +73,14 @@ const toolInputSchemas = {
|
|
|
73
73
|
.describe('Memo creation timestamp in ISO 8601 format, for example 2026-05-30T12:34:56Z')
|
|
74
74
|
.optional(),
|
|
75
75
|
categories: z.array(z.string()).describe('Memo categories').optional(),
|
|
76
|
+
projects: z
|
|
77
|
+
.array(projectReferenceSchema)
|
|
78
|
+
.describe('Projects to link when creating the memo')
|
|
79
|
+
.optional(),
|
|
80
|
+
project_match: z
|
|
81
|
+
.string()
|
|
82
|
+
.describe('Project title fragment to search and link when projects are not provided')
|
|
83
|
+
.optional(),
|
|
76
84
|
}),
|
|
77
85
|
paput_search_memo: z.object({
|
|
78
86
|
word: z.string().describe('Search keyword').optional(),
|
|
@@ -92,6 +100,14 @@ const toolInputSchemas = {
|
|
|
92
100
|
body: z.string().describe('Memo body'),
|
|
93
101
|
is_public: z.boolean().describe('Whether to publish the memo'),
|
|
94
102
|
categories: z.array(memoCategorySchema).describe('Categories').optional(),
|
|
103
|
+
projects: z
|
|
104
|
+
.array(projectReferenceSchema)
|
|
105
|
+
.describe('Projects to link when updating the memo')
|
|
106
|
+
.optional(),
|
|
107
|
+
project_match: z
|
|
108
|
+
.string()
|
|
109
|
+
.describe('Project title fragment to search and link when projects are not provided')
|
|
110
|
+
.optional(),
|
|
95
111
|
}),
|
|
96
112
|
paput_get_categories: emptySchema,
|
|
97
113
|
paput_create_note: z.object({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-input.js","sourceRoot":"","sources":["../../src/schemas/tool-input.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tool-input.js","sourceRoot":"","sources":["../../src/schemas/tool-input.ts"],"names":[],"mappings":"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"}
|
package/dist/server.js
CHANGED
|
@@ -6,7 +6,6 @@ import { setupErrorHandling } from './utils/error-handler.js';
|
|
|
6
6
|
const require = createRequire(import.meta.url);
|
|
7
7
|
const packageJson = require('../package.json');
|
|
8
8
|
export function createMcpServer(options = {}) {
|
|
9
|
-
const apiKey = options.apiKey ?? process.env.PAPUT_API_KEY;
|
|
10
9
|
const accessToken = options.accessToken;
|
|
11
10
|
const apiUrl = options.apiUrl ?? process.env.PAPUT_API_URL ?? 'https://api.paput.io';
|
|
12
11
|
const server = new Server({
|
|
@@ -18,7 +17,11 @@ export function createMcpServer(options = {}) {
|
|
|
18
17
|
resources: {},
|
|
19
18
|
},
|
|
20
19
|
});
|
|
21
|
-
setupTool(server, apiUrl,
|
|
20
|
+
setupTool(server, apiUrl, accessToken, {
|
|
21
|
+
projectMatch: options.projectMatch,
|
|
22
|
+
}, {
|
|
23
|
+
includeLocalTools: options.includeLocalTools,
|
|
24
|
+
});
|
|
22
25
|
setupErrorHandling(server);
|
|
23
26
|
return server;
|
|
24
27
|
}
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAStE,MAAM,UAAU,eAAe,CAAC,UAA4B,EAAE;IAC5D,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IACxC,MAAM,MAAM,GACV,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,sBAAsB,CAAC;IAExE,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;QACE,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,WAAW,CAAC,OAAO;KAC7B,EACD;QACE,YAAY,EAAE;YACZ,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,EAAE;SACd;KACF,CACF,CAAC;IAEF,SAAS,CACP,MAAM,EACN,MAAM,EACN,WAAW,EACX;QACE,YAAY,EAAE,OAAO,CAAC,YAAY;KACnC,EACD;QACE,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;KAC7C,CACF,CAAC;IACF,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAE3B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,OAAO,SAAS;IACZ,MAAM,CAAS;IAEvB,YAAY,UAA4B,EAAE;QACxC,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAE7C,SAAS,CAAC,OAAO,GAAG,CAAC,KAAc,EAAE,EAAE;YACrC,OAAO,CAAC,KAAK,CAAC,cAAc,KAAK,EAAE,CAAC,CAAC;QACvC,CAAC,CAAC;QAEF,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;CACF"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { getValidStoredAccessToken } from '../oauth/local-auth.js';
|
|
1
2
|
export async function apiRequest(config, endpoint, method, body) {
|
|
2
|
-
|
|
3
|
-
|
|
3
|
+
const accessToken = config.accessToken ?? (await getValidStoredAccessToken(config.apiUrl));
|
|
4
|
+
if (!accessToken) {
|
|
5
|
+
throw new Error('PaPut authentication is not configured. Run `paput-mcp login`.');
|
|
4
6
|
}
|
|
5
7
|
const url = endpoint.startsWith('http')
|
|
6
8
|
? endpoint
|
|
@@ -8,9 +10,7 @@ export async function apiRequest(config, endpoint, method, body) {
|
|
|
8
10
|
const options = {
|
|
9
11
|
method,
|
|
10
12
|
headers: {
|
|
11
|
-
|
|
12
|
-
? { Authorization: `Bearer ${config.accessToken}` }
|
|
13
|
-
: { 'X-API-Key': config.apiKey ?? '' }),
|
|
13
|
+
Authorization: `Bearer ${accessToken}`,
|
|
14
14
|
...(method !== 'GET' && method !== 'DELETE'
|
|
15
15
|
? { 'Content-Type': 'application/json' }
|
|
16
16
|
: {}),
|
|
@@ -42,8 +42,8 @@ export async function apiRequest(config, endpoint, method, body) {
|
|
|
42
42
|
return {};
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
|
-
export function createApiClient(apiUrl,
|
|
46
|
-
const config = { apiUrl,
|
|
45
|
+
export function createApiClient(apiUrl, accessToken) {
|
|
46
|
+
const config = { apiUrl, accessToken };
|
|
47
47
|
return {
|
|
48
48
|
get: (endpoint) => apiRequest(config, endpoint, 'GET'),
|
|
49
49
|
post: (endpoint, body) => apiRequest(config, endpoint, 'POST', body),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/services/api/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/services/api/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { chmodSync, rmSync, existsSync, mkdirSync, readFileSync, renameSync, writeFileSync, } from 'node:fs';
|
|
2
|
+
import { homedir } from 'node:os';
|
|
3
|
+
import { dirname, join } from 'node:path';
|
|
4
|
+
const REFRESH_SKEW_MS = 5 * 60 * 1000;
|
|
5
|
+
export function getOAuthSessionPath() {
|
|
6
|
+
const paputHome = process.env.PAPUT_HOME || join(homedir(), '.paput');
|
|
7
|
+
return join(paputHome, 'oauth.json');
|
|
8
|
+
}
|
|
9
|
+
export function readStoredOAuthSession() {
|
|
10
|
+
const path = getOAuthSessionPath();
|
|
11
|
+
if (!existsSync(path))
|
|
12
|
+
return undefined;
|
|
13
|
+
try {
|
|
14
|
+
const parsed = JSON.parse(readFileSync(path, 'utf8'));
|
|
15
|
+
if (!isStoredOAuthSession(parsed))
|
|
16
|
+
return undefined;
|
|
17
|
+
return parsed;
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export function writeStoredOAuthSession(session) {
|
|
24
|
+
const path = getOAuthSessionPath();
|
|
25
|
+
ensurePrivateDirectory(dirname(path));
|
|
26
|
+
const tmpPath = `${path}.tmp`;
|
|
27
|
+
writeFileSync(tmpPath, `${JSON.stringify(session, null, 2)}\n`, {
|
|
28
|
+
encoding: 'utf8',
|
|
29
|
+
mode: 0o600,
|
|
30
|
+
});
|
|
31
|
+
renameSync(tmpPath, path);
|
|
32
|
+
chmodSync(path, 0o600);
|
|
33
|
+
}
|
|
34
|
+
export function deleteStoredOAuthSession() {
|
|
35
|
+
rmSync(getOAuthSessionPath(), { force: true });
|
|
36
|
+
}
|
|
37
|
+
export async function getValidStoredAccessToken(apiUrl) {
|
|
38
|
+
const session = readStoredOAuthSession();
|
|
39
|
+
if (!session || !sameOrigin(session.api_url, apiUrl))
|
|
40
|
+
return undefined;
|
|
41
|
+
if (new Date(session.expires_at).getTime() > Date.now() + REFRESH_SKEW_MS) {
|
|
42
|
+
return session.access_token;
|
|
43
|
+
}
|
|
44
|
+
const refreshed = await refreshStoredOAuthSession(session);
|
|
45
|
+
return refreshed?.access_token;
|
|
46
|
+
}
|
|
47
|
+
async function refreshStoredOAuthSession(session) {
|
|
48
|
+
const metadata = await fetchAuthorizationServerMetadata(session.api_url);
|
|
49
|
+
const response = await fetch(metadata.token_endpoint, {
|
|
50
|
+
method: 'POST',
|
|
51
|
+
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
|
52
|
+
body: new URLSearchParams({
|
|
53
|
+
grant_type: 'refresh_token',
|
|
54
|
+
client_id: session.client_id,
|
|
55
|
+
refresh_token: session.refresh_token,
|
|
56
|
+
}),
|
|
57
|
+
});
|
|
58
|
+
if (!response.ok)
|
|
59
|
+
return undefined;
|
|
60
|
+
const token = (await response.json());
|
|
61
|
+
const refreshed = buildStoredOAuthSession({
|
|
62
|
+
apiUrl: session.api_url,
|
|
63
|
+
clientId: session.client_id,
|
|
64
|
+
issuer: metadata.issuer,
|
|
65
|
+
redirectUri: session.redirect_uri,
|
|
66
|
+
token,
|
|
67
|
+
});
|
|
68
|
+
writeStoredOAuthSession(refreshed);
|
|
69
|
+
return refreshed;
|
|
70
|
+
}
|
|
71
|
+
export async function fetchAuthorizationServerMetadata(apiUrl) {
|
|
72
|
+
const issuer = new URL(apiUrl).origin;
|
|
73
|
+
const response = await fetch(`${issuer}/.well-known/oauth-authorization-server`);
|
|
74
|
+
if (!response.ok) {
|
|
75
|
+
throw new Error(`Failed to load OAuth metadata: HTTP ${response.status}`);
|
|
76
|
+
}
|
|
77
|
+
const metadata = (await response.json());
|
|
78
|
+
if (!metadata.authorization_endpoint ||
|
|
79
|
+
!metadata.issuer ||
|
|
80
|
+
!metadata.registration_endpoint ||
|
|
81
|
+
!metadata.token_endpoint) {
|
|
82
|
+
throw new Error('OAuth metadata is missing required endpoints.');
|
|
83
|
+
}
|
|
84
|
+
return {
|
|
85
|
+
authorization_endpoint: metadata.authorization_endpoint,
|
|
86
|
+
issuer: metadata.issuer,
|
|
87
|
+
registration_endpoint: metadata.registration_endpoint,
|
|
88
|
+
revocation_endpoint: metadata.revocation_endpoint,
|
|
89
|
+
token_endpoint: metadata.token_endpoint,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
export function buildStoredOAuthSession(params) {
|
|
93
|
+
return {
|
|
94
|
+
access_token: params.token.access_token,
|
|
95
|
+
api_url: params.apiUrl,
|
|
96
|
+
client_id: params.clientId,
|
|
97
|
+
expires_at: new Date(Date.now() + params.token.expires_in * 1000).toISOString(),
|
|
98
|
+
issuer: params.issuer,
|
|
99
|
+
redirect_uri: params.redirectUri,
|
|
100
|
+
refresh_token: params.token.refresh_token,
|
|
101
|
+
scope: params.token.scope,
|
|
102
|
+
token_type: params.token.token_type,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
function isStoredOAuthSession(value) {
|
|
106
|
+
return (typeof value.access_token === 'string' &&
|
|
107
|
+
typeof value.api_url === 'string' &&
|
|
108
|
+
typeof value.client_id === 'string' &&
|
|
109
|
+
typeof value.expires_at === 'string' &&
|
|
110
|
+
typeof value.issuer === 'string' &&
|
|
111
|
+
typeof value.redirect_uri === 'string' &&
|
|
112
|
+
typeof value.refresh_token === 'string' &&
|
|
113
|
+
typeof value.scope === 'string' &&
|
|
114
|
+
typeof value.token_type === 'string');
|
|
115
|
+
}
|
|
116
|
+
function sameOrigin(left, right) {
|
|
117
|
+
try {
|
|
118
|
+
return new URL(left).origin === new URL(right).origin;
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
function ensurePrivateDirectory(path) {
|
|
125
|
+
mkdirSync(path, { mode: 0o700, recursive: true });
|
|
126
|
+
chmodSync(path, 0o700);
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=local-auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-auth.js","sourceRoot":"","sources":["../../../src/services/oauth/local-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,MAAM,EACN,UAAU,EACV,SAAS,EACT,YAAY,EACZ,UAAU,EACV,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAsBtC,MAAM,UAAU,mBAAmB;IACjC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;IACtE,OAAO,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,MAAM,IAAI,GAAG,mBAAmB,EAAE,CAAC;IACnC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAExC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAuB,CAAC;QAC5E,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;YAAE,OAAO,SAAS,CAAC;QACpD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAA2B;IACjE,MAAM,IAAI,GAAG,mBAAmB,EAAE,CAAC;IACnC,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAEtC,MAAM,OAAO,GAAG,GAAG,IAAI,MAAM,CAAC;IAC9B,aAAa,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;QAC9D,QAAQ,EAAE,MAAM;QAChB,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;IACH,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1B,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,MAAM,CAAC,mBAAmB,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,MAAc;IAEd,MAAM,OAAO,GAAG,sBAAsB,EAAE,CAAC;IACzC,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC;IAEvE,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,eAAe,EAAE,CAAC;QAC1E,OAAO,OAAO,CAAC,YAAY,CAAC;IAC9B,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAC3D,OAAO,SAAS,EAAE,YAAY,CAAC;AACjC,CAAC;AAED,KAAK,UAAU,yBAAyB,CACtC,OAA2B;IAE3B,MAAM,QAAQ,GAAG,MAAM,gCAAgC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACzE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,cAAc,EAAE;QACpD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;QAChE,IAAI,EAAE,IAAI,eAAe,CAAC;YACxB,UAAU,EAAE,eAAe;YAC3B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC,CAAC;KACH,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAO,SAAS,CAAC;IAEnC,MAAM,KAAK,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAkB,CAAC;IACvD,MAAM,SAAS,GAAG,uBAAuB,CAAC;QACxC,MAAM,EAAE,OAAO,CAAC,OAAO;QACvB,QAAQ,EAAE,OAAO,CAAC,SAAS;QAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,WAAW,EAAE,OAAO,CAAC,YAAY;QACjC,KAAK;KACN,CAAC,CAAC;IACH,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACnC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,MAAc;IAQd,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IACtC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,MAAM,yCAAyC,CACnD,CAAC;IACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,uCAAuC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAMtC,CAAC;IAEF,IACE,CAAC,QAAQ,CAAC,sBAAsB;QAChC,CAAC,QAAQ,CAAC,MAAM;QAChB,CAAC,QAAQ,CAAC,qBAAqB;QAC/B,CAAC,QAAQ,CAAC,cAAc,EACxB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IAED,OAAO;QACL,sBAAsB,EAAE,QAAQ,CAAC,sBAAsB;QACvD,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB;QACrD,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;QACjD,cAAc,EAAE,QAAQ,CAAC,cAAc;KACxC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAMvC;IACC,OAAO;QACL,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY;QACvC,OAAO,EAAE,MAAM,CAAC,MAAM;QACtB,SAAS,EAAE,MAAM,CAAC,QAAQ;QAC1B,UAAU,EAAE,IAAI,IAAI,CAClB,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAC5C,CAAC,WAAW,EAAE;QACf,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,YAAY,EAAE,MAAM,CAAC,WAAW;QAChC,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa;QACzC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK;QACzB,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU;KACpC,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAyB;IACrD,OAAO,CACL,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ;QACtC,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;QACjC,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;QACnC,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ;QACpC,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;QAChC,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ;QACtC,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ;QACvC,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;QAC/B,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,CACrC,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,KAAa;IAC7C,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY;IAC1C,SAAS,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACzB,CAAC"}
|
package/dist/tool.js
CHANGED
|
@@ -2,9 +2,9 @@ import { CallToolRequestSchema, ListToolsRequestSchema, ListResourcesRequestSche
|
|
|
2
2
|
import { createApiClient } from './services/api/index.js';
|
|
3
3
|
import { getGeneratedInputSchema } from './schemas/tool-input.js';
|
|
4
4
|
import { createMemoTool, searchMemoTool, getMemoTool, updateMemoTool, getCategoriesTool, createNoteTool, searchNotesTool, getNoteTool, updateNoteTool, getSkillSheetTool, updateSkillSheetBasicInfoTool, updateSkillSheetSelfPrTool, setSkillSheetSkillsTool, upsertSkillSheetProjectTool, deleteSkillSheetProjectTool, cacheStatusTool, syncRemoteMemosTool, scanSessionsTool, getSessionTranscriptTool, addKnowledgeCandidatesTool, listPendingCandidatesTool, savePendingCandidateTool, discardPendingCandidateTool, } from './handlers/index.js';
|
|
5
|
-
export function setupTool(server, apiUrl,
|
|
6
|
-
const apiClient = createApiClient(apiUrl,
|
|
7
|
-
const tools = getRegisteredTools();
|
|
5
|
+
export function setupTool(server, apiUrl, accessToken, context = {}, registeredToolsOptions = {}) {
|
|
6
|
+
const apiClient = createApiClient(apiUrl, accessToken);
|
|
7
|
+
const tools = getRegisteredTools(registeredToolsOptions);
|
|
8
8
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
9
9
|
tools: tools.map((tool) => tool.definition),
|
|
10
10
|
}));
|
|
@@ -21,7 +21,7 @@ export function setupTool(server, apiUrl, apiKey, accessToken) {
|
|
|
21
21
|
isError: true,
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
|
-
return await tool.handler(request.params.arguments, apiClient);
|
|
24
|
+
return await tool.handler(request.params.arguments, apiClient, context);
|
|
25
25
|
});
|
|
26
26
|
// Handler that lists resources
|
|
27
27
|
server.setRequestHandler(ListResourcesRequestSchema, async () => ({
|
|
@@ -64,8 +64,9 @@ export function setupTool(server, apiUrl, apiKey, accessToken) {
|
|
|
64
64
|
};
|
|
65
65
|
});
|
|
66
66
|
}
|
|
67
|
-
export function getRegisteredTools() {
|
|
68
|
-
|
|
67
|
+
export function getRegisteredTools(options = {}) {
|
|
68
|
+
const includeLocalTools = options.includeLocalTools ?? true;
|
|
69
|
+
const tools = [
|
|
69
70
|
createMemoTool,
|
|
70
71
|
searchMemoTool,
|
|
71
72
|
getMemoTool,
|
|
@@ -89,7 +90,10 @@ export function getRegisteredTools() {
|
|
|
89
90
|
listPendingCandidatesTool,
|
|
90
91
|
savePendingCandidateTool,
|
|
91
92
|
discardPendingCandidateTool,
|
|
92
|
-
]
|
|
93
|
+
];
|
|
94
|
+
return tools
|
|
95
|
+
.filter((tool) => includeLocalTools || !isLocalOnlyTool(tool.definition.name))
|
|
96
|
+
.map(withToolAnnotations);
|
|
93
97
|
}
|
|
94
98
|
function withToolAnnotations(tool) {
|
|
95
99
|
const name = tool.definition.name;
|
|
@@ -134,4 +138,14 @@ function isIdempotentTool(name) {
|
|
|
134
138
|
name.startsWith('paput_update_') ||
|
|
135
139
|
name === 'paput_set_skill_sheet_skills');
|
|
136
140
|
}
|
|
141
|
+
function isLocalOnlyTool(name) {
|
|
142
|
+
return (name === 'paput_cache_status' ||
|
|
143
|
+
name === 'paput_sync_remote_memos' ||
|
|
144
|
+
name === 'paput_scan_sessions' ||
|
|
145
|
+
name === 'paput_get_session_transcript' ||
|
|
146
|
+
name === 'paput_add_knowledge_candidates' ||
|
|
147
|
+
name === 'paput_list_pending_candidates' ||
|
|
148
|
+
name === 'paput_save_pending_candidate' ||
|
|
149
|
+
name === 'paput_discard_pending_candidate');
|
|
150
|
+
}
|
|
137
151
|
//# sourceMappingURL=tool.js.map
|
package/dist/tool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EACL,cAAc,EACd,cAAc,EACd,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,6BAA6B,EAC7B,0BAA0B,EAC1B,uBAAuB,EACvB,2BAA2B,EAC3B,2BAA2B,EAC3B,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACxB,0BAA0B,EAC1B,yBAAyB,EACzB,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,15 +39,20 @@ Recommended listing details:
|
|
|
39
39
|
- Category: Productivity, knowledge management, developer tools
|
|
40
40
|
- Data access summary: Reads and writes PaPut content only after the user authorizes access through PaPut OAuth.
|
|
41
41
|
- Safety summary: Read-only tools are annotated. Write and destructive tools require clear user intent and should be confirmed by the client.
|
|
42
|
+
- 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.
|
|
42
43
|
|
|
43
44
|
Validation checklist:
|
|
44
45
|
|
|
46
|
+
Status: verified with Claude custom connector UI.
|
|
47
|
+
|
|
45
48
|
1. Add `https://mcp.paput.io` as a remote MCP connector in Claude.
|
|
46
49
|
2. Complete the PaPut OAuth consent flow.
|
|
47
50
|
3. Confirm `tools/list` returns PaPut tools.
|
|
48
51
|
4. Call a read-only tool such as `paput_get_categories`.
|
|
49
52
|
5. Call a search tool such as `paput_search_memo` with a low `limit`.
|
|
50
|
-
6.
|
|
53
|
+
6. Call one write tool with test-safe content.
|
|
54
|
+
7. Confirm write/destructive tools show user confirmation before execution.
|
|
55
|
+
8. Confirm the created or changed data is visible in PaPut.
|
|
51
56
|
|
|
52
57
|
## ChatGPT Developer Mode Preparation
|
|
53
58
|
|
|
@@ -59,9 +64,13 @@ Recommended listing details:
|
|
|
59
64
|
- Transport: Streamable HTTP
|
|
60
65
|
- Tool access: Full MCP tools, data-only, no UI widgets
|
|
61
66
|
- Scopes: `paput.read paput.write`
|
|
67
|
+
- Description: Connect PaPut to ChatGPT so you can search, read, create, and organize your PaPut memos, notes, skill sheet, and reusable knowledge. PaPut MCP uses OAuth and only accesses your PaPut data after you authorize the connection.
|
|
68
|
+
- Callback URL handling: ChatGPT should register its redirect URI through dynamic client registration. PaPut validates registered redirect URIs before issuing authorization codes.
|
|
62
69
|
|
|
63
70
|
Developer Mode validation checklist:
|
|
64
71
|
|
|
72
|
+
Status: verified with ChatGPT Developer Mode.
|
|
73
|
+
|
|
65
74
|
1. Enable Developer Mode in ChatGPT settings.
|
|
66
75
|
2. Create an app for the remote MCP server URL `https://mcp.paput.io`.
|
|
67
76
|
3. Use OAuth without static credentials so dynamic client registration is exercised.
|
|
@@ -71,6 +80,7 @@ Developer Mode validation checklist:
|
|
|
71
80
|
7. Prompt: `Use the PaPut app to get my categories. Do not use other tools.`
|
|
72
81
|
8. Confirm `paput_get_categories` succeeds.
|
|
73
82
|
9. Prompt a write action in a test-safe way and confirm the client asks for approval before execution.
|
|
83
|
+
10. Confirm the created or changed data is visible in PaPut.
|
|
74
84
|
|
|
75
85
|
## Submission Positioning
|
|
76
86
|
|
|
@@ -83,9 +93,10 @@ PaPut MCP should be submitted as a data-only MCP connector. It should not reques
|
|
|
83
93
|
|
|
84
94
|
## Public References
|
|
85
95
|
|
|
86
|
-
- Privacy Policy:
|
|
87
|
-
- Usage Examples:
|
|
88
|
-
- Tools And Use Cases:
|
|
96
|
+
- Privacy Policy: https://github.com/mizulba-dev/paput-mcp/blob/main/docs/privacy-policy.md
|
|
97
|
+
- Usage Examples: https://github.com/mizulba-dev/paput-mcp/blob/main/docs/usage-examples.md
|
|
98
|
+
- Tools And Use Cases: https://github.com/mizulba-dev/paput-mcp/blob/main/docs/tools.md
|
|
99
|
+
- Directory Submission Notes: https://github.com/mizulba-dev/paput-mcp/blob/main/docs/directory-submission.md
|
|
89
100
|
- OpenAI ChatGPT Developer Mode documentation: https://platform.openai.com/docs/guides/developer-mode
|
|
90
101
|
- OpenAI MCP documentation: https://platform.openai.com/docs/mcp/
|
|
91
102
|
- Anthropic remote MCP connector documentation: https://support.anthropic.com/en/articles/11175166-getting-started-with-custom-integrations-using-remote-mcp
|