Skip to main content
Glama

Server Details

Convert Apple Numbers (.numbers) to Excel (.xlsx) in the browser — first sheet free. MCP v1.1.0 (Streamable HTTP) exposes four tools: open_numbers2excel (open site / Stripe checkout intents; conversion is browser-local), get_site_info (product overview, pricing, URLs; read-only), get_pro_status (Stripe subscription_id sub_… status), get_unlock_from_session (Checkout session_id cs_… → entitlement). Path A: MCP does not accept or upload files.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.9/5.0

Scored across 4 tools

Disambiguation4/5

The four tools each have a distinct role: two entitlement lookups keyed by different id types (sub_ vs cs_), one static info fetch, and one browser-open action. get_site_info and open_numbers2excel both surface URLs/checkout links, which could cause slight confusion, but descriptions clarify that one is read-only info and the other launches the product.

Naming Consistency4/5

Three tools follow get_<noun> and one uses open_<noun>, which is a reasonable verb deviation given it triggers a browser. All snake_case and predictable; only the verb set is not uniform.

Tool Count5/5

Four tools for a narrow product surface (entitlements + info + launch) is well scoped with no filler. Each tool covers a distinct user need.

Completeness4/5

The surface covers entitlement checks (subscription and one-time), product/pricing info, and launching the conversion flow. The intentional absence of a file-conversion tool means agents hit a dead end for actual conversion, but that limitation is clearly documented rather than an oversight.

Available Tools

4 tools
get_pro_statusAInspect

Check Pro subscription status for a Stripe subscription_id (sub_…). Reuses the same logic as GET /api/pro-status. Requires a real sub_ id from checkout; invalid ids are rejected.

NameRequiredDescriptionDefault
subscription_idYesStripe subscription id starting with sub_

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral load: it does disclose that invalid ids are rejected and that a checkout-issued id is mandatory, which is genuinely useful. However it never states the auth/API-key requirement, whether the call is read-only, or what error vs. success looks like, so coverage is partial for an unannotated tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, zero filler, with the core action front-loaded and the prerequisite immediately after. Every sentence contributes new information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read lookup this is close to sufficient: it names the input contract, the validation behavior, and the backing endpoint. The remaining gap is the absence of any indication of what the status response contains, which matters since there is no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a single well-documented parameter including a regex pattern, so the schema already does the heavy lifting. The description adds only provenance ('from checkout') and format ('sub_…'), which is marginal beyond the schema's own pattern and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (check) and resource (Pro subscription status) plus the exact identifier type (Stripe sub_ id). This is clearly distinct from the sibling tools (site info, unlock-from-session, numbers-to-Excel), so an agent can route to it without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Establishes the precondition that a real sub_ id from checkout is required and that invalid ids are rejected, and references GET /api/pro-status as the equivalent path. It lacks explicit 'when not to use this / use X instead' guidance, which is the only gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_site_infoAInspect

Return Numbers2Excel product overview, pricing constants, homepage/privacy URLs, and Stripe checkout links. Read-only; no Stripe API call; no file conversion.

NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and does reasonably well: it declares read-only semantics, states no Stripe API call is made, and states no file conversion happens, which tells the agent this is a safe, cheap, side-effect-free call. It could go further on response shape or caching behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with zero waste, and the payload list is front-loaded ahead of the safety caveats.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter static info tool with no output schema, the description effectively serves as a return-value summary by enumerating the four payload categories, and it closes the safety question with the read-only/no-external-call note. Nothing needed to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the schema has nothing to document and there is nothing for the description to compensate for. Baseline 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Return') and enumerates the concrete payload: product overview, pricing constants, homepage/privacy URLs, and Stripe checkout links. An agent knows exactly what it gets without opening anything. It doesn't name siblings explicitly, so differentiation from get_pro_status is left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit 'use when' or 'prefer X instead' clause. The negations ('no Stripe API call; no file conversion') implicitly carve out territory against open_numbers2excel, but the agent must infer that this is the cheap static-info call rather than being told.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_unlock_from_sessionAInspect

Resolve a Stripe Checkout session_id (cs_…) into a local entitlement payload. Reuses the same logic as GET /api/unlock. Requires a paid/complete session; invalid ids are rejected.

NameRequiredDescriptionDefault
session_idYesStripe Checkout session id starting with cs_

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description does carry some behavioral weight: it discloses the paid/complete-session precondition, that invalid ids are rejected, and that the logic mirrors GET /api/unlock. It does not say whether resolving has side effects (e.g. writing a local entitlement record), what auth is needed, or what the payload contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the verb and resource, then constraints. No filler and nothing repeated from the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with no annotations and no output schema, the description covers purpose, precondition, failure behavior, and hints at the return value ('local entitlement payload'). Only side effects and auth requirements are left unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description earns an extra point by adding validation semantics the schema cannot express — the session must be paid/complete and invalid ids are rejected. Format/prefix details remain the schema's job.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: resolve a Stripe Checkout session_id into a local entitlement payload, and even names the equivalent REST endpoint. It does not explicitly contrast with the nearest sibling (get_pro_status), so it stops short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Requires a paid/complete session' is a precondition rather than a when-to-use rule, and nothing tells the agent when to prefer this over get_pro_status for entitlement lookups. Usage is implied by the input (you have a cs_… id) but not routed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

open_numbers2excelAInspect

Open Numbers2Excel in the browser to convert Apple Numbers (.numbers) to Excel (.xlsx). Conversion runs locally in the user's browser — this MCP does not accept or upload files. Free: first sheet. Pro $9/mo or Unlock once $2.90 for the full workbook. Use intent=pro or intent=once for Stripe checkout links; convert/pricing open the homepage.

NameRequiredDescriptionDefault
intentNoconvert|pricing → homepage; pro → Pro $9/mo Stripe; once → Unlock $2.90 Stripe

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does disclose key traits: conversion runs locally, the MCP neither accepts nor uploads files, and paid intents yield Stripe checkout links. What it leaves fuzzy is the actual behaviour of 'open in the browser' — whether it launches a browser or returns a URL — and whether any state is mutated, which for a no-annotation tool is a real (if small) gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, front-loaded with the purpose before pricing and intent routing. The intent mapping sentence duplicates the schema's enum description, which is the only wasted space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, no-annotation, no-output-schema tool, the description covers purpose, execution locality, pricing, and intent routing — enough for an agent to call it correctly. The main omission is the return type (URL string vs. browser side effect), which the agent must guess.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single enum already documents every value, so the description's restatement of the intent mapping adds little beyond the schema. Baseline 3 is appropriate; the description neither adds syntax detail nor clarifies edge cases such as omitting intent entirely.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the concrete action (open Numbers2Excel in the browser) and the exact resource/conversion pair (.numbers → .xlsx), so an agent knows precisely what the tool is for. With no sibling tools there is nothing to differentiate against, which caps this at 4 rather than 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly maps each intent to the outcome the agent should expect — convert/pricing to the homepage, pro/once to Stripe checkout links — which is effectively the 'when to use which' guidance. It also sets expectations about the free tier vs paid tiers, though it doesn't say when an agent should prefer this over any other approach (none exist here).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updates
    • Addedget_pro_status
    • Addedget_site_info
    • Addedget_unlock_from_session
  2. 1 tool update
    • First observedopen_numbers2excel

Publisher details

Operator
Unknown
Vendor relationship
Unknown
Documentation
Unknown
Trust center
Unknown
Restrictions
Unknown

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Create, read and edit native Apple Numbers documents on macOS through 38 local MCP tools, using only the native scripting API. Preserves .numbers files and formatting, with formulas, custom templates, guided chart updates, CSV imports and PDF previews; MIT licensed, with no Excel conversion or Accessibility automation.
    2
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables converting PDFs and CSV/spreadsheet files into spreadsheets, extracting bank statement or receipt data into clean CSV, cleaning messy CSV, and generating client-ready reports through an open MCP endpoint.
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    A local MCP server that lets Claude, Cursor, Codex, or any MCP client work with Office documents on your Mac: evaluate spreadsheet formulas, read/write XLSX and PPTX, extract structured DOCX content, and merge/split/protect PDFs. 100% local, no network calls, no account. 14 tools.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources