surf-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FARA_MODEL_IDS | No | Fara model IDs to use | |
| GOOGLE_API_KEY | No | Google API key for Gemini | |
| OPENAI_API_KEY | No | OpenAI-compatible API key | |
| SURF_LLM_MODEL | No | LLM model identifier (e.g., microsoft_fara-7b, gemini-2.0-flash) | |
| OPENAI_BASE_URL | No | OpenAI-compatible base URL | |
| LMSTUDIO_SERVERS | No | Multi-server LM Studio endpoints for visual grounding | |
| FARA_MAX_FAILURES | No | Max failures per action | 2 |
| SURF_LLM_PROVIDER | No | LLM provider (e.g., gemini) | |
| SURF_MAX_SESSIONS | No | Maximum number of concurrent sessions | 10 |
| FARA_PROBE_TIMEOUT | No | Probe timeout for server discovery | 2.0 |
| FARA_MIN_CONFIDENCE | No | Minimum confidence threshold | 0.7 |
| FARA_MAX_AGENT_STEPS | No | Maximum steps in autonomous mode | 20 |
| SURF_BROWSER_HEADLESS | No | Run browser in headless mode | true |
| FARA_CONFIDENCE_RETRIES | No | Number of retries on low confidence | 2 |
| SURF_BROWSER_VIEWPORT_WIDTH | No | Viewport width in pixels | 1920 |
| SURF_BROWSER_VIEWPORT_HEIGHT | No | Viewport height in pixels | 1080 |
| SURF_SESSION_TIMEOUT_SECONDS | No | Session timeout in seconds | 3600 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| session_createB | Create a new navigator session with one or more drivers |
| session_destroyA | Destroy a session and cleanup all its drivers |
| session_listB | List all active sessions |
| gotoC | Navigate to a location (path for filesystem, URL for browser) |
| currentC | Get current location for a driver |
| backC | Navigate back in history |
| forwardC | Navigate forward in history |
| historyC | Get navigation history for a driver |
| listA | List contents at current location (directory entries for filesystem, links for browser) |
| readA | Read content (file for filesystem, page text for browser) |
| snapshotC | Capture current state (JSON for filesystem, PNG screenshot for browser) |
| locateB | Locate UI element by natural language description (browser driver only) |
| clickC | Click UI element by description (browser driver only) |
| typeB | Type text into UI element by description (browser driver only) |
| scrollB | Scroll page (browser driver only) |
| waitA | Wait for element or delay (browser driver only) |
| actA | Execute a goal using direct Fara visual grounding. Fara decides what action to take (click, type, scroll, etc.) based on the goal and screenshot. |
| act_autonomousB | Execute a goal autonomously with multiple steps. Fara loops until task completion (terminate action) or max steps reached. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/shanevcantwell/surf-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server