Skip to content

MCP Server Integration

Human supports the Model Context Protocol (MCP). It can act as an MCP client (connecting to external MCP servers and exposing their tools to the agent) and as an MCP server (exposing its own tools and resources to MCP clients like Claude Desktop).

When configured with mcp_servers, Human spawns each server as a child process, discovers tools via tools/list, and wraps them as agent tools. Tool names are prefixed with mcp_<index>_<name> to avoid collisions.

Add MCP servers in ~/.human/config.json under mcp_servers (object keyed by server name):

{
"mcp_servers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/home/user/docs"
]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"]
}
}
}
FieldRequiredDescription
commandYesExecutable to run (e.g. npx, node)
argsYesArray of string arguments

If you have a Google Workspace CLI MCP server (e.g. @anthropic/gws-mcp or a custom wrapper), you can connect it to Human and the agent will gain access to Google Docs, Sheets, Drive, Calendar, and other Workspace APIs:

{
"mcp_servers": {
"google-workspace": {
"command": "npx",
"args": ["-y", "@anthropic/gws-mcp"]
}
}
}

The agent will automatically discover all tools from the Google Workspace MCP server (e.g. docs.create, sheets.read, drive.list) and expose them as mcp_google-workspace_* tools.

  1. Human spawns each MCP server as a child process (stdio transport)
  2. Sends initialize with protocol version 2024-11-05
  3. Sends notifications/initialized
  4. Calls tools/list to discover tools
  5. When the agent invokes an MCP tool, Human forwards the request via tools/call
  6. Results are returned as standard tool results

The current implementation uses stdio only: JSON-RPC messages over stdin/stdout. Each server runs as a subprocess; Human writes requests and reads responses line-by-line.

Run Human as an MCP server so that MCP clients (e.g. Claude Desktop, Cursor) can use its tools:

Terminal window
human mcp

This reads JSON-RPC from stdin and writes responses to stdout. It exposes:

  • Tools: All registered Human tools (from tools.list, tools/call)
  • Resources: human://config (current config), human://memory (memory entries when available)

Human uses MCP protocol version 2024-11-05.

Configure Claude Desktop to spawn Human as an MCP server. Example claude_desktop_config.json:

{
"mcpServers": {
"human": {
"command": "human",
"args": ["mcp"]
}
}
}

Claude will then have access to Human’s tools (shell, file operations, memory, etc.) and resources.