Anythink all-in-one backend: data, auth, files, workflows, payments, APIs
NUGET · ANYTHINK-MCP · 2 COMPONENTS
Sick of stitched-together services? Anythink is the all-in-one backend, configured with AI.
Available components
Last scanned (4 hours ago)
Scores higher than 68% of NuGet servers
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security100
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- No production dependencies, so there is no dependency health to assess. View diagnostics → Pass
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Build provenance not yet verified. View diagnostics → Unverified
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 24 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability73
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 24748 tokens (~141/item across 175 items; 175 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management78
- Stability check failed: the tool surface changed between 0.2.22 and 0.2.37: 0 tool removals, 7 breaking changes, 159 additions. See how to fix → Fail
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety93
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 42 of 59 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "pay_subscriptions_get" implies "pay" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Partial
- An AI judge read all 175 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 1 Nov 26 0
- Security disclosure: unverified → fail ▼ functional
- 30 Oct 26 0
- Security disclosure: fail → unverified ▼ functional
- 28 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 75 to 78.
- 27 Oct 26 −1
No change was recorded against any check on this day. Stability & Change Management went from 78 to 75.
- 21 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 75 to 78.
- 20 Oct 26 −1
No change was recorded against any check on this day. Stability & Change Management went from 78 to 75.
- 17 Oct 26 +3
No change was recorded against any check on this day. Stability & Change Management went from 61 to 78.
- 15 Oct 26 −3
No change was recorded against any check on this day. Stability & Change Management went from 78 to 58.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Analysed nuget/anythink-mcp@0.2.37
Provenance Inconclusive
We could not complete the check, so nothing is claimed either way. This is a gap on our side, not a finding about the package.
| Result | Inconclusive |
|---|---|
| Ecosystem | nuget |
| Reason | Attestation not fetched |
Signer
| Signed as | Repository signature, names nuget.org |
|---|---|
| Subject | CN=NuGet.org Repository by Microsoft,O=NuGet.org Repository by Microsoft,L=Redmond,ST=Washington,C=US |
| Issuer | CN=DigiCert Trusted G4 Code Signing RSA4096 SHA384 2021 CA1,O=DigiCert\, Inc.,C=US |
| Valid from | 23 Feb 2024 |
| Valid until | 18 May 2027 |
| Service index | https://api.nuget.org/v3/index.json |
| Owners | chris_addams |
Background: How many MCP packages publish verified provenance →
Dependencies 0 packages
| Packages resolved | 0 |
|---|---|
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
Registry declarations For information only
What the registry and the package's own manifest say about this version. The publisher or the registry writes these, nothing here is verified, and none of it affects the score.
| Repository | https://github.com/anythink-cloud/anythink-cli |
|---|---|
| Repository type | git |
| Commit | fe0bae2cda9f536ea08e4a3caa2cb74d8312b9fa |
| Project URL | https://github.com/anythink-cloud/anythink-cli |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
pay_offers_pause Pay: offers pause ~102
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Offer id (guid). Find it with pay_offers_list. |
No output schema declared.
No examples provided.
pay_offers_redemptions Pay: offers redemptions ~119
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Offer id (guid). Find it with pay_offers_list. |
| limit | integer | – | Items per page (default: 50) |
| page | integer | – | Page number (default: 1) |
No output schema declared.
No examples provided.
pay_offers_update Pay: offers update ~422
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.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | Offer description |
| discount_duration | string | – | Discount duration for --discount-percent: once, forever, repeating (default once) |
| discount_percent | number | – | Shortcut: redeemer reward = N% discount (use --discount-duration for recurrence) |
| eligibility | string | – | Eligibility rules as JSON, e.g. {"match":"all","rules":[{"type":"subscribed_to_plan","plan_ids":[1]}]} |
| id | string | yes | Offer id to update. Find it with pay_offers_list. |
| name | string | – | Offer display name |
| per_user_cap | integer | – | Per-user redemption cap (default 1) |
| redeemer_reward | string | – | Redeemer reward as JSON, e.g. {"type":"discount","percent_off":50,"duration":"once"} |
| redeemer_trial_days | integer | – | Shortcut: redeemer reward = trial extension of N days |
| referrer_reward | string | – | Referrer reward as JSON (referral offers only) |
| referrer_subscription_days | integer | – | Shortcut: referrer reward = subscription extension of N days |
| referrer_trial_days | integer | – | Shortcut: referrer reward = trial extension of N days |
| status | string | – | Set status: active, paused, or expired |
| total_cap | integer | – | Total redemption cap (omit for unlimited) |
| valid_from | string | – | Offer valid-from (ISO date/time) |
| valid_until | string | – | Offer valid-until (ISO date/time) |
No output schema declared.
No examples provided.
pay_offers_user_code Pay: offers user code ~93
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`.
| Name | Type | Req | Description |
|---|---|---|---|
| user_id | integer | yes | Numeric user id. Find it with users_list. |
No output schema declared.
No examples provided.
pay_payment_options Pay: payment options ~117
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.
| Name | Type | Req | Description |
|---|---|---|---|
| platform | string | – | Client platform: ios, android, or web |
| storefront | string | – | Storefront code (ISO 3166-1 alpha-3, e.g. GBR) — optional |
No output schema declared.
No examples provided.
pay_payments Pay: payments ~100
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`.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Items per page (default: 25) |
| page | integer | – | Page number (default: 1) |
No output schema declared.
No examples provided.
pay_plans_create Pay: plans create ~375
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.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | number | – | Recurring amount (decimal, in the plan's currency) |
| apple_product_id | string | – | Apple App Store product id for this plan (optional) |
| apple_subscription_group_id | string | – | Apple subscription group id (optional; auto-filled on first verify) |
| currency | string | – | Currency code (create default: gbp; update keeps the current value) |
| description | string | – | Description |
| inactive | boolean | – | Mark the plan inactive (hidden from picker) |
| interval | string | – | Billing interval: day, week, month, year (create default: month; update keeps the current value) |
| interval_count | integer | – | Number of intervals per billing cycle (create default: 1; update keeps the current value) |
| name | string | – | Display name shown to subscribers |
| plan_name | string | – | Internal plan identifier (e.g. "trial", "monthly", "annual") |
| product_description | string | – | Stripe product description (optional) |
| product_name | string | – | Stripe product display name (optional, defaults to Name) |
| reference | string | – | Internal reference / external id (optional) |
| tier_rank | integer | – | Plan tier rank (update keeps the current value) |
| trial_days | integer | – | Trial period length in days (optional) |
| type | string | – | Plan type (create default: web; update keeps the current value) |
No output schema declared.
No examples provided.
pay_plans_delete Pay: plans delete ~100
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Plan id to delete. Find it with pay_plans_list. |
No output schema declared.
No examples provided.
pay_plans_get Pay: plans get ~87
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`.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Plan id (integer). Find it with pay_plans_list. |
No output schema declared.
No examples provided.
pay_plans_list Pay: plans list ~74
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
pay_plans_update Pay: plans update ~420
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.
| Name | Type | Req | Description |
|---|---|---|---|
| active | boolean | – | Mark the plan active |
| amount | number | – | Recurring amount (decimal, in the plan's currency) |
| apple_product_id | string | – | Apple App Store product id for this plan (optional) |
| apple_subscription_group_id | string | – | Apple subscription group id (optional; auto-filled on first verify) |
| currency | string | – | Currency code (create default: gbp; update keeps the current value) |
| description | string | – | Description |
| id | integer | yes | Plan id to update. Find it with pay_plans_list. |
| inactive | boolean | – | Mark the plan inactive (hidden from picker) |
| interval | string | – | Billing interval: day, week, month, year (create default: month; update keeps the current value) |
| interval_count | integer | – | Number of intervals per billing cycle (create default: 1; update keeps the current value) |
| name | string | – | Display name shown to subscribers |
| plan_name | string | – | Internal plan identifier (e.g. "trial", "monthly", "annual") |
| product_description | string | – | Stripe product description (optional) |
| product_name | string | – | Stripe product display name (optional, defaults to Name) |
| reference | string | – | Internal reference / external id (optional) |
| tier_rank | integer | – | Plan tier rank (update keeps the current value) |
| trial_days | integer | – | Trial period length in days (optional) |
| type | string | – | Plan type (create default: web; update keeps the current value) |
No output schema declared.
No examples provided.
pay_status Pay: status ~67
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`.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
pay_subscriptions_by_user Pay: subscriptions by user ~96
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.
| Name | Type | Req | Description |
|---|---|---|---|
| user_id | integer | yes | Numeric user id. Find it with users_list. |
No output schema declared.
No examples provided.
pay_subscriptions_cancel Pay: subscriptions cancel ~116
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Subscription id (guid). Find it with pay_subscriptions_list. |
No output schema declared.
No examples provided.
pay_subscriptions_check_access Pay: subscriptions check access ~105
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`.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Subscription name to check |
| status | string | – | Require a specific status (optional) |
No output schema declared.
No examples provided.
pay_subscriptions_delete Pay: subscriptions delete ~104
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Subscription id (guid). Find it with pay_subscriptions_list. |
No output schema declared.
No examples provided.
pay_subscriptions_events Pay: subscriptions events ~95
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`.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Subscription id (guid). Find it with pay_subscriptions_list. |
No output schema declared.
No examples provided.
pay_subscriptions_force_expire Pay: subscriptions force expire ~119
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Subscription id (guid). Find it with pay_subscriptions_list. |
No output schema declared.
No examples provided.
pay_subscriptions_get Pay: subscriptions get ~90
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`.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Subscription id (guid). Find it with pay_subscriptions_list. |
No output schema declared.
No examples provided.
pay_subscriptions_list Pay: subscriptions list ~133
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Items per page (default: 25) |
| page | integer | – | Page number (default: 1) |
| status | string | – | Filter by status (e.g. active, trialing, cancelled) |
No output schema declared.
No examples provided.
pay_subscriptions_relink Pay: subscriptions relink ~126
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Subscription id (guid). Find it with pay_subscriptions_list. |
| to_user_id | integer | – | User id to move the subscription to |
No output schema declared.
No examples provided.
pay_subscriptions_resume Pay: subscriptions resume ~75
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Subscription id (guid). Find it with pay_subscriptions_list. |
No output schema declared.
No examples provided.
pay_subscriptions_resync Pay: subscriptions resync ~103
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Subscription id (guid). Find it with pay_subscriptions_list. |
No output schema declared.
No examples provided.
pay_trial_disable Pay: trial disable ~66
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
pay_trial_enable Pay: trial enable ~75
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`).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
pay_trial_status Pay: trial status ~88
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`.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
projects_create Create a project ~236
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'.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string|null | – | Billing account id to create the project in. Defaults to the active account set via 'accounts_use'. |
| description | string|null | – | Optional free-text description shown in the dashboard |
| name | string | yes | Human-readable project name, e.g. 'production' or 'my-app' |
| planId | string | yes | Plan id (UUID) that sets the project's resource tier and pricing. Run the 'plans' CLI command (via the 'cli' tool) to list available plan ids. |
| region | string | – | Deployment region slug, e.g. 'lon1'. Defaults to 'lon1'. Choose the region closest to your users. |
No output schema declared.
No examples provided.
projects_delete Delete a project ~144
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.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string|null | – | Billing account id the project belongs to. Defaults to the active account set via 'accounts_use'. |
| id | string | yes | Project to delete — its UUID, name, or a unique prefix. Use a specific id to avoid accidental matches. Find ids via 'projects_list'. |
No output schema declared.
No examples provided.
projects_list List projects ~124
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'.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string|null | – | Billing account id to list projects for. Defaults to the active account set via 'accounts_use'. |
No output schema declared.
No examples provided.
projects_use Switch the active project ~195
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.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string|null | – | Billing account id the project belongs to. Defaults to the active account set via 'accounts_use'. |
| apiKey | string|null | – | Optional project API key (ak_...). If omitted, a project-scoped token is generated automatically via transfer-token exchange. |
| id | string | yes | Project to connect to — its name, org id, or UUID (a unique prefix is accepted). Find these via 'projects_list'. |
No output schema declared.
No examples provided.
roles_create Roles: create ~84
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.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | Optional description |
| name | string | yes | Role name |
No output schema declared.
No examples provided.
roles_delete Roles: delete ~103
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Role ID to delete. Find it with roles_list. |
No output schema declared.
No examples provided.
roles_list Roles: list ~69
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
roles_permissions_add Roles: permissions add ~125
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.
| Name | Type | Req | Description |
|---|---|---|---|
| actions | string | – | Comma-separated actions: read,create,update,delete (default: read) |
| entity | string | yes | Entity name |
| role_id | integer | yes | Role ID. Find it with roles_list. |
No output schema declared.
No examples provided.
roles_permissions_list Roles: permissions list ~82
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.
| Name | Type | Req | Description |
|---|---|---|---|
| role_id | integer | yes | Role ID. Find it with roles_list. |
No output schema declared.
No examples provided.
roles_permissions_remove Roles: permissions remove ~135
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.
| Name | Type | Req | Description |
|---|---|---|---|
| actions | string | – | Comma-separated actions: read,create,update,delete (default: read) |
| entity | string | yes | Entity name |
| role_id | integer | yes | Role ID. Find it with roles_list. |
No output schema declared.
No examples provided.
search_audit Search: audit ~143
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.
| Name | Type | Req | Description |
|---|---|---|---|
| entity | string | yes | Entity to audit |
| query | string | – | Search query to use for the audit (default: '*' — wildcard across all records) |
| sample | integer | – | How many records to inspect (default: 5) |
No output schema declared.
No examples provided.
search_purge Search: purge ~105
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.
| Name | Type | Req | Description |
|---|---|---|---|
| entity | string | – | Entity name. Omit to operate on the entire index. |
No output schema declared.
No examples provided.
search_query Search: query ~267
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.
| Name | Type | Req | Description |
|---|---|---|---|
| entities | string | – | Comma-separated entity names to search. Default: all indexed entities. |
| facet | string | – | Comma-separated fields to compute facet aggregations on. |
| filter | string | – | Filter expression, e.g. "status=published AND category=news". Supports _geoRadius and _geoBoundingBox. |
| highlight | boolean | – | Enable result highlighting on matched terms. |
| limit | integer | – | Results per page (1-100, default: 20) |
| page | integer | – | Page number (default: 1) |
| public | boolean | – | Use the unauthenticated /search/public endpoint (returns only public-marked fields) |
| sort | string | – | Comma-separated sort fields, e.g. "created_at:desc,id:asc". |
| text | string | yes | Search text. Use '*' for wildcard / browse all. |
No output schema declared.
No examples provided.
search_rehydrate Search: rehydrate ~117
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`.
| Name | Type | Req | Description |
|---|---|---|---|
| entity | string | – | Entity name. Omit to operate on the entire index. |
No output schema declared.
No examples provided.
search_similar Search: similar ~139
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.
| Name | Type | Req | Description |
|---|---|---|---|
| entity | string | yes | Entity name |
| id | integer | yes | Source document ID — find documents similar to this one |
| limit | integer | – | Maximum results (default: 10) |
| public | boolean | – | Use the public endpoint (only public-marked fields returned) |
No output schema declared.
No examples provided.
secrets_create Secrets: create ~115
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`.
| Name | Type | Req | Description |
|---|---|---|---|
| key | string | yes | Secret key name (e.g. CLAUDE_API_KEY, STRIPE_SECRET_KEY) |
| value | string | – | Secret value (use for non-interactive / scripted usage) |
No output schema declared.
No examples provided.
secrets_delete Secrets: delete ~83
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.
| Name | Type | Req | Description |
|---|---|---|---|
| key | string | yes | Secret key name to delete |
No output schema declared.
No examples provided.
secrets_list Secrets: list ~82
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`.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
secrets_update Secrets: update ~118
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.
| Name | Type | Req | Description |
|---|---|---|---|
| key | string | yes | Secret key name |
| value | string | – | Secret value (use for non-interactive / scripted usage) |
No output schema declared.
No examples provided.
settings_cors_add Settings: cors add ~120
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.
| Name | Type | Req | Description |
|---|---|---|---|
| url | string | yes | Application origin, e.g. https://app.example.com or a wildcard like https://*.example.com |
No output schema declared.
No examples provided.
settings_cors_list Settings: cors list ~61
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`.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
settings_cors_remove Settings: cors remove ~114
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.
| Name | Type | Req | Description |
|---|---|---|---|
| url | string | yes | Application origin, e.g. https://app.example.com or a wildcard like https://*.example.com |
No output schema declared.
No examples provided.
settings_get Settings: get ~82
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
settings_set Settings: set ~144
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.
| Name | Type | Req | Description |
|---|---|---|---|
| key | string | yes | Setting key (run 'anythink settings get' to see them). For CORS URLs use 'settings cors'. |
| value | string | yes | New value |
No output schema declared.
No examples provided.
How do I install the Anythink all-in-one backend: data, auth, files, workflows… MCP server?
Anythink all-in-one backend: data, auth, files, workflows… runs locally as a NuGet package, launched with dnx anythink-mcp@0.2.37 --yes. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.
nuget · anythink-mcp
claude mcp add cloud-anythink-anythink -- dnx anythink-mcp@0.2.37 --yes
What is the Anythink all-in-one backend: data, auth, files, workflows… MCP server?
Anythink all-in-one backend: data, auth, files, workflows… is an MCP server listed in the public MCP registry as cloud.anythink/anythink. Sick of stitched-together services? Anythink is the all-in-one backend, configured with AI. This page covers its NuGet package (anythink-mcp).
Is the Anythink all-in-one backend: data, auth, files, workflows… MCP server safe to use?
Anythink all-in-one backend: data, auth, files, workflows… scores 81 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Anythink all-in-one backend: data, auth, files, workflows… MCP server expose?
Anythink all-in-one backend: data, auth, files, workflows… exposes 175 tools: email_templates_update, pay_offers_create, pay_subscriptions_resync, integrations_test, workflows_file_handler_add, and 170 more. Their descriptions and schemas cost roughly 24,748 tokens of context every time the server is loaded.
Is the Anythink all-in-one backend: data, auth, files, workflows… MCP server still maintained?
Anythink all-in-one backend: data, auth, files, workflows… is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the Anythink all-in-one backend: data, auth, files, workflows… MCP server under?
Anythink all-in-one backend: data, auth, files, workflows… declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.