+ Integration Guide
· Updated August 29, 2026
How to Connect Reddit MCP to Windsurf
Step-by-step guide to adding FetchLayer's Reddit MCP server to Windsurf. Give your AI coding agent access to Reddit search, posts, and comments.
Written by Alex P.
- MCP
- Windsurf
- reddit scraping
- AI agent
- IDE integration
Windsurf is an AI-powered IDE by Codeium that supports the Model Context Protocol (MCP). You can connect FetchLayer’s Reddit MCP server to give Windsurf’s Cascade agent access to all 13 Reddit endpoints — search, posts, comments, subreddits, and user lookups — as a native tool instead of something it has to browse for.
Prerequisites
- Windsurf installed
- A FetchLayer API key — get one free (no credit card)
Step 1: Open MCP settings
In Windsurf, open the MCP configuration through the UI or the config file directly:
- Open the Command Palette (
Ctrl+Shift+P/Cmd+Shift+P) - Search for “MCP: Configure” or “Windsurf Settings”
- Navigate to the MCP servers section — Windsurf shows connected servers with a live status indicator, so you can confirm a connection without leaving the panel
Alternatively, edit the config file directly at ~/.windsurf/mcp.json (global, applies to every project) or .windsurf/mcp.json (per-project, scoped to the current workspace only).
Step 2: Add the FetchLayer server
Add this to your MCP configuration:
{
"mcpServers": {
"fetchlayer": {
"url": "https://mcp.fetchlayer.dev",
"headers": {
"Authorization": "Bearer ss-your-api-key"
}
}
}
}
Replace ss-your-api-key with your actual key from the FetchLayer dashboard.
If you use Windsurf across multiple projects, the global config is usually the better home for FetchLayer — a data-fetching tool like this rarely needs to be scoped to a single repo, unlike, say, a project-specific database MCP server.
Step 3: Restart and verify
Restart Windsurf or reload the window. The FetchLayer MCP server should appear in the agent’s available tools with a green connected indicator in the MCP settings panel; a red or grey dot there usually means the URL or header is malformed rather than a network problem, since mcp.fetchlayer.dev doesn’t require any allowlisting.
Try it out
Open Cascade (Windsurf’s AI agent) and try:
Search Reddit for discussions about “best TypeScript ORMs” and summarize the top recommendations.
Cascade will call FetchLayer’s Reddit tools and incorporate the data into its response.
More examples:
- “What are developers saying about Svelte 5 on r/javascript?”
- “Get the top 10 posts from r/ExperiencedDevs this week”
- “Find subreddits about DevOps and list their subscriber counts”
- “Before we pick this library, search Reddit for people who’ve hit issues with it in production”
A note on tool-call credits
Windsurf meters some agent actions through its own credit system depending on your plan; MCP tool calls to third-party servers like FetchLayer generally count as a standard action the same way a file edit or terminal command would, separate from FetchLayer’s own request-based billing on the pricing page. If you’re running a large batch of Reddit lookups in one Cascade session, it’s worth keeping both meters in mind rather than assuming only one applies.
All available tools
Once connected, Cascade has access to all 13 FetchLayer Reddit tools: scrape_search, scrape_post, scrape_community_posts, scrape_community_details, scrape_user_profile, scrape_user_posts, scrape_user_comments, scrape_search_communities, scrape_search_users, scrape_comment_permalink, scrape_popular, scrape_leaderboard, and scrape_explore. See the full endpoint list.
What a tool call actually returns
Reddit tools return structured JSON, not a page you have to parse. A scrape_search call for something like “self-hosted url shortener” returns an array of post objects shaped roughly like this:
{
"results": [
{
"id": "1abc23",
"subreddit": "selfhosted",
"title": "What is your favorite self-hosted URL shortener?",
"author": "u/example_user",
"score": 214,
"num_comments": 87,
"created_utc": 1735689600,
"url": "https://reddit.com/r/selfhosted/comments/1abc23/...",
"selftext": "Looking for something lightweight that supports custom domains..."
}
]
}
That structure is why an agent can reliably sort by score, filter by subreddit, or pull num_comments to decide whether a thread is worth a follow-up scrape_post call — none of which is reliable when an agent is scraping rendered HTML itself, where class names and layout change without warning.
A realistic Cascade run
Cascade’s strength is chaining steps without being told each one, so the useful prompts here are the ones that state an outcome rather than a procedure. A research request that spans several tool calls:
“Find out what people in r/selfhosted actually complain about with Nextcloud. Search for recent threads, open the two with the most comments, and give me the top five recurring complaints with a quote for each.”
What Cascade does with that, in order:
scrape_searchwithquery: "Nextcloud",subreddit: "selfhosted",sort: "new"— one request- Reads
num_commentsacross the results to pick the two busiest threads — no request, it already has the data scrape_poston each of those two URLs — two requests- Synthesizes the comment bodies into themes, with quotes pulled from the returned JSON
Four billed requests for something that would otherwise be twenty minutes of manual reading. The step that makes it work is step 2: because the search response includes num_comments and score on every result, Cascade can decide which threads deserve a follow-up without fetching them first. An agent scraping HTML would have to open all of them to find out.
A follow-up in the same session costs nothing extra if it’s answerable from what’s already in context:
“Of those five complaints, which ones look like they were fixed in a later version?”
Cascade answers that from the thread contents it already pulled. Only ask for new data when you actually need new data — the difference between a two-request session and a twelve-request one is usually just prompt discipline.
Scoping the server to one project
Windsurf applies MCP servers globally by default, which means every workspace you open can call Reddit tools. If you only want that in a specific project, keep the server config in that project’s Windsurf settings rather than the global config.
This matters mostly for accidental usage: an agent in an unrelated repo that can see a Reddit tool will occasionally decide to use it when a prompt vaguely mentions “what people say about X”, and you’ll pay for a request you didn’t intend. Scoping narrowly is the simplest way to avoid surprise usage on the free tier.
Troubleshooting
Server shows disconnected in the MCP panel?
- Re-check the JSON for a stray trailing comma — Windsurf’s config parser rejects the whole file rather than skipping the broken entry
- Confirm the header block reads
Authorization: Bearer ss-your-keywith theBearerprefix intact - Toggle the server off and back on in the MCP panel before resorting to a full restart
Cascade doesn’t use the tool even though it’s connected?
- Mention “Reddit” explicitly in your prompt — Cascade is less likely to reach for a tool it hasn’t used yet if the request is vague
- Make sure you’re in a mode that allows tool calls (some lightweight chat modes in Windsurf restrict tool access)
Using more than one platform in the same session
The fetchlayer MCP server you just connected is Reddit-specific, but the same account and API key work across FetchLayer’s other platform servers too — Twitter/X, App Store reviews, YouTube comments, Google Maps, and Google Play Store. If your workflow needs more than Reddit (comparing what people say on Reddit vs. X about the same topic, for example), you can add the Twitter MCP server alongside this one with the same API key and a different server URL. Nothing about the setup above changes — it’s the same config shape, just a second entry in your mcpServers block.
What’s Next
- Reddit MCP: All Clients Compared — every supported AI tool in one place
- Reddit MCP + Cursor
- Reddit MCP + Claude Desktop
- How to Scrape Reddit in 2026
- FetchLayer API Reference