{
  "markdown": "# FeedNest MCP Server\n\n> Your sources. Not the whole web. Ask your AI about your feeds - it already knows.\n\nChatGPT searches the internet. Perplexity crawls billions of pages. When you ask about your industry, your interests, your world - they give you everything except what matters.\n\n**[FeedNest](https://www.feednest.com)** is different. Your AI works exclusively with the sources you choose: the blogs you trust, the publications you follow, the experts you believe in. No algorithmic noise. No black-box results. Intelligence grounded in your world.\n\nThis MCP server gives any AI assistant - **ChatGPT**, **Codex**, **Claude**, **Gemini**, **Grok**, **Cursor**, **Windsurf**, **Cline**, **Le Chat**, and more - direct access to your feeds, articles, highlights, notes, and tags through natural language.\n\n<a href=\"https://www.feednest.com\"><img src=\"https://img.shields.io/badge/feednest.com-Visit-orange?style=flat-square\" alt=\"Website\"></a>\n<a href=\"https://docs.feednest.com\"><img src=\"https://img.shields.io/badge/docs-feednest.com-blue?style=flat-square\" alt=\"Docs\"></a>\n<a href=\"https://smithery.ai/servers/feednest/feednest\"><img src=\"https://img.shields.io/badge/smithery-feednest-purple?style=flat-square\" alt=\"Smithery\"></a>\n\n---\n\n## What Your AI Can Do\n\nJust ask. Your AI handles the rest.\n\n- **Morning briefings** - Wake up to a summary of everything that happened overnight across your feeds\n- **Compare coverage** - See how different sources report the same story, side by side\n- **Spot trends early** - Your AI detects emerging patterns before they hit mainstream\n- **Deep-dive any topic** - Get a comprehensive synthesis from every source you follow\n- **Track developing stories** - Follow a narrative as it evolves across all your feeds\n- **Instant search** - Find any article across all your sources in seconds\n- **Highlights and notes** - Save what matters and annotate with your own thoughts\n- **Audio briefings** - Turn any article or summary into something you can listen to\n\n---\n\n## Quick Start\n\n### Prerequisites\n\n1. A [FeedNest](https://www.feednest.com) account with a **Pro** subscription\n2. An API key - generate one from **Settings → Developer API** in your dashboard\n\n### ChatGPT\n\n#### Option A: Web UI (OAuth - recommended)\n\n1. Go to **Settings → Apps & Connectors → Advanced** and enable Developer Mode\n2. Go to **Settings → Apps → Create**. Name it **FeedNest** and set the URL to `https://mcp.feednest.com`\n3. ChatGPT will redirect you to FeedNest - log in and authorize\n\nNo API key needed. ChatGPT handles the OAuth flow automatically.\n\n#### Option B: Responses API\n\nInclude FeedNest as an MCP tool in your API request:\n\n```json\n{\n  \"type\": \"mcp\",\n  \"server_url\": \"https://mcp.feednest.com\",\n  \"server_label\": \"feednest\",\n  \"authorization\": \"fn_live_YOUR_API_KEY\"\n}\n```\n\n### Codex\n\n#### Option A: Plugin (recommended)\n\nOpen the Codex plugin directory and search for **FeedNest**:\n\n```\ncodex\n/plugins\n```\n\nThe plugin bundles skills, MCP config, and brand assets in one install. See the [Codex plugin README](./packages/codex-plugin) for local installation options.\n\n#### Option B: MCP in config.toml\n\nAdd to `~/.codex/config.toml`:\n\n```toml\n[mcp_servers.feednest]\nurl = \"https://mcp.feednest.com\"\nbearer_token_env_var = \"FEEDNEST_API_KEY\"\n```\n\n```bash\nexport FEEDNEST_API_KEY=\"fn_live_YOUR_API_KEY\"\n```\n\nOr via CLI:\n\n```bash\ncodex mcp add feednest --transport http https://mcp.feednest.com\n```\n\n### Claude\n\n#### Claude.ai Web (OAuth - recommended)\n\n1. Click profile icon → **Settings → Connectors → Add custom connector**\n2. Set **Name** to `FeedNest`, **Remote MCP server URL** to `https://mcp.feednest.com`\n3. Leave OAuth Client ID and Secret empty. Click **Add** and authorize.\n\n#### Claude Code\n\n```bash\nclaude mcp add --transport http feednest https://mcp.feednest.com \\\n  --header \"Authorization: Bearer fn_live_YOUR_API_KEY\"\n```\n\nAdd `-s user` for global access across all projects.\n\n#### Claude Desktop (requires bridge)\n\nClaude Desktop only supports stdio-based servers. Use the `mcp-remote` bridge:\n\n```json\n{\n  \"mcpServers\": {\n    \"feednest\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\", \"mcp-remote\",\n        \"https://mcp.feednest.com\",\n        \"--header\", \"Authorization:${AUTH_HEADER}\"\n      ],\n      \"env\": {\n        \"AUTH_HEADER\": \"Bearer fn_live_YOUR_API_KEY\"\n      }\n    }\n  }\n}\n```\n\nConfig path: `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS), `%APPDATA%\\Claude\\claude_desktop_config.json` (Windows), or `~/.config/Claude/claude_desktop_config.json` (Linux).\n\n### Cursor\n\nAdd to `.cursor/mcp.json` in your project (or `~/.cursor/mcp.json` for global):\n\n```json\n{\n  \"mcpServers\": {\n    \"feednest\": {\n      \"url\": \"https://mcp.feednest.com\",\n      \"headers\": {\n        \"Authorization\": \"Bearer fn_live_YOUR_API_KEY\"\n      }\n    }\n  }\n}\n```\n\n> **Tip:** Cursor supports env var interpolation: `\"Bearer ${env:FEEDNEST_API_KEY}\"`. Do **not** add a `\"type\"` field - Cursor auto-detects from the `\"url\"` key.\n\n### Le Chat (Mistral)\n\nAvailable on all plans, including the free tier.\n\n1. Go to **Sidebar → Intelligence → Connectors**\n2. Click **+ Add Connector → Custom MCP Connector**\n3. Set **Name** to `FeedNest`, **Server URL** to `https://mcp.feednest.com`\n4. Set **Auth type** to `API Token Authentication`, **Authorization** to `Bearer fn_live_YOUR_API_KEY`\n\n### Windsurf\n\nAdd to `~/.codeium/windsurf/mcp_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"feednest\": {\n      \"serverUrl\": \"https://mcp.feednest.com\",\n      \"headers\": {\n        \"Authorization\": \"Bearer fn_live_YOUR_API_KEY\"\n      }\n    }\n  }\n}\n```\n\n> **Important:** Windsurf uses `\"serverUrl\"` (not `\"url\"`). Using the wrong key causes a silent failure.\n\n### Cline\n\nIn VS Code, open Cline extension settings → MCP Servers configuration (JSON):\n\n```json\n{\n  \"mcpServers\": {\n    \"feednest\": {\n      \"type\": \"streamableHttp\",\n      \"url\": \"https://mcp.feednest.com\",\n      \"headers\": {\n        \"Authorization\": \"Bearer fn_live_YOUR_API_KEY\"\n      }\n    }\n  }\n}\n```\n\n> **Critical:** The `\"type\": \"streamableHttp\"` field is **mandatory** for Cline. Without it, custom headers may fail silently and authentication won't work.\n\n### Gemini CLI\n\nAdd to `~/.gemini/settings.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"feednest\": {\n      \"httpUrl\": \"https://mcp.feednest.com\",\n      \"headers\": {\n        \"Authorization\": \"Bearer fn_live_YOUR_API_KEY\"\n      }\n    }\n  }\n}\n```\n\n> **Note:** Gemini CLI uses `\"httpUrl\"` (not `\"url\"`). The `\"url\"` field is reserved for SSE transport. CLI only - gemini.google.com does not support external MCP servers.\n\n### Grok (xAI)\n\nAvailable through the xAI API/SDK only, not from the grok.com chat UI.\n\n```bash\ncurl https://api.x.ai/v1/responses \\\n  -H \"Authorization: Bearer $XAI_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"grok-3\",\n    \"tools\": [{\n      \"type\": \"mcp\",\n      \"server_url\": \"https://mcp.feednest.com\",\n      \"server_label\": \"feednest\",\n      \"authorization\": \"Bearer fn_live_YOUR_API_KEY\"\n    }],\n    \"input\": \"What are my unread articles?\"\n  }'\n```\n\n### Any other MCP client\n\nAny client supporting Streamable HTTP can connect using:\n\n- **URL**: `https://mcp.feednest.com`\n- **Header**: `Authorization: Bearer fn_live_YOUR_API_KEY`\n\nFor stdio-only clients, use the [mcp-remote](https://github.com/geelen/mcp-remote) bridge:\n\n```json\n{\n  \"mcpServers\": {\n    \"feednest\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\", \"mcp-remote\",\n        \"https://mcp.feednest.com\",\n        \"--header\", \"Authorization:Bearer fn_live_YOUR_API_KEY\"\n      ]\n    }\n  }\n}\n```\n\n---\n\n## Tools (26)\n\n### Articles\n\n| Tool | Description | Key Parameters |\n|------|-------------|----------------|\n| `get_articles` | List articles with title, source, date, and summary preview. Views: newsfeed, by-feed, by-folder, by-tag, tagged, highlighted, noted. | `view`\\*, `feed_id`, `folder_id`, `tag_id`, `limit`, `query`, `sort`, `unread_only`, `date_from`, `date_to`, `count_only` |\n| `get_article` | Get full article content including highlights, notes, and reading time. | `article_id`\\* |\n| `extract_article` | Fetch full content from the original URL when RSS truncated it. | `article_id`\\* |\n\n### Read Status\n\n| Tool | Description | Key Parameters |\n|------|-------------|----------------|\n| `mark_as_read` | Mark an article as read. | `article_id`\\* |\n| `mark_as_unread` | Mark an article as unread. | `article_id`\\* |\n| `mark_all_as_read` | Mark all articles as read, optionally filtered by feed or folder. | `feed_id`, `folder_id` |\n\n### Saving\n\n| Tool | Description | Key Parameters |\n|------|-------------|----------------|\n| `save_article` | Save an article for later reading. | `article_id`\\* |\n| `unsave_article` | Remove an article from saved items. | `article_id`\\* |\n| `save_url` | Save an external URL for later reading. | `url`\\* |\n| `get_saved` | List saved articles with search, date filtering, and sorting. | `limit`, `query`, `sort`, `date_from`, `date_to` |\n\n### Feeds & Structure\n\n| Tool | Description | Key Parameters |\n|------|-------------|----------------|\n| `get_feeds` | List subscribed feeds with unread counts. Search by name. | `folder_id`, `query`, `limit` |\n| `get_folders` | List all feed folders with feed counts. | - |\n| `get_tags` | List all tags with article counts. | - |\n\n### Tagging\n\n| Tool | Description | Key Parameters |\n|------|-------------|----------------|\n| `create_tag` | Create a new tag for categorizing articles. | `name`\\*, `color` |\n| `delete_tag` | Delete a tag by ID. | `tag_id`\\* |\n| `tag_article` | Add or remove a tag on an article. | `article_id`\\*, `tag_id`\\*, `action`\\* (`add`/`remove`) |\n\n### Highlights\n\n| Tool | Description | Key Parameters |\n|------|-------------|----------------|\n| `get_highlights` | Get all text highlights from an article. | `article_id`\\* |\n| `add_highlight` | Highlight a text passage. The text must exist exactly in the article. | `article_id`\\*, `text`\\*, `color` |\n| `remove_highlight` | Remove a highlight from an article. | `article_id`\\*, `highlight_id`\\* |\n\n### Notes\n\n| Tool | Description | Key Parameters |\n|------|-------------|----------------|\n| `get_notes` | Get the note on an article. | `article_id`\\* |\n| `add_note` | Add or update a note on an article. | `article_id`\\*, `content`\\* |\n| `delete_note` | Delete a note from an article. | `article_id`\\* |\n\n### History\n\n| Tool | Description | Key Parameters |\n|------|-------------|----------------|\n| `get_recently_read` | Get recently opened articles. Supports search and date filtering. | `limit`, `since`, `date_to`, `query`, `sort` |\n\n### Output Feeds\n\n| Tool | Description | Key Parameters |\n|------|-------------|----------------|\n| `get_output_feeds` | List public RSS output feeds created by the user. | - |\n\n### AI\n\n| Tool | Description | Key Parameters |\n|------|-------------|----------------|\n| `text_to_speech` | Generate audio from an article using text-to-speech. | `article_id`\\* |\n\n### Stats\n\n| Tool | Description | Key Parameters |\n|------|-------------|----------------|\n| `get_stats` | Reading streak, articles read today, reading time, total feeds, unread count, saved count. | - |\n\n\\* = required parameter\n\n---\n\n## Example Conversation\n\n```\nYou: \"What's happening in AI today?\"\n\nChatGPT: \"Based on your tech feeds, here are today's 3 biggest stories:\n\n1. OpenAI announced GPT-5, covered first in your Hacker News feed\n2. EU AI Act enforcement begins, mentioned across 4 of your sources\n3. Google published new Gemini research, from your AI folder\n\nWant me to summarize any of them?\"\n```\n\n### More things you can ask\n\n- *\"Give me a morning briefing from my feeds\"*\n- *\"Compare how Bloomberg and Reuters covered this story\"*\n- *\"What did I read yesterday?\"*\n- *\"Save this article and highlight the key findings\"*\n- *\"Tag all AI-related articles with 'Machine Learning'\"*\n- *\"How's my reading streak going?\"*\n- *\"Turn this article into audio\"*\n\n---\n\n## Authentication\n\n### API Key (personal use)\n\nGenerate a key from **Settings → Developer API** in the FeedNest dashboard. Keys start with `fn_live_` followed by 32 hex characters.\n\n```\nAuthorization: Bearer fn_live_abc123...\n```\n\n### OAuth 2.1 (third-party apps)\n\nThe server supports full OAuth 2.1 with PKCE. Discovery endpoint:\n\n```\nhttps://mcp.feednest.com/.well-known/oauth-protected-resource\n```\n\nChatGPT and Claude.ai handle OAuth automatically - no API key needed for those.\n\n### Scopes\n\n| Scope | Access |\n|-------|--------|\n| `read` | All read-only tools (get_articles, get_feeds, get_stats, etc.) |\n| `write` | All mutation tools (mark_as_read, save_article, add_highlight, etc.) |\n| `ai` | AI tools (text_to_speech) |\n\n---\n\n## You Stay in Control\n\n- **You choose what's visible** - Pick exactly which feeds, folders, and actions your AI can access\n- **Encrypted and verified** - Every request is secured so no one else can reach your data\n- **Built-in usage limits** - 1,000 requests/hour per key, your account stays protected\n- **Revoke access instantly** - One click from your dashboard\n\n---\n\n## Troubleshooting\n\n| Issue | Solution |\n|-------|----------|\n| \"Bearer token required\" | Check that the `Authorization` header is set correctly |\n| \"Invalid API key format\" | Key must start with `fn_live_` followed by 32 hex characters |\n| \"Invalid or revoked API key\" | Regenerate from Settings → Developer API |\n| \"API access requires a Pro subscription\" | Upgrade to Pro at [feednest.com](https://www.feednest.com) |\n| \"Rate limit reached\" | Wait a few minutes and retry |\n| \"Insufficient scope\" | Your API key doesn't have the required scope |\n| Tools not appearing | Restart your AI client after changing MCP configuration |\n\n---\n\n## Packages\n\nThis repository is a monorepo containing the client libraries and plugins for the FeedNest MCP server.\n\n| Package | npm | Description |\n|---------|-----|-------------|\n| [`@feednest/sdk`](./packages/sdk) | [![npm](https://img.shields.io/npm/v/@feednest/sdk?style=flat-square)](https://www.npmjs.com/package/@feednest/sdk) | TypeScript SDK — typed HTTP client for the FeedNest API v1 |\n| [`@feednest/openclaw`](./packages/openclaw-plugin) | [![npm](https://img.shields.io/npm/v/@feednest/openclaw?style=flat-square)](https://www.npmjs.com/package/@feednest/openclaw) | OpenClaw plugin — 26 agent tools for AI assistants |\n| [Codex plugin](./packages/codex-plugin) | — | OpenAI Codex plugin — skills + MCP config for Codex agents |\n| [`@feednest/shared-tool-defs`](./packages/shared-tool-defs) | private | Shared Zod schemas and text formatters (bundled into the plugin) |\n\n### Development\n\n```bash\nnpm install\nnpm run build    # Build all packages (sdk → shared-tool-defs → openclaw-plugin)\nnpm test         # Run all tests\nnpm run type-check\n```\n\n---\n\n## Links\n\n- [FeedNest](https://www.feednest.com) - the app\n- [Documentation](https://docs.feednest.com) - full docs with setup guides per platform\n- [Integrations](https://www.feednest.com/integrations) - see all AI integrations\n\n## License\n\nMIT\n",
  "bytes": 14978,
  "sha": "afcf76e880db735e862ff6bb567c89ef6265e72a3c53fd7d61341882c91f9954",
  "repo_slug": "feednest-app/mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_lucaiaconelli_feednest_c808b262/readme"
}