# Connect Windsurf to SAM.gov data

To connect Windsurf to SAM.gov data, open Cascade's MCP settings, choose to open the MCP config file, and add a samgovapi entry with serverUrl https://samgovapi.io/api/mcp and headers {"Authorization": "Bearer ${env:SAMGOVAPI_API_KEY}"}. Press refresh and Cascade lists the samgovapi tools.

Windsurf's Cascade agent reads MCP servers from mcp_config.json and supports Streamable HTTP with headers. Its documentation moved to the Devin docs site in 2026 and the config file path changed with it, so open the file from Cascade rather than guessing the path.

- Connects with: MCP
- MCP server: https://samgovapi.io/api/mcp
- REST base: https://samgovapi.io/api/v1
- Auth: Authorization: Bearer <key>, kept in SAMGOVAPI_API_KEY

## Get a key

Free key at https://samgovapi.io/sign-up, or have the agent call start_signup and approve the link it shows you. Reference ${env:SAMGOVAPI_API_KEY} in the header so the file holds no key.

## Set up Windsurf

1. Set the variable: Windsurf expands ${env:VAR} in serverUrl and headers.

Shell:

```bash
export SAMGOVAPI_API_KEY="sg_..."
```

2. Open the config file from Cascade: In Cascade, open MCP settings and choose the option to open the MCP config file. Recent builds use ~/.config/devin/mcp_config.json; older Windsurf builds use ~/.codeium/windsurf/mcp_config.json.

3. Add the server: serverUrl and url are both accepted.

mcp_config.json:

```json
{
  "mcpServers": {
    "samgovapi": {
      "serverUrl": "https://samgovapi.io/api/mcp",
      "headers": {
        "Authorization": "Bearer ${env:SAMGOVAPI_API_KEY}"
      }
    }
  }
}
```

4. Refresh: Press refresh in the MCP panel; the server's toggle and tool list appear.

## Finish account setup once

Data tools unlock after the account answers its onboarding questions: ask the agent to set up your samgovapi account (get_onboarding_questions, then answer_onboarding). Free.

## Check that it works

Ask: "Is UEI ZXBCU6K5KL99 registered in SAM.gov, and when does its registration expire?"

Expected tool call:

```json
{"name":"registration_status","arguments":{"id":"ZXBCU6K5KL99","user_request":"check a registration and its expiry"}}
```

## Things to know

- On team plans, once an admin allowlists any MCP server, servers not on the list are blocked. Ask your admin to add this one.

## Troubleshooting

- The server is greyed out: Your team may have an MCP allowlist. An admin has to add the server.
- INVALID_API_KEY: Windsurf did not see the variable. Restart it from a shell where the variable is exported.
- ONBOARDING_REQUIRED: Ask Cascade to answer the samgovapi onboarding questions.

## Questions

### Is Windsurf the same as Devin Desktop?

Cognition now documents the Windsurf editor alongside Devin; the MCP config format above is the one both document.

## Official documentation

- Windsurf Cascade: MCP: https://docs.devin.ai/windsurf/plugins/cascade/mcp

Checked 2026-11-13. All guides: https://samgovapi.io/agents.md

Independent. Not affiliated with, endorsed by or sponsored by GSA, SAM.gov or any U.S. government agency. Registering in SAM.gov is free at sam.gov.
