tinyhumansai/openhuman · error · anyhow::Error
unknown MCP server `{server}`
Error message
unknown MCP server `{server}` What it means
McpServerRegistry::list_tools could not resolve the requested server name against its by_name map of configured stdio servers. The name given does not match any [[mcp_client.servers]] entry loaded from TOML config — a stale or misspelled server reference, not a connection failure.
Source
Thrown at src/openhuman/mcp/config_servers/registry.rs:205
);
filtered
}
pub fn list(&self) -> Vec<&McpServerDefinition> {
self.order
.iter()
.filter_map(|name| self.by_name.get(name))
.collect()
}
pub fn get(&self, name: &str) -> Option<&McpServerDefinition> {
self.by_name.get(name)
}
pub async fn list_tools(&self, server: &str) -> anyhow::Result<Vec<McpRemoteTool>> {
let server = self
.get(server)
.ok_or_else(|| anyhow::anyhow!("unknown MCP server `{server}`"))?;
let tools = server.client.list_tools().await?;
let safe = apply_safety_filter(&server.name, tools);
Ok(server.filter_allowed_tools(safe))
}
pub async fn call_tool(
&self,
server: &str,
tool: &str,
arguments: Value,
) -> anyhow::Result<McpServerToolResult> {
let server = self
.get(server)
.ok_or_else(|| anyhow::anyhow!("unknown MCP server `{server}`"))?;
let tool = tool.trim();
if !server.is_tool_allowed(tool) {
anyhow::bail!(
"MCP tool `{tool}` is not allowed for server `{}`",View on GitHub (pinned to 7491200858)
Solutions
- Check the server name against the entries in the [mcp_client] config section (names are case-sensitive)
- List configured servers first (mcp_list_servers) and use an exact name from the result
- Fix typos or re-add the removed server definition to config
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at src/openhuman/mcp/config_servers/registry.rs:205 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/7ec28ba89a87ee8e.
Report an issue: GitHub.