tinyhumansai/openhuman · error

mcp_registry_install: invalid env: {e}

Error message

mcp_registry_install: invalid env: {e}

What it means

The "env" argument of mcp_registry_install failed to deserialize into HashMap<String,String> — some value is not a string (or the object is malformed). The tool schema declares env as an object with additionalProperties string.

Source

Thrown at src/openhuman/mcp/registry/tools.rs:411

            "properties": {
                "qualified_name": { "type": "string" },
                "env": { "type": "object", "additionalProperties": { "type": "string" } },
                "config": { "type": "object" }
            },
            "required": ["qualified_name"]
        })
    }
    fn permission_level(&self) -> PermissionLevel {
        PermissionLevel::Write
    }
    async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {
        let qn = req_str(&args, "qualified_name")?;
        let env: HashMap<String, String> = args
            .get("env")
            .cloned()
            .map(serde_json::from_value)
            .transpose()
            .map_err(|e| anyhow::anyhow!("mcp_registry_install: invalid env: {e}"))?
            .unwrap_or_default();
        let config_value = args.get("config").cloned();
        emit!(
            ops::mcp_clients_install(&self.config, qn, env, config_value).await,
            "mcp_registry_install"
        )
    }
}

/// Uninstall an MCP server. Default-OFF.
pub struct McpRegistryUninstallTool {
    config: Arc<Config>,
}
impl McpRegistryUninstallTool {
    pub fn new(config: Arc<Config>) -> Self {
        Self { config }
    }
}

View on GitHub (pinned to 7491200858)

Solutions

  1. Make every env value a string (quote numbers and booleans)
  2. Fix malformed JSON in the env object
  3. Omit env entirely if no environment variables are needed
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at src/openhuman/mcp/registry/tools.rs:411 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of tinyhumansai/openhuman@7491200858 (2026-08-17). Data as JSON: /api/errors/dc3edee9ac91fe6c. Report an issue: GitHub.