# FeelingSurf

> Manage your FeelingSurf traffic exchange account: sites, targeting, templates, sources and proxies.

- name: fr.feelingsurf/feelingsurf
- version: 1.1.0
- connection class: R1 (autonomous)
- trust: 82/100 flags: no-repository
- quality: 85/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/fr.feelingsurf%2Ffeelingsurf
- tools: https://api.protogrid.dev/v1/servers/fr.feelingsurf%2Ffeelingsurf/tools

**An agent can connect on its own if it already holds `FEELINGSURF_TOKEN`.** Remote endpoint behind a static API key or header. The registry never sees the value; the agent fills the placeholder.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "feelingsurf": {
      "type": "http",
      "url": "https://api.feelingsurf.fr/mcp",
      "headers": {
        "Authorization": "Bearer ${FEELINGSURF_TOKEN}"
      }
    }
  }
}
```

Placeholders to fill: `${FEELINGSURF_TOKEN}`.

## Trust

- hygiene: 80
- liveness: 97
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-93% +updated-10d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 85/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 86 (weight 30)

- warn `tools.descriptions`: 7 of 34 tools have a description under 20 characters
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 34 of 34 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- warn `tools.token_cost`: about 10,134 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: 4 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 34, about 10,134 tokens to load them all
- tool set hash: 7147fd9a6d8bcaa7e52f0d2680b8b7d9
- tools last changed: 2026-10-11T13:00:26.221Z
- badge: [![protogrid quality](https://protogrid.dev/badge/fr.feelingsurf/feelingsurf.svg)](https://protogrid.dev/servers/fr.feelingsurf/feelingsurf)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-11 `update_site_template` changed (inputSchema)
- 2026-10-11 `create_site_template` changed (inputSchema)
- 2026-10-11 `update_site` changed (inputSchema)
- 2026-10-11 `create_site` changed (inputSchema)

Full history: https://api.protogrid.dev/v1/servers/fr.feelingsurf%2Ffeelingsurf/changes

## Remotes

- https://api.feelingsurf.fr/mcp (streamable-http, auth api_key ${FEELINGSURF_TOKEN}, reachable true, uptime30d 0.9259259)

## Packages

_none_

## Tools (34)

- `create_label`: Create a label. Exceeding the per-account label cap returns 403 `limit_reached`.
- `create_proxy`: Add a proxy. Registers a static proxy. FeelingSurfViewer checks it before any session goes through it, so a new proxy starts with `proven` false. Exceeding the per-account proxy cap returns 403 `proxy_limit_reached`; a host and port already on your account returns 422 `validation_error`.
- `create_site`: Create a site. Only `url` is required; every other field defaults to a new-site configuration. Exceeding the account's slot count returns 403 `site_limit_reached`. Fields for creating a site. Only `url` is required; all others default to a new-site configuration. When `template_id` is given, that template's settings seed the defaults and any field set explicitly here overrides them (shallow, per top-level key).
- `create_site_template`: Create a site template. A template is a reusable bundle of site settings (no url/paused/labels). Only `name` is required; every other field defaults to a new-template configuration. Exceeding the per-account cap returns 403 `template_limit_reached`. Fields for creating a site template. Only `name` is required; all others default to a new-template configuration.
- `create_traffic_source`: Create a traffic source. Exceeding the per-account source cap returns 403 `limit_reached`.
- `delete_label`: Delete a label.
- `delete_proxy`: Remove a proxy.
- `delete_site`: Delete a site.
- `delete_site_template`: Delete a site template.
- `delete_traffic_source`: Delete a traffic source.
- `get_account`: Get the authenticated account. Account summary plus the earn-side rollup (credits earned today / last 7 days), active FeelingSurfViewer session count, and site-slot usage.
- `get_label`: Get one label.
- `get_proxy`: Get one proxy.
- `get_referrals`: Get your referral program. Your shareable referral link, how many users you've referred, your commission rate, and commission credits earned.
- `get_screenshot`: Get a screenshot image. Returns the image FeelingSurfViewer captured. The uid is the last path segment of an `images[].url` from list_site_screenshots.
- `get_site`: Get one site.
- `get_site_template`: Get one site template.
- `get_traffic_availability`: Traffic availability by country. Surfer-traffic availability per country, to guide a site's or template's location targeting. A country with `availability: none` has no surfers delivering visits, so targeting it yields nothing. A fixed reference dataset (~250 countries), returned in full — not paginated.
- `get_traffic_source`: Get one traffic source. Works for your own sources and for the shared defaults (e.g. id 1, "Direct visits").
- `list_deleted_sites`: List sites you can still restore. Sites you deleted within the retention window, most recently deleted first. Sites removed because a plan downgrade reduced your slot count are not listed: those come back on their own when you upgrade again.
- `list_labels`: List your labels. Referenced by id from a site's `labels`.
- `list_proxies`: List your proxies. Every proxy on your account, oldest first.
- `list_sites`: List your sites.
- `list_site_screenshots`: List a site's FeelingSurfViewer screenshots. Screenshots captured while the app surfed the site. Returns the most recent (up to 24); this list is not paginated.
- `list_site_templates`: List your site templates.
- `list_surf_sessions`: List your FeelingSurfViewer sessions. Recent FeelingSurfViewer sessions on your account (the earning side), most recent first. These are your own FeelingSurfViewer instances and their IPs.
- `list_traffic_sources`: List your traffic sources. Your own sources plus the shared/built-in ones, referenced by id from a site's `traffic_sources`.
- `restore_site`: Restore a deleted site. Brings back a site you deleted, with the settings it had. Geo targeting, blocked domains and actions your plan cannot use stay suspended and come back empty. Returns 404 once the retention window has passed, and 403 `site_limit_reached` when you have no free slot.
- `update_account`: Update account settings. Update non-sensitive account settings (e.g. `visit_own_sites`, `timezone`). Writable account settings. Provide at least one. Email, password and billing are intentionally not editable via the API.
- `update_label`: Update a label. Provide at least one field.
- `update_proxy`: Pause or resume a proxy. Only `enabled` can change. Pausing or resuming clears `last_error` and its error history, and a resumed proxy is checked again at once, so this also brings back a proxy that was switched off after failing. To change the host, port or credentials, delete the proxy and add it again.
- `update_site`: Update a site. Writable fields of a site. For PATCH, provide at least one; only the fields present are changed.
- `update_site_template`: Update a site template. Writable fields of a site template. For PATCH, provide at least one; only the fields present are changed.
- `update_traffic_source`: Update a traffic source. Provide at least one field.
