surfagent-x
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SURFAGENT_RUN_DIR | No | Optional override for task-runner journals and screenshots directory | |
| SURFAGENT_AUTH_TOKEN | No | Optional override for authentication token | |
| SURFAGENT_DAEMON_URL | No | URL of the SurfAgent daemon | http://127.0.0.1:7201 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| x_health_checkA | Check whether X is open in SurfAgent, identify current X page state, and report composer/account readiness. |
| x_openB | Open X in SurfAgent. Optionally choose a starting section such as home, notifications, search, or a profile path. |
| x_get_accountsB | Inspect the active X account and any account-switcher entries currently visible. |
| x_switch_accountA | Switch X accounts through the in-session account switcher and verify the resulting active account state. |
| x_get_stateA | Get structured X page state for the current tab: route, page kind, selected tabs, composer state, and account info. |
| x_get_state_mapB | Return the built-in X state maps for flaky surfaces like account switcher, composer, community, home, post, and profile. |
| x_open_homeB | Open the X home timeline and wait for a settled X page state. |
| x_open_profileC | Open a profile by username. |
| x_open_notificationsB | Open X notifications. |
| x_open_searchC | Open X search, optionally prefilled with a query and live filter. |
| x_open_postC | Open a specific X post by full URL or by username + status ID. |
| x_get_timelineC | Extract the currently visible X timeline posts with author, text, status URL, and social action labels. |
| x_search_postsC | Search X posts and return extracted live results from the search timeline. |
| x_open_communityB | Open an X community URL directly. Useful because community navigation has its own weird composer behavior. |
| x_search_communitiesC | Search X communities and return community cards/links discovered on the search surface. |
| x_search_profilesC | Search X profiles and return discovered accounts with display names, handles, bios, and URLs. |
| x_get_community_feedA | Extract visible posts from the current or specified X community feed. |
| x_extract_communityC | Open a community and return structured community metadata, including name, description, member/post hints, and join state when visible. |
| x_extract_postB | Open a post and return a structured post record with author, text, media, and visible stats. |
| x_extract_profileB | Open a profile and return a structured profile record with bio, stats, and pinned post when visible. |
| x_get_profile_postsC | Open a profile and extract visible posts from that profile timeline. |
| x_get_post_threadA | Open a post and extract the visible thread/timeline around it as structured post rows. |
| x_get_composer_stateA | Inspect the current X composer state, including whether the Post/Reply button is enabled. |
| x_create_postA | Create a new X post from the home composer with button-state verification and automatic real-typing fallback if X rejects the initial input. |
| x_reply_to_postB | Reply to a specific post with pre-submit composer verification, automatic real-typing fallback, and post-submit visibility verification. |
| x_like_postB | Like a specific X post and verify resulting button state. |
| x_repost_postB | Repost a specific X post and verify the resulting repost state. |
| x_follow_profileB | Follow an X profile and verify the resulting follow state from the active account. |
| x_engage_post_taskB | Run a deterministic engage-post task with account switch, screenshots, optional like/repost actions, and a persisted run journal. |
| x_quote_post_taskB | Run a deterministic quote-post task with screenshots before and after submit, account switching, and profile-level verification. |
| x_reply_post_taskB | Run a deterministic reply-post task with account switching, screenshots, and post-surface verification. |
| x_follow_profile_taskB | Run a deterministic follow-profile task with account switching, screenshots, and profile-state verification. |
| x_community_post_taskB | Run a deterministic community-post task with membership check, screenshots, composer recovery, and feed verification. |
| x_switch_account_and_act_taskC | Run a deterministic account switch followed by a focused action like open-home, open-url, or follow-profile. |
| x_verify_text_visibleB | Verify that a specific text snippet is visible on X. Scope can target body, article content, or the active composer. |
| x_recoverB | Apply lightweight X recovery actions for common stuck states: composer, home, or target URL. |
| x_research_topicB | Run an autonomous X research pass for a topic, with retries, receipts, post/thread/profile extraction, and community sampling. |
| x_map_communityB | Run an autonomous community mapping pass: open a community, extract feed rows, and profile a sample of visible participants. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 38 tools
Primitive actions and deterministic task wrappers overlap heavily (e.g., x_reply_to_post vs x_reply_post_task, x_follow_profile vs x_follow_profile_task, x_switch_account vs x_switch_account_and_act_task). Multiple post-reading tools also overlap (x_open_post, x_extract_post, x_get_post_thread). Descriptions help distinguish them, but an agent must read carefully to avoid misselection.
Tool names are consistently snake_case with an x_ prefix and generally follow a verb_noun pattern. Minor deviations exist: retrieval verbs mix get and extract, and some names are bare verbs or multi-word task names. The pattern is still predictable overall.
With 38 tools, the surface is heavy for a single-domain server. Many high-level task wrappers duplicate simpler primitives (reply, follow, switch-account), inflating the count beyond what the core X automation domain requires.
The set covers core X lifecycle operations: open, read, search, post, reply, like, repost, follow, communities, accounts, state, and health. Missing operations like delete post, unfollow, unlike, and direct messages are notable but agents can work around most core workflows.