@kajidog/connpass-mcp-server 0.1.0 → 0.1.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 +37 -1
- package/dist/tools/events.d.ts +11 -11
- package/dist/tools/groups.d.ts +11 -11
- package/dist/tools/index.d.ts +12 -12
- package/dist/tools/users.d.ts +11 -11
- package/package.json +4 -6
- package/dist/auth/jwt.d.ts +0 -23
- package/dist/auth/jwt.d.ts.map +0 -1
- package/dist/auth/jwt.js +0 -143
- package/dist/auth/jwt.js.map +0 -1
- package/dist/session.d.ts +0 -9
- package/dist/session.d.ts.map +0 -1
- package/dist/session.js +0 -58
- package/dist/session.js.map +0 -1
- package/dist/transports/stdio.d.ts +0 -38
- package/dist/transports/stdio.d.ts.map +0 -1
- package/dist/transports/stdio.js +0 -29
- package/dist/transports/stdio.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,8 +1,44 @@
|
|
|
1
1
|
# Connpass MCP Server
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/@kajidog/connpass-mcp-server)
|
|
4
|
+
|
|
3
5
|
Connpass MCP Server は、MCP (Model Context Protocol) 経由で Connpass API を扱うためのツール群です。AI やエージェントが理解しやすいパラメータ設計になっており、自然言語に近い入力でイベント・グループ・ユーザー情報を取得できます。
|
|
4
6
|
|
|
5
|
-
##
|
|
7
|
+
## インストール
|
|
8
|
+
|
|
9
|
+
### npx で即座に起動
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# HTTP トランスポートで起動(デフォルト)
|
|
13
|
+
npx @kajidog/connpass-mcp-server
|
|
14
|
+
|
|
15
|
+
# ポート指定
|
|
16
|
+
npx @kajidog/connpass-mcp-server --port 8080
|
|
17
|
+
|
|
18
|
+
# SSE トランスポートで起動
|
|
19
|
+
npx @kajidog/connpass-mcp-server --transport sse
|
|
20
|
+
|
|
21
|
+
# ヘルプを表示
|
|
22
|
+
npx @kajidog/connpass-mcp-server --help
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
環境変数を設定する場合:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
CONNPASS_API_KEY=your-api-key npx @kajidog/connpass-mcp-server
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### グローバルインストール
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# インストール
|
|
35
|
+
npm install -g @kajidog/connpass-mcp-server
|
|
36
|
+
|
|
37
|
+
# 実行
|
|
38
|
+
connpass-mcp-server
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## 開発用セットアップ
|
|
6
42
|
|
|
7
43
|
1. 依存関係をインストールします。
|
|
8
44
|
|
package/dist/tools/events.d.ts
CHANGED
|
@@ -27,20 +27,29 @@ export declare const eventTools: {
|
|
|
27
27
|
inputSchema: {
|
|
28
28
|
[x: string]: unknown;
|
|
29
29
|
type: "object";
|
|
30
|
+
required?: string[] | undefined;
|
|
30
31
|
properties?: {
|
|
31
32
|
[x: string]: unknown;
|
|
32
33
|
} | undefined;
|
|
33
|
-
required?: string[] | undefined;
|
|
34
34
|
};
|
|
35
35
|
title?: string | undefined;
|
|
36
36
|
description?: string | undefined;
|
|
37
|
+
_meta?: {
|
|
38
|
+
[x: string]: unknown;
|
|
39
|
+
} | undefined;
|
|
40
|
+
icons?: {
|
|
41
|
+
[x: string]: unknown;
|
|
42
|
+
src: string;
|
|
43
|
+
mimeType?: string | undefined;
|
|
44
|
+
sizes?: string[] | undefined;
|
|
45
|
+
}[] | undefined;
|
|
37
46
|
outputSchema?: {
|
|
38
47
|
[x: string]: unknown;
|
|
39
48
|
type: "object";
|
|
49
|
+
required?: string[] | undefined;
|
|
40
50
|
properties?: {
|
|
41
51
|
[x: string]: unknown;
|
|
42
52
|
} | undefined;
|
|
43
|
-
required?: string[] | undefined;
|
|
44
53
|
} | undefined;
|
|
45
54
|
annotations?: {
|
|
46
55
|
[x: string]: unknown;
|
|
@@ -50,15 +59,6 @@ export declare const eventTools: {
|
|
|
50
59
|
idempotentHint?: boolean | undefined;
|
|
51
60
|
openWorldHint?: boolean | undefined;
|
|
52
61
|
} | undefined;
|
|
53
|
-
_meta?: {
|
|
54
|
-
[x: string]: unknown;
|
|
55
|
-
} | undefined;
|
|
56
|
-
icons?: {
|
|
57
|
-
[x: string]: unknown;
|
|
58
|
-
src: string;
|
|
59
|
-
mimeType?: string | undefined;
|
|
60
|
-
sizes?: string[] | undefined;
|
|
61
|
-
}[] | undefined;
|
|
62
62
|
}[];
|
|
63
63
|
export declare function isEventTool(name: string): name is EventToolName;
|
|
64
64
|
export declare function handleEventTool(name: EventToolName, args: unknown, connpassClient: ConnpassClient): Promise<import("./formatting.js").FormattedEventsResponse | import("./formatting.js").FormattedPresentationsResponse | {
|
package/dist/tools/groups.d.ts
CHANGED
|
@@ -9,20 +9,29 @@ export declare const groupTools: {
|
|
|
9
9
|
inputSchema: {
|
|
10
10
|
[x: string]: unknown;
|
|
11
11
|
type: "object";
|
|
12
|
+
required?: string[] | undefined;
|
|
12
13
|
properties?: {
|
|
13
14
|
[x: string]: unknown;
|
|
14
15
|
} | undefined;
|
|
15
|
-
required?: string[] | undefined;
|
|
16
16
|
};
|
|
17
17
|
title?: string | undefined;
|
|
18
18
|
description?: string | undefined;
|
|
19
|
+
_meta?: {
|
|
20
|
+
[x: string]: unknown;
|
|
21
|
+
} | undefined;
|
|
22
|
+
icons?: {
|
|
23
|
+
[x: string]: unknown;
|
|
24
|
+
src: string;
|
|
25
|
+
mimeType?: string | undefined;
|
|
26
|
+
sizes?: string[] | undefined;
|
|
27
|
+
}[] | undefined;
|
|
19
28
|
outputSchema?: {
|
|
20
29
|
[x: string]: unknown;
|
|
21
30
|
type: "object";
|
|
31
|
+
required?: string[] | undefined;
|
|
22
32
|
properties?: {
|
|
23
33
|
[x: string]: unknown;
|
|
24
34
|
} | undefined;
|
|
25
|
-
required?: string[] | undefined;
|
|
26
35
|
} | undefined;
|
|
27
36
|
annotations?: {
|
|
28
37
|
[x: string]: unknown;
|
|
@@ -32,15 +41,6 @@ export declare const groupTools: {
|
|
|
32
41
|
idempotentHint?: boolean | undefined;
|
|
33
42
|
openWorldHint?: boolean | undefined;
|
|
34
43
|
} | undefined;
|
|
35
|
-
_meta?: {
|
|
36
|
-
[x: string]: unknown;
|
|
37
|
-
} | undefined;
|
|
38
|
-
icons?: {
|
|
39
|
-
[x: string]: unknown;
|
|
40
|
-
src: string;
|
|
41
|
-
mimeType?: string | undefined;
|
|
42
|
-
sizes?: string[] | undefined;
|
|
43
|
-
}[] | undefined;
|
|
44
44
|
}[];
|
|
45
45
|
export declare function isGroupTool(name: string): name is GroupToolName;
|
|
46
46
|
export declare function handleGroupTool(name: GroupToolName, args: unknown, connpassClient: ConnpassClient): Promise<import("@kajidog/connpass-api-client").GroupsResponse>;
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -5,20 +5,29 @@ export declare const tools: {
|
|
|
5
5
|
inputSchema: {
|
|
6
6
|
[x: string]: unknown;
|
|
7
7
|
type: "object";
|
|
8
|
+
required?: string[] | undefined;
|
|
8
9
|
properties?: {
|
|
9
10
|
[x: string]: unknown;
|
|
10
11
|
} | undefined;
|
|
11
|
-
required?: string[] | undefined;
|
|
12
12
|
};
|
|
13
13
|
title?: string | undefined;
|
|
14
14
|
description?: string | undefined;
|
|
15
|
+
_meta?: {
|
|
16
|
+
[x: string]: unknown;
|
|
17
|
+
} | undefined;
|
|
18
|
+
icons?: {
|
|
19
|
+
[x: string]: unknown;
|
|
20
|
+
src: string;
|
|
21
|
+
mimeType?: string | undefined;
|
|
22
|
+
sizes?: string[] | undefined;
|
|
23
|
+
}[] | undefined;
|
|
15
24
|
outputSchema?: {
|
|
16
25
|
[x: string]: unknown;
|
|
17
26
|
type: "object";
|
|
27
|
+
required?: string[] | undefined;
|
|
18
28
|
properties?: {
|
|
19
29
|
[x: string]: unknown;
|
|
20
30
|
} | undefined;
|
|
21
|
-
required?: string[] | undefined;
|
|
22
31
|
} | undefined;
|
|
23
32
|
annotations?: {
|
|
24
33
|
[x: string]: unknown;
|
|
@@ -28,17 +37,8 @@ export declare const tools: {
|
|
|
28
37
|
idempotentHint?: boolean | undefined;
|
|
29
38
|
openWorldHint?: boolean | undefined;
|
|
30
39
|
} | undefined;
|
|
31
|
-
_meta?: {
|
|
32
|
-
[x: string]: unknown;
|
|
33
|
-
} | undefined;
|
|
34
|
-
icons?: {
|
|
35
|
-
[x: string]: unknown;
|
|
36
|
-
src: string;
|
|
37
|
-
mimeType?: string | undefined;
|
|
38
|
-
sizes?: string[] | undefined;
|
|
39
|
-
}[] | undefined;
|
|
40
40
|
}[];
|
|
41
|
-
export declare function handleToolCall(name: string, args: unknown, connpassClient: ConnpassClient): Promise<import("
|
|
41
|
+
export declare function handleToolCall(name: string, args: unknown, connpassClient: ConnpassClient): Promise<import("./formatting.js").FormattedEventsResponse | import("./formatting.js").FormattedPresentationsResponse | import("@kajidog/connpass-api-client").EventsResponse | import("@kajidog/connpass-api-client").UsersResponse | {
|
|
42
42
|
userId: number;
|
|
43
43
|
today: {
|
|
44
44
|
date: string;
|
package/dist/tools/users.d.ts
CHANGED
|
@@ -12,20 +12,29 @@ export declare const userTools: {
|
|
|
12
12
|
inputSchema: {
|
|
13
13
|
[x: string]: unknown;
|
|
14
14
|
type: "object";
|
|
15
|
+
required?: string[] | undefined;
|
|
15
16
|
properties?: {
|
|
16
17
|
[x: string]: unknown;
|
|
17
18
|
} | undefined;
|
|
18
|
-
required?: string[] | undefined;
|
|
19
19
|
};
|
|
20
20
|
title?: string | undefined;
|
|
21
21
|
description?: string | undefined;
|
|
22
|
+
_meta?: {
|
|
23
|
+
[x: string]: unknown;
|
|
24
|
+
} | undefined;
|
|
25
|
+
icons?: {
|
|
26
|
+
[x: string]: unknown;
|
|
27
|
+
src: string;
|
|
28
|
+
mimeType?: string | undefined;
|
|
29
|
+
sizes?: string[] | undefined;
|
|
30
|
+
}[] | undefined;
|
|
22
31
|
outputSchema?: {
|
|
23
32
|
[x: string]: unknown;
|
|
24
33
|
type: "object";
|
|
34
|
+
required?: string[] | undefined;
|
|
25
35
|
properties?: {
|
|
26
36
|
[x: string]: unknown;
|
|
27
37
|
} | undefined;
|
|
28
|
-
required?: string[] | undefined;
|
|
29
38
|
} | undefined;
|
|
30
39
|
annotations?: {
|
|
31
40
|
[x: string]: unknown;
|
|
@@ -35,15 +44,6 @@ export declare const userTools: {
|
|
|
35
44
|
idempotentHint?: boolean | undefined;
|
|
36
45
|
openWorldHint?: boolean | undefined;
|
|
37
46
|
} | undefined;
|
|
38
|
-
_meta?: {
|
|
39
|
-
[x: string]: unknown;
|
|
40
|
-
} | undefined;
|
|
41
|
-
icons?: {
|
|
42
|
-
[x: string]: unknown;
|
|
43
|
-
src: string;
|
|
44
|
-
mimeType?: string | undefined;
|
|
45
|
-
sizes?: string[] | undefined;
|
|
46
|
-
}[] | undefined;
|
|
47
47
|
}[];
|
|
48
48
|
export declare function isUserTool(name: string): name is UserToolName;
|
|
49
49
|
export declare function handleUserTool(name: UserToolName, args: unknown, connpassClient: ConnpassClient): Promise<import("@kajidog/connpass-api-client").EventsResponse | import("@kajidog/connpass-api-client").UsersResponse | import("@kajidog/connpass-api-client").GroupsResponse>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kajidog/connpass-mcp-server",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "MCP server for Connpass API integration",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
12
12
|
"zod": "^3.22.0",
|
|
13
|
-
"@kajidog/connpass-api-client": "0.1.
|
|
13
|
+
"@kajidog/connpass-api-client": "0.1.1"
|
|
14
14
|
},
|
|
15
15
|
"devDependencies": {
|
|
16
16
|
"@types/node": "^20.0.0",
|
|
@@ -18,10 +18,8 @@
|
|
|
18
18
|
},
|
|
19
19
|
"keywords": [
|
|
20
20
|
"mcp",
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"server",
|
|
24
|
-
"model-context-protocol"
|
|
21
|
+
"mcp-server",
|
|
22
|
+
"connpass"
|
|
25
23
|
],
|
|
26
24
|
"type": "commonjs",
|
|
27
25
|
"license": "MIT",
|
package/dist/auth/jwt.d.ts
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
export declare class JwtError extends Error {
|
|
2
|
-
constructor(message: string);
|
|
3
|
-
}
|
|
4
|
-
export interface JwtHeader extends Record<string, unknown> {
|
|
5
|
-
alg: string;
|
|
6
|
-
typ?: string;
|
|
7
|
-
}
|
|
8
|
-
export type JwtPayload = Record<string, unknown>;
|
|
9
|
-
export interface VerifyJwtOptions {
|
|
10
|
-
secret?: string;
|
|
11
|
-
issuer?: string;
|
|
12
|
-
audience?: string | string[];
|
|
13
|
-
clockToleranceSeconds?: number;
|
|
14
|
-
requireExpiration?: boolean;
|
|
15
|
-
}
|
|
16
|
-
export interface JwtVerificationResult {
|
|
17
|
-
header: JwtHeader;
|
|
18
|
-
payload: JwtPayload;
|
|
19
|
-
signatureValid: boolean;
|
|
20
|
-
}
|
|
21
|
-
export declare function verifyJwt(token: string, options: VerifyJwtOptions): JwtVerificationResult;
|
|
22
|
-
export declare function extractBearerToken(authorizationHeader: string | undefined): string | undefined;
|
|
23
|
-
//# sourceMappingURL=jwt.d.ts.map
|
package/dist/auth/jwt.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../src/auth/jwt.ts"],"names":[],"mappings":"AAEA,qBAAa,QAAS,SAAQ,KAAK;gBACrB,OAAO,EAAE,MAAM;CAI5B;AAED,MAAM,WAAW,SAAU,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACxD,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,UAAU,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;CACzB;AAyBD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,qBAAqB,CAoDzF;AA8DD,wBAAgB,kBAAkB,CAAC,mBAAmB,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAY9F"}
|
package/dist/auth/jwt.js
DELETED
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.JwtError = void 0;
|
|
4
|
-
exports.verifyJwt = verifyJwt;
|
|
5
|
-
exports.extractBearerToken = extractBearerToken;
|
|
6
|
-
const node_crypto_1 = require("node:crypto");
|
|
7
|
-
class JwtError extends Error {
|
|
8
|
-
constructor(message) {
|
|
9
|
-
super(message);
|
|
10
|
-
this.name = "JwtError";
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
exports.JwtError = JwtError;
|
|
14
|
-
function decodeBase64Url(input) {
|
|
15
|
-
const normalized = input.replace(/-/g, "+").replace(/_/g, "/");
|
|
16
|
-
const padLength = (4 - (normalized.length % 4)) % 4;
|
|
17
|
-
const padded = normalized + "=".repeat(padLength);
|
|
18
|
-
return Buffer.from(padded, "base64");
|
|
19
|
-
}
|
|
20
|
-
function parseJson(buffer, context) {
|
|
21
|
-
try {
|
|
22
|
-
const text = buffer.toString("utf8");
|
|
23
|
-
return JSON.parse(text);
|
|
24
|
-
}
|
|
25
|
-
catch (error) {
|
|
26
|
-
throw new JwtError(`Failed to parse JWT ${context}: ${error instanceof Error ? error.message : String(error)}`);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
function ensureString(value, name) {
|
|
30
|
-
if (typeof value !== "string" || value.length === 0) {
|
|
31
|
-
throw new JwtError(`JWT ${name} must be a non-empty string`);
|
|
32
|
-
}
|
|
33
|
-
return value;
|
|
34
|
-
}
|
|
35
|
-
function verifyJwt(token, options) {
|
|
36
|
-
const parts = token.split(".");
|
|
37
|
-
if (parts.length !== 3) {
|
|
38
|
-
throw new JwtError("JWT must have three parts");
|
|
39
|
-
}
|
|
40
|
-
const [encodedHeader, encodedPayload, encodedSignature] = parts;
|
|
41
|
-
const signingInput = `${encodedHeader}.${encodedPayload}`;
|
|
42
|
-
const header = parseJson(decodeBase64Url(encodedHeader), "header");
|
|
43
|
-
if (!header || typeof header !== "object") {
|
|
44
|
-
throw new JwtError("JWT header is not an object");
|
|
45
|
-
}
|
|
46
|
-
const payload = parseJson(decodeBase64Url(encodedPayload), "payload");
|
|
47
|
-
if (!payload || typeof payload !== "object") {
|
|
48
|
-
throw new JwtError("JWT payload is not an object");
|
|
49
|
-
}
|
|
50
|
-
const algorithm = ensureString(header.alg, "algorithm");
|
|
51
|
-
const secret = options.secret?.trim();
|
|
52
|
-
let signatureValid = false;
|
|
53
|
-
if (secret) {
|
|
54
|
-
if (algorithm !== "HS256") {
|
|
55
|
-
throw new JwtError(`Unsupported JWT algorithm: ${algorithm}`);
|
|
56
|
-
}
|
|
57
|
-
const expectedSignature = (0, node_crypto_1.createHmac)("sha256", secret).update(signingInput).digest();
|
|
58
|
-
const receivedSignature = decodeBase64Url(encodedSignature);
|
|
59
|
-
if (expectedSignature.length !== receivedSignature.length) {
|
|
60
|
-
signatureValid = false;
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
signatureValid = (0, node_crypto_1.timingSafeEqual)(expectedSignature, receivedSignature);
|
|
64
|
-
}
|
|
65
|
-
if (!signatureValid) {
|
|
66
|
-
throw new JwtError("JWT signature verification failed");
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
console.warn("[auth] CONNPASS_JWT_SECRET is not set; skipping signature verification");
|
|
71
|
-
}
|
|
72
|
-
validateRegisteredClaims(payload, options);
|
|
73
|
-
return {
|
|
74
|
-
header,
|
|
75
|
-
payload,
|
|
76
|
-
signatureValid,
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
function toArray(value) {
|
|
80
|
-
if (Array.isArray(value)) {
|
|
81
|
-
return value;
|
|
82
|
-
}
|
|
83
|
-
if (typeof value === "string") {
|
|
84
|
-
return [value];
|
|
85
|
-
}
|
|
86
|
-
return undefined;
|
|
87
|
-
}
|
|
88
|
-
function validateRegisteredClaims(payload, options) {
|
|
89
|
-
const tolerance = options.clockToleranceSeconds ?? 30;
|
|
90
|
-
const now = Math.floor(Date.now() / 1000);
|
|
91
|
-
const exp = payload.exp;
|
|
92
|
-
if (exp !== undefined) {
|
|
93
|
-
const expiry = Number(exp);
|
|
94
|
-
if (!Number.isFinite(expiry)) {
|
|
95
|
-
throw new JwtError("JWT exp claim is not a number");
|
|
96
|
-
}
|
|
97
|
-
if (now - tolerance > expiry) {
|
|
98
|
-
throw new JwtError("JWT has expired");
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
else if (options.requireExpiration) {
|
|
102
|
-
throw new JwtError("JWT exp claim is required");
|
|
103
|
-
}
|
|
104
|
-
const nbf = payload.nbf;
|
|
105
|
-
if (nbf !== undefined) {
|
|
106
|
-
const notBefore = Number(nbf);
|
|
107
|
-
if (!Number.isFinite(notBefore)) {
|
|
108
|
-
throw new JwtError("JWT nbf claim is not a number");
|
|
109
|
-
}
|
|
110
|
-
if (now + tolerance < notBefore) {
|
|
111
|
-
throw new JwtError("JWT is not yet valid (nbf)");
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
const issuer = options.issuer;
|
|
115
|
-
if (issuer) {
|
|
116
|
-
const iss = ensureString(payload.iss, "iss claim");
|
|
117
|
-
if (iss !== issuer) {
|
|
118
|
-
throw new JwtError(`Invalid JWT issuer: expected '${issuer}'`);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
const audience = toArray(options.audience);
|
|
122
|
-
if (audience && audience.length > 0) {
|
|
123
|
-
const rawAud = payload.aud;
|
|
124
|
-
const audValues = Array.isArray(rawAud) ? rawAud : [rawAud];
|
|
125
|
-
const normalized = audValues.filter((value) => typeof value === "string");
|
|
126
|
-
const hasMatch = normalized.some((value) => audience.includes(value));
|
|
127
|
-
if (!hasMatch) {
|
|
128
|
-
throw new JwtError("JWT audience mismatch");
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
function extractBearerToken(authorizationHeader) {
|
|
133
|
-
if (!authorizationHeader) {
|
|
134
|
-
return undefined;
|
|
135
|
-
}
|
|
136
|
-
const match = authorizationHeader.match(/^Bearer\s+(.+)$/i);
|
|
137
|
-
if (!match) {
|
|
138
|
-
return undefined;
|
|
139
|
-
}
|
|
140
|
-
const token = match[1]?.trim();
|
|
141
|
-
return token || undefined;
|
|
142
|
-
}
|
|
143
|
-
//# sourceMappingURL=jwt.js.map
|
package/dist/auth/jwt.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../src/auth/jwt.ts"],"names":[],"mappings":"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"}
|
package/dist/session.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { JwtPayload } from "./auth/jwt.js";
|
|
2
|
-
export interface SessionContext {
|
|
3
|
-
connpassUserId?: number;
|
|
4
|
-
enableAppsSdkOutput: boolean;
|
|
5
|
-
claims: JwtPayload;
|
|
6
|
-
}
|
|
7
|
-
export declare const anonymousSession: SessionContext;
|
|
8
|
-
export declare function buildSessionContextFromJwt(payload: JwtPayload): SessionContext;
|
|
9
|
-
//# sourceMappingURL=session.d.ts.map
|
package/dist/session.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,WAAW,cAAc;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,eAAO,MAAM,gBAAgB,EAAE,cAI9B,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,UAAU,GAAG,cAAc,CAM9E"}
|
package/dist/session.js
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.anonymousSession = void 0;
|
|
4
|
-
exports.buildSessionContextFromJwt = buildSessionContextFromJwt;
|
|
5
|
-
exports.anonymousSession = {
|
|
6
|
-
connpassUserId: undefined,
|
|
7
|
-
enableAppsSdkOutput: false,
|
|
8
|
-
claims: {},
|
|
9
|
-
};
|
|
10
|
-
function buildSessionContextFromJwt(payload) {
|
|
11
|
-
return {
|
|
12
|
-
connpassUserId: parseConnpassUserId(payload.connpass_user_id),
|
|
13
|
-
enableAppsSdkOutput: parseEnableAppsSdkOutput(payload.enable_apps_sdk_output),
|
|
14
|
-
claims: payload,
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
function parseConnpassUserId(raw) {
|
|
18
|
-
if (raw === undefined || raw === null) {
|
|
19
|
-
return undefined;
|
|
20
|
-
}
|
|
21
|
-
if (typeof raw === "number") {
|
|
22
|
-
if (!Number.isInteger(raw) || raw <= 0) {
|
|
23
|
-
return undefined;
|
|
24
|
-
}
|
|
25
|
-
return raw;
|
|
26
|
-
}
|
|
27
|
-
if (typeof raw === "string") {
|
|
28
|
-
const trimmed = raw.trim();
|
|
29
|
-
if (trimmed.length === 0) {
|
|
30
|
-
return undefined;
|
|
31
|
-
}
|
|
32
|
-
const numeric = Number(trimmed);
|
|
33
|
-
if (!Number.isInteger(numeric) || numeric <= 0) {
|
|
34
|
-
return undefined;
|
|
35
|
-
}
|
|
36
|
-
return numeric;
|
|
37
|
-
}
|
|
38
|
-
return undefined;
|
|
39
|
-
}
|
|
40
|
-
function parseEnableAppsSdkOutput(raw) {
|
|
41
|
-
if (raw === undefined || raw === null) {
|
|
42
|
-
return false;
|
|
43
|
-
}
|
|
44
|
-
if (typeof raw === "boolean") {
|
|
45
|
-
return raw;
|
|
46
|
-
}
|
|
47
|
-
if (typeof raw === "string") {
|
|
48
|
-
const normalized = raw.trim().toLowerCase();
|
|
49
|
-
if (normalized === "true" || normalized === "1" || normalized === "yes" || normalized === "on") {
|
|
50
|
-
return true;
|
|
51
|
-
}
|
|
52
|
-
if (normalized === "false" || normalized === "0" || normalized === "no" || normalized === "off") {
|
|
53
|
-
return false;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
return false;
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=session.js.map
|
package/dist/session.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":";;;AAcA,gEAMC;AAZY,QAAA,gBAAgB,GAAmB;IAC9C,cAAc,EAAE,SAAS;IACzB,mBAAmB,EAAE,KAAK;IAC1B,MAAM,EAAE,EAAE;CACX,CAAC;AAEF,SAAgB,0BAA0B,CAAC,OAAmB;IAC5D,OAAO;QACL,cAAc,EAAE,mBAAmB,CAAC,OAAO,CAAC,gBAAgB,CAAC;QAC7D,mBAAmB,EAAE,wBAAwB,CAAC,OAAO,CAAC,sBAAsB,CAAC;QAC7E,MAAM,EAAE,OAAO;KAChB,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAY;IACvC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACtC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;YACvC,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;YAC/C,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,wBAAwB,CAAC,GAAY;IAC5C,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC5C,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YAC/F,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,UAAU,KAAK,OAAO,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;YAChG,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
2
|
-
import type { Server as McpServer } from "@modelcontextprotocol/sdk/server/index.js";
|
|
3
|
-
export type Logger = {
|
|
4
|
-
info?: (...args: unknown[]) => void;
|
|
5
|
-
error?: (...args: unknown[]) => void;
|
|
6
|
-
};
|
|
7
|
-
export type StartStdioServerOptions = {
|
|
8
|
-
createMcpServer: () => McpServer;
|
|
9
|
-
logger?: Logger;
|
|
10
|
-
};
|
|
11
|
-
export declare function startStdioServer(options: StartStdioServerOptions): Promise<{
|
|
12
|
-
readonly server: McpServer<{
|
|
13
|
-
method: string;
|
|
14
|
-
params?: {
|
|
15
|
-
[x: string]: unknown;
|
|
16
|
-
_meta?: {
|
|
17
|
-
[x: string]: unknown;
|
|
18
|
-
progressToken?: string | number | undefined;
|
|
19
|
-
} | undefined;
|
|
20
|
-
} | undefined;
|
|
21
|
-
}, {
|
|
22
|
-
method: string;
|
|
23
|
-
params?: {
|
|
24
|
-
[x: string]: unknown;
|
|
25
|
-
_meta?: {
|
|
26
|
-
[x: string]: unknown;
|
|
27
|
-
} | undefined;
|
|
28
|
-
} | undefined;
|
|
29
|
-
}, {
|
|
30
|
-
[x: string]: unknown;
|
|
31
|
-
_meta?: {
|
|
32
|
-
[x: string]: unknown;
|
|
33
|
-
} | undefined;
|
|
34
|
-
}>;
|
|
35
|
-
readonly transport: StdioServerTransport;
|
|
36
|
-
readonly close: () => Promise<void>;
|
|
37
|
-
}>;
|
|
38
|
-
//# sourceMappingURL=stdio.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stdio.d.ts","sourceRoot":"","sources":["../../src/transports/stdio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,KAAK,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,2CAA2C,CAAC;AAErF,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACpC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,eAAe,EAAE,MAAM,SAAS,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAOF,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;GAyBtE"}
|
package/dist/transports/stdio.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.startStdioServer = startStdioServer;
|
|
4
|
-
const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
5
|
-
const defaultLogger = {
|
|
6
|
-
info: (...args) => console.error(...args),
|
|
7
|
-
error: (...args) => console.error(...args),
|
|
8
|
-
};
|
|
9
|
-
async function startStdioServer(options) {
|
|
10
|
-
const { createMcpServer, logger } = options;
|
|
11
|
-
const log = {
|
|
12
|
-
...defaultLogger,
|
|
13
|
-
...(logger ?? {}),
|
|
14
|
-
};
|
|
15
|
-
log.info("Connpass MCP Server starting with Stdio transport");
|
|
16
|
-
const server = createMcpServer();
|
|
17
|
-
const transport = new stdio_js_1.StdioServerTransport();
|
|
18
|
-
await server.connect(transport);
|
|
19
|
-
log.info("Connpass MCP Server connected via Stdio");
|
|
20
|
-
return {
|
|
21
|
-
server,
|
|
22
|
-
transport,
|
|
23
|
-
close: async () => {
|
|
24
|
-
await transport.close();
|
|
25
|
-
await server.close();
|
|
26
|
-
},
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=stdio.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stdio.js","sourceRoot":"","sources":["../../src/transports/stdio.ts"],"names":[],"mappings":";;AAkBA,4CAyBC;AA3CD,wEAAiF;AAajF,MAAM,aAAa,GAAqB;IACtC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IACzC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;CAC3C,CAAC;AAEK,KAAK,UAAU,gBAAgB,CAAC,OAAgC;IACrE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE5C,MAAM,GAAG,GAAqB;QAC5B,GAAG,aAAa;QAChB,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;KAClB,CAAC;IAEF,GAAG,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;IAE9D,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;IAE7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,GAAG,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IAEpD,OAAO;QACL,MAAM;QACN,SAAS;QACT,KAAK,EAAE,KAAK,IAAI,EAAE;YAChB,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;YACxB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;KACO,CAAC;AACb,CAAC"}
|