Lunora MCP

Inspect and call the functions, tables and logs of a deployed Lunora backend on Cloudflare

Official · Anolilab TypeScript DatabasesDevOps and monitoringCloud platforms

73 popularity score ★ 294 ↓ 5.7k/wk

What it does

Lunora is a TypeScript backend framework by Anolilab that deploys queries, mutations and actions as Workers on the developer's own Cloudflare account. The @lunora/mcp package, from the Lunora monorepo, ships a stdio program named lunora-mcp that points at one deployed Lunora app over HTTP RPC. An assistant can list the app's public functions and global tables, fetch the argument shape of a function, and run its queries.

More of it is off until a setting turns it on. Mutations and actions appear only with LUNORA_MCP_ALLOW_WRITES, and even then each call has two steps: the first returns a proposal with a digest, and nothing runs until the same call comes back with confirmed: true and that digest before it expires. LUNORA_MCP_ALLOW_OBSERVABILITY adds five read tools for recent logs, grouped error issues, schema advisories, per-query latency and migration status. LUNORA_MCP_ALLOW_DATA_READS adds lunora_find_related, which returns raw table rows. LUNORA_MCP_ALLOW_AGENTS with LUNORA_MCP_AGENTS exposes the app's durable agents as agent_<name> tools, plus lunora_agent_status for polling them. lunora_explain_error looks up a Lunora error code in the bundled catalog and needs no deployment.

The package README documents only the six core tools and calls the admin token optional. At version 1.0.0-alpha.239 the code registers 13 fixed tools, plus one per configured agent, and the program exits at start without LUNORA_ADMIN_TOKEN (src/run-bin.ts, src/tools.ts).

What it needs

RuntimeNode.js

Node.js ^22.15.0 or >=24.11.0. A Lunora app already deployed (for example on Cloudflare Workers), its base URL, and that deployment's admin token: a scoped app token is refused on the admin routes every tool uses. The npm latest tag is an empty 0.0.0 placeholder, so install from the alpha dist-tag (@lunora/mcp@alpha).

Limits

Lunora is alpha and its makers expect breaking changes until the first stable release. By default only the read tools are listed. Write, observability, row-read and agent tools are left out of the tool list and refused if called until their LUNORA_MCP_ALLOW_* setting is on. Observability tools return 50 rows by default and at most 500. Logs are kept in memory per shard and are lost when a shard hibernates. lunora_list_tables gives only table names and row counts, not columns. An agent call waits 60 seconds by default (LUNORA_MCP_AGENT_TIMEOUT_MS) and then returns a pending result. The README's config omits the alpha tag and treats the token as optional, and neither works as shown.

Who it suits

Developers who build on Lunora and want an assistant to explore, query and debug their own deployment, with read-only behaviour by default and a human confirmation step before any mutation or action. It suits nothing outside Lunora: it reaches only a Lunora app's admin routes, not Cloudflare resources in general. Teams that cannot hand an admin token to a local process, or that need production stability, should wait for a stable release.

Tools 14

lunora_list_functions
Lists the deployment's public queries, mutations and actions with their kinds
lunora_list_tables
Lists global tables with row counts
lunora_get_function_schema
Returns the argument descriptors for one function path
lunora_run_query
Runs a query and returns its result
lunora_run_mutation
Runs a mutation after a two-step confirmation; needs LUNORA_MCP_ALLOW_WRITES
lunora_run_action
Runs an action, which may reach outside services, after a two-step confirmation; needs LUNORA_MCP_ALLOW_WRITES
lunora_explain_error
Explains a Lunora error code or message from the bundled catalog
lunora_get_logs
Reads recent log entries, newest first; needs LUNORA_MCP_ALLOW_OBSERVABILITY
lunora_get_issues
Lists errors grouped by fingerprint with counts and triage status; needs LUNORA_MCP_ALLOW_OBSERVABILITY
lunora_get_advisories
Lists schema and query advisories such as missing indexes; needs LUNORA_MCP_ALLOW_OBSERVABILITY
lunora_get_query_insights
Reports per-statement counts and latency over a time window; needs LUNORA_MCP_ALLOW_OBSERVABILITY
lunora_get_migration_status
Shows which migrations are applied and which are pending; needs LUNORA_MCP_ALLOW_OBSERVABILITY
lunora_find_related
Returns raw table rows, bypassing RLS and column masks; needs LUNORA_MCP_ALLOW_DATA_READS
lunora_agent_status
Polls the status of an agent thread; shown with agent tools

Similar servers