pagebolt-mcp 1.9.1 → 1.10.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pagebolt-mcp",
3
- "version": "1.9.1",
3
+ "version": "1.10.0",
4
4
  "description": "MCP server for PageBolt — take screenshots, generate PDFs, create OG images, inspect pages, record demo videos with Audio Guide narration, from AI coding assistants like Claude, Cursor, and Windsurf.",
5
5
  "main": "src/index.mjs",
6
6
  "module": "src/index.mjs",
package/server.json CHANGED
@@ -6,12 +6,12 @@
6
6
  "url": "https://github.com/Custodia-Admin/pagebolt-mcp",
7
7
  "source": "github"
8
8
  },
9
- "version": "1.9.1",
9
+ "version": "1.10.0",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "identifier": "pagebolt-mcp",
14
- "version": "1.9.1",
14
+ "version": "1.10.0",
15
15
  "transport": {
16
16
  "type": "stdio"
17
17
  },
package/src/index.mjs CHANGED
@@ -61,7 +61,7 @@ async function callApi(endpoint, options = {}) {
61
61
  const method = options.method || 'GET';
62
62
  const headers = {
63
63
  'x-api-key': API_KEY,
64
- 'user-agent': 'pagebolt-mcp/1.9.1',
64
+ 'user-agent': 'pagebolt-mcp/1.10.0',
65
65
  ...(options.body ? { 'Content-Type': 'application/json' } : {}),
66
66
  };
67
67
  const body = options.body ? JSON.stringify(options.body) : undefined;
@@ -284,7 +284,7 @@ Use blockBanners on almost every request to get clean captures. Combine blockAds
284
284
  function createConfiguredServer() {
285
285
  const srv = new McpServer({
286
286
  name: 'pagebolt',
287
- version: '1.9.1',
287
+ version: '1.10.0',
288
288
  }, {
289
289
  instructions: SERVER_INSTRUCTIONS,
290
290
  });
@@ -896,10 +896,12 @@ server.tool(
896
896
  blockTrackers: z.boolean().optional().describe('Block tracking scripts'),
897
897
  blockRequests: z.array(z.string()).optional().describe('URL patterns to block'),
898
898
  blockResources: z.array(z.string()).optional().describe('Resource types to block'),
899
+ // ── Session ──
900
+ session_id: z.string().optional().describe('Inspect the LIVE state of a persistent session (Starter+; create with create_session) instead of a fresh page load. Omit url to inspect the page exactly as the last run_sequence/take_screenshot left it; pass url to navigate within the session first. Ideal for re-perceiving between agent actions.'),
899
901
  },
900
902
  async (params) => {
901
- if (!params.url && !params.html) {
902
- return { content: [{ type: 'text', text: 'Error: Either "url" or "html" is required.' }], isError: true };
903
+ if (!params.url && !params.html && !params.session_id) {
904
+ return { content: [{ type: 'text', text: 'Error: Either "url", "html", or "session_id" is required.' }], isError: true };
903
905
  }
904
906
 
905
907
  try {
@@ -1026,10 +1028,12 @@ server.tool(
1026
1028
  blockAds: z.boolean().optional().describe('Block advertisements on the page'),
1027
1029
  blockChats: z.boolean().optional().describe('Block live chat widgets'),
1028
1030
  blockTrackers: z.boolean().optional().describe('Block tracking scripts'),
1031
+ // ── Session ──
1032
+ session_id: z.string().optional().describe('Observe the LIVE state of a persistent session (Starter+; create with create_session) instead of a fresh page load. Omit url to observe the page exactly as the last run_sequence/take_screenshot left it; pass url to navigate within the session first. This is the recommended way to re-perceive between agent actions and recover from popovers/redirects.'),
1029
1033
  },
1030
1034
  async (params) => {
1031
- if (!params.url && !params.html) {
1032
- return { content: [{ type: 'text', text: 'Error: Either "url" or "html" is required.' }], isError: true };
1035
+ if (!params.url && !params.html && !params.session_id) {
1036
+ return { content: [{ type: 'text', text: 'Error: Either "url", "html", or "session_id" is required.' }], isError: true };
1033
1037
  }
1034
1038
 
1035
1039
  try {