Cline supports MCP servers. Add browser.city once and your agent can call browser tools (open, navigate, click, snapshot, markdown) on demand.
1) Set your API key
Set BROWSERCITY_API_KEY in your environment.
2) Find Cline’s MCP settings file
Cline stores MCP server config in cline_mcp_settings.json.
Common locations:
- macOS:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json - Linux:
~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json - Windows:
%APPDATA%/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
3) Add browser.city as a remote MCP server
Add an entry under mcpServers:
{
"mcpServers": {
"browsercity": {
"type": "sse",
"url": "https://mcp.browser.city/mcp",
"headers": {
"Authorization": "Bearer ${BROWSERCITY_API_KEY}"
}
}
}
}
Notes:
- Keep the API key in an environment variable so it doesn’t end up in source control.
- If your Cline version uses a different remote transport field, keep the same
url+headersand adjusttypeaccordingly.
4) Use it in Cline
Try:
Use browsercity tools to open a browser, navigate to a URL, and extract markdown.
5) When to use REST instead
If you don’t need interaction, the Request API is often the simplest integration:
request.ts
const res = await fetch("https://api.browser.city/v1/requests", { method: "POST", headers: { Authorization: `Bearer ${process.env.BROWSERCITY_API_KEY}`, "Content-Type": "application/json" }, body: JSON.stringify({ url: "https://example.com", markdown: true }),}).then((r) => r.json());console.log(res.content);import osimport requestsapi_key = os.environ["BROWSERCITY_API_KEY"]res = requests.post( "https://api.browser.city/v1/requests", headers={"Authorization": f"Bearer {api_key}"}, json={"url": "https://example.com", "markdown": True},).json()print(res["content"])using System.Net.Http.Headers;using System.Net.Http.Json;var apiKey = Environment.GetEnvironmentVariable("BROWSERCITY_API_KEY")!;var http = new HttpClient();http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);var res = await http.PostAsJsonAsync( "https://api.browser.city/v1/requests", new { url = "https://example.com", markdown = true });Console.WriteLine(await res.Content.ReadAsStringAsync());import java.net.URI;import java.net.http.*;public class Request { public static void main(String[] args) throws Exception { var apiKey = System.getenv("BROWSERCITY_API_KEY"); var http = HttpClient.newHttpClient(); var req = HttpRequest.newBuilder() .uri(URI.create("https://api.browser.city/v1/requests")) .header("Authorization", "Bearer %s".formatted(apiKey)) .POST(HttpRequest.BodyPublishers.ofString( "{\"url\":\"https://example.com\",\"markdown\":true}")) .build(); var res = http.send(req, HttpResponse.BodyHandlers.ofString()); System.out.println(res.body()); }}