surrealmcp (surrealdb/surrealmcp) is an MCP server listed on the M8ven Trust Index. It scores 45 out of 100, grade D. It declares 91 tools. No publisher has claimed this listing.
Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.
How we verified
Verified is a snapshot. Live keeps it current, and builds your track record.
⚡ Connect GitHub → continuous verification on every pushwhy connect →Who stands behind it
surrealdb
Source: github_topic
Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →
Install from
The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.
These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.
mcp_authAuthenticate this MCP server so the user can access all of its tools. When STATUS.md indicates this server needs authentication, you must call this tool through your MCP tool-calling interface. Do not guess credentials — direct the human to complete OAuth in their MCP client (Cursor: Settings → MCP …
list_regionsList available Cloud regions. Each entry is a region slug — pass it as `configuration.region` for deploy_instance / estimate_instance_cost (slug and id are the same value).
list_instance_typesList available Cloud instance types. Each entry includes a **`slug`** string — put that slug in **`deploy_instance` / `estimate_instance_cost`** as **`configuration.specs.slug`** (not `type_slug`).
list_instance_versionsSurrealDB versions available for new instances. Use the chosen version string inside **`configuration.specs.version`** (not top-level `version`).
list_billing_countriesList countries available for Cloud billing profiles.
search_documentationSearch the published SurrealDB documentation. Returns results grouped by page: each result is the best match on that page, with further matches on the same page under `more`. Every `url` is a path on surrealdb.com, so prefix it with `https://surrealdb.com` to cite it. Use this before answering quest…
get_cloud_terms_and_conditionsList SurrealDB Cloud legal documents the user must review before accepting terms (name + URL for each). Present these links to the human user before calling accept_cloud_terms_and_conditions.
get_cloud_terms_acceptance_statusCheck whether the current user has accepted Cloud terms (terms_accepted_at / marketing_accepted_at from the Cloud session).
accept_cloud_terms_and_conditionsRecord the user's acceptance of Cloud terms. Call get_cloud_terms_and_conditions first and share the links. Requires confirm_use_terms: true (only after the user explicitly agrees). Marketing is opt-out: ask whether they want to opt out of marketing emails; omit marketing_opt_out unless they explici…
get_cloud_profileGet the current user's SurrealDB Cloud profile.
list_organizationsList organisations for the authenticated user (**GET `/organizations`**). Each result includes an alphanumeric **`id`** — use it as **`organization_id`** when calling **`list_organization_instances`**, **`list_organization_spectron_contexts`**, **`get_spectron_context`**, **`call_spectron_tool`**, a…
get_organizationGet a SurrealDB Cloud organisation by id (read-only). Includes billing_info and payment_info flags — call get_organization_deployment_readiness for a deployment checklist with blockers and remediation.
create_organizationCreate a new Cloud organisation. Returns the created org including its `id` and a `deployment` block with next steps. New orgs on the Start plan may have max_free_instances: 0 — call get_organization_deployment_readiness before deploy_instance. Requires write:cloud-organization.
update_organizationRename a Cloud organisation (PATCH name only). Requires write:cloud-organization.
list_organization_instancesList instances in one organisation (`organization_id` = org `id` from list_organizations).
get_instanceGet a Cloud instance by id.
deploy_instanceCreate a Cloud instance (**POST `/instances`**). **write:cloud-instances** required. Call get_organization_deployment_readiness first to avoid quota and billing errors. Body: `name`, `org` (org id from list_organizations), `region`, `specs.slug` + `specs.version` (not top-level version/type_slug). O…
pause_instancePause a Cloud instance (stops resources; data retained).
resume_instanceResume a paused Cloud instance.
update_instance_compute_unitsChange the number of compute units for an instance.
update_instance_storageChange storage size (GB) for an instance.
update_instance_typeChange an instance's type slug.
update_instance_versionChange the SurrealDB version running on an instance.
update_instance_access_typeUpdate network access settings for an instance (e.g. public, private, dual).
update_instance_capabilitiesReplace instance capability flags (PUT /capabilities).
estimate_instance_costEstimate cost before deploy (**PUT `/instance_cost`**). **write:cloud-instances** required.Same `configuration` as deploy_instance. Body: `name`, `org` (org id from list_organizations), `region`, `specs.slug` + `specs.version` (not top-level version/type_slug). Omit `specs.compute_units` for `free`.
get_instance_database_tokenMint a database session token for a Cloud instance (GET /instances/{id}/auth). Highly sensitive — requires query:cloud-instances for PATs. Prefer call_instance_tool for agent queries.
get_instance_backup_policyGet backup retention policy for an instance (daily/weekly/monthly tiers and backup frequency). Use editable/min/max fields before calling update_instance_backup_policy.
update_instance_backup_policyUpdate backup retention for an instance. Call get_instance_backup_policy first and respect each tier's min/max and editable flags. Requires write:cloud-instances.
delete_cloud_instancePermanently delete a Cloud instance and its backups — irreversible. Requires write:cloud-instances. You must set confirm_instance_name exactly to the instance's current display name from GET /instances/{id}. Optional confirm_instance_id must match instance_id when provided.
call_instance_toolProxy a tool call to a Cloud instance's built-in MCP server (https://{host}/mcp). Requires query:cloud-instances. Instance MCP tools (proxied via call_instance_tool / list_instance_tools): Common tools (see https://surrealdb.com/docs/build/ai-agents/mcp for the full list): - use — select namespace…
list_instance_toolsList MCP tools exposed by a Cloud instance's built-in MCP server. Requires query:cloud-instances. Use when a tool name or schema is not covered in the call_instance_tool reference. Instance MCP tools (proxied via call_instance_tool / list_instance_tools): Common tools (see https://surrealdb.com/do…
get_instance_statusGet instance status (e.g. backup information).
get_instance_metricsQuery metrics for an instance (metric, from_time, to_time ISO 8601; optional dummy_data).
get_instance_logsFetch instance logs for a time window (from_time, to_time ISO 8601).
get_organization_deployment_readinessCheck whether an organisation can deploy instances before calling deploy_instance. Returns quotas, billing status, blockers with remediation, and a suggested next tool. Always call this after create_organization and before deploy_instance.
get_organization_billing_requirementsReturn required billing contact fields, optional fields, snake_case aliases, and valid country codes. Billing setup workflow (required before paid instances): 1. get_organization_billing_requirements — list required fields and valid country codes 2. update_organization_billing — set billing contact …
get_organization_billingGet billing contact details for an organisation. Billing setup workflow (required before paid instances): 1. get_organization_billing_requirements — list required fields and valid country codes 2. update_organization_billing — set billing contact + address (or copy_organization_billing_from) 3. get_…
update_organization_billingUpdate billing contact and address (PUT /billing). Accepts PascalCase Cloud API keys (Name, Email, …) or snake_case aliases (name, email, address_line1, …). Does not add payment methods — use get_organization_payment_setup_url after contact is set. Billing setup workflow (required before paid instan…
copy_organization_billing_fromCopy billing contact details from another organisation you belong to (contact info only — not payment methods). Unblocks get_organization_payment_setup_url on fresh orgs. Billing setup workflow (required before paid instances): 1. get_organization_billing_requirements — list required fields and vali…
setup_organization_for_instancesOrchestrate billing setup before first instance deploy. Optionally copies billing from another org, updates billing contact, returns payment setup URL, and reports deployment readiness. Billing setup workflow (required before paid instances): 1. get_organization_billing_requirements — list required …
list_invoicesList billing invoices for an organisation.
list_billing_couponsList billing coupons applied to an organisation (read-only).
get_organization_paymentGet payment method summary for an organisation (read-only). Use with get_organization_deployment_readiness to verify payment_info after Stripe checkout.
get_organization_payment_setup_urlGet a Stripe Checkout URL so the user can add a payment method in the browser (setup mode). Requires billing contact first — call get_organization_deployment_readiness to verify. Never collect card numbers in tool args. Billing setup workflow (required before paid instances): 1. get_organization_bil…
get_organization_payment_portal_urlAlias for get_organization_payment_setup_url (same Stripe Checkout setup endpoint). Prefer get_organization_payment_setup_url for new integrations.
get_organization_usageGet aggregated usage metrics for an organisation.
get_instance_usageGet usage metrics for a specific instance.
list_organization_membersList members of a Cloud organisation. Each member has a **`user_id`** Cloud id (opaque alphanumeric string; e.g. `0a1b2c3d4e5f6g7h8i9j0k1l2m3n4`) — use that value for remove/update-role tools.
list_organization_rolesList assignable organisation member roles.
update_organization_member_roleChange a member's role within an organisation. `member_user_id` is each member's Cloud **`user_id`** from list_organization_members (not Auth0 `sub`).
remove_organization_memberRemove a member from an organisation. `member_user_id` is their Cloud **`user_id`** from list_organization_members.
list_organization_invitationsList pending invitations for an organisation.
invite_organization_memberInvite a user to an organisation by email.
revoke_organization_invitationRevoke a pending invitation by invitation code.
list_context_regionsList regions available for new Spectron contexts. Each entry has a `slug` — pass it as `region` when calling create_spectron_context.
list_spectron_context_packagesList Spectron context packages in the public catalog (pricing, limits, billing period). Use `id` when assigning a package to an organisation.
list_organization_spectron_context_packagesList Spectron context packages assigned to an organisation (active subscriptions / trials).
assign_organization_spectron_context_packageSubscribe an organisation to a Spectron context package. Requires write:cloud-billing. Returns the org package record.
cancel_organization_spectron_context_packageCancel an organisation's active Spectron context package subscription. `package_id` is the catalog package id from list_organization_spectron_context_packages (not a separate row id). Requires write:cloud-billing.
list_organization_spectron_contextsList Spectron contexts in one organisation. Requires `organization_id` — the org `id` from `list_organizations` (not the display name). Each result includes `id`, `name`, `region`, and `host`.
get_spectron_contextGet a Spectron context by id (includes `host` for SDK / HTTP access).
create_spectron_contextCreate a Spectron context in an organisation. `region` is a slug from list_context_regions. Requires write:cloud-spectron.
update_spectron_contextRename a Spectron context. Requires write:cloud-spectron.
delete_spectron_contextDelete a Spectron context and its data — irreversible. Requires write:cloud-spectron.
list_spectron_context_api_keysList API keys for a Spectron context (metadata only — secrets are not returned on list).
delete_spectron_context_api_keyRevoke a Spectron context API key. Requires write:cloud-spectron.
rotate_spectron_context_api_keyRotate a Spectron context API key. Response may include a one-time `key` secret — store it immediately; it is not shown again. Requires write:cloud-spectron.
mint_spectron_scoped_keyMint an admin-scoped API key for a principal. Optional `grants` attenuate permissions (must be a subset of the principal's grants). Response may include a one-time `key` secret — store it immediately; it is not shown again. Requires write:cloud-spectron.
mint_spectron_access_tokenMint a short-lived access token for the calling user's own Spectron principal (for SDK use). Response may include a one-time `key` secret — store it immediately; it is not shown again. Any org member may call this (query:spectron-contexts). Default TTL ~3600s when omitted.
list_spectron_context_principalsList principals (humans, agents, services) registered on a Spectron context, including optional `grants`.
create_spectron_context_principalCreate a principal on a Spectron context (`kind`: human | agent | service | unknown). Requires write:cloud-spectron.
update_spectron_context_principalUpdate a Spectron principal display name and/or kind. Requires write:cloud-spectron.
delete_spectron_context_principalDelete a Spectron principal. Requires write:cloud-spectron.
replace_spectron_principal_grantsReplace all grants on a Spectron principal (full overwrite). Requires write:cloud-spectron.
add_spectron_context_userProvision an organisation member as a human principal on a Spectron context. `user_id` is the member's Cloud `user_id` from list_organization_members. Requires write:cloud-spectron.
call_spectron_toolProxy a tool call to a Spectron context's built-in MCP server (https://{host}/mcp). Requires query:spectron-contexts. Spectron MCP tools (proxied via call_spectron_tool / list_spectron_tools): - remember — persist a fact: { text, infer?, session_id?, scope?, labels? } - recall — ranked search over…
list_spectron_toolsList MCP tools exposed by a Spectron context's built-in MCP server. Requires query:spectron-contexts. Use when a tool name or schema is not covered in the call_spectron_tool reference. Spectron MCP tools (proxied via call_spectron_tool / list_spectron_tools): - remember — persist a fact: { text, i…
delete_spectron_context_scopeTombstone (soft-delete) a registered scope path on a Spectron context. Requires write:cloud-spectron and scope:delete on the data plane. Does not erase memory — use call_spectron_tool forget for that.
create_spectron_sessionCreate a Spectron chat session for multi-turn Playground-style conversations. Returns `id` to pass as `session_id` on call_spectron_chat.
call_spectron_chatRun a Playground-style chat turn: Spectron retrieves context, calls the configured LLM, persists the exchange, and returns the reply plus memory updates. Omit `session_id` to auto-create a session, or pass one from create_spectron_session.
get_spectron_memory_snapshotLoad structured memory overview for a context (`state` + `profile`) — similar to the SurrealDB Studio Memory State tab. Use before a session to see identity, knowledge, and context categories.
list_spectron_entitiesList memory entities in a Spectron context (type, name, labels) — similar to the SurrealDB Studio Memory Entities tab. Use call_spectron_tool inspect with entity:Type/Name for full detail.
list_spectron_documentsList ingested documents in a Spectron context (paginated). For semantic search over document chunks, use search_spectron_documents.
search_spectron_documentsSemantic search over ingested document chunks (authoritative knowledge). Distinct from call_spectron_tool recall, which searches the unified memory substrate.
list_spectron_context_scopesList scope nodes registered on a Spectron context (paths, depth, value policies). To register a new path before writing memory, use create_spectron_context_scope.
create_spectron_context_scopeRegister a scope path on a Spectron context (register-then-use). Auto-vivifies missing ancestors. Requires write:cloud-spectron; the caller's Spectron principal needs scope:create (org owners/admins by default). Use before call_spectron_tool writes to a new scope path.
get_spectron_context_usageGet token usage for a Spectron context for the current billing period (breakdown by model and token kind).
get_spectron_context_configGet Spectron context configuration (token limits, feature flags). Provider API keys are never returned.
list_spectron_context_providersList LLM providers and models configured for a Spectron context (no secrets).
list_spectron_context_verbsList grant verbs available for Spectron principals and keys (e.g. memory:read, scope:create).
Tool annotations
42/91 tools declare annotations
Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.
All four hints declared on every tool
75/91 tools missing one or more hints — mcp_auth (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); list_regions (missing: destructiveHint, idempotentHint); list_instance_types (missing: destructiveHint, idempotentHint), +72 more. OpenAI's directory rejects tools where any hint is missing or non-boolean.
For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.
Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.
[](https://m8ven.ai/mcp/surrealdb/surrealmcp)?variant=verified from the URL.Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.
https://m8ven.ai/api/mcp/tool-check