Skip to main content
Glama
Anythink-MCP

Anythink-MCP

Official

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PROFILENoThe CLI profile to pin (e.g., 'my-project'). If not provided, the default profile is used.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
email_templates_updateA

Update a template's subject and/or content. Saves a new subject and/or body for one template type, keeping whichever you leave out; every email of that type the project sends from then on uses it. Pass the body inline in content_text. Check a draft first with email_preview, as the previous content isn't kept. It changes or deletes existing data, so check with the user before running it.

pay_offers_createA

Create an offer (rewards via convenience flags or raw JSON). Creates an offer of kind discount, trial_extension or referral. A redeemer reward is required, as raw JSON or a shortcut such as trial days or discount percent; referrer reward, eligibility, caps and dates are optional. Discount offers also create a Stripe coupon. Add a code users can enter with pay_offers_add_code.

pay_subscriptions_resyncA

Re-sync a subscription from the provider (project admin). Project-admin tool that fetches a Stripe subscription's live state from Stripe and overwrites the stored record, returning the result. Use it when the status shown disagrees with Stripe. Apple subscriptions aren't supported yet and return an error. It changes or deletes existing data, so check with the user before running it.

integrations_testA

Test a connection. Use after connecting, with an id from integrations_connections_list. The API currently only confirms the connection exists in this project and does not call the provider, so a pass does not prove the stored credentials work.

workflows_file_handler_addA

Add a FileHandler step with named flags (no hand-written params JSON). The step attaches a file to a record's file field: fetch_and_link downloads source_url, link_existing attaches existing_file_id, and detach unlinks it; entity, record_id (usually {{ $anythink.trigger.id }}) and field are always needed. Unlike workflows_step_add it can set on_success/on_failure in the same call, and the step is created disabled unless enabled is set.

dashboards_updateA

Rename a dashboard, change who can see it, or replace its widgets and layout. Changes a dashboard's name, description or sharing, or replaces its whole widget list and layout through config; widgets missing from a new list are removed. To add or remove one chart, use dashboards_add_chart or dashboards_remove_widget, which keep everything else. Only the owner can change sharing. Returns JSON. It changes or deletes existing data, so check with the user before running it.

dashboards_promote_to_defaultA

Copy a dashboard over the project default that new users start from (administrators only). Overwrites the project default dashboard with a copy of this one. The default is what new users start from and what anyone without a home dashboard lands on; the dashboard you copy from stays as it was. To change only your own landing dashboard, use dashboards_set_home. Returns JSON. It changes or deletes existing data, so check with the user before running it.

settings_cors_addA

Add an allowed origin (clears the CORS cache). Adds a web app origin (scheme, host and optional port, no path) or a wildcard such as https://*.example.com, so browser apps there can call the project's API straight away. A wildcard over shared hosting such as vercel.app trusts other people's sites, so check with the user first. An origin already listed is left as it is.

pay_subscriptions_relinkA

Move a subscription to another user (project admin). Project-admin tool that moves a subscription to another project user (numeric user id), replacing all its existing user links, to fix a purchase bound to the wrong account. The previous user loses access; billing at Stripe or Apple is unchanged. Undo by relinking it back. It changes or deletes existing data, so check with the user before running it.

menus_updateA

Rename a menu or change the role it is shown to. Changes the menu's name, the role it is shown to, or both; its items stay as they are. A role is shown only its first menu, so moving a menu to a role that already has one may hide it; use menus_reorder to choose which comes first. It changes or deletes existing data, so check with the user before running it.

pay_subscriptions_getA

Show one subscription by id (guid). Shows one subscription in full: status, price, customer email and name, current billing period, trial end, cancellation and scheduled auto-cancel dates, reference and any checkout URL. Read-only; for how it got into this state use pay_subscriptions_events.

projects_createA

Provision a new project — a dedicated, isolated Anythink backend instance with its own database, API, auth, and storage. Requires platform login and an active billing account (set one with 'accounts_use'). Provisioning runs asynchronously: the project starts in a Provisioning state, so poll 'projects_list' until it is Active. Returns the new project's id, name, org id, and API URL. Connect to it with 'projects_use'.

config_removeA

Delete a saved project profile from the local CLI configuration. Removes only the locally stored credentials and settings — it does not delete the project or revoke tokens server-side (to remove the project itself, use 'projects_delete'). Run 'config_show' to see profile names. Returns confirmation, or a not-found message.

pay_plans_createA

Create a subscription plan (prompts for missing fields). Creates a subscription plan (a recurring price end users can buy), defaulting to gbp, monthly, type web and active, and once Stripe Connect is onboarded syncs a matching Stripe product and price. Nobody is charged until a user subscribes. Set the Apple product id to map an in-app purchase to it.

entities_deleteA

Delete an entity and all its data. Drops the entity's table, removing all of its fields and every record in it for good. To remove one column, use fields_delete; to remove one record, use data_delete. It changes or deletes existing data, so check with the user before running it.

fields_getA

Get the full definition of one field (including relationship config). Finds the field by name on the entity (not case-sensitive) and returns its full definition as a JSON object, including relationship settings, select options, default value and search flags. To see every field on an entity at once, use fields_list.

config_showA

Show the local CLI configuration: all saved project profiles and platform logins, and which of each is active. For every profile it returns the name, org id, auth method (api-key or token), alias, and platform; for every platform it returns the URLs, billing account, and login status. Use this to discover profile names for 'config_use', 'config_remove', or 'logout', and to check which project the 'cli' tool currently targets. Reads local config only — makes no network calls.

charts_createA

Create a chart. Check it first with charts preview. Saves a chart that plots an entity's records, a platform usage metric (see charts_platform_metrics) or a plan quota. Settings are checked first and the call is refused with the problems listed. The new chart isn't shown anywhere until you put it on a dashboard with dashboards_add_chart or dashboards_create. Returns JSON.

users_inviteA

Create a user and send an invitation email. Adds the person to this project with the role given by role_id, then emails them an invitation to confirm their account. Always pass role_id from roles_list: the API rejects an invite without an existing role, and administrator roles can't be given this way. Check users_list first so nobody is invited twice.

pay_subscriptions_eventsA

Show the lifecycle history of a subscription. Returns a subscription's lifecycle history, one row per event with time, event type, source, status change and summary. Read-only; check it to explain a subscription's state before using pay_subscriptions_cancel, pay_subscriptions_resync or pay_subscriptions_relink.

menus_reorder_itemsA

Set the order of menu items that share a parent. The items must share one parent: the ones you name take the first places in that group in the order given, other siblings follow in their current order, and locked items keep their place. To move an item under a different parent, use menus_update_item. It changes or deletes existing data, so check with the user before running it.

files_deleteA

Delete a file by ID. Removes the file from the project's storage by its id. Records that reference it through a file field follow that field's on-delete rule; with the default, CASCADE, they are deleted too. To see what is stored first, use files_get. It changes or deletes existing data, so check with the user before running it.

api_keys_revokeA

Revoke an API key by ID. Revokes the key immediately and for good, so any script, CI job or CLI profile using it starts failing to authenticate. Create a replacement with api_keys_create first if something still needs access. It changes or deletes existing data, so check with the user before running it.

fields_listA

List fields on an entity. Takes the entity name. Returns each field's id, name, label, database type, display type and its required, unique, indexed and locked flags. For one field's complete definition, including relationship target and select options, use fields_get; for the entity's own settings, use entities_get.

users_listA

List all users. Shows each person who can sign in to this project with their id, name, email, role and whether they have confirmed their invitation. Use it to find a user's id, or to see who holds a role before changing it with roles_permissions_add or deleting it with roles_delete.

charts_deleteA

Delete a chart. Dashboards that show it keep an empty widget until you remove it. Permanently removes a saved chart from the project. To take a chart off one dashboard but keep it, use dashboards_remove_widget instead. After deleting, find the widgets that showed it with dashboards_get and clear them with dashboards_remove_widget. Returns JSON. It changes or deletes existing data, so check with the user before running it.

pay_offers_activateA

Activate a paused offer. Sets an offer's status to active so its codes can be redeemed again, still subject to its validity dates and caps. Use it to undo pay_offers_pause or to reopen an expired offer.

pay_payment_optionsA

Show available payment providers for a platform/storefront. Shows which payment providers (such as Stripe or Apple in-app purchase) the project offers to an app on a platform (ios, android or web), optionally for an App Store storefront country code. Read-only; use it to see what a client app will be offered.

pay_statusA

Show Stripe Connect account status. Reads the project's Stripe Connect account, the account your end users' card payments are paid into: account id, whether onboarding is complete, and whether charges and payouts are enabled. Read-only. If there is no account or onboarding is unfinished, use pay_connect.

docsA

Print the full CLI reference (markdown or --json for AI/tooling consumption). Prints a hand-written reference of CLI commands, options and examples without calling the API or needing a project. It omits some groups, such as integrations, secrets, API keys and settings, so treat the tool list as the authority on what exists. Returns JSON.

entities_listA

List all entities. Returns each entity (table) in the active project with its database table name, field count, and whether it is public or has row-level security (RLS) on. System entities are not included. To see one entity's settings and field definitions, use entities_get.

users_meA

Show the currently authenticated user. Shows the user you are signed in as in this project: id, name, email, role, whether confirmed and when created. Your role decides what every other tool may do, so check it when a call is refused; use users_get to look up someone else.

users_getA

Get a user by ID. Shows one user's name, email, role, whether they have confirmed their invitation and when they were created. Use it to check one person's role; use users_list to scan everyone, and roles_permissions_list to see what their role allows.

search_rehydrateA

Rehydrate the search index. Omit ENTITY to rehydrate everything (admin only). Re-sends the entity's records, or every entity's, from the database to the search index, replacing existing entries; it runs in the background and can take a while on large entities. Use it when search_query misses records or after changing which fields are searchable. It changes no data; to clear the index instead, use search_purge.

integrations_oauth_configureA

Set the OAuth client ID + secret for a provider. Saves the client ID and secret of an OAuth app the user created at the provider and enables it for the project (disable saves it switched off). Each run replaces the previous settings, so social sign-in turns off unless use_social_sign_in is passed again. Afterwards users connect from the dashboard or with integrations_oauth_connect. It changes or deletes existing data, so check with the user before running it.

files_uploadA

Upload a file. Uploads a file from a path on the machine running the CLI to the project's file storage and returns its new id and stored name. Files are private by default; a public file can be fetched without signing in. Use the returned id as the value of a file field with data_create or data_update.

menus_deleteA

Delete a menu and all of its items. Removes the menu and every item in it, including locked built-in items, and can't be undone. If it was the role's only menu, that role is left with no dashboard menu; to drop single items, use menus_remove_item instead. It changes or deletes existing data, so check with the user before running it.

integrations_getA

Show details and operations for one provider. Shows the provider's description, auth type and each operation's key, name and description. Operation keys are what integrations_execute and workflow integration steps (workflows_integration_add) take. It does not say whether the project is connected; integrations_connections_list does.

workflows_jobsA

View job history for a workflow. Shows the 10 most recent runs, each with its status (Completed, Failed or Running), start time and error, plus every step's status, error and log. Use it after workflows_trigger, or when an event or schedule should have fired, to see whether a run worked and which step failed.

api_keys_listA

List API keys for the current user. Shows each key's id, name, number of permissions, expiry date and whether it is active, expired or revoked; key values are never returned. Use the id with api_keys_revoke.

files_getA

Get file metadata by ID. Returns one file's original and stored names, type, size, whether it is public and when it was uploaded. It gives metadata only, not the file's contents or a download link. To browse all files, use files_list.

projects_useA

Connect to a project and save it as the active profile so the 'cli' tool's data, entities, users, and other commands target it. Resolves the project, then either stores the API key you pass or exchanges a transfer token for project-scoped credentials automatically. Requires an active billing account (set one with 'accounts_use'); the project must be Active (see 'projects_list'). Returns the saved profile name, org id, API URL, and auth method.

cliA

Run any Anythink CLI command and return its output. Prefer the dedicated tools; use this for anything they don't cover. Pass the command exactly as you would after 'anythink', e.g. 'entities list' or 'data list posts'. Destructive pay commands (delete, expire, relink, pause and similar) must be run by a person in a terminal; never add '--yes' on their behalf. 'data import' creates records (not destructive): run it with --dry-run first and only add '--yes' after the user approves the dry run. 'import directus' changes the project: run it with '--dry-run' first and only add '--yes' once the user has approved the plan. Add '--json' where supported for machine-readable output.

projects_deleteA

Permanently delete a project and tear down its backend instance, including its database and stored data. This is destructive and irreversible — always confirm with the user first, and prefer matching by a specific id over a short prefix to avoid removing the wrong project. Requires an active billing account (set one with 'accounts_use'). Returns the deleted project's name and id on success.

email_previewA

Render uncommitted subject + content + optional wrapper, print HTML. Renders a draft subject and body with sample data, inside a draft shell if given or the project's current one otherwise, and returns the HTML. Nothing is saved and no email is sent. Use it to check edits before email_templates_update or email_shell_update.

logoutA

Remove the saved credentials for a project profile from local CLI config. Use this to disconnect from a project or clear a stale token; it deletes only the stored profile locally and does not revoke the token server-side or affect the project. Omit the profile to remove the currently active one. Run 'config_show' to see profile names.

import_directusA

Import collections, fields, flows, and data from a Directus instance. Writes into the active project: run with --dry-run first and add --yes only once the user has approved the plan. Copies a Directus instance's collections and fields into the active project as entities and fields; flows, files, roles and records come across only with include_flows, include_files, include_roles and include_data. Call it with dry_run first and show the user the plan, because a call without dry_run applies the import straight away. Returns JSON. It changes or deletes existing data, so check with the user before running it.

workflows_listA

List all workflows. Each entry gives the workflow's id, name, description, enabled flag, step count and its triggers (Manual, Timed, Event or Api) with their config, but not the steps. Use workflows_get to see a workflow's steps and how they link. Returns JSON.

signupA

Register a brand-new Anythink platform account with email and password. Use this only when the user has no account yet; if they already have one, use 'login' instead. This creates the top-level user identity — it does not create a billing account or project (do that with 'accounts_create' and 'projects_create' after logging in). On success the user may need to click an email confirmation link before 'login' works; tell them to confirm, then call 'login'.

pay_offers_codesA

List the promo/referral codes attached to an offer. Lists every code on one offer, both shared promo codes and per-user referral codes, with slug, owner (or shared), redemption count and created date. Read-only. To find a specific user's personal referral code, use pay_offers_user_code.

workflows_seedA

Create a workflow and its steps from a JSON file. Reads a JSON file on this machine in the workflows_export format (name, trigger or triggers, and steps with key, action, parameters and on_success/on_failure by step key), fills {{KEY}} placeholders from var, then creates the workflow, adds its steps and links them. It always creates a new workflow, so running it twice makes two copies.

dashboards_widget_previewA

Show the data a widget would draw, without saving it. Works for a saved chart, given its id, and for list, materialised view, markdown and other widgets, given their config. Use it to see what a saved chart shows now, or to try a widget before adding it with dashboards_add_chart or dashboards_update; use dashboards_data for widgets already on a dashboard. Returns JSON.

data_createA

Create a new record. Inserts one record from a JSON object of field names to values and returns the created record with its new id. Objects or arrays given for jsonb fields are sent as JSON strings automatically. Workflows with an EntityCreated trigger on this entity will run. To load many rows from a file, use data_import.

pay_offers_redemptionsA

List redemptions for an offer. Lists who redeemed one offer, paged: the redeemer, the status of their reward, the referrer if any and the referrer's reward status, and when it was redeemed. Read-only; use it to check whether referral rewards were granted.

pay_offers_add_codeA

Add a promo/referral code to an offer. Creates a code users enter to redeem the offer: a shared promo code, or with an owner user id, a personal referral code tied to that user. Returns the new code. There is no tool to remove a single code; codes go only when the offer is deleted with pay_offers_delete.

menus_reorderA

Set the order of menus. Menus you name come first in that order and the rest follow in their current order. Order matters when a role has more than one menu, because the role is shown only its first; to change a menu's role, use menus_update. It changes or deletes existing data, so check with the user before running it.

charts_updateA

Change a chart. Only the settings you pass change; the rest stay as they were. Saves new settings on an existing chart; a filter replaces all of its existing filters. Dashboard widgets point at the chart rather than copying it, so every dashboard showing it draws the new version. Use charts_get first to see its current settings. Returns JSON. It changes or deletes existing data, so check with the user before running it.

pay_offers_deleteA

Permanently delete an offer and all its codes + redemptions (history is lost; trial bonuses already granted are preserved). Returns how many codes and redemptions were deleted and how many trial bonuses were kept. The offer's Stripe coupon is not removed. To stop redemptions while keeping the history, use pay_offers_pause instead. It changes or deletes existing data, so check with the user before running it.

fields_addA

Add a field to an entity. Adds a column to an existing entity; always pass the database type. The display type defaults from it (varchar to input, boolean to checkbox, relationships to relationship). Relationship types need the target entity's name, and on-delete defaults to CASCADE; user and file fields link to users and files automatically. Returns the new field's id.

workflows_enableA

Enable a workflow. An enabled workflow runs on its own from its triggers: Timed on its cron schedule, Event when the matching event happens, Api when its route is called. Use workflows_disable to pause it without losing its steps.

pay_offers_getA

Show one offer by id (guid). Shows one offer in full: kind, description, status, primary code, redeemer and referrer rewards, eligibility rules, per-user and total caps, validity dates and linked Stripe coupon id. Read-only; its codes and redemptions come from pay_offers_codes and pay_offers_redemptions.

workflows_exportA

Export an existing workflow to JSON (round-trippable with seed). Gives the workflow's definition as JSON with no ids: its triggers, and its steps with their parameters, linked by step key through on_success/on_failure. Use it to back up or copy a workflow; for the ids the step tools need, use workflows_get. It changes or deletes existing data, so check with the user before running it.

accounts_listA

List the billing accounts (organizations) the logged-in user belongs to. Requires a prior platform login (use the 'login' tool first). Returns each account's id, organization name, billing email, currency, and status (Active/Suspended/Canceled), and flags which one is currently active. A billing account holds your projects and payment details — pick one with 'accounts_use' before creating or listing projects.

integrations_connections_listA

List your integration connections. Shows each connection's id, provider, name, scope (the whole project or one user) and whether it is enabled; stored credentials are never shown. Use the id with integrations_test, integrations_enable, integrations_disable and integrations_disconnect.

pay_subscriptions_by_userA

List subscriptions accessible to a user. Lists the subscriptions one project user (by numeric user id) is linked to, with id, name, status, price and created date. Read-only. Use it to look up a customer's subscriptions; pay_entitlement and pay_subscriptions_check_access only report on the signed-in user.

secrets_listA

List all secret keys (metadata only, values never shown). Shows each secret's key, the users it is assigned to, and when it was created and updated; values are never returned. Use it to check a key exists before referencing it in a workflow as {{ $anythink.secrets.KEY }}, or before secrets_update or secrets_delete.

search_similarA

Find documents similar to a given record (vector search). Takes an entity and a record id and returns the records closest in meaning to it, 10 by default, using vector embeddings in the search index. The public option searches as an anonymous visitor and returns only publicly searchable fields. To find records matching words you supply, use search_query. Returns JSON.

integrations_oauth_connectA

Connect via the browser OAuth flow (starts a local listener). Opens the provider's sign-in page in a browser on this machine and waits up to five minutes for the callback on localhost (port 8745 by default), then creates the connection. A person must complete the sign-in, and the provider must first be set up with integrations_oauth_configure; for API-key providers use integrations_connect.

pay_offers_listA

List offers. Lists the project's offers (discounts, trial extensions and referral schemes that users redeem with a code): id, name, kind, primary code, redeemer and referrer rewards, and status. Read-only. Offers are separate from subscription plans (pay_plans_list).

pay_subscriptions_resumeA

Resume a cancelled subscription. Removes a scheduled cancellation from a Stripe subscription, so it renews and charges the customer again at the end of the current period. Use it to undo pay_subscriptions_cancel before the period ends.

dashboards_dataA

Get the data behind a dashboard's widgets. Runs a saved dashboard's widgets, or only the widget ids passed, and shows each one's id, title, type and current data, trimmed to rows per widget. Use it to read what a dashboard shows now; use dashboards_widget_preview to try a widget that isn't on a dashboard yet. Returns JSON.

pay_offers_pauseA

Pause an offer. Sets an offer's status to paused so none of its codes can be redeemed; past redemptions and rewards already granted stay. Reversible with pay_offers_activate. Prefer this to pay_offers_delete to stop an offer without losing its history. It changes or deletes existing data, so check with the user before running it.

workflows_step_addA

Add a step to a workflow. Params are the action's settings as JSON, e.g. {"script":"return {}"} for RunScript or {"entity":"orders","data":{...}} for CreateData. The new step is unlinked: set start on the workflow's first step and chain the rest with workflows_step_link. For FileHandler or Integration steps, workflows_file_handler_add and workflows_integration_add build the params for you.

data_deleteA

Delete a record. Removes one record by its numeric id. Records in other entities that point to it through a relationship field follow that field's on-delete rule; with the default, CASCADE, they are deleted too. Workflows with an EntityDeleted trigger on this entity will run. It changes or deletes existing data, so check with the user before running it.

data_listA

List records in an entity. Returns one page of records (rows), 20 by default. Filter by field values with JSON such as {"status":"draft","price":{"gte":10}} or pairs such as status=draft&price=GTE:10. Use data_get when you know the record id, or search_query to find records by text across entities. Returns JSON.

roles_permissions_listA

List entity permissions for a role. Shows, entity by entity, which actions (read, create, update, delete) a role grants. Use it before roles_permissions_add or roles_permissions_remove, or to explain why users with that role can or can't reach some data.

login_directA

Store credentials directly for a project (bypasses billing login). Use this when you already have an org ID and API key or JWT token.

search_purgeA

Purge the search index. Omit ENTITY to purge everything (admin only). Deletes the search index entries for the entity, or for every entity, so search_query and search_similar return nothing for them until search_rehydrate runs. The records in the database are not touched. It changes or deletes existing data, so check with the user before running it.

config_useA

Switch the active project profile that the 'cli' tool's commands operate against. Use this to move between already-connected projects without re-authenticating. The profile must already exist (created by 'projects_use' or 'login_direct'); run 'config_show' to see available profile names. Returns confirmation, or an error if the profile does not exist.

settings_cors_listA

List allowed application URLs. Shows the web app origins allowed to call this project's API from a browser. Anythink's own domains and localhost are always allowed and aren't listed. Change the list with settings_cors_add and settings_cors_remove.

pay_plans_updateA

Update a subscription plan (any --flag overrides; unset = keep). Changes a subscription plan; omitted fields keep their current values, and active or inactive shows or hides it from the plan picker. Changing the amount, currency or interval points the plan at a new Stripe price for new sign-ups; existing subscriptions keep their old price. Prefer inactive over pay_plans_delete. It changes or deletes existing data, so check with the user before running it.

data_updateA

Update a record. Changes only the fields named in the JSON object and returns the updated record; other fields keep their values. Objects or arrays given for jsonb fields are sent as JSON strings automatically. Workflows with an EntityUpdated trigger on this entity will run. To create a record instead, use data_create. It changes or deletes existing data, so check with the user before running it.

accounts_createA

Create a new billing account (organization) to hold projects and payment details. Requires a prior platform login (use the 'login' tool first). The new account is automatically set as the active account, so subsequent 'projects_create' / 'projects_list' calls target it without further setup. Returns the new account's id and name. Most users need only one account — call 'accounts_list' first to check whether a suitable one already exists.

pay_plans_deleteA

Delete a subscription plan. Removes a subscription plan so it can no longer be chosen. Existing subscriptions on it, and its Stripe product and price, are left in place and keep billing. To hide a plan reversibly, use pay_plans_update with inactive instead. It changes or deletes existing data, so check with the user before running it.

files_listA

List uploaded files. Returns one page of the project's uploaded files, 25 by default, with each file's id, original name, type, size, whether it is public and when it was uploaded. Use files_get for one file's details, including its stored name.

workflows_getA

Get workflow details and steps. Includes each trigger with its last and next run, and every step with its id, key, action, parameters, start-step flag and on_success/on_failure step ids. Use those step ids with workflows_step_update, workflows_step_link and workflows_step_delete; for a copy without ids, use workflows_export. Returns JSON.

roles_listA

List all roles. Lists the project's roles with id, name, description and whether each is active. Access works through roles: each user holds one role, and a role grants actions (read, create, update, delete) per entity. Use roles_permissions_list to see what one role grants.

entities_createA

Create a new entity. Creates an empty entity, which is a new database table in the active project; add its columns afterwards with fields_add. Options make it public (queryable without signing in), turn on row-level security (RLS), block new records through the API, or mark it as a many-to-many junction table.

fields_deleteA

Delete a field from an entity. Takes the field's name, not its id, and drops that column from the entity, so the value it held is lost from every record. To remove the whole entity and its records, use entities_delete. It changes or deletes existing data, so check with the user before running it.

dashboards_deleteA

Delete a dashboard and its widgets. The charts on it are kept. Removes the dashboard for everyone who can see it. To take one chart off a dashboard, use dashboards_remove_widget; to delete a chart itself, use charts_delete. If it was your home dashboard, dashboards_mine falls back to the project default. Returns JSON. It changes or deletes existing data, so check with the user before running it.

integrations_oauth_statusA

Show OAuth client setup status for a provider. Shows whether a client ID is saved for the provider, whether it is enabled and also used for end-user social sign-in, and the redirect URL its OAuth app must allow. Check it before integrations_oauth_configure, or after to confirm the credentials were saved.

search_auditA

Compare configured public-searchable fields vs what public search actually returns. Flags any data leaks. Runs the same query (default *) through public and signed-in search for one entity, sampling 5 records by default, and reports any field public search returned that is not marked publicly searchable, plus marked fields that didn't appear. It ends with an error when a leak is found. Fix leaks with fields_update. Returns JSON.

settings_getA

Show all project settings. Shows the project's name, description, email confirmation and sign-up rules, default role for new users, group RLS, AI mode and model, payment redirect URLs, trial settings and allowed CORS origins. Secret-like values such as google_maps_key show only as set. Its field names are the keys settings_set takes. Returns JSON.

workflows_disableA

Disable a workflow. Stops the workflow running from its triggers but keeps its triggers, steps and job history, so workflows_enable turns it back on. Prefer this to workflows_delete when a workflow should only stop for a while.

users_deleteA

Delete a user by ID. Removes the user from this project, so they can no longer sign in to it or use their role's access. The role and its permissions stay in place for everyone else. Make sure you have the right person with users_get first. It changes or deletes existing data, so check with the user before running it.

pay_entitlementA

Show the current user's access / trial entitlement. Reports whether the signed-in user (the one this tool runs as) has paid or trial access in the project's app: status, trial end and days left, subscription id, provider, product and expiry. Read-only. To look up another user, use pay_subscriptions_by_user.

login_googleA

Sign in to the Anythink platform with Google. Opens the user's browser to Google's consent screen and waits for them to approve, then stores the session token. The browser step must be completed by the user; everything before and after is tool-driven. This does NOT pick a billing account or project — after it returns, call 'accounts_list' then 'accounts_use', and 'projects_list' then 'projects_use'. Needs a local browser, so it only works over stdio (not the hosted HTTP server).

email_shell_showA

Show the current shell HTML (custom or platform default). Returns the HTML layout that wraps the body of every email the project sends, and says whether it is customised or the platform default. The {{Content}} placeholder marks where each template's body goes. Read it before email_shell_update.

data_exportA

Export records to a CSV, JSON or JSONL file (streamed page by page). Writes every matching record to a file on the machine running the CLI, or to standard output when the file is -, fetching page by page. Uses the same filter syntax as data_list; one-to-many fields are left out unless named in the field list. It won't overwrite an existing file unless forced. For one page of records, use data_list.

workflows_step_getA

View step details including parameters. Shows one step's key, action, enabled and start-step flags, on_success/on_failure step ids and its full parameters. Read it before workflows_step_update, because params passed there replace the step's parameters as a whole.

roles_permissions_addA

Add entity permissions to a role. Grants a role one or more actions (read, create, update, delete; default read) on one entity, and every user holding the role gains them at once. Its other permissions are kept and actions it already has are skipped. An action with no matching permission for that entity is reported and skipped.

dashboards_getA

Get a dashboard with its widgets and their positions. Shows a dashboard's name, description, sharing settings, owner and each widget's id, type, title, the chart it shows and its grid position. Use it to find widget ids for dashboards_remove_widget and dashboards_data, and to see the current widgets before dashboards_update. Returns JSON.

integrations_executeA

Run an operation on a connected provider. Calls the provider live with the project's first enabled connection to it, using inputs given as key=value pairs or a JSON object, and may incur the provider's charges. The API currently runs only the claude provider (inputs prompt, system_prompt, model, max_tokens); other providers return an error, so use them in workflow steps via workflows_integration_add. Returns JSON.

charts_platform_metricsA

List the usage metrics a platform chart can plot. Shows each project usage metric a chart with source platform can plot: its id, label, shape, supported chart types and breakdowns. Pass a metric's id as platform_metric to charts_preview or charts_create, and one of its breakdowns as stack_by. Returns JSON.

pay_offers_updateA

Update an offer (patch — only supplied fields change; kind is immutable). Changes an offer's name, description, rewards, eligibility, caps, dates or status; omitted fields are kept. Setting status to paused or expired stops its codes being redeemed. Changing a discount reward does not update the Stripe coupon made at creation. For status alone, pay_offers_pause and pay_offers_activate are simpler. It changes or deletes existing data, so check with the user before running it.

pay_trial_disableA

Disable the app engagement trial. Turns off the project-wide app engagement trial, so users without a subscription no longer get free app access. Changes only this project setting and leaves the others as they were; undo with pay_trial_enable. Trial days granted by offers are separate and unaffected.

workflows_deleteA

Delete a workflow. Removes the workflow with its triggers and steps, so it stops running and can't be restored. To stop it for a while use workflows_disable; to keep a copy first, use workflows_export. It changes or deletes existing data, so check with the user before running it.

api_keys_createA

Create an API key. The raw key is shown once and never retrievable. Creates a project API key with the named permissions (names from fetch on /permissions) that expires after 1 to 365 days, 90 by default. Permissions you don't hold yourself are dropped with a warning. The raw key appears only in this output, or goes straight into a CLI profile with save_as, so store it at once. Returns JSON.

roles_permissions_removeA

Remove entity permissions from a role. Takes one or more actions (default read) on one entity away from a role; every user holding the role loses them at once, and its other permissions are kept. Actions the role doesn't have are ignored. Use roles_permissions_list first to see what it grants. It changes or deletes existing data, so check with the user before running it.

menus_add_itemA

Add a menu item for an entity. The item links to the entity's data page in the dashboard, is named after the entity in title case unless name is given, uses a Lucide icon (Database by default) and goes last at the top level or under parent. The entity must exist; to link to another path, add the item and then set href with menus_update_item.

dashboards_listA

List the dashboards you can see. Shows each dashboard's id, name, owner and whether it is your home, the project default or shared. A dashboard is a grid of widgets, most of them showing a saved chart; open one with dashboards_get to see its widgets, or dashboards_mine for the one you land on. Returns JSON.

menus_listA

List all menus and their items. Shows every menu with its id, name and the role id it is shown to, plus its items' ids, names, icons and links. Only top-level items and their direct children are listed; use menus_get for one menu's full item tree, including which items are locked.

workflows_createA

Create a new workflow. Creates the workflow with one trigger and no steps: Manual needs entity, Timed needs cron, Event needs entity plus an event (EntityCreated by default) and an optional filter, and Api needs api_route. It stays disabled unless enabled is set; add steps with workflows_step_add, then turn it on with workflows_enable.

integrations_disconnectA

Delete a connection. Removes the connection and its stored credentials from the project; workflow steps that rely on it fail until the provider is connected again with integrations_connect or the OAuth flow. Use integrations_disable to pause it instead. It changes or deletes existing data, so check with the user before running it.

pay_paymentsA

List recent payments. Lists card payments the project has taken from its end users through AnythinkPay (Stripe), with id, amount, currency, status, description and date, paged by page and limit. Read-only; there is no refund tool. For recurring billing records use pay_subscriptions_list.

settings_setA

Set a single project setting. Changes one setting, named as in settings_get (for example allow_registrations, default_role_id, ai_mode or payment_success_url), and keeps the rest; booleans take true or false. Opening sign-ups, turning off email confirmation or giving new users an admin role goes through without a further prompt. For CORS origins use settings_cors_add. It changes or deletes existing data, so check with the user before running it.

fetchA

Make an authenticated API request to the active project. Sends a request to any project endpoint, with the path relative to /org/{project}, using the CLI's credentials, and prints the response body. Use it only where no dedicated tool exists, such as /permissions or integration field options; POST, PUT and DELETE change data. all follows every page of a GET. It changes or deletes existing data, so check with the user before running it.

pay_subscriptions_cancelA

Cancel a subscription. Schedules a Stripe subscription to cancel at the end of its current billing period: the customer keeps access until then and is not charged again. Reversible before the period ends with pay_subscriptions_resume. Apple subscriptions are cancelled by the customer in the App Store. To end access now, see pay_subscriptions_force_expire. It changes or deletes existing data, so check with the user before running it.

menus_remove_itemA

Remove a menu item, along with its child items. Deletes the item and its direct child items from the menu. It refuses locked built-in items, and items whose children are locked or have children of their own; move those out first with menus_update_item. It changes or deletes existing data, so check with the user before running it.

integrations_oauth_callback_urlA

Print the redirect URL to add to OAuth app configurations (same for every provider). Prints only the dashboard redirect URL for this project, worked out locally from the API address and project id without an API call. Give it to the user to add to their OAuth app at the provider before integrations_oauth_configure; integrations_oauth_status shows it with the provider's setup state.

charts_listA

List charts, newest first. Shows each saved chart's id, name, type, data source, the entity or metric it plots and when it last changed; pass entity to see only one entity's charts. A chart is saved on its own and appears on a dashboard only once added with dashboards_add_chart. Returns JSON.

secrets_deleteA

Delete a secret. Removes the key and its encrypted value for good; workflows that reference it as {{ $anythink.secrets.KEY }} fail until it is created again. To change a value, use secrets_update instead. It changes or deletes existing data, so check with the user before running it.

pay_trial_enableA

Enable the app engagement trial. Turns on the project-wide app engagement trial, so users without a subscription get free app access for the longest trial length among active plans. Changes only this project setting and leaves the others as they were; undo with pay_trial_disable. Unrelated to offer trial rewards (pay_offers_create).

workflows_step_linkA

Link workflow steps together (set on-success/on-failure). Sets which step runs next when this one succeeds (on_success) or fails (on_failure), by step id from workflows_get; a link you leave out keeps its current value. Links can be changed but not cleared here, and the step's name, action and params stay as they are. It changes or deletes existing data, so check with the user before running it.

charts_previewA

Show the data a chart configuration would draw, without saving it. Runs a chart configuration against the project's current data and shows the points, totals or rows it would plot, trimmed to rows. Use it to settle entity, grouping, measure and filters before charts_create or charts_update; for a chart already saved, use dashboards_widget_preview. Returns JSON.

dashboards_createA

Create a dashboard, optionally with charts already on it. Makes a new dashboard owned by you, visible only to you unless shared is set. Each chart id passed becomes a chart widget titled with the chart's name; add more later with dashboards_add_chart. Build the charts first with charts_create. Making it the project default needs an administrator. Returns JSON.

charts_getA

Get a chart's full configuration. Shows every setting of one saved chart: type, data source, entity or metric, grouping, measure and aggregation, filters, time window, target and comparison. Read it before charts_update; to see the data it draws, use dashboards_widget_preview with type chart and its id. Returns JSON.

menus_update_itemA

Change a menu item's name, icon, link or parent. Changes only the fields you pass: name, Lucide icon, entity (links to that entity's page) or href (any path), and parent (0 for top level). A moved item goes last under its new parent, and locked built-in items can't be changed. To reorder items without moving them, use menus_reorder_items. It changes or deletes existing data, so check with the user before running it.

workflows_integration_addA

Add an Integration step (Claude, OpenAI, Slack…) with named flags (no hand-written params JSON). The step runs one provider operation, such as claude generate-text, with inputs given as key=value pairs that accept {{ $anythink... }} templates; find provider and operation keys with integrations_get. credential_source chooses the credentials (system, current_user, connection with connection_id, or entity_field), and the step is created disabled unless enabled is set.

menus_getA

Show one menu with its items and their child items. Gives the menu's role id and its full item tree, with each item's id, name, icon, href, parent and whether it is a locked built-in item. Use it to find item ids for menus_update_item, menus_remove_item and menus_reorder_items. Returns JSON.

menus_createA

Create a menu for a role. The new menu is empty; add items with menus_add_item. A role is shown only its first menu, so a second menu for the same role may not appear; use menus_reorder to choose which comes first.

workflows_file_handler_exampleA

Print a copy-paste-ready FileHandler params JSON. The sample uses {{ $anythink... }} templates for the source URL, record id and folder, and changes nothing in the project. Adapt it as params for workflows_step_add or workflows_step_update; to add a FileHandler step directly, workflows_file_handler_add is simpler.

entities_getA

Get entity details and fields. Takes the entity name. Returns its table name, its public, RLS and lock-new-records flags, and each field's id, name, database type, display type and required, unique and indexed flags. For one field's full definition, including relationship and select options, use fields_get.

roles_createA

Create a new role. Adds a role with no entity permissions yet, so its users can't reach any data until you grant actions with roles_permissions_add. Then give it to people by passing its id as role_id to users_invite. Role names must be unique in the project.

data_rlsA

View or set RLS (row-level security) user access on a record. Without a user id, returns the users who have row-level security (RLS) access to the record, with their names and whether access is read-only. With a user id, grants that user access to the record, full by default or read-only when asked. It cannot remove access, and only matters on entities with RLS turned on. It changes or deletes existing data, so check with the user before running it.

workflows_step_updateA

Update step parameters and properties. Changes a step's name, params or enabled flag and keeps its action, start flag and links; it can enable a step but not disable one. Params replace the step's parameters as a whole, so read them with workflows_step_get first; to change which step runs next, use workflows_step_link. It changes or deletes existing data, so check with the user before running it.

settings_cors_removeA

Remove an allowed origin (clears the CORS cache). Removes an origin from the allow-list and clears the CORS cache, so browser apps on it are blocked straight away. Pass the origin as settings_cors_list shows it; a value not in the list is reported and nothing changes. It changes or deletes existing data, so check with the user before running it.

loginA

Log in to the Anythink platform with email and password. Returns a session token used for account and project management. For Google sign-in, use the 'login_google' tool.

search_queryA

Run a search query. Searches the search index across all indexed entities or the ones listed, with optional filter (status=published AND category=news), sort, facets and highlighting; use * to browse. The public option searches as an anonymous visitor. To list one entity's records by exact field values, use data_list; if indexed records are missing, use search_rehydrate. Returns JSON.

pay_subscriptions_check_accessA

Check whether the current user has access to a subscription by name. Checks whether the signed-in user (the one this tool runs as) holds a subscription with the given name, optionally requiring a status, and returns whether they have access plus that subscription's id, name and status. Read-only. For another user use pay_subscriptions_by_user.

oauth_google_statusA

Show Google OAuth configuration status. Reports whether Google sign-in for the project's end users is enabled and whether a client ID and secret are saved, without showing them. This covers user sign-in only; Google as an integration is handled by integrations_oauth_status and integrations_oauth_configure.

entities_updateA

Update entity settings. Changes an entity's public, row-level security (RLS) and lock-new-records settings; any you leave out keep their current value. It cannot rename the entity or change its fields, so use fields_update for columns. Making an entity public lets anyone query its records without signing in. It changes or deletes existing data, so check with the user before running it.

workflows_triggerA

Manually trigger a workflow. Starts a run now and returns without the run's result; check the outcome with workflows_jobs. A Manual-trigger workflow needs entity (and entity_id for a specific record), and payload is a JSON object the steps read as $anythink.trigger.data.

pay_subscriptions_deleteA

Hard-delete a subscription (project admin). Project-admin recovery tool that permanently removes a stuck or duplicate subscription record and its user links from Anythink. It does not cancel at Stripe or Apple, so the customer can still be billed; use pay_subscriptions_cancel first if billing should stop. It changes or deletes existing data, so check with the user before running it.

fields_updateA

Update properties of an existing field. Changes a field's label, description, display type, default value, select options and its required, searchable, public-search and indexed flags. Settings you don't pass keep their value, except the description, which is cleared unless passed again. It cannot rename a field or change its database type, and locked fields are refused. It changes or deletes existing data, so check with the user before running it.

pay_plans_listA

List subscription plans. Lists the project's own subscription plans, the recurring prices its end users can subscribe to: id, internal plan name, display name, price per interval, trial days, Apple product id and whether active. Read-only. Not the same as plans, which lists Anythink's hosting plans for projects.

email_templates_showA

Show a template's subject + content, or the rendered HTML with --rendered. By default returns the stored subject and content with their {{ placeholders }} intact, which is what to edit; with rendered it returns the full email HTML inside the project's shell, filled with sample data. Read it before email_templates_update.

dashboards_set_homeA

Make a dashboard of yours your landing dashboard. Changes only your own landing dashboard, replacing your previous home; other users are unaffected. Check the result with dashboards_mine. To change what new users start from, use dashboards_promote_to_default. Returns JSON. It changes or deletes existing data, so check with the user before running it.

oauth_google_configureA

Set Google OAuth client ID and secret. Saves the Google Cloud OAuth client ID and secret that let the project's end users sign in with Google, and switches that sign-in on or off. It only works interactively, prompting for each value (blank keeps the current one), then prints the callback URL to add to the Google OAuth client. It changes or deletes existing data, so check with the user before running it.

pay_subscriptions_force_expireA

Force-expire a subscription immediately (project admin). Project-admin recovery tool that sets a subscription's status to expired and clears its current period, so the user loses access at once while the record is kept. It changes only Anythink's record, not Stripe or Apple, so it does not stop future charges; use pay_subscriptions_cancel for that. It changes or deletes existing data, so check with the user before running it.

integrations_listA

List available integration providers. Start here when connecting a third-party service. Shows each provider's key, category, auth type (api_key or oauth2) and operation count; providers turned off for this project are left out. Next, read a provider with integrations_get, then connect it with integrations_connect (API key) or integrations_oauth_configure (OAuth).

roles_deleteA

Delete a role by ID. Removes a role and the permissions it grants. The API refuses while any user still holds the role, and the built-in admin role can't be deleted, so check users_list for its holders first. To take away only some access, use roles_permissions_remove instead. It changes or deletes existing data, so check with the user before running it.

email_templates_listA

List all email templates for this project. Shows each template's type (such as confirmation, invite or recovery), subject, and whether it is locked or active. These are the account emails Anythink sends for the project; pass a type to email_templates_show to read one or email_templates_update to change it.

integrations_disableA

Disable a connection. Stops integrations_execute and workflow steps from using the connection but keeps its stored credentials, so integrations_enable can turn it back on. Prefer this to integrations_disconnect when the pause may be temporary.

data_importA

Create records from a CSV, JSON array or JSONL file. Always run with --dry-run first and only add --yes after the dry run is approved. Reads a file on the machine running the CLI and creates one new record per row, checking values against the entity's field types; rows with unknown columns are rejected unless told to ignore them. System columns such as id are ignored, so it never updates existing records. For a single record, use data_create.

workflows_updateA

Update a workflow's name or description. Only the name and description change; the triggers, steps, group and enabled state are sent back unchanged, and no tool here edits a trigger. It refuses to run while an existing trigger is incomplete (e.g. a Timed trigger with no cron), which must be fixed in the dashboard first. To change a step, use workflows_step_update. It changes or deletes existing data, so check with the user before running it.

accounts_useA

Set the active billing account that project commands operate on. Call this after 'login' when you belong to more than one account, before using 'projects_list', 'projects_create', or 'projects_use'. Accepts a full account UUID or a unique prefix; run 'accounts_list' to see valid ids. Returns the resolved account name and id, or an error if no account matches.

apiA

List all API endpoints (platform + dynamically generated entity routes). Lists full URLs for a fixed set of core routes (auth, API keys, entities, fields, workflows), the five CRUD routes of every entity in the project plus public routes for public entities, and the route of each API-triggered workflow. Use it to give app developers endpoint URLs; to call one, use fetch. Returns JSON.

pay_subscriptions_listA

List subscriptions (paginated, optionally filtered by --status). Lists the project's subscriptions (end users' recurring Stripe or Apple purchases of a plan) with id, name, status, price, customer email and created date, paged, optionally filtered by status such as active, trialing or cancelled. Read-only. Non-admins see only subscriptions they are linked to.

pay_connectA

Set up a Stripe Connect account and start onboarding. Creates the project's Stripe Connect account and opens Stripe's hosted onboarding page in a browser, which must be finished before plans can take card payments. It prompts for business type, country and email, so it needs an interactive terminal. Check pay_status first.

secrets_updateA

Rotate (overwrite) an existing secret value. Overwrites the stored value of an existing key, for example to rotate a credential; the old value is lost and workflows referencing the key use the new one from their next run. Pass the new value in value. Use secrets_create for a key that doesn't exist yet. It changes or deletes existing data, so check with the user before running it.

pay_offers_user_codeA

Look up a user's personal referral code. Returns one user's personal referral code (by numeric user id) with its slug, offer name and redemption count. If the user has no code yet the server generates one, so this call can create a code. To list all codes on one offer, use pay_offers_codes.

dashboards_mineA

Get your landing dashboard, or the project default if you have none. Shows the same detail as dashboards_get for the dashboard you see first when you open the project. Use it when you don't have a dashboard id; change which dashboard you land on with dashboards_set_home. Returns JSON.

data_getA

Get a single record by ID. Returns all of one record's field values by its numeric id. Use data_list with a filter when you don't know the id, search_query to find it by text, and data_rls to see which users can access it.

integrations_connectA

Connect to a provider with an API key (prompts for the key if not given). Only for providers whose auth type is api_key (see integrations_get); OAuth providers fail here and need integrations_oauth_configure. Stores the key encrypted on the server and creates a project-wide connection, or a private one with user_connection, printing its id. Pass the key in api_key, then check the connection with integrations_test.

pay_plans_getA

Show one plan by id. Shows one of the project's subscription plans in full, including type, price and interval, trial, Stripe product name and description, reference, Apple product and subscription group ids, and whether it is active. Read-only; browse plans with pay_plans_list.

dashboards_remove_widgetA

Remove a widget from a dashboard. Everything else on the dashboard stays as it was. Takes the widget off the dashboard and out of its layout; the chart it showed is kept and can be added back with dashboards_add_chart. Get widget ids from dashboards_get. Use charts_delete only to remove the chart from the project entirely. Returns JSON. It changes or deletes existing data, so check with the user before running it.

pay_trial_statusA

Show whether the trial is enabled and its derived length. Reports whether the project-wide app engagement trial is on and how long it lasts. The length is not set directly: it is the longest trial among active subscription plans, and that plan is named. Read-only; change it with pay_trial_enable, pay_trial_disable or a plan's trial days in pay_plans_update.

pay_methodsA

List saved payment methods. Lists the cards and other payment methods saved by the signed-in user as a customer of this project: type, brand, last four digits and expiry. It does not list your end users' cards or the card on your Anythink billing account. Read-only.

projects_listA

List the projects (provisioned backend instances) in a billing account. Requires platform login and an active billing account (set one with 'accounts_use'). Returns each project's id, name, description, region, org id, status (Initializing/Provisioning/Active/Suspended/Terminated/Error), API URL, and creation date. Use this to find a project's id before connecting with 'projects_use' or removing it with 'projects_delete'.

email_shell_updateA

Save new shell HTML, or pass --reset to revert to the platform default. Replaces the HTML layout around every email the project sends, or with reset returns to the platform default. Keep the {{Content}} placeholder where the body goes; the server sanitises the HTML. Check a draft with email_preview first. It changes or deletes existing data, so check with the user before running it.

workflows_step_deleteA

Delete a step from a workflow (warns if other steps link to it). The API refuses to delete a step that other steps still point to through on_success or on_failure, so re-point those with workflows_step_link first. Deleting the start step leaves the workflow with no entry point until a new step is added with start. It changes or deletes existing data, so check with the user before running it.

integrations_enableA

Enable a connection. Turns a disabled connection back on so integrations_execute and workflow steps can use it again; its stored credentials are unchanged. Returns the connection's name and new state. The opposite is integrations_disable.

secrets_createA

Store a new secret value. Stores the value encrypted in the project under the key, for workflows to reference as {{ $anythink.secrets.KEY }}; it can never be read back. Pass it in value, as the hidden prompt can't be answered by a tool. To change an existing secret use secrets_update.

dashboards_add_chartA

Add a chart to a dashboard as a new widget. Everything else on the dashboard stays as it was. This is how a saved chart gets onto a dashboard. The widget takes the chart's name as its title unless title is given, and goes after the existing widgets unless column, row, width or height place it on the 12-column grid. Create the chart first with charts_create; avoid dashboards_update for this, as it replaces every widget. Returns JSON.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.8/5.0

Scored across 175 tools

Disambiguation3/5

Descriptions are unusually thorough and cross-reference siblings explicitly ('use X instead of Y'), so most boundaries are clear. However, with 175 tools there are genuine overlaps: convenience wrappers (workflows_file_handler_add vs workflows_step_add), preview/get pairs (charts_preview vs dashboards_widget_preview vs dashboards_data), and catch-all escape hatches (cli, fetch, api) that duplicate the dedicated tools' scope. An agent must read carefully to pick correctly, so some overlap exists despite good prose.

Naming Consistency4/5

Names overwhelmingly follow a snake_case prefix_noun_verb or prefix_verb convention (email_templates_update, menus_update_item, dashboards_add_chart, pay_subscriptions_cancel, workflows_step_add). Minor deviations exist: several unprefixed top-level tools (login, signup, logout, docs, cli, fetch, api) and shorthand pay_* names break the resource-prefix pattern. Still largely predictable.

Tool Count1/5

175 tools is an extreme mismatch for a single MCP server, far past the 50+ threshold. Even granting that Anythink is a full backend platform, cramming project, entity, data, workflow, payment, email, auth, and search management into one surface is unwieldy and forces agents to select blind. This module should be decomposed into several scoped servers.

Completeness4/5

Coverage is remarkably broad: entities, fields, data, RLS, users, roles, menus, dashboards, charts, workflows, integrations, payments, email, search, secrets, files, API keys, projects and accounts all have full lifecycle tools. Only minor, explicitly acknowledged gaps exist (no refund tool, no way to remove a single offer code, no trigger-editing tool), which agents can work around.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive