@iamjameslennon/ddb-mcp 2.3.0

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.
Files changed (66) hide show
  1. package/README.md +520 -0
  2. package/dist/auth.d.ts +3 -0
  3. package/dist/auth.d.ts.map +1 -0
  4. package/dist/auth.js +69 -0
  5. package/dist/auth.js.map +1 -0
  6. package/dist/browser.d.ts +9 -0
  7. package/dist/browser.d.ts.map +1 -0
  8. package/dist/browser.js +68 -0
  9. package/dist/browser.js.map +1 -0
  10. package/dist/cache.d.ts +18 -0
  11. package/dist/cache.d.ts.map +1 -0
  12. package/dist/cache.js +45 -0
  13. package/dist/cache.js.map +1 -0
  14. package/dist/index.d.ts +2 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +654 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/open5e.d.ts +74 -0
  19. package/dist/open5e.d.ts.map +1 -0
  20. package/dist/open5e.js +455 -0
  21. package/dist/open5e.js.map +1 -0
  22. package/dist/session-fetch.d.ts +35 -0
  23. package/dist/session-fetch.d.ts.map +1 -0
  24. package/dist/session-fetch.js +155 -0
  25. package/dist/session-fetch.js.map +1 -0
  26. package/dist/tools/campaign.d.ts +4 -0
  27. package/dist/tools/campaign.d.ts.map +1 -0
  28. package/dist/tools/campaign.js +72 -0
  29. package/dist/tools/campaign.js.map +1 -0
  30. package/dist/tools/character.d.ts +21 -0
  31. package/dist/tools/character.d.ts.map +1 -0
  32. package/dist/tools/character.js +1128 -0
  33. package/dist/tools/character.js.map +1 -0
  34. package/dist/tools/encounter.d.ts +22 -0
  35. package/dist/tools/encounter.d.ts.map +1 -0
  36. package/dist/tools/encounter.js +453 -0
  37. package/dist/tools/encounter.js.map +1 -0
  38. package/dist/tools/library.d.ts +4 -0
  39. package/dist/tools/library.d.ts.map +1 -0
  40. package/dist/tools/library.js +112 -0
  41. package/dist/tools/library.js.map +1 -0
  42. package/dist/tools/monster.d.ts +27 -0
  43. package/dist/tools/monster.d.ts.map +1 -0
  44. package/dist/tools/monster.js +378 -0
  45. package/dist/tools/monster.js.map +1 -0
  46. package/dist/tools/navigate.d.ts +5 -0
  47. package/dist/tools/navigate.d.ts.map +1 -0
  48. package/dist/tools/navigate.js +67 -0
  49. package/dist/tools/navigate.js.map +1 -0
  50. package/dist/tools/reference.d.ts +58 -0
  51. package/dist/tools/reference.d.ts.map +1 -0
  52. package/dist/tools/reference.js +850 -0
  53. package/dist/tools/reference.js.map +1 -0
  54. package/dist/tools/search.d.ts +4 -0
  55. package/dist/tools/search.d.ts.map +1 -0
  56. package/dist/tools/search.js +64 -0
  57. package/dist/tools/search.js.map +1 -0
  58. package/dist/tools/treasure.d.ts +12 -0
  59. package/dist/tools/treasure.d.ts.map +1 -0
  60. package/dist/tools/treasure.js +522 -0
  61. package/dist/tools/treasure.js.map +1 -0
  62. package/dist/utils.d.ts +5 -0
  63. package/dist/utils.d.ts.map +1 -0
  64. package/dist/utils.js +21 -0
  65. package/dist/utils.js.map +1 -0
  66. package/package.json +36 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open5e.js","sourceRoot":"","sources":["../src/open5e.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * session-fetch.ts
3
+ *
4
+ * Reads the Playwright-saved session cookies from disk and injects them into
5
+ * native Node fetch calls, so API requests can be made without launching a
6
+ * browser at all.
7
+ *
8
+ * The session is created once by `ddb_login` (which still needs a browser for
9
+ * the OAuth flow) and then reused for all subsequent API calls.
10
+ */
11
+ export declare const SESSION_PATH: string;
12
+ /**
13
+ * Invalidate all in-memory caches. Must be called whenever the session file
14
+ * is overwritten (i.e. after a successful login / saveSession call).
15
+ */
16
+ export declare function invalidateSessionCache(): void;
17
+ /**
18
+ * Check whether we have a valid (non-expired) session on disk.
19
+ */
20
+ export declare function hasValidSession(): boolean;
21
+ /**
22
+ * Exchange session cookies for a short-lived cobalt JWT and return its decoded
23
+ * payload. The token contains the userId needed for character/campaign list APIs.
24
+ * The result is cached until 60 s before the token's exp claim.
25
+ */
26
+ export declare function getCobaltToken(): Promise<{
27
+ token: string;
28
+ userId: string;
29
+ }>;
30
+ /**
31
+ * Make an authenticated fetch request to the DnD Beyond API using cookies
32
+ * from the saved Playwright session — no browser required.
33
+ */
34
+ export declare function sessionFetch(url: string, options?: RequestInit): Promise<Response>;
35
+ //# sourceMappingURL=session-fetch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-fetch.d.ts","sourceRoot":"","sources":["../src/session-fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,eAAO,MAAM,YAAY,QAAwD,CAAC;AAuBlF;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAG7C;AAsCD;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAezC;AAED;;;;GAIG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CA2BjF;AA+BD;;;GAGG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAc5F"}
@@ -0,0 +1,155 @@
1
+ /**
2
+ * session-fetch.ts
3
+ *
4
+ * Reads the Playwright-saved session cookies from disk and injects them into
5
+ * native Node fetch calls, so API requests can be made without launching a
6
+ * browser at all.
7
+ *
8
+ * The session is created once by `ddb_login` (which still needs a browser for
9
+ * the OAuth flow) and then reused for all subsequent API calls.
10
+ */
11
+ import { readFileSync, existsSync } from "fs";
12
+ import { join } from "path";
13
+ import { homedir } from "os";
14
+ export const SESSION_PATH = join(homedir(), ".config", "ddb-mcp", "session.json");
15
+ // ── In-memory caches ──────────────────────────────────────────────────────────
16
+ // Module-level singleton state — intentional for a single-user MCP server.
17
+ // A new process gets a fresh cache; invalidateSessionCache() resets between logins.
18
+ // Session cookies are loaded once from disk and cached for the process lifetime.
19
+ // The cache is invalidated by invalidateSessionCache() which is called by
20
+ // saveSession() in browser.ts whenever a new session file is written.
21
+ let cookieCache = null;
22
+ // Cobalt JWT — short-lived but reusable across requests until near-expiry.
23
+ let cobaltTokenCache = null;
24
+ /**
25
+ * Invalidate all in-memory caches. Must be called whenever the session file
26
+ * is overwritten (i.e. after a successful login / saveSession call).
27
+ */
28
+ export function invalidateSessionCache() {
29
+ cookieCache = null;
30
+ cobaltTokenCache = null;
31
+ }
32
+ /**
33
+ * Load cookies from disk into the in-memory cache (if not already loaded).
34
+ * Throws if the session file does not exist.
35
+ */
36
+ function loadSessionCookies() {
37
+ if (cookieCache !== null)
38
+ return cookieCache;
39
+ if (!existsSync(SESSION_PATH)) {
40
+ throw new Error("No session found. Please run ddb_login first to authenticate.");
41
+ }
42
+ const session = JSON.parse(readFileSync(SESSION_PATH, "utf8"));
43
+ const loaded = session.cookies ?? [];
44
+ cookieCache = loaded;
45
+ return loaded;
46
+ }
47
+ /**
48
+ * Build the Cookie header for a given URL from the cached session cookies,
49
+ * filtering to non-expired cookies that apply to the URL's hostname.
50
+ */
51
+ function getCookieHeader(url) {
52
+ const cookies = loadSessionCookies(); // throws if no session file
53
+ const now = Date.now() / 1000;
54
+ const { hostname } = new URL(url);
55
+ const relevant = cookies.filter((c) => {
56
+ // Playwright stores domain with leading dot for subdomain-wildcard cookies
57
+ const domain = c.domain.startsWith(".") ? c.domain.slice(1) : c.domain;
58
+ const domainMatches = hostname === domain || hostname.endsWith("." + domain);
59
+ const notExpired = c.expires < 0 || c.expires > now;
60
+ // Only forward cookies the server marked secure — we always use HTTPS.
61
+ return domainMatches && notExpired && c.secure;
62
+ });
63
+ return relevant.map((c) => `${c.name}=${c.value}`).join("; ");
64
+ }
65
+ /**
66
+ * Check whether we have a valid (non-expired) session on disk.
67
+ */
68
+ export function hasValidSession() {
69
+ if (!existsSync(SESSION_PATH))
70
+ return false;
71
+ try {
72
+ const cookies = loadSessionCookies();
73
+ const now = Date.now() / 1000;
74
+ // Consider valid if at least one non-session, non-expired DnD Beyond cookie exists
75
+ return cookies.some((c) => c.domain.includes("dndbeyond.com") &&
76
+ c.expires > now &&
77
+ c.secure);
78
+ }
79
+ catch {
80
+ return false;
81
+ }
82
+ }
83
+ /**
84
+ * Exchange session cookies for a short-lived cobalt JWT and return its decoded
85
+ * payload. The token contains the userId needed for character/campaign list APIs.
86
+ * The result is cached until 60 s before the token's exp claim.
87
+ */
88
+ export async function getCobaltToken() {
89
+ const now = Date.now() / 1000;
90
+ if (cobaltTokenCache && cobaltTokenCache.expiresAt > now + 60) {
91
+ return { token: cobaltTokenCache.token, userId: cobaltTokenCache.userId };
92
+ }
93
+ const resp = await sessionFetch("https://auth-service.dndbeyond.com/v1/cobalt-token", {
94
+ method: "POST",
95
+ });
96
+ if (!resp.ok)
97
+ throw new Error(`cobalt-token request failed: ${resp.status}`);
98
+ const { token } = await resp.json();
99
+ // JWT payload is base64url-encoded — decode it to extract the userId claim
100
+ const parts = token.split(".");
101
+ if (parts.length < 3)
102
+ throw new Error("cobalt-token response is not a valid JWT");
103
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
104
+ let payload;
105
+ try {
106
+ payload = JSON.parse(Buffer.from(parts[1], "base64url").toString("utf8"));
107
+ }
108
+ catch (e) {
109
+ throw new Error("Failed to decode cobalt token payload: " + (e instanceof Error ? e.message : String(e)));
110
+ }
111
+ const userId = payload["http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier"] ?? "";
112
+ if (!userId)
113
+ throw new Error("Could not extract userId from cobalt token");
114
+ const expiresAt = payload.exp ?? (now + 3600);
115
+ cobaltTokenCache = { token, userId, expiresAt };
116
+ return { token, userId };
117
+ }
118
+ const RETRYABLE_STATUS_CODES = new Set([429, 500, 502, 503]);
119
+ const NON_RETRYABLE_STATUS_CODES = new Set([401, 403, 404]);
120
+ async function fetchWithRetry(url, options, maxRetries = 3, baseDelayMs = 1000) {
121
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
122
+ const resp = await fetch(url, options);
123
+ if (resp.ok || NON_RETRYABLE_STATUS_CODES.has(resp.status)) {
124
+ return resp;
125
+ }
126
+ if (RETRYABLE_STATUS_CODES.has(resp.status)) {
127
+ if (attempt === maxRetries)
128
+ return resp;
129
+ const delay = baseDelayMs * Math.pow(2, attempt);
130
+ process.stderr.write(`[ddb-mcp] ${resp.status} from ${url} — retrying in ${delay}ms (attempt ${attempt + 1}/${maxRetries})\n`);
131
+ await new Promise((resolve) => setTimeout(resolve, delay));
132
+ continue;
133
+ }
134
+ return resp;
135
+ }
136
+ throw new Error("Unreachable");
137
+ }
138
+ /**
139
+ * Make an authenticated fetch request to the DnD Beyond API using cookies
140
+ * from the saved Playwright session — no browser required.
141
+ */
142
+ export async function sessionFetch(url, options = {}) {
143
+ const cookieHeader = getCookieHeader(url);
144
+ return fetchWithRetry(url, {
145
+ ...options,
146
+ headers: {
147
+ Accept: "application/json",
148
+ "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36",
149
+ ...options.headers,
150
+ // Cookie must come last so callers can't accidentally override it
151
+ Cookie: cookieHeader,
152
+ },
153
+ });
154
+ }
155
+ //# sourceMappingURL=session-fetch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-fetch.js","sourceRoot":"","sources":["../src/session-fetch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { BrowserContext } from "playwright";
2
+ export declare function getCampaign(context: BrowserContext, campaignId: string): Promise<string>;
3
+ export declare function listMyCampaigns(context: BrowserContext): Promise<string>;
4
+ //# sourceMappingURL=campaign.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"campaign.d.ts","sourceRoot":"","sources":["../../src/tools/campaign.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAI5C,wBAAsB,WAAW,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA8C9F;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CA4B9E"}
@@ -0,0 +1,72 @@
1
+ import { getPage } from "../browser.js";
2
+ import { hasValidSession } from "../session-fetch.js";
3
+ export async function getCampaign(context, campaignId) {
4
+ const page = await getPage(context);
5
+ if (!hasValidSession()) {
6
+ throw new Error("Not logged in. Please run ddb_login first.");
7
+ }
8
+ await page.goto(`https://www.dndbeyond.com/campaigns/${campaignId}`, {
9
+ waitUntil: "domcontentloaded",
10
+ timeout: 30000,
11
+ });
12
+ await page.waitForSelector("h1.page-title, .ddb-campaigns-detail", { timeout: 15000 }).catch(() => { });
13
+ const campaign = await page.evaluate(() => {
14
+ const data = {};
15
+ // Campaign name
16
+ const name = document.querySelector("h1.page-title")?.textContent?.trim();
17
+ if (name)
18
+ data["name"] = name;
19
+ // DM/Owner
20
+ const dm = document.querySelector("span.user-interactions-profile-nickname")?.textContent?.trim();
21
+ if (dm)
22
+ data["dungeonMaster"] = dm;
23
+ // Campaign description — first substantial <p> in the campaign detail body
24
+ const descEl = Array.from(document.querySelectorAll(".ddb-campaigns-detail p"))
25
+ .find((el) => (el.textContent?.trim().length ?? 0) > 50);
26
+ if (descEl)
27
+ data["description"] = descEl.textContent?.trim();
28
+ // Active characters
29
+ const characters = [];
30
+ document.querySelectorAll("li.ddb-campaigns-character-card-wrapper").forEach((el) => {
31
+ const charName = el.querySelector(".ddb-campaigns-character-card-header-upper-character-info-primary")?.textContent?.trim() ?? "";
32
+ const secondaries = el.querySelectorAll(".ddb-campaigns-character-card-header-upper-character-info-secondary");
33
+ const summary = secondaries[0]?.textContent?.trim() ?? "";
34
+ const playerRaw = secondaries[1]?.textContent?.trim() ?? "";
35
+ const player = playerRaw.replace(/^Player:\s*/i, "");
36
+ const charLink = el.querySelector("a.ddb-campaigns-character-card-header-upper-details-link")?.href ?? "";
37
+ if (charName)
38
+ characters.push({ character: charName, level: summary, player, url: charLink });
39
+ });
40
+ if (characters.length)
41
+ data["characters"] = characters;
42
+ return data;
43
+ });
44
+ return JSON.stringify(campaign);
45
+ }
46
+ export async function listMyCampaigns(context) {
47
+ const page = await getPage(context);
48
+ if (!hasValidSession()) {
49
+ throw new Error("Not logged in. Please run ddb_login first.");
50
+ }
51
+ await page.goto("https://www.dndbeyond.com/my-campaigns", {
52
+ waitUntil: "domcontentloaded",
53
+ timeout: 30000,
54
+ });
55
+ await page.waitForSelector("li.ddb-campaigns-list-item-wrapper, .ddb-campaigns-list-content", { timeout: 15000 }).catch(() => { });
56
+ const campaigns = await page.evaluate(() => {
57
+ const list = [];
58
+ document.querySelectorAll("li.ddb-campaigns-list-item-wrapper").forEach((el) => {
59
+ const name = el.querySelector(".ddb-campaigns-list-item-body-title")?.textContent?.trim() ?? "";
60
+ const link = el.querySelector("a.ddb-campaigns-list-item-footer-buttons-item[href*='/campaigns/']")?.href ?? "";
61
+ const idMatch = link.match(/\/campaigns\/(\d+)/);
62
+ const id = idMatch?.[1] ?? "";
63
+ const roleText = el.querySelector(".ddb-campaigns-list-item-body-role")?.textContent?.trim() ?? "";
64
+ const role = roleText.replace(/^Role:\s*/i, "").split("\n")[0].trim();
65
+ if (name && id)
66
+ list.push({ name, id, role, url: link });
67
+ });
68
+ return list;
69
+ });
70
+ return JSON.stringify(campaigns);
71
+ }
72
+ //# sourceMappingURL=campaign.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"campaign.js","sourceRoot":"","sources":["../../src/tools/campaign.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Resolve a character name to a numeric ID using the character list API.
3
+ * Resolution order: exact match → substring match → Levenshtein ≤3 on full
4
+ * name and individual words (e.g. "Throin" matches "Thorin Ironforge").
5
+ * Returns null if no match or multiple ambiguous fuzzy matches are found.
6
+ */
7
+ export declare function findCharacterByName(name: string): Promise<{
8
+ id: string;
9
+ name: string;
10
+ } | null>;
11
+ export declare function parseCharacterData(raw: Record<string, unknown>, sections?: "summary" | "combat" | "spells" | "inventory" | "features" | "full"): string;
12
+ export declare function parseCharacter(characterId: string, sections?: "summary" | "combat" | "spells" | "inventory" | "features" | "full"): Promise<string>;
13
+ /**
14
+ * Fetch raw character JSON from the DnD Beyond API.
15
+ * Uses saved session cookies — no browser needed after initial login.
16
+ */
17
+ export declare function getCharacter(characterId: string): Promise<string>;
18
+ export declare function downloadCharacter(characterId: string, outputPath?: string): Promise<string>;
19
+ export declare function listCharacters(): Promise<string>;
20
+ export declare function getDefinition(characterId: string, query: string): Promise<string>;
21
+ //# sourceMappingURL=character.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"character.d.ts","sourceRoot":"","sources":["../../src/tools/character.ts"],"names":[],"mappings":"AA4BA;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CA8BpG;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,QAAQ,GAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,MAAe,GACrF,MAAM,CAg1BR;AAED,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,QAAQ,GAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,MAAe,GACrF,OAAO,CAAC,MAAM,CAAC,CAIjB;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,CAyBjB;AAED,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,CAmCjB;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAkCtD;AA2MD,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,CAiBjB"}