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.

D
Caution
45/100

surrealmcp

The official MCP server for SurrealDB

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

⚡ Live Monitored: not connected

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

Is this your MCP?

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.

// tools this server exposes91 tools

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_auth

Authenticate 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_regions

List 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_types

List 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_versions

SurrealDB versions available for new instances. Use the chosen version string inside **`configuration.specs.version`** (not top-level `version`).

list_billing_countries

List countries available for Cloud billing profiles.

search_documentation

Search 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_conditions

List 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_status

Check whether the current user has accepted Cloud terms (terms_accepted_at / marketing_accepted_at from the Cloud session).

accept_cloud_terms_and_conditions

Record 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_profile

Get the current user's SurrealDB Cloud profile.

list_organizations

List 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_organization

Get 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_organization

Create 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_organization

Rename a Cloud organisation (PATCH name only). Requires write:cloud-organization.

list_organization_instances

List instances in one organisation (`organization_id` = org `id` from list_organizations).

get_instance

Get a Cloud instance by id.

deploy_instance

Create 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_instance

Pause a Cloud instance (stops resources; data retained).

resume_instance

Resume a paused Cloud instance.

update_instance_compute_units

Change the number of compute units for an instance.

update_instance_storage

Change storage size (GB) for an instance.

update_instance_type

Change an instance's type slug.

update_instance_version

Change the SurrealDB version running on an instance.

update_instance_access_type

Update network access settings for an instance (e.g. public, private, dual).

update_instance_capabilities

Replace instance capability flags (PUT /capabilities).

estimate_instance_cost

Estimate 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_token

Mint 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_policy

Get 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_policy

Update 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_instance

Permanently 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_tool

Proxy 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_tools

List 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_status

Get instance status (e.g. backup information).

get_instance_metrics

Query metrics for an instance (metric, from_time, to_time ISO 8601; optional dummy_data).

get_instance_logs

Fetch instance logs for a time window (from_time, to_time ISO 8601).

get_organization_deployment_readiness

Check 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_requirements

Return 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_billing

Get 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_billing

Update 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_from

Copy 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_instances

Orchestrate 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_invoices

List billing invoices for an organisation.

list_billing_coupons

List billing coupons applied to an organisation (read-only).

get_organization_payment

Get 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_url

Get 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_url

Alias for get_organization_payment_setup_url (same Stripe Checkout setup endpoint). Prefer get_organization_payment_setup_url for new integrations.

get_organization_usage

Get aggregated usage metrics for an organisation.

get_instance_usage

Get usage metrics for a specific instance.

list_organization_members

List 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_roles

List assignable organisation member roles.

update_organization_member_role

Change 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_member

Remove a member from an organisation. `member_user_id` is their Cloud **`user_id`** from list_organization_members.

list_organization_invitations

List pending invitations for an organisation.

invite_organization_member

Invite a user to an organisation by email.

revoke_organization_invitation

Revoke a pending invitation by invitation code.

list_context_regions

List regions available for new Spectron contexts. Each entry has a `slug` — pass it as `region` when calling create_spectron_context.

list_spectron_context_packages

List Spectron context packages in the public catalog (pricing, limits, billing period). Use `id` when assigning a package to an organisation.

list_organization_spectron_context_packages

List Spectron context packages assigned to an organisation (active subscriptions / trials).

assign_organization_spectron_context_package

Subscribe an organisation to a Spectron context package. Requires write:cloud-billing. Returns the org package record.

cancel_organization_spectron_context_package

Cancel 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_contexts

List 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_context

Get a Spectron context by id (includes `host` for SDK / HTTP access).

create_spectron_context

Create a Spectron context in an organisation. `region` is a slug from list_context_regions. Requires write:cloud-spectron.

update_spectron_context

Rename a Spectron context. Requires write:cloud-spectron.

delete_spectron_context

Delete a Spectron context and its data — irreversible. Requires write:cloud-spectron.

list_spectron_context_api_keys

List API keys for a Spectron context (metadata only — secrets are not returned on list).

delete_spectron_context_api_key

Revoke a Spectron context API key. Requires write:cloud-spectron.

rotate_spectron_context_api_key

Rotate 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_key

Mint 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_token

Mint 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_principals

List principals (humans, agents, services) registered on a Spectron context, including optional `grants`.

create_spectron_context_principal

Create a principal on a Spectron context (`kind`: human | agent | service | unknown). Requires write:cloud-spectron.

update_spectron_context_principal

Update a Spectron principal display name and/or kind. Requires write:cloud-spectron.

delete_spectron_context_principal

Delete a Spectron principal. Requires write:cloud-spectron.

replace_spectron_principal_grants

Replace all grants on a Spectron principal (full overwrite). Requires write:cloud-spectron.

add_spectron_context_user

Provision 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_tool

Proxy 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_tools

List 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_scope

Tombstone (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_session

Create a Spectron chat session for multi-turn Playground-style conversations. Returns `id` to pass as `session_id` on call_spectron_chat.

call_spectron_chat

Run 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_snapshot

Load 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_entities

List 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_documents

List ingested documents in a Spectron context (paginated). For semantic search over document chunks, use search_spectron_documents.

search_spectron_documents

Semantic search over ingested document chunks (authoritative knowledge). Distinct from call_spectron_tool recall, which searches the unified memory substrate.

list_spectron_context_scopes

List 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_scope

Register 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_usage

Get token usage for a Spectron context for the current billing period (breakdown by model and token kind).

get_spectron_context_config

Get Spectron context configuration (token limits, feature flags). Provider API keys are never returned.

list_spectron_context_providers

List LLM providers and models configured for a Spectron context (no secrets).

list_spectron_context_verbs

List grant verbs available for Spectron principals and keys (e.g. memory:read, scope:create).

// quality suggestions

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.

// full audit trail
The findings above are the summary. The full trail, every check we ran, each deduction, the network hosts observed and the dependency advisories, goes to verified publishers, along with an alert whenever a new one lands. Verified publishers can also review each finding and dispute it in one click. Publisher corrections have sharpened several of our checks this month, because the maintainer knows the codebase better than any scanner.
// improvement guidance — verified publishers only
We have 2 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Verified](https://m8ven.ai/badge/mcp/surrealdb/surrealmcp?variant=verified)](https://m8ven.ai/mcp/surrealdb/surrealmcp)
Shows verification status without the grade. Want the grade badge instead? Remove ?variant=verified from the URL.
code hash: f46cd8f16c5ad3e945663233b4254fabcfee377d7824113cb9d46d0f4149a68d
view raw JSON →
Check MCPs from inside your assistant
Tool Check · MCP

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
check_toolsearch_toolscompare_toolsrecommend_alternativescheck_publisherreport_concern
How to add it →Free · no account needed · works in any MCP client