get_aboutLABSCO SUMMARY
Admin questions answered in the client, with nothing writable behind them.
This is a read path onto software you are already running: dashboards, tenants, users, financials, logs, configuration and health, asked in plain language instead of clicked through in the admin UI. The credential it takes is the same root-tenant admin key the admin API uses, so decide once who holds it — after that the surface is reads only, and the data goes to your MCP client rather than to any third party.
What it is
The MCP server built into LastSaaS, an open-source multi-tenant SaaS foundation with a Go backend, a React frontend and MongoDB. It starts as a subcommand of the project's CLI, lastsaas mcp, runs over stdio, and proxies read-only requests to the LastSaaS admin API using an API key. Two resources, lastsaas://dashboard and lastsaas://health, are offered for automatic context.
What you get
- A snapshot of users, tenants, health and active alerts, plus build and environment info —
dashboard_stats,get_about - Tenant and user records with search and filters, and detail views carrying plan, billing, members, auth methods and memberships —
list_tenants,get_tenant,list_users,get_user - Revenue, ARR, DAU and MAU time-series alongside searchable transaction history —
get_financial_metrics,list_transactions - Full-text log search filtered by severity, category and date, and counts per severity level —
search_logs,get_log_severity_counts - Current CPU, memory, disk and HTTP stats, time-series health per node or aggregate, the node list and third-party integration health —
get_system_health,get_health_metrics,list_nodes,get_integrations - Runtime configuration variables, all of them or one at a time —
list_config,get_config - Subscription plans with pricing and entitlements, the entitlement key catalog and credit bundle pricing —
list_plans,get_plan,list_entitlement_keys,list_credit_bundles - Published and draft announcements, and Stripe promotion codes with their coupon details —
list_announcements,list_promotions - An API key inventory that returns previews only, and the admin team with pending invitations —
list_api_keys,list_root_members - Outbound webhook configurations, the event type reference and per-webhook delivery history —
list_webhooks,list_webhook_event_types,get_webhook - No write operations — the server's tools read the admin API and nothing more
Requirements
A running LastSaaS instance, local or deployed, and a root-tenant API key with admin authority created in Admin → API Keys; keys carry the lsk_ prefix. Both LASTSAAS_URL and LASTSAAS_API_KEY are required in the client's env block, and the client runs the binary with the mcp argument. Build that binary from backend with go build -o lastsaas ./cmd/lastsaas, or take the published .mcpb package (1.0.0) for darwin-arm64. Standing the application itself up needs Go 1.25+, Node.js 22+, MongoDB (Atlas or local) and Git; Resend, Stripe and OAuth credentials are listed as optional extras for email, billing and social sign-in. MIT licensed.
Setup effort
Build from source — git clone https://github.com/jonradoff/lastsaas.git
USE CASES
Checking how the business is doing without opening the admin UI
Read the counts and alert state first, then pull the revenue or ARR series for the window you care about.
Investigating an error spike
Filter logs by severity and time, check the severity counts, then look at what the machines were doing.
Looking up one customer's account
Search tenants by name, then open the detail view for plan, billing status, credit balances and the member list with roles.
Auditing who holds admin access
Read the API key inventory — previews only, never raw keys — alongside the root tenant's members and pending invitations.
Working out why a customer never got a webhook
Open the webhook's delivery history with its response codes and durations, and check the event type is one it subscribes to.
27 tools
Listed in project docs. Your client may show a different list.
dashboard_statslist_tenantsget_tenantlist_usersget_userlist_transactionsget_financial_metricssearch_logsget_log_severity_countsget_system_healthget_health_metricslist_nodesget_integrationslist_configget_configlist_plansget_planlist_entitlement_keyslist_credit_bundleslist_announcementslist_promotionslist_api_keyslist_root_memberslist_webhookslist_webhook_event_typesget_webhookBEFORE YOU INSTALL
What to know first
Tools you get
27 tools named in the project's documentation. Every tool is read-only by design. The documentation also prints 32 and 26 as the count; its written-out list has 27.
Requires
- Go 1.25+
- Node.js 22+
- LASTSAAS_URL in your environment
- LASTSAAS_API_KEY in your environment
INSTALLATION
Connect your client
You clone and build this one yourself.
Server setup
1. Clone the repository
git clone https://github.com/jonradoff/lastsaas.git
cd lastsaas2. Run the setup script (it writes a .env file)
./scripts/setup.sh3. Start the backend (http://localhost:4290)
set -a && source .env && set +a
cd backend
go run ./cmd/server4. Start the frontend — in a separate terminal, from the lastsaas folder
set -a && source .env && set +a
cd frontend
npm install
npm run dev5. Initialize the system (from the lastsaas folder)
cd backend
go run ./cmd/lastsaas setupBuild the CLI binary the MCP configuration runs (from the lastsaas folder)
cd backend
go build -o lastsaas ./cmd/lastsaasMCP Clients
Claude Desktop
{
"mcpServers": {
"lastsaas": {
"command": "<YOUR_PATH_TO_LASTSAAS>",
"args": [
"mcp"
],
"env": {
"LASTSAAS_URL": "https://<YOUR_APP>.fly.dev",
"LASTSAAS_API_KEY": "<YOUR_LASTSAAS_API_KEY>"
}
}
}
}Add this to claude_desktop_config.json (~/Library/Application Support/Claude/claude_desktop_config.json on macOS). <YOUR_PATH_TO_LASTSAAS> is the full path of the binary the build step writes (backend/lastsaas inside your clone), LASTSAAS_URL is your instance (http://localhost:4290 when run locally), and <YOUR_LASTSAAS_API_KEY> a root-tenant API key created in Admin → API Keys with admin authority.
Claude Code
{
"mcpServers": {
"lastsaas": {
"command": "<YOUR_PATH_TO_LASTSAAS>",
"args": [
"mcp"
],
"env": {
"LASTSAAS_URL": "https://<YOUR_APP>.fly.dev",
"LASTSAAS_API_KEY": "<YOUR_LASTSAAS_API_KEY>"
}
}
}
}Add this to your project's .mcp.json. <YOUR_PATH_TO_LASTSAAS> is the full path of the binary the build step writes (backend/lastsaas inside your clone), LASTSAAS_URL is your instance (http://localhost:4290 when run locally), and <YOUR_LASTSAAS_API_KEY> a root-tenant API key created in Admin → API Keys with admin authority.