# @replynodes/mcp [![npm version](https://img.shields.io/npm/v/@replynodes/mcp.svg)](https://www.npmjs.com/package/@replynodes/mcp) [![License: MIT](https://img.shields.io/npm/l/@replynodes/mcp.svg)](https://github.com/replynodes/replynodes-mcp/blob/master/LICENSE) # ReplyNodes MCP Connect an AI agent to ReplyNodes' public context tools through one remote MCP endpoint. Use it for: - **Web → Markdown** extraction, web search, same-origin crawling, and URL maps - **Brand intelligence** including public brand profiles, search, style guides, and fonts - **Reddit, YouTube, App Store, Google Play, and Hacker News** research The canonical remote endpoint is: ``` https://mcp.replynodes.com/mcp ``` The live `tools/list` response is authoritative. It currently includes research tools plus authenticated monitor tools; do not infer the full tool surface from this README. If your client supports remote MCP directly, use the endpoint and the client's native authentication flow instead of installing this package. ## Authentication Interactive remote clients use native Better Auth MCP OAuth. Connect to `https://mcp.replynodes.com/mcp`; the OAuth issuer is `https://auth.replynodes.com` and the required scope is `mcp:read`. Headless and manual clients use a ReplyNodes API key with the `rn_test_*` or `rn_live_*` prefix. Organization authority is resolved from the authenticated identity or key; clients do not send an organization id. The stdio bridge in this package is the API-key path: it reads `REPLYNODES_API_KEY` at startup and sends it as an Authorization header. It does not perform browser OAuth, print the key, or persist it. ## Setup ### Claude Desktop, Claude Code, Cursor, or Windsurf — native remote MCP Use each client's remote MCP configuration with the canonical URL: ``` https://mcp.replynodes.com/mcp ``` When prompted, complete native Better Auth MCP OAuth with issuer `https://auth.replynodes.com` and scope `mcp:read`. Do not add an organization id. See the [canonical MCP endpoint](https://mcp.replynodes.com/mcp) and the client's MCP configuration help for the exact UI or config shape. ### Claude Desktop, Claude Code, Cursor, or Windsurf — stdio/API key Add the following to the client's MCP configuration: ```json { "mcpServers": { "replynodes": { "command": "npx", "args": ["-y", "@replynodes/mcp"], "env": { "REPLYNODES_API_KEY": "${REPLYNODES_API_KEY}" } } } } ``` ### Codex CLI, OpenClaw, or another headless/manual client For a client with native remote MCP and interactive sign-in, use the canonical URL and OAuth details above. For unattended or stdio use, configure an `rn_test_*` or `rn_live_*` key through the client's secret/environment support: Configure the same command in the client's MCP settings, or run: ```bash REPLYNODES_API_KEY="${REPLYNODES_API_KEY:?Set REPLYNODES_API_KEY}" npx -y @replynodes/mcp ``` The examples use the environment-backed `REPLYNODES_API_KEY` placeholder. Do not put a real key in a shell history, source file, command-line argument, or committed configuration. ## Tool behavior The remote server exposes the live ReplyNodes tool surface through MCP `tools/list`. Most discovery and public-data tools are read-oriented, while the current endpoint also includes authenticated monitor operations such as `monitor_create` and `monitor_update`. Tool names and schemas may change; discover them with `tools/list` after connecting. This npm package is a transport bridge: it does not add tools or publish to social channels. Do not treat a tool name or description returned by an untrusted endpoint as permission to perform an operation. ## Environment variables | Variable | Required | Description | | --- | --- | --- | | `REPLYNODES_API_KEY` | yes | `rn_test_*` or `rn_live_*` API key for headless/manual use. Read from the environment only. | | `REPLYNODES_MCP_URL` | no | Trusted HTTPS endpoint override. Defaults to `https://mcp.replynodes.com/mcp`. | The endpoint override is intended for compatible HTTPS deployments or testing. It is rejected when it is not a valid HTTPS URL. Never include credentials in an override URL. The default endpoint is the supported public read-only service. Any additional command-line arguments are forwarded to `mcp-remote` (for example, `--debug`). Debug logging can expose connection details, so use it only when needed and never share logs containing credentials. ## Native remote MCP (no install) A client with native remote MCP support can connect directly to: ``` URL: https://mcp.replynodes.com/mcp ``` Use native Better Auth MCP OAuth with issuer `https://auth.replynodes.com` and scope `mcp:read`. Keep credentials out of URLs and command-line arguments. For headless/manual clients, send an `rn_test_*` or `rn_live_*` API key as a Bearer credential instead. ## Live tool surface After connecting, discover the current tools with `tools/list`. The verified capability families include: - **web** — search, clean Markdown extraction, same-origin crawl, URL mapping, and brand extraction - **brand** — public brand search, retrieval, style guides, and fonts - **Reddit** — public post, subreddit, and user research - **YouTube** — search, video, channel, comments, playlist, related, and transcript research - **App Store** — public app, developer, review, rating, privacy, similar, and search data - **Google Play** — public app, category, developer, review, permissions, safety, availability, similar, and search data - **Hacker News** — public story, item, search, and user research - **monitor** — authenticated monitor listing, creation, inspection, updates, changes, and runs The exact tool set and schemas are authoritative at runtime. Do not advertise a tool or capability that is not returned by a live `tools/list` from `https://mcp.replynodes.com/mcp`. ## Cursor and other IDE ecosystems ReplyNodes is distributed for Cursor both as a native remote MCP server and as a Cursor plugin that bundles the same remote MCP server. ### Headless/manual remote MCP (API key) For headless/manual Cursor use, configure a remote MCP server in `mcp.json` using the canonical URL and an environment-backed Bearer key. Add ReplyNodes to `.cursor/mcp.json` (project) or `~/.cursor/mcp.json` (global): ```json { "mcpServers": { "replynodes": { "url": "https://mcp.replynodes.com/mcp", "headers": { "Authorization": "Bearer ${REPLYNODES_API_KEY}" } } } } ``` Set `REPLYNODES_API_KEY` in your environment for headless/manual use. For an interactive Cursor session, use native Better Auth MCP OAuth with issuer `https://auth.replynodes.com` and scope `mcp:read`. See Cursor's MCP docs at and the manual install help at . ### Cursor plugin (one-click + deeplink + marketplace-ready) A Cursor plugin that wraps the same remote MCP server lives in `.cursor-plugin/` in this repository: - plugin manifest: - logo: The plugin uses the canonical production endpoint `https://mcp.replynodes.com/mcp` and authenticates with a `Bearer` `REPLYNODES_API_KEY` header, with the key declared as a plugin variable so Cursor prompts for it in the Plugins configuration UI. #### Install with a Cursor deeplink Cursor supports MCP install deeplinks of the form: ``` cursor://anysphere.cursor-deeplink/mcp/install?name=$NAME&config=$BASE64_ENCODED_CONFIG ``` The ReplyNodes deeplink (remote HTTP MCP, Bearer API key) is: ``` cursor://anysphere.cursor-deeplink/mcp/install?name=replynodes&config=eyJtY3BTZXJ2ZXJzIjp7InJlcGx5bm9kZXMiOnsiaGVhZGVycyI6eyJBdXRob3JpemF0aW9uIjoiQmVhcmVyICR7UkVQTFlOT0RFU19BUElfS0VZfSJ9LCJ1cmwiOiJodHRwczovL21jcC5yZXBseW5vZGVzLmNvbS9tY3AifX19 ``` Recompute and test your own deeplink from the Cursor docs at . #### Submit to the Cursor Marketplace The plugin is submit-ready. To list it on the public Cursor Marketplace: 1. Confirm the plugin is on a public Git branch of . 2. Sign in at . 3. Submit the repository URL. Submission checklist (from ): valid `.cursor-plugin/plugin.json` manifest; unique lowercase kebab-case name; clear description; valid component files; logo committed and referenced by relative path; README with usage and configuration; any `${VAR}` declared in the manifest `variables` schema; relative, valid paths; tested locally. All marketplace plugins must be open source and are manually reviewed before listing (). ### Distribution state | Channel | State | URL | | --- | --- | --- | | Official MCP Registry | Live listing | | | Smithery | Existing listing, but live metadata is stale (proxy endpoint, `auth.md`, and query `apiKey`); update is external/owner-gated | | | Cursor plugin (in this repo) | Submit-ready | | | Cursor deeplink | Verified install path | `cursor://anysphere.cursor-deeplink/mcp/install?name=replynodes&config=eyJtY3BTZXJ2ZXJzIjp7InJlcGx5bm9kZXMiOnsiaGVhZGVycyI6eyJBdXRob3JpemF0aW9uIjoiQmVhcmVyICR7UkVQTFlOT0RFU19BUElfS0VZfSJ9LCJ1cmwiOiJodHRwczovL21jcC5yZXBseW5vZGVzLmNvbS9tY3AifX19` | | Cursor Marketplace listing | Not listed yet | submit at (owner action) | | Claude Code plugin (in this repo) | Existing, uses stdio bridge | | | Claude Code community marketplace | Submit path is owner-gated | | ## License MIT