Skip to main content
Glama

Server Details

Build and run a JSONPad backend: lists, items, indexes, write rules, schema sync, history, flows.

Ownership verified
Status
Healthy
Uptime
100.0% over the last 24 hours
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A4/5.0

Scored across 32 tools

Disambiguation4/5

Most tools target distinct resource+action pairs, but the four item-data writers (update_item with data, merge_item_data, patch_item_data, replace_item_data) plus delete_item_data overlap heavily. The descriptions do explicitly steer the agent (e.g. update_item points to merge/patch), which keeps mis-selection unlikely but not trivial.

Naming Consistency5/5

Everything follows a clean snake_case verb_noun pattern (list_items, create_index, update_list, delete_event-style). Verbs are consistent and predictable across all 32 tools with no camelCase or stylistic drift.

Tool Count2/5

At 32 tools this is very heavy, well past the 25 threshold. Although the domain (a database-as-a-service with schema sync, indexes, rules, events and stats) is genuinely rich, the surface is large enough to burden selection and navigation.

Completeness5/5

Coverage is thorough: full CRUD for lists, items and indexes, plus schema sync (plan/apply/export/move), events and versioning, restore, stats, token introspection, and rule testing/denial inspection. No obvious lifecycle gaps or dead ends.

Available Tools

32 tools
apply_schema_syncApply a schema syncA
Destructive
Inspect

Create and update lists, indexes, write rules and flows to match a schema sync document. All or nothing: if any change would be refused, nothing is written and the plan says why. Run plan_schema_sync first and show the user the plan. With prune, it can also delete lists and indexes, so it needs confirmDestructive: true. Needs sync-schema plus the permission for each change; flows need a token that is allowed everything. Index builds it starts run in the background (wait_for_index). Suggest the user commits the document, so it can be deployed with jsonpad sync-schema. 1 request.

Inputs: document (required), prune, allowRebuild, allowDestructive, +1 more. Returns: applied, changes, summary

create_indexCreate an indexAInspect

Index a value in a list's items, to find items by it (alias), order, filter or search by it, or hide it from tokens (guard). The index is built in the background: until its buildStatus is ready, anything that uses it fails with INDEX_BUILDING. With wait: true this polls until it's built, at 1 metered request per poll (the result says how many). 1 request, plus the polls.

Inputs: list (required), pointer (required), pathName (required), name, +11 more. Returns: index, buildStatus

create_itemCreate an itemAInspect

Add an item to a list. The data is checked against the list's schema and its write rules (rule lookups cost 1 request per item they read). Strings in the data can be $jsonpad-var: variables, substituted when the item is saved, e.g. "$jsonpad-var:now", "$jsonpad-var:now(+5m)", "$jsonpad-var:uuid", "$jsonpad-var:random-integer(1, 100)" (see the docs for the rest). Returns the new item's metadata (and data with returnData) and its etag. 1 request.

Inputs: list (required), data, tags, version, +4 more. Returns: etag, item

create_listCreate a listAInspect

Create a list. To set up several lists with indexes and rules, a schema sync document (plan_schema_sync, apply_schema_sync) is usually better. Rules that don't compile, or whose tests fail, refuse the whole create, with diagnostics in details. 1 request.

Inputs: name, tags, rules, pinned, +9 more. Returns: list, ruleWarnings

delete_indexDelete an indexA
Destructive
Inspect

Delete an index. Item data is untouched, but ordering, filtering, searching and alias lookups that used it stop working. Deleting a guard index makes its values readable by every token that can read the list, so that's refused unless confirmUnguard is true. 1 request (plus 1 to check for a guard, if the list hasn't been read with get_list).

Inputs: list (required), index (required), confirmUnguard. Returns: deleted

delete_itemDelete an itemA
Destructive
Inspect

Delete an item. It can be brought back: list_events for the item with restorable: true finds its item-deleted event, and restore_item re-creates it with the same id. Pass the etag you read as ifMatch to delete only if nobody has changed it since. 1 request.

Inputs: item (required), list (required), ifMatch. Returns: deleted

delete_item_dataDelete part of an item's dataA
Destructive
Inspect

Remove the value at a pointer from an item's data (an object field or an array element). To delete the whole item, use delete_item. Pass the etag you read as ifMatch. 1 request.

Inputs: item (required), list (required), pointer (required), ifMatch, +1 more. Returns: etag, item

delete_listDelete a listA
Destructive
Inspect

Permanently delete a list, with all of its items and indexes. Unlike an item, a deleted list can't be restored. The list disappears at once (its pathName is free again) and its contents are purged in the background. A protected list that still has items is refused. Confirm with the user first. 1 request.

Inputs: list (required), confirm (required). Returns: list, deleted

export_schemaExport lists as a schema sync documentA
Read-onlyIdempotent
Inspect

The account's lists, their indexes and write rules (and, for a token that is allowed everything, its flows) as a schema sync document, keyed by pathName. The easiest way to start managing an existing account with schema sync. Filter by scope, tags or lists on big accounts. Needs the sync-schema permission, which alone is enough to read structure. 1 request.

Inputs: lists, scope, tagged. Returns: document, warnings

get_eventGet an eventA
Read-onlyIdempotent
Inspect

One event, with its snapshot: the state of the resource after it happened. This is how to read an item version too old to fetch with get_item's version. Guarded values are left out of snapshots, as they are from item data. 1 request.

Inputs: eventId (required), resource (required), item, list, +4 more. Returns: event

get_itemGet an itemA
Read-onlyIdempotent
Inspect

An item's metadata and data, or part of its data (pointer or path), at its current or an older version. Returns the etag to pass as ifMatch when writing a change based on what you read, and the guarded pointers whose values this token can't see. A version older than the plan keeps fails with ITEM_VERSION_NOT_RETAINED: read it from its event with get_event instead. 1 request, plus 1 the first time a list is used in a session (unless get_list was called).

Inputs: item (required), list (required), path, pointer, +3 more. Returns: data, etag, item

get_listGet a listA
Read-onlyIdempotent
Inspect

A list's metadata, JSON schema, flags, tags and itemCount, its write rules and rule tests (only for a token that can update the list), and its indexes with their buildStatus and a usage hint for each: what they sort, filter, search, alias or guard. The recommended first call before reading or writing an unfamiliar list. 2 requests (1 without indexes).

Inputs: list (required), includeIndexes. Returns: list, indexes

get_statsGet statsA
Read-onlyIdempotent
Inspect

Activity counts for a list, item, index or identity over the last days. List stats include how many writes the list's rules refused. 1 request.

Inputs: resource (required), days, item, list, +2 more. Returns: stats

get_token_infoGet the API token's permissions and usageA
Read-onlyIdempotent
Inspect

What this server's API token may do (its permission rules, without the token value), the plan's limits, and the account's usage this month (requestCount, requestsRemaining, credits, storageBytes, storageAllowance, degraded). Also checks the token works. Call it first when anything fails with an authentication or permission error, and before a large batch of writes. 1 request.

Inputs: no named parameters. Returns: plan, token, usage, server

list_eventsList eventsA
Read-onlyIdempotent
Inspect

A page of the history of a list, item, index or identity: what happened, when, and at which version, without snapshots (get_event has them). For an item, restorable: true lists only the events restore_item can go back to, including the item-deleted event of a deleted item; this is how to find restore points. 1 request.

Inputs: resource (required), item, list, page, +9 more. Returns: data, page, limit, pages, +3 more

list_indexesList a list's indexesA
Read-onlyIdempotent
Inspect

A page of a list's indexes, each with its buildStatus and a usage hint. Filter by pathName to find one index. get_list includes every index too. 1 request.

Inputs: list (required), name, page, alias, +9 more. Returns: data, page, limit, pages, +3 more

list_itemsList a list's itemsA
Read-onlyIdempotent
Inspect

A page of a list's items. Data is left out unless includeData (or path) is set. filters use the list's filtering indexes (get_list shows them), by pathName: string indexes match partially, number indexes take lt:, lte:, gt:, gte: (e.g. "gte:10"), date indexes take before: and after: (e.g. "before:2026-01-01"). order takes createdAt, updatedAt, alias, readonly, activated, or a sorting index's pathName. An index that is still building fails with INDEX_BUILDING. 1 request, plus 1 the first time a list's data is read in a session, to find its guard indexes (unless get_list was called).

Inputs: list (required), page, path, alias, +10 more. Returns: data, page, limit, pages, +3 more

list_listsList the listsA
Read-onlyIdempotent
Inspect

A page of the account's lists that this token can see, with their flags, tags and item counts. Schemas and write rules are left out: get_list has them. 1 request.

Inputs: name, page, limit, order, +9 more. Returns: data, page, limit, pages, +3 more

list_rule_denialsList writes a list's rules refusedA
Read-onlyIdempotent
Inspect

The last 50 writes the list's write rules refused, newest first: when, which operation, which identity and token, the stage (allow: no rule authorised it, 403; require: a check failed, 400), and the statement and line that refused it. A refusal can take a moment to appear. Replay one with test_list_rules to see why. The token needs update on the list. 1 request.

Inputs: list (required). Returns: denials

merge_item_dataMerge into an item's dataA
Destructive
Inspect

Deep-merge a value into an item's data, or into the value at pointer: fields you don't mention are left alone, so this is the safe way to change some fields, including on lists with guard indexes. Arrays are concatenated, not replaced (use patch_item_data or replace_item_data at the array's pointer to replace one). Pass the etag you read as ifMatch. 1 request.

Inputs: item (required), list (required), data, ifMatch, +2 more. Returns: etag, item

move_listsMove lists between schema sync scopesA
Destructive
Inspect

Move lists to another schema sync scope, assign unmanaged lists to one, or release them (scope: null), with the indexes the scope manages. Choose lists by id or pathName, or every list of fromScope (e.g. to rename a scope). All or nothing. dryRun defaults to true: show the user the plan, then call again with dryRun: false. Needs the sync-schema permission. 1 request.

Inputs: scope (required), lists, dryRun, fromScope. Returns: applied, changes

patch_item_dataPatch an item's dataA
Destructive
Inspect

Apply JSON Patch (RFC 6902) operations to an item's data, or to the value at pointer (operation paths are then relative to it). Best for surgical edits: replacing an array element, removing a field, appending with path "/list/-". All operations apply, or none. Operations that write over a guarded value (or one of its parents) are refused unless overwriteGuarded is set, and the API refuses test, copy and move from guarded values. Pass the etag you read as ifMatch. 1 request.

Inputs: item (required), list (required), operations (required), ifMatch, +3 more. Returns: etag, item

plan_schema_syncPlan a schema syncA
Read-onlyIdempotent
Inspect

What applying a schema sync document would do, without changing anything: each list, index and flow it would create, update, adopt, delete or leave alone, field by field, with warnings and errors, and blockedBy if it would be refused. Always call this before apply_schema_sync, and show the user the plan. The document is checked against the sync document schema locally first, at no cost. Needs the sync-schema permission. 1 request.

Inputs: document (required), prune, allowRebuild, allowDestructive. Returns: applied, changes, summary

rebuild_indexRebuild a failed indexAInspect

Start a new build of an index whose last build failed, once the cause is fixed (failed builds are never retried by themselves). An index that isn't failed is refused with INDEX_BUILD_NOT_FAILED. With wait: true this polls until it's built, 1 request per poll. 1 request, plus the polls.

Inputs: list (required), index (required), wait. Returns: index, buildStatus

replace_item_dataReplace an item's dataA
DestructiveIdempotent
Inspect

Replace an item's whole data, or the value at pointer. On a list with guard indexes, a replace that covers a guarded value would delete it (this token can't see it), so it's refused unless overwriteGuarded is set: use merge_item_data, patch_item_data or a narrower pointer instead. Pass the etag you read as ifMatch. 1 request (plus 1 to find the list's guard indexes, the first time).

Inputs: item (required), list (required), data, ifMatch, +3 more. Returns: etag, item

restore_itemRestore an itemA
Destructive
Inspect

Put an item back as it was at an event (item-created, item-updated, item-restored or item-deleted; find them with list_events and restorable: true), as a new version: its data, description, tags, readonly and activated. A deleted item is re-created with its original id (give it by id). Needs the token's restore permission; checked against the list's current schema and its write rules. Restoring twice makes two versions; restoring to the current version fails with ITEM_UNABLE_TO_RESTORE. 1 request.

Inputs: item (required), list (required), eventId (required), ifMatch, +1 more. Returns: etag, item

search_itemsSearch a listA
Read-onlyIdempotent
Inspect

Full-text search (BM25) over the values of a list's searching indexes; at most 10 results, best first. A list without a searching index always finds nothing. Tags aren't searched: filter by tag with list_items. 1 request.

Inputs: list (required), query (required), includeData, includeItems. Returns: results

test_list_rulesTest a write against a list's rulesA
Read-onlyIdempotent
Inspect

A dry run of one write against a list's write rules (or candidate rules), using the list's live data: whether it would be allowed, which statement decided, and what every statement evaluated to. Nothing is written. Describe the write with itemId (the existing item, for update, delete and restore) and new, patch or merge. The token needs update on the list. 1 request, plus 1 per item the rules look up. To check syntax and the stored tests without live data, the JSONPad docs server's check_write_rules costs nothing.

Inputs: list (required), action (required), new, now, +7 more. Returns: stage, allowed

update_indexUpdate an indexA
DestructiveIdempotent
Inspect

Change an index; fields left out are left as they are. A new pointer or valueType starts a rebuild (the index is unusable until it finishes). Turning alias on is refused if values aren't unique or are too long. Turning guard on hides existing values from token reads at once. 1 request.

Inputs: list (required), index (required), name, tags, +11 more. Returns: index

update_itemUpdate an itemA
DestructiveIdempotent
Inspect

Change an item's metadata (description, tags, version, readonly, activated) and, with data, replace all of its data. To change only some of the data, use merge_item_data or patch_item_data. On a list with guard indexes, replacing the whole data would delete the values this token can't see, so it's refused unless overwriteGuarded is set. Pass the etag you read as ifMatch. 1 request (plus 1 to find the list's guard indexes, the first time).

Inputs: item (required), list (required), data, tags, +7 more. Returns: etag, item

update_listUpdate a listA
DestructiveIdempotent
Inspect

Change a list's fields; fields left out are left as they are. A new schema doesn't re-check existing items, but applies to later writes and restores. New rules apply from the next write, and the stored tests must pass first; rules: null removes them. readonly: true blocks writes to the list, its items and its indexes. 1 request.

Inputs: list (required), name, tags, rules, +10 more. Returns: list, ruleWarnings

wait_for_indexWait for an index to buildA
Read-onlyIdempotent
Inspect

Poll an index until its build is ready or has failed. Every poll is a metered request (starting 1 second apart, slowing to 10 seconds); the result says how many were made. A failed build is an error; running out of time returns timedOut: true with buildStatus "building".

Inputs: list (required), index (required), timeoutSeconds. Returns: index, polls, buildStatus

Tool Schema Changelog

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

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables task management with persistent SQLite storage, along with tools, resources, subscriptions, prompts, and completions over stdio or Streamable HTTP with per-user authentication.
      7 npm
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      A remote MCP server that lets a coding agent turn a plain-language idea into a real, shareable product — creating the project and data model, serving live API endpoints, deploying custom endpoints and server-side functions, and reading request and function logs. It handles sign-up, OAuth-backed access, and OpenAPI spec generation so people can open, sign into, and use the app the agent builds.
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      Enables building apps where humans edit through a GUI and LLMs edit the same JSON document via MCP, exposing each defined operation over both HTTP and MCP with revision-based conflict handling.
      7
      21 npm
      1
      MIT
    • F
      license
      Not graded
      quality
      Not graded
      maintenance
      Enables users to manage data in a simple JSON file database through MCP tools and REST API. Supports creating, reading, updating, and deleting items organized in collections with auto-generated UUIDs.
      -
    Try in Browser

    Glama MCP Gateway

    Add one secure layer between your agents and this server.

    Resources