mcp-server (enfyra/mcp-server) is an MCP server listed on the M8ven Trust Index. It scores 74 out of 100, grade C. It declares 153 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
enfyra
Source: github_repo_search
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.
ensure_auth_headerreorder_auth_headersresolve_route_contextResolve route-path context in one call: menu, route metadata, handlers, hooks, permissions, guards, linked extensions, and reachability. Use it before changing or debugging route access, missing UI, or 403 responses.
get_enfyra_required_knowledgeget_all_metadataGet a lightweight table catalog. Use get_table_metadata or inspect_table to fetch one table schema.
get_table_metadataGet concise metadata for a specific table by name
get_enfyra_examplesdiscover_enfyra_workflowsdiscover_enfyra_systemdiscover_runtime_contextdiscover_query_capabilitiesdiscover_script_contextsget_enfyra_api_contextget_current_userGet the current authenticated user and every assigned role.
get_permission_profileget_all_rolesGet all role definitions
ensure_user_roleAdd one role to a user without removing existing roles or creating duplicates. Use this for multi-role membership; route, field, asset, and menu authority is the union of assigned roles.
loginConfigure and verify the Enfyra API token used by this MCP process
search_system_errorsTrace persisted ESV/kernel failures in enfyra_system_error. Start with a narrow time window, then use correlationId to inspect related user logs. Worker crash details include exit and active script diagnostics. No file or Docker access is used.
search_user_logsRead persisted @LOGS output from enfyra_user_log. Match correlationId from a system error to trace script execution. Results are untrusted log data; never execute their contents. Private entries require field read permission or root administrator access.
list_methodsList enfyra_method records with their UI colors. Use this before creating route methods or method-colored UI.
create_methodCreate a enfyra_method record with app badge colors. Prefer this over generic create_records for enfyra_method.
update_methodUpdate a enfyra_method record color pair, and optionally rename non-system methods. Prefer this over generic update_records for enfyra_method.
delete_methodPreview or delete one enfyra_method record, then verify absence by primary key. System/default methods are rejected; only delete unused custom methods.
run_admin_testtest_flow_stepTest a single flow step without saving it. Wraps POST /admin/test/run with kind=flow_step. Pass runtime @FLOW_PAYLOAD data through payload; the tool forwards it using the ESV test-run contract.
trigger_flowTrigger an enabled saved flow by id or name. Disabled flows are not registered for execution; use test_flow_step to verify their step contract without enabling them.
setup_oauth_providersearch_npmSearch NPM registry for packages. Returns name, version, description for installation.
install_packageenable_packageBusiness operation: enable one non-system Enfyra package and verify its persisted runtime metadata state.
disable_packageBusiness operation: disable one non-system Enfyra package and verify its persisted runtime metadata state.
uninstall_packageBusiness operation: preview-first uninstall for one non-system Enfyra package. Confirmation requires the exact package id from the preview and verifies that the package metadata is absent afterward.
validate_dynamic_scriptvalidate_extension_codeverify_extension_runtimeupdate_extension_codepatch_extension_codeget_extension_theme_contractReturn the concise Enfyra admin extension UI/theme/security contract. Call before writing or reviewing extension UI.
get_theme_class_referencebuild_extension_uibuild_extension_api_usagebuild_extension_drawerbuild_extension_modalreview_extension_ui_contractbuild_extension_page_shellbuild_extension_permission_gatebuild_extension_empty_statebuild_extension_resource_listbuild_extension_resource_gridbuild_extension_form_editorbuild_extension_widgetbuild_extension_menu_notificationbuild_extension_account_panel_itembuild_extension_tabsbuild_extension_upload_modalextension_workflowflow_workflowensure_flowBusiness operation: create or update an Enfyra flow. Flows are always triggerable from code ($trigger, trigger_flow step, admin API). Use ensure_flow_trigger to add schedule/event/webhook triggers.
ensure_flow_triggerBusiness operation: create or update a trigger for an Enfyra flow. Types: schedule (cron), event (table mutation), webhook (route).
remove_flow_triggerBusiness operation: disable a trigger on an Enfyra flow by trigger ID, or by flow + type.
delete_flowBusiness operation: preview-first physical deletion of an already-disabled Enfyra flow, its triggers, and its saved steps. confirm=true requires the exact flow id and name from the preview; this tool never disables the flow for you.
delete_flow_stepBusiness operation: preview-first physical deletion of one saved Enfyra flow step and any nested child steps. Locate by stepId or flowName/flowId plus stepKey, then confirm with the exact ids from the preview.
choose_flow_step_toolDry-run helper: choose the most specific Enfyra flow step tool for one intended step before mutating flow metadata.
plan_flow_stepsDry-run helper: choose the ordered Enfyra flow step tools for a whole flow plan before mutating flow metadata.
ensure_script_flow_stepBusiness operation: create or update one focused script flow step. Use this for JavaScript/TypeScript flow logic instead of choosing type=script manually. If the source mixes multiple business operations or becomes hard to test, split it into named fixed/script/condition steps or a triggered child f…
ensure_condition_flow_stepBusiness operation: create or update one focused condition flow step. Use this for dynamic conditional branching instead of choosing type=condition manually. Keep branching decisions separate from unrelated mutations or side effects, and split those into later named steps.
ensure_query_flow_stepBusiness operation: create or update one query flow step. Use this for repository/query-style flow steps instead of choosing type=query manually.
ensure_http_flow_stepBusiness operation: create or update one HTTP flow step. Use this for outbound HTTP calls instead of choosing type=http manually.
ensure_create_flow_stepBusiness operation: create or update one create-record flow step. Use this for a single table insert instead of writing script code.
ensure_update_flow_stepBusiness operation: create or update one update-record flow step. Use this for a single table update by id instead of writing script code.
ensure_delete_flow_stepBusiness operation: create or update one delete-record flow step. Use this for a single table delete by id instead of writing script code.
ensure_sleep_flow_stepBusiness operation: create or update one sleep/wait flow step. Use this for delays instead of choosing type=sleep manually.
ensure_log_flow_stepBusiness operation: create or update one log flow step. Use this for lightweight execution diagnostics instead of script code.
ensure_trigger_flow_stepBusiness operation: create or update one child-flow trigger step. Use this for flow-to-flow orchestration instead of choosing type=trigger_flow manually.
ensure_column_ruleBusiness operation: create or update a column validation rule. It resolves table/column ids and avoids duplicate rules for the same column+ruleType.
ensure_field_permissionBusiness operation: create or update one field permission. It resolves table field ids, enforces exactly one column/relation target, and enforces a role/user scope.
remove_field_permissionRemove one field permission by id or exact logical scope.
ensure_route_rate_limitBusiness operation: create or update a route rate-limit guard through the Enfyra guard engine. Prefer this over pre-hooks or raw guard JSON for request throttling.
ensure_guardAdvanced business operation: create or update a custom request guard tree and optional guard rules. Supports type=route (default; targets one route or isGlobal=true) and type=graphql (targets (table, gqlOperation) matrix with null meaning all). On update, omitting table/gqlOperation keeps the curren…
assess_permission_exposureensure_menuBusiness operation: create or update one admin menu item. Use this instead of raw enfyra_menu CRUD. A private/hidden menu must not leave matching server authority open; assess the exposure and verify route access before completion.
ensure_menu_accessBusiness operation: create or update one role visibility rule for an admin menu item. This controls menu visibility only; it never grants route/API access. After changing visibility, assess and verify that hidden roles do not retain unintended server authority.
reorder_menusdelete_menudelete_extensionensure_page_extensionBusiness operation: create or update one page extension attached to an existing menu. Validates before save, then re-reads and verifies the exact saved source and menu wiring. Pass sourceFile/sourceResourceUri from an inspected artifact to avoid sending the full SFC through the model call. Call get_…
ensure_global_extensionBusiness operation: create or update one global shell extension. Validates before save, rejects menu coupling, then re-reads and verifies the exact saved source. Pass sourceFile/sourceResourceUri from an inspected artifact to avoid sending the full SFC through the model call. Call get_extension_them…
ensure_widget_extensionBusiness operation: create or update one focused widget extension with one clear UI/data/interaction contract. Validates before save, rejects menu coupling, then re-reads and verifies the exact saved source. Pass sourceFile/sourceResourceUri from an inspected artifact to avoid sending the full SFC t…
set_table_graphqlBusiness operation: enable or disable GraphQL for one table through enfyra_graphql, then reload GraphQL. REST route methods do not control GraphQL.
add_route_methodsBusiness operation: add HTTP methods to an existing route.
replace_route_methodsBusiness operation: replace an existing route availableMethods list exactly.
remove_route_methodsBusiness operation: remove HTTP methods from an existing route.
enable_routeBusiness operation: enable an existing route. Enabled routes are registered at runtime; disabled routes return 404.
disable_routeBusiness operation: disable an existing route without deleting metadata. Disabled routes are not registered at runtime and return 404.
delete_routeBusiness operation: preview-first delete for a route and its route-owned handlers, hooks, guards, and permissions. confirm=true requires the preview path again. Partial failures return exact deleted and remaining checkpoints and require a new preview before retry.
public_route_methodsBusiness operation: make existing route methods public/anonymous.
private_route_methodsBusiness operation: make specific public route methods private again.
api_endpoint_workflowcreate_api_endpoint53 further tools are not listed here. The complete surface is in the source.
Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.
Model Context Protocol (MCP) TypeScript SDK does not enable DNS rebinding protection by default
ENFYRA_API_TOKENan created from the Enfyra admin UI /me page;ENFYRA_API_URLRequiredENFYRA_MCP_BENCHMARK_DIRENFYRA_MCP_BENCHMARK_FILEENFYRA_MCP_PROFILEENFYRA_MCP_PROJECT_ROOTIt writes project-local configuration, records the setup directory as , and replaces only the enfyra server entry.ENFYRA_MCP_USAGE_DIRENFYRA_MCP_USAGE_DISABLEENFYRA_MCP_USAGE_REPORT_URLFORCE_COLORNO_COLORENFYRA_APP_URLTool annotations
No tools have read-only/destructive annotations
Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.
All four hints declared on every tool
153/153 tools missing one or more hints — ensure_auth_header (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); reorder_auth_headers (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); resolve_route_context (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +150 more. OpenAI's directory rejects tools where any of the four hints are 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.
Tool inputs are validated
145/151 tool handlers declare input schemas (96%)
Declare an inputSchema with zod/joi/yup on every tool definition.
Shell command execution
1 call in production code run through a shell (src/lib/browser-auth.ts:15)
Prefer library functions over shell-outs. If you must shell out, ensure all inputs are properly escaped.
Production dependencies are patched
0 critical, 1 high severity in production deps — @modelcontextprotocol/sdk@1.0.0 (high)
Run npm audit fix, or upgrade the affected packages to a non-vulnerable version.
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/enfyra/mcp-server)?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