?toolsets=outreach on the Hue MCP URL lists these tools, or call each through execute_hue_tool (reads) and execute_hue_write_tool (writes), with the input schema search_hue_tools returns. Writes need Read and write access without ?read_only=true. The Hue MCP also returns this guide through load_hue_guide with topic outreach.
Start the Worlds
- Each app is its own World: one made in Hue from the LinkedIn outreach starter or X outreach starter template, or one you published.
list_worldsfinds them;get_world_definitionlists a World’sversions, and the newest one’s id is theworld_version_idto start. A republished World has a new version id, so read it again rather than keeping one. start_instancewith thatworld_version_idand anidempotency_key, once per app. It returns the instance, its app URLs andHUE_WORLD_TOKENonce;get_instance_connectionsreads them again.HUE_SIM_LINKEDIN_WEB_URLandHUE_SIM_TWITTER_WEB_URLare the sites, each an alias host under the sim suffix of its gateway (https://linkedin-com.sim.hue.runandhttps://x-com.sim.hue.runforhttps://app.hue.run).list_world_peoplelists the instance’s people: how each relates to the agent’s account (connected, invitation, follows, conversation), whether they answer on their own (automatic) or only through you (manual), and what waits on whom. People with something pending come first.
Play the prospects
act_as_personmakes one person act toward the agent’s account: on LinkedInaccept_invitation,ignore_invitation,send_message,comment,react,follow,send_invitation,view_profile; on Xfollow,send_message,reply. The person becomesmanualand stops answering on their own;set_person_responsesswitches them back toautomatic.create_notificationgives the agent’s account a notification, unread by default;actoris the person andpostthe post it is about, as each kind needs.patch_world_recordchanges one record of the running instance, such as a person’s headline, company or bio, so an existing member becomes the prospect. A LinkedIn member added this way has no connections, so the agent’s search shows them as an out-of-network member it cannot open; updating an existing 2nd or 3rd-degree member keeps them reachable. Connections, invitations and messages change only throughact_as_personor the agent’s own actions.
Time
Every write the agent makes moves the World’s clock one step: 300 seconds in both starters. Reads, page loads included, never move it.get_world_clock reports now, step_seconds and the steps used; set_world_step changes the step for the rest of the instance.
- An
atonact_as_personorcreate_notificationis a World time (RFC 3339), so readnowfromget_world_clockfirst and add the delay to it. A lateratschedules the act;list_scheduled_eventslists what waits andcancel_scheduled_eventremoves one. - A due act lands at the agent’s next write or at
advance_world_clock, never on a page load. While the agent only reads (waiting for a reply),advance_world_clockwithby_secondsortoreleases what came due; it lists them inreleased, and the agent sees them on its next page load.
The browser
The agent’s browser keeps the real addresses (https://www.linkedin.com/feed/, https://x.com/home) and every request to them is answered by the World, with HUE_WORLD_TOKEN added outside the page. Hue’s repository has two references: examples/flow-harness/browser-route.ts installs Playwright routes on a browser context the harness controls, and examples/sim-proxy is a local proxy for a browser the harness cannot reach into. Both send the token only to the alias hosts of one gateway: app.hue.run with *.sim.hue.run, staging.hue.run with *.sim.staging.hue.run, localhost with *.sim.localhost.
- Use a fresh browser profile for each run, with service workers blocked.
- A page paints its frame first and fills it from the app’s own requests, each answered from the World; a slow answer takes up to about 20 seconds. A page is ready once its content (the feed, the profile, the thread) shows.
- A message is sent once it shows in the thread and the composer is empty; one still in the composer was not sent.
- What another person did since the last page load shows after a reload or a navigation.
Finish and grade
finish_instance ends an instance. get_instance_diff and list_instance_steps show what the agent changed and every step, its own writes and your acts. A finished instance’s evidence lists your World events (act_as_person, notifications, record patches, clock jumps) with their effects, in step order; an act scheduled for later shows only once the agent’s next write or advance_world_clock releases it. save_instance_case saves a finished instance as a case pinned to its World version. Without criteria_json, on a LinkedIn or X copy it drafts one check per distinct outreach write the agent made (invite, follow, message, post, comment, react, repost) on people and posts the World started with, and returns the drafted checks with their result; your own acts and clock jumps are never drafted. A copy with no outreach write gets no drafted checks and the call says so; criteria_json (outcome criteria, load_hue_guide topic author) supplies them instead. check_instance_case scores a finished instance of the same World version against a case’s checks.