# Pages Native (mcpb · pages-native-0.5.0.mcpb)

Native Apple Pages: guarded edits, templates, batches, recipe history and PDF previews.

- Trust score: 42/100 (low)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- mcpb · `pages-native-0.5.0.mcpb`: 42/100 (this document), [markdown](https://verifymcp.io/servers/viames-pages-native/pages-native.md), [page](https://verifymcp.io/servers/viames-pages-native/pages-native)

## Channel facts

- Registry: `mcpb`
- Package: `https://github.com/viames/pages-native/releases/download/v0.5.0/pages-native-0.5.0.mcpb`
- Transport: `stdio`
- SHA-256: `5c13cc4fab3f2b8c64a68cdee4590cc5293121f41fd6874c1d1ef63f87f062b6`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Supply Chain Security**: 0/100
  - No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.
  - Known CVEs could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).
  - Install-script risk not yet assessed.
  - Dependency health could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 15 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 55/100
  - AI-judged instruction clarity (fair).
  - Tool/resource definitions use about 3106 tokens (~86/item across 36 items; 36 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 57/100
  - Stability observed for 17 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 67/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 0% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 37 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### How do I install the Pages Native MCP server?

Pages Native ships as an MCPB bundle, a single file you download and open in an MCP host that supports MCPB bundles, such as Claude Desktop. The host reads the launch command from the bundle's own manifest, so there is no command to copy. Before opening it, check the file's SHA-256 matches the one the MCP registry declares for it, 5c13cc4fab3f2b8c64a68cdee4590cc5293121f41fd6874c1d1ef63f87f062b6; the commands to do that are on this page. If it does not match, do not open it.

- Download bundle: `https://github.com/viames/pages-native/releases/download/v0.5.0/pages-native-0.5.0.mcpb`
- SHA-256: `5c13cc4fab3f2b8c64a68cdee4590cc5293121f41fd6874c1d1ef63f87f062b6`

### Verify on macOS / Linux

```bash
echo "5c13cc4fab3f2b8c64a68cdee4590cc5293121f41fd6874c1d1ef63f87f062b6  pages-native-0.5.0.mcpb" | shasum -a 256 -c
```

### Verify on Windows (PowerShell)

```powershell
(Get-FileHash -Algorithm SHA256 .\pages-native-0.5.0.mcpb).Hash -eq "5c13cc4fab3f2b8c64a68cdee4590cc5293121f41fd6874c1d1ef63f87f062b6"
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-04 (score 42, +1)

No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-02 (score 41, +1)

No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-31 (score 40, +1)

No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-29 (score 39, +1)

No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-27 (score 38, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-24 (score 37, +1)

No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-22 (score 36, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-20 (score 35, +1)

- [security regression] Stability: 0.00 → unverified
- [functional regression] Schema quality: 65 → 86

## MCP tools (36)

### `pages_status` (~30 tokens)

Check Pages installation and native Automation. launch=false avoids launching a stopped app.

Input parameters:

- `launch` (boolean)

### `pages_diagnostics` (~32 tokens)

Read local Pages/API/PDFKit diagnostics. No document contents or network request.

Input parameters:

- `launch` (boolean)

### `pages_compatibility` (~38 tokens)

Compare local Pages/macOS/runtime diagnostics with recorded native evidence. Does not certify this Mac or change documents.

Input parameters:

- `launch` (boolean)

### `pages_documents` (~18 tokens)

List open native Pages documents and their explicit IDs.

### `pages_templates` (~20 tokens)

List native installed Pages templates with stable IDs and localized names.

### `pages_open` (~26 tokens)

Open an existing native .pages document. No conversion.

Input parameters:

- `path` (string, required)

### `pages_create` (~56 tokens)

Create a new .pages document from the native blank or an exact built-in template ID. Initial text replaces the new body only.

Input parameters:

- `path` (string, required)
- `template_id` (string)
- `text` (string)

### `pages_from_template` (~52 tokens)

Copy an opaque custom .pages prototype to a new path and open the copy. Reject unsaved open source changes; never save the source.

Input parameters:

- `path` (string, required)
- `source_path` (string, required)

### `pages_search` (~154 tokens)

Search literal text in API-exposed native text targets and formatted table cells, optionally formulas. Returns native-character positions for text and explicit table/cell references. Read only; no document format parsing. Limits: 100 targets, 2,000 cells, 100,000 total text characters. Scope overlap is reported, not deduplicated.

Input parameters:

- `case_sensitive` (boolean)
- `context` (integer)
- `document_id` (string, required)
- `include_formulas` (boolean)
- `max_results` (integer)
- `offset` (integer)
- `query` (string, required)
- `scopes` (array)
- `table_ranges` (array)
- `text_targets` (array)

### `pages_compose` (~123 tokens)

Preview/apply a guided recipe on a NEW opaque copy of a saved custom .pages prototype. Typed required/default values, exact literal occurrences OR native placeholder tags, optionally combined with explicit native table cells. Never edits/saves the source. Apply needs identical fields/paths and revision. On failure inspect the copy; operations are not transactional. Preview may briefly open the source for native reads.

Input parameters:

- `expected_revision` (string)
- `fields` (array, required)
- `mode` (string)
- `path` (string, required)
- `source_path` (string, required)

### `pages_recipes` (~49 tokens)

List a local reusable recipe library, or read a named definition and its revision. No Pages launch, document parsing or network.

Input parameters:

- `library_path` (string, required)
- `name` (string)

### `pages_recipe` (~124 tokens)

Preview/apply saving or deleting local recipe JSON. Stores definitions/defaults and a saved prototype fingerprint, never last-use values. Preserves immutable recipe history and deduplicated opaque prototypes. Restore creates a new current revision; delete retains history. Source paths are relative to the library for portability. Does not open or save Pages.

Input parameters:

- `expected_revision` (string)
- `library_path` (string, required)
- `mode` (string)
- `name` (string, required)
- `operation` (string, required)
- `recipe` (object)
- `version` (integer)

### `pages_recipe_history` (~75 tokens)

List immutable recipe revisions and deletion events, read one revision, or compare definition fields/description/prototype fingerprints. Reads local JSON only. Old pre-history prototype bytes may be unavailable.

Input parameters:

- `compare_version` (integer)
- `library_path` (string, required)
- `name` (string, required)
- `version` (integer)

### `pages_compose_batch` (~131 tokens)

Preview/apply up to 10 sequential NEW native documents from one current or historical saved recipe. All records are preflighted before any output. No overwrites or automatic retries. Per-item results; stop on error by default and always stop on uncertain native state.

Input parameters:

- `close_outputs` (boolean)
- `expected_revision` (string)
- `items` (array, required)
- `library_path` (string, required)
- `mode` (string)
- `name` (string, required)
- `on_error` (string)
- `source_path` (string)
- `version` (integer)

### `pages_compose_recipe` (~119 tokens)

Preview/apply a NEW native document from a saved recipe. Supply only field values; defaults/bindings come from the local library. Checks recipe revision and prototype bytes. An explicit source_path override relocates identical prototype bytes. Never edits the source.

Input parameters:

- `expected_revision` (string)
- `library_path` (string, required)
- `mode` (string)
- `name` (string, required)
- `path` (string, required)
- `source_path` (string)
- `values` (array)
- `version` (integer)

### `pages_save` (~31 tokens)

Save an already saved native document in place. Use create for new documents.

Input parameters:

- `document_id` (string, required)

### `pages_close` (~42 tokens)

Close an explicit document. save=true saves first; save=false explicitly discards unsaved changes.

Input parameters:

- `document_id` (string, required)
- `save` (boolean, required)

### `pages_inspect` (~32 tokens)

Read native layout mode, page/section counts, tables and object counts.

Input parameters:

- `document_id` (string, required)

### `pages_settings` (~76 tokens)

Read or change the native facing-pages setting. Body/layout mode conversion is not exposed. Defaults to preview; apply the identical request with expected_revision. Rechecks exposed native state before writing.

Input parameters:

- `document_id` (string, required)
- `expected_revision` (string)
- `facing_pages` (boolean)
- `mode` (string)

### `pages_read_text` (~62 tokens)

Read native text, character boundaries and paragraphs. Optional per-character native styles are bounded to 10,000 characters. Indices are 1-based.

Input parameters:

- `document_id` (string, required)
- `include_styles` (boolean)
- `target` (object)

### `pages_edit_text` (~73 tokens)

Preview literal or native-character range edits. Apply requires the identical request plus expected_revision. Uses native text ranges; not an atomic rollback.

Input parameters:

- `document_id` (string, required)
- `expected_revision` (string)
- `mode` (string)
- `operations` (array, required)
- `target` (object)

### `pages_format_text` (~106 tokens)

Set native font name, point size or RGB color on an explicit native character interval. Bold/italic use an appropriate font face. Defaults to preview; apply the identical request with expected_revision. Rechecks exposed native state before writing.

Input parameters:

- `document_id` (string, required)
- `expected_revision` (string)
- `first` (integer, required)
- `last` (integer, required)
- `mode` (string)
- `style` (object, required)
- `target` (object)

### `pages_placeholders` (~30 tokens)

List script-tagged placeholder text exposed by the native document collection.

Input parameters:

- `document_id` (string, required)

### `pages_fill_placeholders` (~62 tokens)

Preview/apply exact script-tag replacements in templates. Requires a revision for apply; duplicate tags require expected_count.

Input parameters:

- `document_id` (string, required)
- `expected_revision` (string)
- `fields` (array, required)
- `mode` (string)

### `pages_table` (~180 tokens)

Create, update/resize or delete a native table. Indices identify the document-wide table collection. Shrinking/deleting can remove data. Defaults to preview; apply the identical request with expected_revision. Rechecks exposed native state before writing.

Input parameters:

- `columns` (integer)
- `document_id` (string, required)
- `expected_revision` (string)
- `footer_rows` (integer)
- `header_columns` (integer)
- `header_rows` (integer)
- `height` (number)
- `locked` (boolean)
- `mode` (string)
- `name` (string)
- `operation` (string, required)
- `page` (integer)
- `rows` (integer)
- `table` (integer)
- `width` (number)
- `x` (number)
- `y` (number)

### `pages_read_cells` (~52 tokens)

Read up to 2,000 native table cells, with formulas, calculated values and exact base formats.

Input parameters:

- `document_id` (string, required)
- `range` (string, required)
- `table` (integer, required)

### `pages_write_cells` (~130 tokens)

Write a rectangular native table range. Boolean cells/checkbox controls are not supported by Pages. Strings are literal; formulas use {formula:"=..."}; dates use {date:"ISO"}. Preserves compatible base formats and verifies readback. Defaults to preview; apply the identical request with expected_revision. Rechecks exposed native state before writing.

Input parameters:

- `document_id` (string, required)
- `expected_revision` (string)
- `mode` (string)
- `preserve_format` (boolean)
- `start` (string, required)
- `table` (integer, required)
- `values` (array, required)

### `pages_format_cells` (~142 tokens)

Set native range base format, fonts, colors, alignment and wrapping. Defaults to preview; apply the identical request with expected_revision. Rechecks exposed native state before writing.

Input parameters:

- `alignment` (string)
- `background_color` (array)
- `document_id` (string, required)
- `expected_revision` (string)
- `font_name` (string)
- `font_size` (number)
- `format` (string)
- `mode` (string)
- `range` (string, required)
- `table` (integer, required)
- `text_color` (array)
- `text_wrap` (boolean)
- `vertical_alignment` (string)

### `pages_sort_table` (~92 tokens)

Sort native table rows by an explicit 1-based column. Inspect formulas and row ordering afterwards. Defaults to preview; apply the identical request with expected_revision. Rechecks exposed native state before writing.

Input parameters:

- `column` (integer, required)
- `direction` (string, required)
- `document_id` (string, required)
- `expected_revision` (string)
- `mode` (string)
- `table` (integer, required)

### `pages_merge_cells` (~89 tokens)

Merge or unmerge an explicit native table range; merging can discard cell contents. Defaults to preview; apply the identical request with expected_revision. Rechecks exposed native state before writing.

Input parameters:

- `document_id` (string, required)
- `expected_revision` (string)
- `mode` (string)
- `operation` (string, required)
- `range` (string, required)
- `table` (integer, required)

### `pages_table_dimensions` (~103 tokens)

Set row height or column width for a bounded 1-based native axis interval. Defaults to preview; apply the identical request with expected_revision. Rechecks exposed native state before writing.

Input parameters:

- `axis` (string, required)
- `document_id` (string, required)
- `expected_revision` (string)
- `first` (integer, required)
- `last` (integer, required)
- `mode` (string)
- `size` (number, required)
- `table` (integer, required)

### `pages_objects` (~35 tokens)

List document-wide native text, shape, image, chart, line and group indices and geometry.

Input parameters:

- `document_id` (string, required)

### `pages_object` (~208 tokens)

Create text/shape/image on a page, or update/delete existing native object geometry. Existing rich text should be changed through edit_text. Chart series/type/title are not exposed. Defaults to preview; apply the identical request with expected_revision. Rechecks exposed native state before writing.

Input parameters:

- `color` (array)
- `description` (string)
- `document_id` (string, required)
- `expected_revision` (string)
- `font_name` (string)
- `font_size` (number)
- `height` (number)
- `index` (integer)
- `kind` (string, required)
- `locked` (boolean)
- `mode` (string)
- `opacity` (integer)
- `operation` (string, required)
- `page` (integer)
- `rotation` (integer)
- `source_path` (string)
- `text` (string)
- `width` (number)
- `x` (number)
- `y` (number)

### `pages_export` (~62 tokens)

Explicit native PDF, plain text, RTF, EPUB or Word export to a new path; editing remains native .pages.

Input parameters:

- `document_id` (string, required)
- `format` (string, required)
- `options` (object)
- `path` (string, required)

### `pages_preview` (~65 tokens)

Export native PDF and render a selected page to PNG through macOS PDFKit, without screenshots or Accessibility. Both paths must be new.

Input parameters:

- `document_id` (string, required)
- `max_dimension` (integer)
- `page` (integer)
- `path` (string, required)

### `pages_backup` (~56 tokens)

Copy the saved native bytes/package to a new .pages path and verify its hash. Modified documents require explicit save_first=true.

Input parameters:

- `document_id` (string, required)
- `path` (string, required)
- `save_first` (boolean)

## Diagnostics

Captured diagnostic sections: Provenance. The full working is on the page: https://verifymcp.io/servers/viames-pages-native/pages-native#diagnostics

## Score history

- 2026-11-05: 42
- 2026-11-04: 42
- 2026-11-03: 41
- 2026-11-02: 41
- 2026-11-01: 40
- 2026-10-31: 40
- 2026-10-30: 39
- 2026-10-29: 39
- 2026-10-28: 38
- 2026-10-27: 38
- 2026-10-26: 37
- 2026-10-25: 37
- 2026-10-24: 37
- 2026-10-23: 36
- 2026-10-22: 36
- 2026-10-21: 35
- 2026-10-20: 35
- 2026-10-19: 34

## Common questions

### What is the Pages Native MCP server?

Pages Native is an MCP server listed in the public MCP registry as io.github.viames/pages-native. Native Apple Pages: guarded edits, templates, batches, recipe history and PDF previews. This page covers its MCPB bundle (https://github.com/viames/pages-native/releases/download/v0.5.0/pages-native-0.5.0.mcpb).

### Is the Pages Native MCP server safe to use?

Pages Native scores 42 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Pages Native MCP server expose?

Pages Native exposes 36 tools: pages_status, pages_diagnostics, pages_compatibility, pages_documents, pages_templates, and 31 more. Their descriptions and schemas cost roughly 2,775 tokens of context every time the server is loaded.

### What licence is the Pages Native MCP server under?

Pages Native declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- Repository: https://github.com/viames/pages-native
- Website: https://viames.github.io/pages-native/
- Changelog RSS feed: https://verifymcp.io/servers/viames-pages-native/pages-native.xml
- Changelog JSON feed: https://verifymcp.io/servers/viames-pages-native/pages-native.json
- HTML version of this page: https://verifymcp.io/servers/viames-pages-native/pages-native
