MCP (Model Context Protocol) server for Symaira Vault secret manager. Provides tools to query, manage, and interact with vault entries, including password generation, TOTP generation, sharing, and approval workflows.
This MCP server has critical definition quality issues across nearly all dimensions. Tool definitions are inferred from a tool_catalog.json reference (not directly visible in source), parameter schemas are absent or minimal, descriptions are present but often generic and lacking specificity about when/why to use tools, and critical security concerns are unaddressed. The server exposes 28 tools with highly sensitive operations (copy_to_clipboard, autotype, run_command, prepare_payment, delete operations) but lacks the defensive descriptions, parameter constraints, and error guidance needed for safe LLM agent interactions. The codebase is primarily Go/Rust infrastructure code; the actual MCP tool definitions and schemas are referenced but not fully visible for validation.
Approve a pending share grant request.
Type a vault entry field value using keyboard automation.
Copy a vault entry field value to the clipboard.
Delete a vault entry.
Execute an HTTP API request using credentials from a vault entry.
Execute an operation with a secret value passed as an argument.
Find vault entries matching a search query.
Generate a random password with specified criteria.
NO INPUT SCHEMAS VISIBLE, All 28 tools reference a tool_catalog.json that is not included in the provided source code. Cannot verify parameter definitions, types, constraints, or required/optional flags.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | 2026-07-28+ | v2 |
Generate a vault entry template.
Generate a time-based one-time password (TOTP) for an entry.
Retrieve a vault entry by path.
Retrieve metadata about a vault entry without exposing secrets.
Get the value of a specific field in a vault entry.
Check the health status of the Symaira Vault MCP server.
List vault entries, optionally filtered by path prefix.
Prepare a payment using credentials from a vault entry.
Request a credential from the user input system.
Request to share a vault entry with another agent.
Revoke a previously granted share permission.
Run a command with vault entry values injected as environment variables.
Unseal a sealed secret value.
Request secure user input (e.g., password) from the user.
Configure authentication method for vault access.
Set or update a field in a vault entry.
Query audit log entries for the current agent.
Delete a vault entry (aliased to delete_entry for admin tier).
Search for vault entries by name or path pattern.
Get the current agent name and tier information.
DANGEROUS TOOLS LACK DEFENSIVE DESCRIPTIONS, Tools like 'copy_to_clipboard' (HIGH risk), 'autotype' (HIGH), 'run_command' (IRREVERSIBLE), 'prepare_payment' (DESTRUCTIVE), 'delete_entry' (DESTRUCTIVE), and 'execute_with_secret' (HIGH) have minimal descriptions (under 35 chars). These do not explain prerequisites, irreversibility, permission requirements, or recovery procedures. Agents need to know which calls are safe to retry and which have irreversible consequences.' Applied to 8 high-risk tools.
NO PERMISSION GATES OR SCOPE DECLARATIONS, The codebase mentions 'tier' information (e.g., symaira_whoami returns 'tier information', symaira_delete is aliased 'for admin tier'), but no tool definitions explicitly declare required permissions, scopes, or access control gates.
NO ERROR HANDLING GUIDANCE, Descriptions do not include recovery hints, next steps, or error classification (retryable vs user-fixable vs fatal).
CREDENTIAL HANDLING UNCLEAR, Tools like 'request_credential', 'execute_with_secret', and 'execute_api_request' have vague descriptions about how credentials are passed, stored, and injected. Use server-side secret injection via environment variables or vault.' The descriptions do not clarify whether the agent passes secret values or references. 'request_credential' description is only 'Request a credential from the user input system.', does this prompt the user in-band? Does it fetch from vault? No guidance for the LLM.
NO OUTPUT SCHEMA DOCUMENTATION, Descriptions do not specify what fields are returned, what format they take, or how they chain to downstream tools. LLMs need to know what fields to expect so they can plan downstream tool calls.' For example, 'get_entry' returns 'a vault entry', but what fields? Does it return entry_id, path, fields, metadata? If an agent wants to call set_entry_field next, what ID parameter should it use? Is it path or entry_id? No guidance.
IDEMPOTENCY NOT DECLARED, Tools like 'set_entry_field', 'approve_share', 'revoke_share', and 'prepare_payment' do not declare whether they are idempotent. Agents retry on ambiguous failures, non-idempotent tools risk duplicate side effects.' If an agent retries a failed 'prepare_payment' call, does it double-charge? No guidance in descriptions.
PAGINATION NOT ADDRESSED, Tools that return lists (list_entries, find_entries, symaira_search) do not mention pagination in their descriptions. Without pagination, large results blow the context window.' No description clarifies whether limit/offset parameters exist or how to fetch the next page.
TOOL DEFINITIONS INFERRED, NOT DIRECTLY VISIBLE, The source code references tools in crates/symvault-mcp/src/tools.rs and crates/symvault-mcp/src/tool_catalog.json, but the actual tool registration, schema definitions, and parameter lists are not included in the provided source snippets.