zhigang1992/happy-server-mcp
If you are the rightful owner of happy-server-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
The Happy Server MCP is a Model Context Protocol server designed to manage Happy AI sessions, enabling AI agents to interact with these sessions programmatically.
Happy Server MCP
MCP (Model Context Protocol) server for managing Happy AI sessions. This allows AI agents to interact with Happy sessions programmatically.
Features
- List Sessions: Query all your Happy AI sessions with their titles, working directories, and activity status
- List Machines: See all registered machines and their online/offline status
- List Recent Paths: Get recently used working directories for a machine
- Read Messages: Fetch recent messages from any session to see conversation history
- Send Messages: Trigger a session to work by sending it a message
- Start Sessions: Spawn new AI sessions on any connected machine
- Archive Sessions: Stop and archive sessions when done
- Wait for Idle: Wait for a session to finish processing
Installation
npm install -g @zhigang1992/happy-server-mcp
Prerequisites
You must be authenticated with Happy CLI. Run:
happy auth
This creates credentials at ~/.happy/access.key that the MCP server uses.
Usage with Claude
Add to your Claude configuration:
{
"mcpServers": {
"happy-manager": {
"command": "happy-server-mcp"
}
}
}
Or with npx:
{
"mcpServers": {
"happy-manager": {
"command": "npx",
"args": ["@zhigang1992/happy-server-mcp"]
}
}
}
Available Tools
happy_list_sessions
List all Happy AI sessions. Returns session IDs, titles, paths, machines, and activity status.
Parameters:
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
limit | number | No | 50 | Maximum number of sessions to return |
Example:
Use happy_list_sessions to see all my active sessions
happy_list_machines
List all machines registered with Happy. Returns machine IDs, hostnames, platforms, and activity status.
Parameters: None
Example:
Use happy_list_machines to see which machines are online
happy_list_recent_paths
List recently used folder paths for a machine. Useful for starting sessions in familiar locations.
Parameters:
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
machine_id | string | Yes | - | The machine ID to get recent paths for |
limit | number | No | 20 | Maximum number of paths to return |
Example:
Use happy_list_recent_paths with machine_id "abc123" to see recent working directories
happy_read_messages
Read recent messages from a Happy AI session. Use this to see the conversation history.
Parameters:
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
session_id | string | Yes | - | The session ID to read messages from |
limit | number | No | 20 | Maximum number of messages to return |
Example:
Use happy_read_messages with session_id "xyz789" to see what the AI has been working on
happy_send_message
Send a message to a Happy AI session to trigger it to work. The message will be sent with bypass permissions mode.
Parameters:
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
session_id | string | Yes | - | The session ID to send the message to |
message | string | Yes | - | The message text to send |
wait | boolean | No | false | If true, wait for AI to finish processing before returning |
Example:
Use happy_send_message with session_id "xyz789" and message "Fix the bug in auth.ts" and wait=true
happy_start_session
Start a new Happy AI session on a machine. Use happy_list_machines to find available machines first.
Parameters:
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
machine_id | string | Yes | - | The machine ID to start the session on |
directory | string | Yes | - | The directory path to run the session in |
message | string | No | - | Optional initial message to send to start the session working |
agent | "claude" | "codex" | No | "claude" | Agent type to use |
wait | boolean | No | false | If true, wait for AI to finish processing initial message before returning |
Example:
Use happy_start_session with machine_id "abc123", directory "/home/user/project",
message "Review the codebase and suggest improvements", and wait=true
happy_archive_session
Archive (stop) a Happy AI session. The session will be terminated and marked as inactive.
Parameters:
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
session_id | string | Yes | - | The session ID to archive |
Example:
Use happy_archive_session with session_id "xyz789" to stop the session
happy_wait_for_idle
Wait for a Happy AI session to become idle (finish processing). Useful after sending a message to wait for AI to complete its work.
Parameters:
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
session_id | string | Yes | - | The session ID to wait for |
timeout_seconds | number | No | 120 | Maximum time to wait in seconds |
Example:
Use happy_wait_for_idle with session_id "xyz789" to wait for the AI to finish
Common Workflows
Start a session and wait for completion
- Use
happy_list_machinesto find an online machine - Use
happy_list_recent_pathsto find a good working directory - Use
happy_start_sessionwithwait=trueto start and wait for the initial task
Monitor an existing session
- Use
happy_list_sessionsto find active sessions - Use
happy_read_messagesto see what the AI is working on - Use
happy_send_messageto give it new instructions
Clean up old sessions
- Use
happy_list_sessionsto see all sessions - Use
happy_archive_sessionto stop sessions you no longer need
Environment Variables
HAPPY_SERVER_URL: Override the Happy server URL (default:https://happy.engineering)
License
MIT