{"schema":1,"generated":"2026-10-27T23:56:09.686Z","site":{"name":"PluginStack","url":"https://www.pluginstackai.com","tagline":"The best AI plugins, MCP servers and agent tools, explained in plain words.","contact":"pluginstackai@gmail.com"},"license":"Listing text is PluginStack editorial content; link back to the pluginstackai.com page when you reuse it.","categories":[{"name":"Agent Frameworks","slug":"agent-frameworks","url":"https://www.pluginstackai.com/categories/agent-frameworks/","intro":"Libraries and SDKs for building your own AI agents and multi-agent workflows in Python or TypeScript.","count":6,"updated":"2026-10-27"},{"name":"Coding Agents","slug":"coding-agents","url":"https://www.pluginstackai.com/categories/coding-agents/","intro":"AI agents that read, edit and run code for you in the terminal, a desktop app or the browser.","count":6,"updated":"2026-10-27"},{"name":"Editor Extensions","slug":"editor-extensions","url":"https://www.pluginstackai.com/categories/editor-extensions/","intro":"AI coding agents that run inside VS Code, JetBrains IDEs and other editors.","count":2,"updated":"2026-10-17"},{"name":"Game Dev","slug":"game-dev","url":"https://www.pluginstackai.com/categories/game-dev/","intro":"AI tools and MCP bridges for game engines and 3D software such as Unity, Godot and Blender.","count":3,"updated":"2026-10-17"},{"name":"MCP Dev Tools","slug":"mcp-dev-tools","url":"https://www.pluginstackai.com/categories/mcp-dev-tools/","intro":"Frameworks and tools for building, testing and debugging your own MCP servers.","count":2,"updated":"2026-10-17"},{"name":"MCP Servers","slug":"mcp-servers","url":"https://www.pluginstackai.com/categories/mcp-servers/","intro":"Model Context Protocol (MCP) servers that connect AI agents to apps, data and the web, from GitHub and Stripe to web search and browsers.","count":21,"updated":"2026-10-27"},{"name":"Rules & Prompts","slug":"rules-and-prompts","url":"https://www.pluginstackai.com/categories/rules-and-prompts/","intro":"Instruction files, rules and skills that tell AI agents how to work in your project.","count":6,"updated":"2026-10-27"},{"name":"Vibe Coding","slug":"vibe-coding","url":"https://www.pluginstackai.com/categories/vibe-coding/","intro":"AI app builders that turn a prompt into a working web or desktop app.","count":2,"updated":"2026-10-17"}],"tools":[{"slug":"agent-skills","name":"Agent Skills (Anthropic)","category":"Rules & Prompts","categoryUrl":"https://www.pluginstackai.com/categories/rules-and-prompts/","tags":["skills","claude-code","templates"],"maker":"Anthropic","sourceUrl":"https://github.com/anthropics/skills","url":"https://www.pluginstackai.com/plugins/agent-skills/","updated":"2026-10-17","what":"Anthropic's public repository of Agent Skills: folders with a SKILL.md file (plus optional scripts and resources) that Claude loads when a task needs them. It includes example skills, the document skills behind Claude's file creation, a skill template and a copy of the Agent Skills spec (the open standard lives at agentskills.io). Many skills are Apache-2.0; the document skills are source-available, not open source.","who":"Claude Code and Claude.ai users who want ready-made skills, or a starting point to write their own. Anthropic says the example skills are already available on paid Claude.ai plans.","setup":[{"text":"In Claude Code, add the repo as a plugin marketplace:","code":"/plugin marketplace add anthropics/skills","language":"text"},{"text":"Then install a skill set:","code":"/plugin install document-skills@anthropic-agent-skills\n/plugin install example-skills@anthropic-agent-skills","language":"text"},{"text":"To write your own, make a folder with a SKILL.md that has a name and description in its YAML frontmatter:","code":"---\nname: my-skill-name\ndescription: What this skill does and when to use it\n---\n# My Skill Name\nInstructions Claude should follow...","language":"markdown"},{"text":"The repo says these skills are for demonstration and education; behavior in Claude may differ."}],"prompts":["Use the PDF skill to extract the form fields from forms/application.pdf.","Create a skill that writes release notes in our team's format.","Use the skill-creator skill to help me turn my code review checklist into a skill."],"install":null,"sections":[],"faq":[],"guides":[]},{"slug":"agents-md","name":"AGENTS.md","category":"Rules & Prompts","categoryUrl":"https://www.pluginstackai.com/categories/rules-and-prompts/","tags":["rules","standard","coding-agents"],"maker":"Agentic AI Foundation (Linux Foundation)","sourceUrl":"https://agents.md","url":"https://www.pluginstackai.com/plugins/agents-md/","updated":"2026-10-27","what":"A simple open format for giving coding agents project instructions: one AGENTS.md markdown file in your repo with setup commands, test steps and code style. It is now stewarded by the Agentic AI Foundation under the Linux Foundation, and the agents.md site lists many tools that read it, including Codex, Cursor, goose, OpenCode, Aider, Zed, Kilo Code and GitHub Copilot's coding agent. The site and repo are MIT licensed. Claude Code reads it too when a project has no CLAUDE.md.","who":"Anyone who uses more than one coding agent and wants a single instructions file they all understand.","setup":[{"text":"Create AGENTS.md at the root of your repo:","code":"# AGENTS.md\n\n## Setup commands\n- Install deps: `pnpm install`\n- Start dev server: `pnpm dev`\n- Run tests: `pnpm test`\n\n## Code style\n- TypeScript strict mode\n- Single quotes, no semicolons","language":"markdown"},{"text":"Add sections for testing and PR rules. Keep it short and specific: exact commands work better than general advice."},{"text":"Commit it. Agents that support the format read it automatically when they work in the repo."}],"prompts":["Read this repo and write an AGENTS.md with the real setup, test and lint commands.","Update AGENTS.md so agents always run the type checker before committing.","Compare our CLAUDE.md and AGENTS.md and merge them into one AGENTS.md."],"install":null,"sections":[],"faq":[],"guides":[{"slug":"cursor-rules-vs-agents-md","url":"https://www.pluginstackai.com/guides/cursor-rules-vs-agents-md/"}]},{"slug":"vercel-ai-sdk","name":"AI SDK","category":"Agent Frameworks","categoryUrl":"https://www.pluginstackai.com/categories/agent-frameworks/","tags":["typescript","nextjs","sdk"],"maker":"Vercel","sourceUrl":"https://ai-sdk.dev","url":"https://www.pluginstackai.com/plugins/vercel-ai-sdk/","updated":"2026-10-17","what":"Vercel's provider-agnostic TypeScript toolkit for building AI apps and agents. It works with Next.js, React, Svelte, Vue, Angular and Node.js, and its UI hooks cover React, Svelte and Vue. One API covers OpenAI, Anthropic, Google and many more providers, either through Vercel AI Gateway (the default) or each provider's own package. Apache-2.0.","who":"Web developers adding chat, streaming or agent features to a JavaScript or TypeScript app. The SDK is free; AI Gateway is a pay-as-you-go Vercel service with a limited free tier, or you can use your own provider keys through the provider packages.","setup":[{"text":"Needs Node.js 22+. Install:","code":"npm install ai","language":"bash"},{"text":"To call providers directly instead of through AI Gateway, add their packages:","code":"npm install @ai-sdk/openai @ai-sdk/anthropic @ai-sdk/google","language":"bash"},{"text":"For React chat UIs:","code":"npm install @ai-sdk/react","language":"bash"},{"text":"Using Claude Code or Cursor? Add the AI SDK skill to your repo:","code":"npx skills add vercel/ai","language":"bash"}],"prompts":["Add a streaming chat page to my Next.js app using the AI SDK and useChat.","Give this AI SDK agent a tool that searches our product database.","Switch this generateText call from OpenAI to Anthropic."],"install":null,"sections":[],"faq":[],"guides":[]},{"slug":"aider","name":"Aider","category":"Coding Agents","categoryUrl":"https://www.pluginstackai.com/categories/coding-agents/","tags":["cli","git","open-source"],"maker":"Aider","sourceUrl":"https://aider.chat","url":"https://www.pluginstackai.com/plugins/aider/","updated":"2026-10-15","what":"Open-source AI pair programming in your terminal. It edits code in your local git repo and works with many LLMs (Claude, DeepSeek, OpenAI models and more).","who":"Terminal fans who want git-tracked AI edits and a choice of models.","setup":[{"text":"Install aider (Python 3.8–3.13):","code":"python -m pip install aider-install\naider-install","language":"bash"},{"text":"Or use the one-liner installer (macOS/Linux):","code":"curl -LsSf https://aider.chat/install.sh | sh","language":"bash"},{"text":"cd into your project."},{"text":"Run aider with your model and key, for example:","code":"aider --model sonnet --api-key anthropic=<key>","language":"bash"}],"prompts":["Add input validation to the signup form.","/add src/api.py then: add retry logic to the HTTP calls.","Write a README section explaining how to run this project."],"install":null,"sections":[],"faq":[],"guides":[]},{"slug":"android-skills","name":"Android Skills","category":"Rules & Prompts","categoryUrl":"https://www.pluginstackai.com/categories/rules-and-prompts/","tags":["android","skills","kotlin"],"maker":"Google (Android)","sourceUrl":"https://github.com/android/skills","url":"https://www.pluginstackai.com/plugins/android-skills/","updated":"2026-10-21","what":"Google's official Agent Skills for Android development: SKILL.md instructions that ground coding agents in current Android guidance for tasks where Google's evaluations show LLMs underperform. Examples include migrating XML views to Jetpack Compose, upgrading to AGP 9, setting up Navigation 3, making an app edge-to-edge, auditing R8 configuration and fixing ANRs. They follow the open Agent Skills standard, so they work with Claude Code, Codex, Gemini/Antigravity and other agents that support skills. Apache-2.0.","who":"Android developers using an AI coding agent who want it to follow Google's current recommended patterns instead of outdated ones.","setup":[{"text":"Install the Android CLI from developer.android.com/tools/agents/android-cli, then list and add skills (add --all for every skill, --agent to pick agents, --project to install into a project):","code":"android skills list\nandroid skills add --all\nandroid skills add r8-analyzer --project=.","language":"bash"},{"text":"Or install as a plugin. Claude Code:","code":"/plugin marketplace add android/skills\n/plugin install android-skills@android-skills","language":"text"},{"text":"Codex:","code":"codex plugin marketplace add android/skills\ncodex plugin add android-skills@android-skills","language":"bash"},{"text":"Agents pick up a relevant skill automatically when your request matches it. The Android CLI collects basic usage data; pass --no-metrics to turn that off. Google doesn't accept public contributions to the repo and reminds you to double-check AI output."}],"prompts":["Make my app UI edge-to-edge.","Upgrade this project to AGP 9 and fix anything the upgrade breaks.","Migrate the settings screen from XML views to Jetpack Compose."],"install":null,"sections":[],"faq":[],"guides":[]},{"slug":"apify-mcp","name":"Apify MCP Server","category":"MCP Servers","categoryUrl":"https://www.pluginstackai.com/categories/mcp-servers/","tags":["web","scraping","automation"],"maker":"Apify","sourceUrl":"https://github.com/apify/apify-mcp-server","url":"https://www.pluginstackai.com/plugins/apify-mcp/","updated":"2026-10-21","what":"Apify's official MCP server. It lets an agent search Apify Store and run its ready-made scrapers and automation tools (called Actors) for websites, search engines, maps, social media and e-commerce, then read the results from your Apify datasets. By default it loads Actor search and run tools, Apify docs search, and the RAG Web Browser and Web Fetch Actors. The hosted server at mcp.apify.com signs you in with OAuth. MIT licensed; running Actors uses your Apify plan (a free plan includes $5 of monthly usage; most Store Actors charge per event).","who":"People who want their agent to pull structured data from sites like Google Maps, search results or online stores without writing a scraper.","setup":[{"text":"Add the hosted server to your MCP client. On first connection your browser opens to sign in to Apify:","code":"{\n  \"mcpServers\": {\n    \"apify\": {\n      \"url\": \"https://mcp.apify.com\"\n    }\n  }\n}","language":"json"},{"text":"Claude Code: Apify recommends its plugin, which sets up the server plus Agent Skills. In a session run:","code":"/plugin marketplace add apify/apify-claude-code-plugin\n/plugin install apify@apify","language":"text"},{"text":"Cursor: install Apify from the Cursor Marketplace (cursor.com/marketplace/apify), then in Cursor Settings → Tools & MCPs select Connect on Apify MCP and sign in."},{"text":"Limit the tools it loads with the tools URL parameter, for example https://mcp.apify.com?tools=actors,docs,apify/rag-web-browser. Telemetry is on by default; add telemetry-enabled=false to the URL to opt out. Running Actors costs money on your Apify account, so set run limits and watch usage in Apify Console."}],"prompts":["Scrape the top 10 restaurants in Prague from Google Maps with their contact details.","Find the latest news about autonomous AI agents and summarize the key developments.","Search Apify Store for an Actor that extracts product prices from Amazon and show me its input schema and pricing before running it."],"install":{"name":"apify","transport":"http","url":"https://mcp.apify.com","requires":{"runtime":"None (hosted)","auth":"Apify OAuth sign-in (or an API token)"},"source":"https://github.com/apify/apify-mcp-server","checked":"2026-10-27","clients":[{"id":"claude-code","label":"Claude Code","where":"Run in a terminal","blocks":[{"language":"bash","code":"claude mcp add --transport http apify https://mcp.apify.com"}],"note":"Run /mcp inside Claude Code to check it connected and to sign in if the server asks."},{"id":"cursor","label":"Cursor","where":".cursor/mcp.json in a project, or ~/.cursor/mcp.json for all projects","blocks":[{"language":"json","code":"{\n  \"mcpServers\": {\n    \"apify\": {\n      \"url\": \"https://mcp.apify.com\"\n    }\n  }\n}"}]},{"id":"vscode","label":"VS Code","where":".vscode/mcp.json (note the top-level \"servers\" key)","blocks":[{"language":"json","code":"{\n  \"servers\": {\n    \"apify\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.apify.com\"\n    }\n  }\n}"}]},{"id":"codex","label":"Codex","where":"Run in a terminal, or edit ~/.codex/config.toml","blocks":[{"language":"bash","caption":"CLI","code":"codex mcp add apify --url https://mcp.apify.com"},{"language":"toml","caption":"Or in ~/.codex/config.toml","code":"[mcp_servers.apify]\nurl = \"https://mcp.apify.com\""}],"note":"If the server uses OAuth, run codex mcp login apify to sign in."}]},"sections":[],"faq":[],"guides":[]},{"slug":"bolt-diy","name":"bolt.diy","category":"Vibe Coding","categoryUrl":"https://www.pluginstackai.com/categories/vibe-coding/","tags":["app-builder","open-source","self-hosted"],"maker":"stackblitz-labs (community project)","sourceUrl":"https://github.com/stackblitz-labs/bolt.diy","url":"https://www.pluginstackai.com/plugins/bolt-diy/","updated":"2026-10-17","what":"A community-run, open-source fork of StackBlitz's Bolt.new: an AI workspace where you prompt, run, edit and deploy full-stack web apps in the browser. You choose the LLM for each prompt from 22+ providers, including local models through Ollama or LM Studio. The README says it is now in maintenance mode (bug fixes and dependency updates, no new features planned). MIT licensed; the WebContainers API it uses has separate commercial terms for enterprise use.","who":"Vibe coders who want a Bolt-style app builder they run themselves, with their own API keys or local models.","setup":[{"text":"Needs Node.js 22.12+ and pnpm 9.15.9+. Clone and install:","code":"git clone https://github.com/stackblitz-labs/bolt.diy.git\ncd bolt.diy\npnpm install","language":"bash"},{"text":"Start it and open http://localhost:5173:","code":"pnpm run dev","language":"bash"},{"text":"Add provider keys in Settings → Providers (or in .env.local). Prebuilt desktop apps and Docker setups are in the README."}],"prompts":["Build a habit tracker with a calendar view and local storage.","Make a landing page for my indie game with a mailing list signup form.","Add a dark mode toggle and make the layout work on mobile."],"install":null,"sections":[],"faq":[],"guides":[]},{"slug":"brave-search-mcp","name":"Brave Search MCP Server","category":"MCP Servers","categoryUrl":"https://www.pluginstackai.com/categories/mcp-servers/","tags":["search","web"],"maker":"Brave","sourceUrl":"https://github.com/brave/brave-search-mcp-server","url":"https://www.pluginstackai.com/plugins/brave-search-mcp/","updated":"2026-10-17","what":"Brave's official MCP server for the Brave Search API. It adds web, local, place, image, video and news search tools, plus LLM context and AI summarization. Version 2.x uses stdio by default, with HTTP as an option. MIT licensed.","who":"Builders who want their agent to search the web through an independent search index. Needs a Brave Search API key; some features (like extra snippets and full local search) need a Pro plan.","setup":[{"text":"Sign up for the Brave Search API at brave.com/search/api, pick a plan and create an API key."},{"text":"Add to your MCP client config:","code":"{\n  \"mcpServers\": {\n    \"brave-search\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@brave/brave-search-mcp-server\",\n        \"--transport\",\n        \"stdio\"\n      ],\n      \"env\": {\n        \"BRAVE_API_KEY\": \"YOUR_API_KEY_HERE\"\n      }\n    }\n  }\n}","language":"json"},{"text":"Docker also works with the image mcp/brave-search (see the README)."}],"prompts":["Search the web for the latest Next.js release notes and summarize them.","Find recent news about MCP security and list the sources.","Search for coffee shops near Denver, CO and give me the top 5."],"install":{"name":"brave-search","transport":"stdio","command":"npx","args":["-y","@brave/brave-search-mcp-server","--transport","stdio"],"env":{"BRAVE_API_KEY":"YOUR_API_KEY_HERE"},"requires":{"runtime":"Node.js (runs with npx)","auth":"Brave Search API key"},"notes":["Create the key at brave.com/search/api, then paste it in place of the placeholder."],"source":"https://github.com/brave/brave-search-mcp-server","checked":"2026-10-27","clients":[{"id":"claude-code","label":"Claude Code","where":"Run in a terminal","blocks":[{"language":"bash","code":"claude mcp add --env BRAVE_API_KEY=YOUR_API_KEY_HERE --transport stdio brave-search -- npx -y @brave/brave-search-mcp-server --transport stdio"}],"note":"Everything after -- is the server command. Run /mcp inside Claude Code to check it connected."},{"id":"claude-desktop","label":"Claude Desktop","where":"Settings → Developer → Edit Config (claude_desktop_config.json)","blocks":[{"language":"json","code":"{\n  \"mcpServers\": {\n    \"brave-search\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@brave/brave-search-mcp-server\",\n        \"--transport\",\n        \"stdio\"\n      ],\n      \"env\": {\n        \"BRAVE_API_KEY\": \"YOUR_API_KEY_HERE\"\n      }\n    }\n  }\n}"}],"note":"Fully quit and reopen Claude Desktop after saving."},{"id":"cursor","label":"Cursor","where":".cursor/mcp.json in a project, or ~/.cursor/mcp.json for all projects","blocks":[{"language":"json","code":"{\n  \"mcpServers\": {\n    \"brave-search\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@brave/brave-search-mcp-server\",\n        \"--transport\",\n        \"stdio\"\n      ],\n      \"env\": {\n        \"BRAVE_API_KEY\": \"YOUR_API_KEY_HERE\"\n      }\n    }\n  }\n}"}]},{"id":"vscode","label":"VS Code","where":".vscode/mcp.json (note the top-level \"servers\" key)","blocks":[{"language":"json","code":"{\n  \"servers\": {\n    \"brave-search\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@brave/brave-search-mcp-server\",\n        \"--transport\",\n        \"stdio\"\n      ],\n      \"env\": {\n        \"BRAVE_API_KEY\": \"YOUR_API_KEY_HERE\"\n      }\n    }\n  }\n}"}]},{"id":"codex","label":"Codex","where":"Run in a terminal, or edit ~/.codex/config.toml","blocks":[{"language":"bash","caption":"CLI","code":"codex mcp add brave-search --env BRAVE_API_KEY=YOUR_API_KEY_HERE -- npx -y @brave/brave-search-mcp-server --transport stdio"},{"language":"toml","caption":"Or in ~/.codex/config.toml","code":"[mcp_servers.brave-search]\ncommand = \"npx\"\nargs = [\"-y\", \"@brave/brave-search-mcp-server\", \"--transport\", \"stdio\"]\n\n[mcp_servers.brave-search.env]\nBRAVE_API_KEY = \"YOUR_API_KEY_HERE\""}]}]},"sections":[],"faq":[],"guides":[]},{"slug":"chrome-devtools-mcp","name":"Chrome DevTools MCP","category":"MCP Servers","categoryUrl":"https://www.pluginstackai.com/categories/mcp-servers/","tags":["browser","debugging","performance"],"maker":"Google (Chrome DevTools)","sourceUrl":"https://github.com/ChromeDevTools/chrome-devtools-mcp","url":"https://www.pluginstackai.com/plugins/chrome-devtools-mcp/","updated":"2026-10-17","what":"Lets a coding agent control and inspect a live Chrome browser through Chrome DevTools (Google now calls it \"Chrome DevTools for agents\"; the package is chrome-devtools-mcp). It can record performance traces, read network requests and console messages (with source-mapped stack traces) and automate pages with Puppeteer. A CLI is included for use without MCP. Apache-2.0.","who":"Web developers who want the agent to debug a page or check its performance in a real Chrome.","setup":[{"text":"Needs a current Node.js LTS and Chrome stable (or Chrome for Testing)."},{"text":"Add to your MCP client config:","code":"{\n  \"mcpServers\": {\n    \"chrome-devtools\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"chrome-devtools-mcp@latest\"\n      ]\n    }\n  }\n}","language":"json"},{"text":"For basic browser tasks only, add \"--slim\" (and \"--headless\") to the args."},{"text":"Google collects usage statistics by default; add \"--no-usage-statistics\" to opt out. Performance tools may send trace URLs to the CrUX API; \"--no-performance-crux\" turns that off. The agent can see everything in that browser, so don't use it with sensitive logged-in sessions."},{"text":"Test it with the README's first prompt:","code":"Check the performance of https://developers.chrome.com","language":"text"}],"prompts":["Check the performance of http://localhost:3000 and tell me the biggest issues.","Open my app, click Sign up, and show me any console errors or failed network requests.","Record a trace of the homepage load and explain what is slowing down LCP."],"install":{"name":"chrome-devtools","transport":"stdio","command":"npx","args":["-y","chrome-devtools-mcp@latest"],"requires":{"runtime":"Current Node.js LTS and Chrome stable","auth":"None"},"source":"https://github.com/ChromeDevTools/chrome-devtools-mcp","checked":"2026-10-27","clients":[{"id":"claude-code","label":"Claude Code","where":"Run in a terminal","blocks":[{"language":"bash","code":"claude mcp add --transport stdio chrome-devtools -- npx -y chrome-devtools-mcp@latest"}],"note":"Everything after -- is the server command. Run /mcp inside Claude Code to check it connected."},{"id":"claude-desktop","label":"Claude Desktop","where":"Settings → Developer → Edit Config (claude_desktop_config.json)","blocks":[{"language":"json","code":"{\n  \"mcpServers\": {\n    \"chrome-devtools\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"chrome-devtools-mcp@latest\"\n      ]\n    }\n  }\n}"}],"note":"Fully quit and reopen Claude Desktop after saving."},{"id":"cursor","label":"Cursor","where":".cursor/mcp.json in a project, or ~/.cursor/mcp.json for all projects","blocks":[{"language":"json","code":"{\n  \"mcpServers\": {\n    \"chrome-devtools\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"chrome-devtools-mcp@latest\"\n      ]\n    }\n  }\n}"}]},{"id":"vscode","label":"VS Code","where":".vscode/mcp.json (note the top-level \"servers\" key)","blocks":[{"language":"json","code":"{\n  \"servers\": {\n    \"chrome-devtools\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"chrome-devtools-mcp@latest\"\n      ]\n    }\n  }\n}"}]},{"id":"codex","label":"Codex","where":"Run in a terminal, or edit ~/.codex/config.toml","blocks":[{"language":"bash","caption":"CLI","code":"codex mcp add chrome-devtools -- npx -y chrome-devtools-mcp@latest"},{"language":"toml","caption":"Or in ~/.codex/config.toml","code":"[mcp_servers.chrome-devtools]\ncommand = \"npx\"\nargs = [\"-y\", \"chrome-devtools-mcp@latest\"]"}]}]},"sections":[],"faq":[],"guides":[]},{"slug":"claude-code","name":"Claude Code","category":"Coding Agents","categoryUrl":"https://www.pluginstackai.com/categories/coding-agents/","tags":["cli","agent"],"maker":"Anthropic","sourceUrl":"https://code.claude.com/docs/en/overview","url":"https://www.pluginstackai.com/plugins/claude-code/","updated":"2026-10-15","what":"Anthropic's agentic coding tool. It reads your codebase, edits files, runs commands, works with git and connects to MCP servers. It runs in the terminal, with VS Code/JetBrains extensions, a desktop app and a web version too.","who":"Developers and vibe coders who want an agent that works across their whole project. Requires a Claude Pro, Max, Team, Enterprise or Console account (or a supported cloud provider).","setup":[{"text":"Install (macOS/Linux/WSL):","code":"curl -fsSL https://claude.ai/install.sh | bash","language":"bash"},{"text":"Windows PowerShell:","code":"irm https://claude.ai/install.ps1 | iex","language":"powershell"},{"text":"Homebrew and npm (needs Node 22+) also work:","code":"brew install --cask claude-code\n# or\nnpm install -g @anthropic-ai/claude-code","language":"bash"},{"text":"cd into your project and run:","code":"claude","language":"bash"},{"text":"Log in with your Claude account on first run. Add a CLAUDE.md file to give it project instructions."}],"prompts":["Explain how this project is structured and where the auth logic lives.","Write tests for the auth module, run them, and fix any failures.","Commit my changes with a descriptive message."],"install":null,"sections":[],"faq":[],"guides":[{"slug":"best-mcp-servers-for-claude-code","url":"https://www.pluginstackai.com/guides/best-mcp-servers-for-claude-code/"},{"slug":"cursor-rules-vs-agents-md","url":"https://www.pluginstackai.com/guides/cursor-rules-vs-agents-md/"}]},{"slug":"claude-code-plugins","name":"Claude Code Plugins (official marketplace)","category":"Rules & Prompts","categoryUrl":"https://www.pluginstackai.com/categories/rules-and-prompts/","tags":["claude-code","plugins","marketplace"],"maker":"Anthropic","sourceUrl":"https://github.com/anthropics/claude-plugins-official","url":"https://www.pluginstackai.com/plugins/claude-code-plugins/","updated":"2026-10-21","what":"Anthropic's official plugin marketplace for Claude Code. A plugin bundles skills, subagents, hooks and MCP or LSP servers so you install them in one step. It lists plugins Anthropic maintains (such as commit-commands, code-review, feature-dev and the language-server plugins) alongside plugins from partners and other authors. Claude Code adds this marketplace for you the first time you start an interactive terminal session. The repo is Apache-2.0; each plugin has its own license.","who":"Claude Code users who want ready-made workflows or official service integrations without wiring up each skill and MCP server by hand.","setup":[{"text":"Start Claude Code in your project with claude, then run /plugin to browse the Discover tab. Or open a plugin's details directly by name and marketplace:","code":"/plugin install commit-commands@claude-plugins-official","language":"text"},{"text":"Read the details pane before installing: it lists what the plugin will install (commands, agents, skills, hooks, MCP and LSP servers) and, for this marketplace, a context-cost estimate. Then pick a scope: you (every project), all collaborators on this repository, or you in this repo only."},{"text":"From your shell instead (user scope by default):","code":"claude plugin install commit-commands@claude-plugins-official","language":"bash"},{"text":"If you see Marketplace \"claude-plugins-official\" not found (for example on a new machine or if you've only used the VS Code extension), add it, then install again:","code":"/plugin marketplace add anthropics/claude-plugins-official","language":"text"},{"text":"Anthropic's own warning applies: plugins can run hooks and MCP servers with your user permissions, and Anthropic doesn't control what third-party plugins include. Check each plugin's homepage or source first. You can also browse the catalog on the web at claude.com/marketplace/plugins."}],"prompts":["/commit-commands:commit","Review my open pull request with the code-review plugin.","Which plugins do I have installed, and which of them add MCP servers or hooks?"],"install":null,"sections":[],"faq":[],"guides":[]},{"slug":"cline","name":"Cline","category":"Editor Extensions","categoryUrl":"https://www.pluginstackai.com/categories/editor-extensions/","tags":["vscode","agent","open-source"],"maker":"Cline","sourceUrl":"https://github.com/cline/cline","url":"https://www.pluginstackai.com/plugins/cline/","updated":"2026-10-15","what":"Open-source coding agent for VS Code (also JetBrains, a CLI and a desktop app). It edits files across your project, runs terminal commands and uses a browser, with Plan/Act modes and approval for every change unless you turn on auto-approve.","who":"Developers who want an open-source agent that works with many model providers, including local models via Ollama or LM Studio.","setup":[{"text":"Install 'Cline' from the VS Code Marketplace (or JetBrains Marketplace), or install the CLI:","code":"npm i -g cline","language":"bash"},{"text":"Open Cline and choose a provider/model (Anthropic, OpenAI, Gemini, OpenRouter, Ollama, etc.), adding your API key."},{"text":"Describe your task in Plan mode, then switch to Act mode and approve each edit or command."}],"prompts":["Build a simple todo app in this folder using React and Vite.","Read the error in my terminal and fix it.","Add an MCP server to Cline that can query my Postgres database."],"install":null,"sections":[],"faq":[],"guides":[]},{"slug":"cloudflare-mcp","name":"Cloudflare MCP Servers","category":"MCP Servers","categoryUrl":"https://www.pluginstackai.com/categories/mcp-servers/","tags":["cloud","infrastructure","remote"],"maker":"Cloudflare","sourceUrl":"https://github.com/cloudflare/mcp-server-cloudflare","url":"https://www.pluginstackai.com/plugins/cloudflare-mcp/","updated":"2026-10-27","what":"Cloudflare's official remote MCP servers. The recommended Cloudflare API MCP server (https://mcp.cloudflare.com/mcp, maintained in the cloudflare/mcp repo) reaches the whole Cloudflare API through a few code-mode tools, and the repo also lists product servers for docs, containers, Browser Run and more. All are hosted by Cloudflare, so there is nothing to install. Apache-2.0.","who":"Developers who run sites, Workers or DNS on Cloudflare and want the agent to read or change their setup, look up Cloudflare docs, or publish a remote MCP server of their own. Some features need a paid Workers plan.","setup":[{"text":"Easiest: add the Cloudflare API MCP server to any client that supports remote servers, then sign in with Cloudflare OAuth when prompted. Choose the permissions to grant on the consent screen:","code":"{\n  \"mcpServers\": {\n    \"cloudflare-api\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.cloudflare.com/mcp\"\n    }\n  }\n}","language":"json"},{"text":"Claude Code: add it from your terminal, then run /mcp inside a session to finish the OAuth sign-in:","code":"claude mcp add --transport http cloudflare-api https://mcp.cloudflare.com/mcp","language":"bash"},{"text":"For CI or automation, skip OAuth: use the same URL and send a Cloudflare API token as a Bearer token. Create the token in the dashboard with only the permissions you need. Tokens with Client IP Address Filtering aren't supported."},{"text":"Only need Cloudflare docs? Point your client at https://docs.mcp.cloudflare.com/mcp instead (same JSON, different URL)."},{"text":"Client that only supports local stdio servers? The third-party mcp-remote npm package (not made by Cloudflare) bridges to a remote URL. Check its README for your client, then use a command like npx -y mcp-remote https://mcp.cloudflare.com/mcp."},{"text":"The agent can change real settings in your account, so review its actions before approving them."}],"prompts":["List my Cloudflare zones and show the DNS records for my main domain.","Using the Cloudflare docs server, explain how to add a KV binding to a Worker.","Create a KV namespace called cache in my account and show me its ID."],"install":{"name":"cloudflare-api","transport":"http","url":"https://mcp.cloudflare.com/mcp","requires":{"runtime":"None (hosted)","auth":"Cloudflare OAuth sign-in"},"notes":["The agent can change real settings in your Cloudflare account, so review its actions before approving them."],"source":"https://github.com/cloudflare/mcp-server-cloudflare","checked":"2026-10-27","clients":[{"id":"claude-code","label":"Claude Code","where":"Run in a terminal","blocks":[{"language":"bash","code":"claude mcp add --transport http cloudflare-api https://mcp.cloudflare.com/mcp"}],"note":"Run /mcp inside Claude Code to check it connected and to sign in if the server asks."},{"id":"cursor","label":"Cursor","where":".cursor/mcp.json in a project, or ~/.cursor/mcp.json for all projects","blocks":[{"language":"json","code":"{\n  \"mcpServers\": {\n    \"cloudflare-api\": {\n      \"url\": \"https://mcp.cloudflare.com/mcp\"\n    }\n  }\n}"}]},{"id":"vscode","label":"VS Code","where":".vscode/mcp.json (note the top-level \"servers\" key)","blocks":[{"language":"json","code":"{\n  \"servers\": {\n    \"cloudflare-api\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.cloudflare.com/mcp\"\n    }\n  }\n}"}]},{"id":"codex","label":"Codex","where":"Run in a terminal, or edit ~/.codex/config.toml","blocks":[{"language":"bash","caption":"CLI","code":"codex mcp add cloudflare-api --url https://mcp.cloudflare.com/mcp"},{"language":"toml","caption":"Or in ~/.codex/config.toml","code":"[mcp_servers.cloudflare-api]\nurl = \"https://mcp.cloudflare.com/mcp\""}],"note":"If the server uses OAuth, run codex mcp login cloudflare-api to sign in."}]},"sections":[{"heading":"What the Cloudflare MCP servers are","paragraphs":["These are remote MCP servers run by Cloudflare. Your MCP client connects to a URL over Streamable HTTP, so you don't run any code on your machine. Per the cloudflare/mcp-server-cloudflare README, each one answers at /mcp, and the old /sse URL now returns 410 Gone.","Cloudflare splits them into two kinds: one general API server for broad access, and domain-specific servers for a single product area."]},{"heading":"Which Cloudflare MCP server to use","bullets":["Cloudflare API MCP server (recommended): https://mcp.cloudflare.com/mcp. It exposes the whole Cloudflare API through code execution (Code Mode): the README says about 2,500 endpoints fit in roughly 1,000 tokens of tool definitions. Its main tools are search and execute, plus docs and whoami.","Documentation server: https://docs.mcp.cloudflare.com/mcp for up-to-date Cloudflare reference answers.","Container server: https://containers.mcp.cloudflare.com/mcp for a sandbox development environment.","Browser Run server: https://browser.mcp.cloudflare.com/mcp to fetch pages, convert them to markdown and take screenshots.","Also listed in the repo: Digital Experience Monitoring (dex), Cloudflare One CASB (casb), Cloudflare Blog (blog) and a minimal Demo Day server, each at its own *.mcp.cloudflare.com/mcp address.","Deprecated: the older observability, Workers Bindings, Workers Builds, Radar, GraphQL, DNS Analytics, Logpush, Audit Logs, AI Gateway and AutoRAG servers. Cloudflare's README says to move to the API server, so older tutorials that point at them are out of date."]},{"heading":"Build your own remote MCP server on Cloudflare Workers","paragraphs":["Cloudflare's Agents docs (Build a Remote MCP server) show how to deploy your own server to Workers. The templates use createMcpHandler from the Agents SDK, so the server is stateless and needs no Durable Object. Without authentication it is public. With authentication, users sign in before their agent can call tools.","After deploying, the server lives at your workers.dev subdomain under /mcp. The docs test it with the MCP Inspector and add it to Claude Code with claude mcp add --transport http."],"code":"npm create cloudflare@latest -- remote-mcp-server-authless --template=cloudflare/ai/demos/remote-mcp-authless\ncd remote-mcp-server-authless\nnpx wrangler@latest deploy","language":"bash"}],"faq":[{"q":"What is the Cloudflare MCP server?","a":"It is a set of official, hosted MCP servers from Cloudflare. They let an MCP client such as Claude Code or Cursor read your Cloudflare configuration, search Cloudflare docs and make changes through natural language. The recommended one is the Cloudflare API MCP server at https://mcp.cloudflare.com/mcp."},{"q":"What is the Cloudflare MCP server URL?","a":"For the whole Cloudflare API: https://mcp.cloudflare.com/mcp. For docs only: https://docs.mcp.cloudflare.com/mcp. Product servers follow the same pattern, such as https://browser.mcp.cloudflare.com/mcp."},{"q":"Do I need to install anything?","a":"No. The servers are hosted by Cloudflare. You only add the URL to your MCP client. A client that supports only local servers can use the third-party mcp-remote adapter."},{"q":"Does it use OAuth or an API token?","a":"Both work on the API server. OAuth is the recommended default: you sign in to Cloudflare and pick permissions. An API token sent as a Bearer token suits CI and automation."},{"q":"Are the Workers observability and bindings servers still available?","a":"They are listed as deprecated in Cloudflare's README, which says to migrate to the Cloudflare API MCP server."},{"q":"Can I build my own remote MCP server on Cloudflare?","a":"Yes. Cloudflare's Build a Remote MCP server guide deploys a template to Workers with Wrangler and serves it at /mcp on your workers.dev subdomain. You can run it without authentication or add sign-in."},{"q":"Does it cost anything?","a":"The README doesn't mention a separate charge for the MCP servers, but it says some features may require a paid Workers plan. Changes your agent makes run against your real account."}],"guides":[{"slug":"best-mcp-servers-for-claude-code","url":"https://www.pluginstackai.com/guides/best-mcp-servers-for-claude-code/"},{"slug":"add-mcp-server-to-cursor","url":"https://www.pluginstackai.com/guides/add-mcp-server-to-cursor/"}]},{"slug":"codex-cli","name":"Codex CLI","category":"Coding Agents","categoryUrl":"https://www.pluginstackai.com/categories/coding-agents/","tags":["cli","agent","open-source"],"maker":"OpenAI","sourceUrl":"https://github.com/openai/codex","url":"https://www.pluginstackai.com/plugins/codex-cli/","updated":"2026-10-17","what":"OpenAI's open-source coding agent that runs locally in your terminal. It reads and edits your code, runs commands and connects to MCP servers. Codex also comes as an IDE extension (VS Code, Cursor, Windsurf), a desktop app and a cloud version. Apache-2.0.","who":"Developers and vibe coders who want a terminal agent and already have a ChatGPT plan (Plus, Pro, Business, Edu or Enterprise), or an OpenAI API key.","setup":[{"text":"Install (macOS/Linux):","code":"curl -fsSL https://chatgpt.com/codex/install.sh | sh","language":"bash"},{"text":"Windows:","code":"powershell -ExecutionPolicy ByPass -c \"irm https://chatgpt.com/codex/install.ps1 | iex\"","language":"powershell"},{"text":"Or with npm or Homebrew:","code":"npm install -g @openai/codex\n# or\nbrew install --cask codex","language":"bash"},{"text":"cd into your project and run codex, then choose Sign in with ChatGPT. Add an AGENTS.md file for project instructions.","code":"codex","language":"bash"}],"prompts":["Explain this codebase and where the main entry point is.","Find the bug that makes the login test fail and fix it.","Add a dark mode toggle and run the build to make sure it passes."],"install":null,"sections":[],"faq":[],"guides":[{"slug":"cursor-rules-vs-agents-md","url":"https://www.pluginstackai.com/guides/cursor-rules-vs-agents-md/"}]},{"slug":"context7","name":"Context7","category":"MCP Servers","categoryUrl":"https://www.pluginstackai.com/categories/mcp-servers/","tags":["docs","coding"],"maker":"Upstash","sourceUrl":"https://github.com/upstash/context7","url":"https://www.pluginstackai.com/plugins/context7/","updated":"2026-10-15","what":"Pulls up-to-date, version-specific library documentation and code examples into your prompt, so the AI stops relying on outdated training data or made-up APIs.","who":"Anyone coding with AI on fast-moving frameworks (Next.js, React, Supabase, etc.).","setup":[{"text":"Quickest (needs Node.js 22.13+). It signs you in with OAuth, creates an API key and sets up Cursor, Claude Code or OpenCode (--cursor / --claude / --opencode). You can choose CLI + Skills mode or MCP mode:","code":"npx ctx7 setup","language":"bash"},{"text":"Manual: add the remote MCP server. An API key is recommended (not required) for higher rate limits; pass it as a Bearer header. Free keys are at context7.com/dashboard.","code":"{\n  \"mcpServers\": {\n    \"context7\": {\n      \"url\": \"https://mcp.context7.com/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer YOUR_API_KEY\"\n      }\n    }\n  }\n}","language":"json"},{"text":"Add 'use context7' to a prompt (or add a rule telling your agent to always use it) to pull in fresh docs."}],"prompts":["Create a Next.js proxy that checks for a valid JWT in cookies and redirects unauthenticated users to /login. use context7","Show me the Supabase auth API for email/password sign-up. use context7","Implement basic authentication with Supabase. use library /supabase/supabase for API and docs."],"install":{"name":"context7","transport":"http","url":"https://mcp.context7.com/mcp","requires":{"runtime":"None (hosted)","auth":"No key required; an API key is recommended for higher rate limits"},"notes":["To send an API key, add an Authorization: Bearer header as the Context7 README describes."],"source":"https://github.com/upstash/context7","checked":"2026-10-27","clients":[{"id":"claude-code","label":"Claude Code","where":"Run in a terminal","blocks":[{"language":"bash","code":"claude mcp add --transport http context7 https://mcp.context7.com/mcp"}],"note":"Run /mcp inside Claude Code to check it connected and to sign in if the server asks."},{"id":"cursor","label":"Cursor","where":".cursor/mcp.json in a project, or ~/.cursor/mcp.json for all projects","blocks":[{"language":"json","code":"{\n  \"mcpServers\": {\n    \"context7\": {\n      \"url\": \"https://mcp.context7.com/mcp\"\n    }\n  }\n}"}]},{"id":"vscode","label":"VS Code","where":".vscode/mcp.json (note the top-level \"servers\" key)","blocks":[{"language":"json","code":"{\n  \"servers\": {\n    \"context7\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.context7.com/mcp\"\n    }\n  }\n}"}]},{"id":"codex","label":"Codex","where":"Run in a terminal, or edit ~/.codex/config.toml","blocks":[{"language":"bash","caption":"CLI","code":"codex mcp add context7 --url https://mcp.context7.com/mcp"},{"language":"toml","caption":"Or in ~/.codex/config.toml","code":"[mcp_servers.context7]\nurl = \"https://mcp.context7.com/mcp\""}],"note":"If the server uses OAuth, run codex mcp login context7 to sign in."}]},"sections":[],"faq":[],"guides":[]},{"slug":"crewai","name":"CrewAI","category":"Agent Frameworks","categoryUrl":"https://www.pluginstackai.com/categories/agent-frameworks/","tags":["python","multi-agent","workflows"],"maker":"CrewAI","sourceUrl":"https://github.com/crewAIInc/crewAI","url":"https://www.pluginstackai.com/plugins/crewai/","updated":"2026-10-17","what":"A Python framework for multi-agent automation. Crews are teams of role-based agents that work together on a task; Flows are event-driven workflows with state and branching that can call crews. The CLI scaffolds projects, which are JSON-first by default. MIT licensed.","who":"Builders who want to model a task as a team of specialized agents (researcher, writer, reviewer) and run it from the command line. The framework is free; CrewAI AMP is an optional paid enterprise platform.","setup":[{"text":"Needs Python 3.10 to 3.13 and uv. Install the CLI:","code":"uv tool install crewai","language":"bash"},{"text":"Create a crew project:","code":"crewai create crew my-crew\ncd my-crew","language":"bash"},{"text":"Put your model provider API key in .env, then install and run:","code":"crewai install\ncrewai run","language":"bash"},{"text":"CrewAI sends anonymous usage telemetry by default (not prompts or task content). Set OTEL_SDK_DISABLED=true to turn it off."}],"prompts":["Create a CrewAI crew with a researcher and a writer that produces a weekly AI tools roundup.","Add a reviewer agent to this crew that checks every claim has a source.","Convert this crew into a Flow that only runs the writer if research found results."],"install":null,"sections":[],"faq":[],"guides":[]},{"slug":"cursor-plugins","name":"Cursor Plugins (official)","category":"Rules & Prompts","categoryUrl":"https://www.pluginstackai.com/categories/rules-and-prompts/","tags":["cursor","plugins","marketplace"],"maker":"Cursor","sourceUrl":"https://github.com/cursor/plugins","url":"https://www.pluginstackai.com/plugins/cursor-plugins/","updated":"2026-10-21","what":"Cursor's plugin specification and its official plugins. A Cursor plugin packages rules, skills, subagents, commands, MCP servers and hooks into one install. The repo holds Cursor-made plugins (such as Create Plugin, Advisor and Orchestrate) plus Cursor-packaged integrations for tools like GitHub, Playwright, Gmail, Google Drive, HubSpot and Salesforce. Cursor says every plugin in its Marketplace is manually reviewed before it's listed and must be open source. Plugins in the repo are MIT licensed.","who":"Cursor users who want a ready-made bundle of rules, skills and MCP servers for a tool or workflow, and teams who want to package their own setup.","setup":[{"text":"Open Customize in Cursor's sidebar, find the plugin you want (or browse cursor.com/marketplace), select Install and choose a project or user scope."},{"text":"Manage what's installed from the same Customize page: toggle MCP servers on or off, and switch rules between Always, Agent Decides and Manual."},{"text":"To build your own, put a folder with a .cursor-plugin/plugin.json manifest (only name is required) in ~/.cursor/plugins/local/<your-plugin>, then restart Cursor or run Developer: Reload Window:","code":"{\n  \"name\": \"my-plugin\",\n  \"description\": \"Custom development tools\",\n  \"version\": \"1.0.0\",\n  \"author\": { \"name\": \"Your Name\" }\n}","language":"json"},{"text":"Cursor also loads plugins that follow the open Agent Plugins standard (a root plugin.json packaging skills and MCP servers). Private team marketplaces need a Teams or Enterprise plan."}],"prompts":["Use the Create Plugin skill to scaffold a new plugin for our team's rules and skills.","Which installed plugins add MCP servers, and which of those are switched on?","Use the Playwright plugin to open localhost:3000 and check the sign-up form works."],"install":null,"sections":[],"faq":[],"guides":[{"slug":"cursor-rules-vs-agents-md","url":"https://www.pluginstackai.com/guides/cursor-rules-vs-agents-md/"}]},{"slug":"cursor-rules","name":"Cursor Rules","category":"Rules & Prompts","categoryUrl":"https://www.pluginstackai.com/categories/rules-and-prompts/","tags":["cursor","rules"],"maker":"Cursor","sourceUrl":"https://cursor.com/docs/rules","url":"https://www.pluginstackai.com/plugins/cursor-rules/","updated":"2026-10-27","what":"Cursor's rules feature gives the Agent persistent instructions. Project rules are .mdc files in .cursor/rules, and there are also User Rules, Team Rules and plain AGENTS.md files.","who":"Cursor users who are tired of repeating the same instructions every chat.","setup":[{"text":"Type /create-rule in Cursor's Agent chat and describe the rule, or add one from Customize → Rules → Add Rule."},{"text":"Rules are saved as .mdc files in .cursor/rules (plain .md files there are ignored). Commit them to git. Example rule:","code":"---\nglobs: src/components/**/*.tsx\nalwaysApply: false\n---\n\n- Use named exports, not default exports","language":"markdown"},{"text":"Pick how each applies: Always Apply, Apply Intelligently (by description), Apply to Specific Files (globs), or Apply Manually (@-mention). Keep each under ~500 lines."}],"prompts":["/create-rule Use named exports and Tailwind for all components in src/components.","Following our project rules, create a new API route for user settings.","Write an AGENTS.md for this repo based on package.json and the folder structure."],"install":null,"sections":[],"faq":[],"guides":[{"slug":"cursor-rules-vs-agents-md","url":"https://www.pluginstackai.com/guides/cursor-rules-vs-agents-md/"}]},{"slug":"dyad","name":"Dyad","category":"Vibe Coding","categoryUrl":"https://www.pluginstackai.com/categories/vibe-coding/","tags":["app-builder","local","open-source"],"maker":"Dyad","sourceUrl":"https://www.dyad.sh","url":"https://www.pluginstackai.com/plugins/dyad/","updated":"2026-10-17","what":"A local, open-source AI app builder, similar in spirit to Lovable, v0 or Bolt, that runs as a desktop app on your machine. You bring your own AI API keys, and no sign-up is required to download it. The app is free; Dyad Pro and Max are optional paid plans with extra AI modes and credits. Apache-2.0, except code in src/pro, which is under the Functional Source License.","who":"Vibe coders who want to build apps by prompting but keep their code and keys on their own computer.","setup":[{"text":"Download the app for macOS, Windows or Linux (.deb, .rpm or AppImage) from dyad.sh."},{"text":"Open it, add your AI provider API key in settings, and describe the app you want to build."},{"text":"Your project is a normal codebase on your machine, so you can open it in any editor later."}],"prompts":["Build a simple CRM to track leads with a table and a detail page.","Add user login to this app.","Change the color scheme to navy and coral and make the buttons rounder."],"install":null,"sections":[],"faq":[],"guides":[]},{"slug":"exa-mcp","name":"Exa MCP Server","category":"MCP Servers","categoryUrl":"https://www.pluginstackai.com/categories/mcp-servers/","tags":["search","web","research"],"maker":"Exa","sourceUrl":"https://github.com/exa-labs/exa-mcp-server","url":"https://www.pluginstackai.com/plugins/exa-mcp/","updated":"2026-10-17","what":"Exa's official MCP server for web search and page fetching. The hosted server gives web_search_exa and web_fetch_exa by default, with optional advanced search and an Exa Agent tool for multi-step research. MIT licensed.","who":"Anyone who wants AI-oriented web search in their agent. It works anonymously with rate limits; sign in or add an API key for higher limits and Exa Agent.","setup":[{"text":"Add the hosted server to your MCP client:","code":"{\n  \"mcpServers\": {\n    \"exa\": {\n      \"type\": \"streamable-http\",\n      \"url\": \"https://mcp.exa.ai/mcp\"\n    }\n  }\n}","language":"json"},{"text":"Claude Code or Codex:","code":"claude plugin install exa@claude-plugins-official\ncodex mcp add exa --url https://mcp.exa.ai/mcp","language":"bash"},{"text":"Turn on extra tools by listing them in the URL, for example https://mcp.exa.ai/mcp?tools=web_search_exa,web_fetch_exa,agent_run (this replaces the defaults)."}],"prompts":["Search for recent blog posts about agent memory and summarize the main ideas.","Fetch the docs page for this library and tell me how to configure retries.","Find 5 open-source alternatives to Lovable and link their GitHub repos."],"install":{"name":"exa","transport":"http","url":"https://mcp.exa.ai/mcp","requires":{"runtime":"None (hosted)","auth":"None for basic use (rate-limited); OAuth or an API key for higher limits"},"source":"https://github.com/exa-labs/exa-mcp-server","checked":"2026-10-27","clients":[{"id":"claude-code","label":"Claude Code","where":"Run in a terminal","blocks":[{"language":"bash","code":"claude mcp add --transport http exa https://mcp.exa.ai/mcp"}],"note":"Run /mcp inside Claude Code to check it connected and to sign in if the server asks."},{"id":"cursor","label":"Cursor","where":".cursor/mcp.json in a project, or ~/.cursor/mcp.json for all projects","blocks":[{"language":"json","code":"{\n  \"mcpServers\": {\n    \"exa\": {\n      \"url\": \"https://mcp.exa.ai/mcp\"\n    }\n  }\n}"}]},{"id":"vscode","label":"VS Code","where":".vscode/mcp.json (note the top-level \"servers\" key)","blocks":[{"language":"json","code":"{\n  \"servers\": {\n    \"exa\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.exa.ai/mcp\"\n    }\n  }\n}"}]},{"id":"codex","label":"Codex","where":"Run in a terminal, or edit ~/.codex/config.toml","blocks":[{"language":"bash","caption":"CLI","code":"codex mcp add exa --url https://mcp.exa.ai/mcp"},{"language":"toml","caption":"Or in ~/.codex/config.toml","code":"[mcp_servers.exa]\nurl = \"https://mcp.exa.ai/mcp\""}],"note":"If the server uses OAuth, run codex mcp login exa to sign in."}]},"sections":[],"faq":[],"guides":[]},{"slug":"fastmcp","name":"FastMCP","category":"MCP Dev Tools","categoryUrl":"https://www.pluginstackai.com/categories/mcp-dev-tools/","tags":["python","framework","mcp"],"maker":"Prefect","sourceUrl":"https://github.com/PrefectHQ/fastmcp","url":"https://www.pluginstackai.com/plugins/fastmcp/","updated":"2026-10-17","what":"A Python framework for building MCP servers, clients and interactive apps. You write ordinary Python functions and FastMCP generates the tool schemas, validation and docs. FastMCP 1.0 was folded into the official MCP Python SDK in 2024; this is the actively maintained standalone project. Apache-2.0.","who":"Python developers who want to turn their own functions or APIs into an MCP server quickly.","setup":[{"text":"Add it to your project with uv:","code":"uv add fastmcp","language":"bash"},{"text":"Create server.py:","code":"from fastmcp import FastMCP\n\nmcp = FastMCP(\"Demo\")\n\n@mcp.tool\ndef add(a: int, b: int) -> int:\n    \"\"\"Add two numbers\"\"\"\n    return a + b\n\nif __name__ == \"__main__\":\n    mcp.run()","language":"text"},{"text":"Run it with python server.py, then add it to your MCP client. A TypeScript counterpart is available as @prefecthq/fastmcp-ts."}],"prompts":["Turn the functions in utils/weather.py into a FastMCP server with one tool each.","Add a FastMCP resource that exposes our README as context.","Write a FastMCP client script that connects to my server and lists its tools."],"install":null,"sections":[],"faq":[],"guides":[]},{"slug":"fetch-mcp","name":"Fetch MCP Server","category":"MCP Servers","categoryUrl":"https://www.pluginstackai.com/categories/mcp-servers/","tags":["web","reference-server"],"maker":"Model Context Protocol","sourceUrl":"https://github.com/modelcontextprotocol/servers/tree/main/src/fetch","url":"https://www.pluginstackai.com/plugins/fetch-mcp/","updated":"2026-10-27","what":"One of the official MCP reference servers. It gives the agent a single fetch tool that downloads a web page and converts the HTML to markdown, and it can read long pages in chunks. By default it refuses private, loopback and other non-public addresses (checking every redirect) and follows robots.txt for requests the model makes. Version 2026.10.24 (25 Oct 2026) includes security fixes to those checks.","who":"Anyone who wants their agent to read a docs page, changelog or article by URL without a full browser.","setup":[{"text":"Install uv (recommended); uvx then runs the server with no separate install. This is the one reference server that isn't a Node package: it's a Python package on PyPI (Python 3.10 or newer), so the Node 24 requirement of the other reference servers doesn't apply."},{"text":"Add to your MCP client config:","code":"{\n  \"mcpServers\": {\n    \"fetch\": {\n      \"command\": \"uvx\",\n      \"args\": [\n        \"mcp-server-fetch\"\n      ]\n    }\n  }\n}","language":"json"},{"text":"Or install with pip and run it as a module:","code":"pip install mcp-server-fetch\npython -m mcp_server_fetch","language":"bash"},{"text":"Already using it? Releases from 2026.10.19 need the MCP Python SDK 2.x (mcp>=2.3,<3), and 2026.10.24 is the security-fix release, so make sure you're on at least that. Calling a tool the server doesn't have now returns a JSON-RPC -32602 error instead of a tool-error result."},{"text":"On Windows, if the server times out, the README suggests setting PYTHONIOENCODING to utf-8 in the server's env block. The README also documents optional --ignore-robots-txt, --user-agent and --proxy-url arguments. The --allow-private-ips argument turns off the private-address guard, so only use it for a local or internal site you trust."},{"text":"Optional: install Node.js too; the server then uses a more robust HTML simplifier."}],"prompts":["Fetch https://nextjs.org/docs and summarize what's new on that page.","Read this changelog URL and list the breaking changes.","Fetch this article and give me the 5 key points."],"install":{"name":"fetch","transport":"stdio","command":"uvx","args":["mcp-server-fetch"],"requires":{"runtime":"uv (Python package, runs with uvx)","auth":"None"},"notes":["This one is a Python package, so it needs uv installed rather than Node.js.","VS Code: the fetch README wraps its example in an extra \"mcp\" key. That is the older settings.json layout. In a .vscode/mcp.json file, VS Code's current docs put \"servers\" at the top level, as in the snippet here."],"source":"https://github.com/modelcontextprotocol/servers/tree/main/src/fetch","checked":"2026-10-27","clients":[{"id":"claude-code","label":"Claude Code","where":"Run in a terminal","blocks":[{"language":"bash","code":"claude mcp add --transport stdio fetch -- uvx mcp-server-fetch"}],"note":"Everything after -- is the server command. Run /mcp inside Claude Code to check it connected."},{"id":"claude-desktop","label":"Claude Desktop","where":"Settings → Developer → Edit Config (claude_desktop_config.json)","blocks":[{"language":"json","code":"{\n  \"mcpServers\": {\n    \"fetch\": {\n      \"command\": \"uvx\",\n      \"args\": [\n        \"mcp-server-fetch\"\n      ]\n    }\n  }\n}"}],"note":"Fully quit and reopen Claude Desktop after saving."},{"id":"cursor","label":"Cursor","where":".cursor/mcp.json in a project, or ~/.cursor/mcp.json for all projects","blocks":[{"language":"json","code":"{\n  \"mcpServers\": {\n    \"fetch\": {\n      \"command\": \"uvx\",\n      \"args\": [\n        \"mcp-server-fetch\"\n      ]\n    }\n  }\n}"}]},{"id":"vscode","label":"VS Code","where":".vscode/mcp.json (note the top-level \"servers\" key)","blocks":[{"language":"json","code":"{\n  \"servers\": {\n    \"fetch\": {\n      \"type\": \"stdio\",\n      \"command\": \"uvx\",\n      \"args\": [\n        \"mcp-server-fetch\"\n      ]\n    }\n  }\n}"}]},{"id":"codex","label":"Codex","where":"Run in a terminal, or edit ~/.codex/config.toml","blocks":[{"language":"bash","caption":"CLI","code":"codex mcp add fetch -- uvx mcp-server-fetch"},{"language":"toml","caption":"Or in ~/.codex/config.toml","code":"[mcp_servers.fetch]\ncommand = \"uvx\"\nargs = [\"mcp-server-fetch\"]"}]}]},"sections":[],"faq":[],"guides":[]},{"slug":"figma-mcp","name":"Figma MCP Server","category":"MCP Servers","categoryUrl":"https://www.pluginstackai.com/categories/mcp-servers/","tags":["design","frontend"],"maker":"Figma","sourceUrl":"https://developers.figma.com/docs/figma-mcp-server/","url":"https://www.pluginstackai.com/plugins/figma-mcp/","updated":"2026-10-15","what":"Brings design context from your Figma files into AI coding tools so they can generate code that matches your designs. The remote server can also write to the canvas (in beta), creating and editing content in your Figma files.","who":"Designers and frontend devs turning Figma frames into real UI.","setup":[{"text":"Add the remote server to a supported client (Cursor, VS Code, Claude Code, Codex and others). Cursor config:","code":"{\n  \"mcpServers\": {\n    \"figma\": {\n      \"url\": \"https://mcp.figma.com/mcp\"\n    }\n  }\n}","language":"json"},{"text":"Claude Code:","code":"claude mcp add --transport http figma https://mcp.figma.com/mcp","language":"bash"},{"text":"Sign in through Figma's OAuth flow."},{"text":"Copy a link to a frame or layer in Figma and paste it into your prompt."},{"text":"Writing to the canvas is in beta and needs edit access to the file. Test on a duplicate file first."}],"prompts":["Implement this Figma frame as a React component with Tailwind: <link>","List the colors and text styles used in this design.","Compare my current page with this Figma frame and fix differences."],"install":{"name":"figma","transport":"http","url":"https://mcp.figma.com/mcp","requires":{"runtime":"None (hosted)","auth":"Figma sign-in"},"notes":["Figma's docs list Cursor, VS Code, Claude Code and Codex as supported clients."],"source":"https://developers.figma.com/docs/figma-mcp-server/","checked":"2026-10-27","clients":[{"id":"claude-code","label":"Claude Code","where":"Run in a terminal","blocks":[{"language":"bash","code":"claude mcp add --transport http figma https://mcp.figma.com/mcp"}],"note":"Run /mcp inside Claude Code to check it connected and to sign in if the server asks."},{"id":"cursor","label":"Cursor","where":".cursor/mcp.json in a project, or ~/.cursor/mcp.json for all projects","blocks":[{"language":"json","code":"{\n  \"mcpServers\": {\n    \"figma\": {\n      \"url\": \"https://mcp.figma.com/mcp\"\n    }\n  }\n}"}]},{"id":"vscode","label":"VS Code","where":".vscode/mcp.json (note the top-level \"servers\" key)","blocks":[{"language":"json","code":"{\n  \"servers\": {\n    \"figma\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.figma.com/mcp\"\n    }\n  }\n}"}]},{"id":"codex","label":"Codex","where":"Run in a terminal, or edit ~/.codex/config.toml","blocks":[{"language":"bash","caption":"CLI","code":"codex mcp add figma --url https://mcp.figma.com/mcp"},{"language":"toml","caption":"Or in ~/.codex/config.toml","code":"[mcp_servers.figma]\nurl = \"https://mcp.figma.com/mcp\""}],"note":"If the server uses OAuth, run codex mcp login figma to sign in."}]},"sections":[],"faq":[],"guides":[]},{"slug":"filesystem-mcp","name":"Filesystem MCP Server","category":"MCP Servers","categoryUrl":"https://www.pluginstackai.com/categories/mcp-servers/","tags":["files","local"],"maker":"Model Context Protocol","sourceUrl":"https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem","url":"https://www.pluginstackai.com/plugins/filesystem-mcp/","updated":"2026-10-27","what":"Reference MCP server that lets an AI read, write, edit, move and search files and directories, restricted to the folders you pass it. Version 2.0.1 (25 Oct 2026) includes security fixes for how it checks paths.","who":"People who want Claude Desktop or another chat app to work with files on their computer.","setup":[{"text":"Install Node.js 24 or later. Version 2.0.0 raised the minimum from earlier Node versions to 24, and the README says the server needs Node 24+ when it runs through npx."},{"text":"Add the server to your MCP client config, listing each folder the AI may access as an argument (at least one is required):","code":"{\n  \"mcpServers\": {\n    \"filesystem\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@modelcontextprotocol/server-filesystem\",\n        \"/path/to/allowed/folder\"\n      ]\n    }\n  }\n}","language":"json"},{"text":"On Windows, the README launches npx through cmd /c:","code":"{\n  \"mcpServers\": {\n    \"filesystem\": {\n      \"command\": \"cmd\",\n      \"args\": [\n        \"/c\",\n        \"npx\",\n        \"-y\",\n        \"@modelcontextprotocol/server-filesystem\",\n        \"C:\\\\Users\\\\you\\\\Documents\"\n      ]\n    }\n  }\n}","language":"json"},{"text":"Only list folders you're happy for the AI to access. Folders passed on the command line work with every protocol version. MCP Roots, where a client sets the folders for you, only works with older (2025-era) clients and is deprecated; 2026-07-28 clients can't use it. With no folders on the command line, the server exits at startup if a 2025-era client doesn't support Roots, and answers every tool call with an error for a 2026-07-28 client. Restart the client after editing its config."},{"text":"Already running a date-versioned release (2025.x or 2026.x)? The project warns that package managers rank 2.0.1 below those, so they won't offer it as an upgrade. Install it explicitly, or pin it in your config:","code":"npm install @modelcontextprotocol/server-filesystem@2.0.1","language":"bash"}],"prompts":["Find every markdown file in my notes folder that mentions 'invoice'.","Show me a directory tree of my project folder, excluding node_modules.","Read my README and suggest a clearer intro, then preview the edit before applying it."],"install":{"name":"filesystem","transport":"stdio","command":"npx","args":["-y","@modelcontextprotocol/server-filesystem","/path/to/allowed/folder"],"requires":{"runtime":"Node.js 24 or later","auth":"None"},"notes":["Replace the path with a folder the AI may access. You can list more folders; at least one is required."],"source":"https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem","checked":"2026-10-27","clients":[{"id":"claude-code","label":"Claude Code","where":"Run in a terminal","blocks":[{"language":"bash","code":"claude mcp add --transport stdio filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/folder"}],"note":"Everything after -- is the server command. Run /mcp inside Claude Code to check it connected."},{"id":"claude-desktop","label":"Claude Desktop","where":"Settings → Developer → Edit Config (claude_desktop_config.json)","blocks":[{"language":"json","code":"{\n  \"mcpServers\": {\n    \"filesystem\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@modelcontextprotocol/server-filesystem\",\n        \"/path/to/allowed/folder\"\n      ]\n    }\n  }\n}"}],"note":"Fully quit and reopen Claude Desktop after saving."},{"id":"cursor","label":"Cursor","where":".cursor/mcp.json in a project, or ~/.cursor/mcp.json for all projects","blocks":[{"language":"json","code":"{\n  \"mcpServers\": {\n    \"filesystem\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@modelcontextprotocol/server-filesystem\",\n        \"/path/to/allowed/folder\"\n      ]\n    }\n  }\n}"}]},{"id":"vscode","label":"VS Code","where":".vscode/mcp.json (note the top-level \"servers\" key)","blocks":[{"language":"json","code":"{\n  \"servers\": {\n    \"filesystem\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@modelcontextprotocol/server-filesystem\",\n        \"/path/to/allowed/folder\"\n      ]\n    }\n  }\n}"}]},{"id":"codex","label":"Codex","where":"Run in a terminal, or edit ~/.codex/config.toml","blocks":[{"language":"bash","caption":"CLI","code":"codex mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/folder"},{"language":"toml","caption":"Or in ~/.codex/config.toml","code":"[mcp_servers.filesystem]\ncommand = \"npx\"\nargs = [\"-y\", \"@modelcontextprotocol/server-filesystem\", \"/path/to/allowed/folder\"]"}]}]},"sections":[],"faq":[],"guides":[]},{"slug":"firecrawl-mcp","name":"Firecrawl MCP Server","category":"MCP Servers","categoryUrl":"https://www.pluginstackai.com/categories/mcp-servers/","tags":["web","scraping","search"],"maker":"Firecrawl","sourceUrl":"https://github.com/firecrawl/firecrawl-mcp-server","url":"https://www.pluginstackai.com/plugins/firecrawl-mcp/","updated":"2026-10-17","what":"Firecrawl's official MCP server. It lets agents search the web, scrape pages into clean markdown or structured data, crawl and map sites, and interact with pages. There is a hosted endpoint and a local npx version, and it can point at a self-hosted Firecrawl. MIT licensed.","who":"Vibe coders and researchers who need clean page content from many sites. The hosted keyless tier allows scrape, search and parse with rate limits; crawl, map and agent tools need a Firecrawl API key.","setup":[{"text":"Easiest: add the hosted server URL to your MCP client (keyless free tier, rate-limited):","code":"https://mcp.firecrawl.dev/v2/mcp","language":"text"},{"text":"For the full tool set, sign in with OAuth at https://mcp.firecrawl.dev/v2/mcp-oauth, or keep the first URL and set an Authorization: Bearer header with your API key in the client's secret settings (never in the URL)."},{"text":"Or run it locally with your API key:","code":"env FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp","language":"bash"}],"prompts":["Scrape https://example.com/pricing and return the plans as a table.","Search the web for 'MCP server security best practices' and summarize the top 3 results.","Map all the URLs on my docs site and list pages that look outdated."],"install":{"name":"firecrawl","transport":"stdio","command":"npx","args":["-y","firecrawl-mcp"],"env":{"FIRECRAWL_API_KEY":"YOUR_API_KEY"},"requires":{"runtime":"Node.js (runs with npx)","auth":"Firecrawl API key"},"notes":["This is the local server. Firecrawl also offers a hosted server URL; see its listing for that option."],"source":"https://github.com/firecrawl/firecrawl-mcp-server","checked":"2026-10-27","clients":[{"id":"claude-code","label":"Claude Code","where":"Run in a terminal","blocks":[{"language":"bash","code":"claude mcp add --env FIRECRAWL_API_KEY=YOUR_API_KEY --transport stdio firecrawl -- npx -y firecrawl-mcp"}],"note":"Everything after -- is the server command. Run /mcp inside Claude Code to check it connected."},{"id":"claude-desktop","label":"Claude Desktop","where":"Settings → Developer → Edit Config (claude_desktop_config.json)","blocks":[{"language":"json","code":"{\n  \"mcpServers\": {\n    \"firecrawl\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"firecrawl-mcp\"\n      ],\n      \"env\": {\n        \"FIRECRAWL_API_KEY\": \"YOUR_API_KEY\"\n      }\n    }\n  }\n}"}],"note":"Fully quit and reopen Claude Desktop after saving."},{"id":"cursor","label":"Cursor","where":".cursor/mcp.json in a project, or ~/.cursor/mcp.json for all projects","blocks":[{"language":"json","code":"{\n  \"mcpServers\": {\n    \"firecrawl\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"firecrawl-mcp\"\n      ],\n      \"env\": {\n        \"FIRECRAWL_API_KEY\": \"YOUR_API_KEY\"\n      }\n    }\n  }\n}"}]},{"id":"vscode","label":"VS Code","where":".vscode/mcp.json (note the top-level \"servers\" key)","blocks":[{"language":"json","code":"{\n  \"servers\": {\n    \"firecrawl\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"firecrawl-mcp\"\n      ],\n      \"env\": {\n        \"FIRECRAWL_API_KEY\": \"YOUR_API_KEY\"\n      }\n    }\n  }\n}"}]},{"id":"codex","label":"Codex","where":"Run in a terminal, or edit ~/.codex/config.toml","blocks":[{"language":"bash","caption":"CLI","code":"codex mcp add firecrawl --env FIRECRAWL_API_KEY=YOUR_API_KEY -- npx -y firecrawl-mcp"},{"language":"toml","caption":"Or in ~/.codex/config.toml","code":"[mcp_servers.firecrawl]\ncommand = \"npx\"\nargs = [\"-y\", \"firecrawl-mcp\"]\n\n[mcp_servers.firecrawl.env]\nFIRECRAWL_API_KEY = \"YOUR_API_KEY\""}]}]},"sections":[],"faq":[],"guides":[]},{"slug":"github-mcp-server","name":"GitHub MCP Server","category":"MCP Servers","categoryUrl":"https://www.pluginstackai.com/categories/mcp-servers/","tags":["git","code","issues"],"maker":"GitHub","sourceUrl":"https://github.com/github/github-mcp-server","url":"https://www.pluginstackai.com/plugins/github-mcp-server/","updated":"2026-10-15","what":"Official MCP server from GitHub that lets AI tools read repositories and code, manage issues and pull requests, check GitHub Actions runs and review security findings, all through natural language.","who":"Developers who want their AI assistant to read code, triage issues or open PRs without leaving the chat.","setup":[{"text":"Easiest: in an MCP host with remote-server support (VS Code 1.101+, Claude Desktop, Cursor, Windsurf, etc.), add the HTTP server and sign in with OAuth (or send a GitHub PAT as a Bearer header). VS Code config:","code":"{\n  \"servers\": {\n    \"github\": {\n      \"type\": \"http\",\n      \"url\": \"https://api.githubcopilot.com/mcp/\"\n    }\n  }\n}","language":"json"},{"text":"Or run it locally with Docker (Docker must be running):","code":"docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server","language":"bash"},{"text":"Optionally limit what the agent can do with toolsets or turn on read-only mode (or GITHUB_READ_ONLY=1):","code":"github-mcp-server --toolsets repos,issues,pull_requests\ngithub-mcp-server --read-only","language":"bash"}],"prompts":["List the open issues labeled 'bug' in my repo and group them by area.","Summarize what changed in pull request #42 and flag anything risky.","Why did the latest GitHub Actions run on main fail? Show me the failing job's logs."],"install":null,"sections":[],"faq":[],"guides":[]},{"slug":"godot-ai","name":"Godot AI","category":"Game Dev","categoryUrl":"https://www.pluginstackai.com/categories/game-dev/","tags":["godot","mcp","gamedev"],"maker":"hi-godot (community project)","sourceUrl":"https://github.com/hi-godot/godot-ai","url":"https://www.pluginstackai.com/plugins/godot-ai/","updated":"2026-10-17","what":"An MCP server and Godot editor plugin that connects Claude Code, Codex, Cursor, VS Code and other MCP clients to a live Godot editor. Its tools let the AI build scenes, edit nodes and scripts, wire signals and set up UI, materials, animation, particles and cameras. GDScript is fully supported; C# is text-only. A community project from the makers of MCP for Unity, not affiliated with the Godot Foundation. MIT licensed.","who":"Godot 4.7+ developers who want an AI assistant that can work inside the editor, not just edit files.","setup":[{"text":"Install uv, then download a release from github.com/hi-godot/godot-ai/releases and place the add-on at your-project/addons/godot_ai/ (plugin.cfg goes inside that folder)."},{"text":"In Godot, enable it: Project → Project Settings → Plugins → Godot AI."},{"text":"In the Godot AI dock, press Configure next to your MCP client (or Configure all), then restart the client if needed."},{"text":"It sends anonymous usage telemetry (no code, scene contents or file names). Set GODOT_AI_DISABLE_TELEMETRY=true to opt out."}],"prompts":["Create a 2D player scene with a CharacterBody2D, sprite and collision shape, plus a movement script.","Build a pause menu UI and wire the Resume button's signal.","Add a particle effect for coin pickups."],"install":null,"sections":[],"faq":[],"guides":[]},{"slug":"goose","name":"goose","category":"Coding Agents","categoryUrl":"https://www.pluginstackai.com/categories/coding-agents/","tags":["agent","desktop","open-source"],"maker":"Agentic AI Foundation (Linux Foundation)","sourceUrl":"https://github.com/aaif-goose/goose","url":"https://www.pluginstackai.com/plugins/goose/","updated":"2026-10-17","what":"An open-source, general-purpose AI agent that runs on your machine as a desktop app (macOS, Linux, Windows), a CLI and an API. It isn't only for code: it also handles research, writing and automation. It supports 15+ model providers and connects to tools through MCP extensions. Originally from Block, now part of the Agentic AI Foundation. Apache-2.0.","who":"People who want one local agent for coding and everyday tasks, with their choice of model.","setup":[{"text":"Download the desktop app from goose-docs.ai/docs/getting-started/installation, or install the CLI:","code":"curl -fsSL https://github.com/aaif-goose/goose/releases/download/stable/download_cli.sh | bash","language":"bash"},{"text":"Run goose configure to pick a provider and model, then start a session:","code":"goose configure\ngoose session","language":"bash"},{"text":"Add MCP extensions from the desktop app or through goose configure."}],"prompts":["Set up a new Vite + React project here and get the dev server running.","Read the CSV files in this folder and write a summary report as markdown.","Review my last commit and suggest improvements."],"install":null,"sections":[],"faq":[],"guides":[]},{"slug":"kilo-code","name":"Kilo Code","category":"Editor Extensions","categoryUrl":"https://www.pluginstackai.com/categories/editor-extensions/","tags":["vscode","jetbrains","cli","open-source"],"maker":"Kilo Code","sourceUrl":"https://kilo.ai","url":"https://www.pluginstackai.com/plugins/kilo-code/","updated":"2026-10-17","what":"An open-source AI coding agent for VS Code, JetBrains IDEs and the terminal. With a Kilo account you can pick from 500+ models and switch mid-task; Kilo says you pay the model provider's rate with no markup. It also offers a cloud agent and automated PR reviews. MIT licensed.","who":"VS Code and JetBrains users who want an open-source agent inside the editor and a choice of models.","setup":[{"text":"VS Code: install Kilo Code from the VS Code Marketplace (kilocode.Kilo-Code)."},{"text":"JetBrains: Settings → Plugins → search for \"Kilo Code\"."},{"text":"CLI:","code":"npm install -g @kilocode/cli\n# or\ncurl -fsSL https://kilo.ai/cli/install | bash","language":"bash"},{"text":"Run kilo in a project folder (or open the Kilo panel in your editor) and sign in to your Kilo account.","code":"kilo","language":"bash"}],"prompts":["Explain what this file does and suggest a cleaner structure.","Add form validation to the signup page and write tests for it.","Review my staged changes for bugs before I commit."],"install":null,"sections":[],"faq":[],"guides":[]},{"slug":"langgraph","name":"LangGraph","category":"Agent Frameworks","categoryUrl":"https://www.pluginstackai.com/categories/agent-frameworks/","tags":["python","stateful","orchestration"],"maker":"LangChain","sourceUrl":"https://github.com/langchain-ai/langgraph","url":"https://www.pluginstackai.com/plugins/langgraph/","updated":"2026-10-17","what":"A low-level framework for building long-running, stateful agents as graphs. It provides durable execution (agents resume after failures), human-in-the-loop interrupts and short- and long-term memory. It works on its own or with LangChain and LangSmith. A JS version (LangGraph.js) is also available. MIT licensed.","who":"Developers who need fine control over agent steps and state, beyond a simple tool-calling loop.","setup":[{"text":"Install:","code":"pip install -U langgraph","language":"bash"},{"text":"Follow the official quickstart at docs.langchain.com/oss/python/langgraph/quickstart to build your first graph."},{"text":"Want something higher-level? LangChain's Deep Agents package is built on LangGraph for agents that plan and use subagents."}],"prompts":["Build a LangGraph agent that drafts an email, pauses for my approval, then sends it.","Add persistence so this LangGraph agent can resume after a crash.","Turn this chain of three LLM calls into a LangGraph graph with a retry branch."],"install":null,"sections":[],"faq":[],"guides":[]},{"slug":"linear-mcp","name":"Linear MCP","category":"MCP Servers","categoryUrl":"https://www.pluginstackai.com/categories/mcp-servers/","tags":["issues","project-management"],"maker":"Linear","sourceUrl":"https://linear.app/docs/mcp","url":"https://www.pluginstackai.com/plugins/linear-mcp/","updated":"2026-10-15","what":"Linear's official MCP server for finding, creating and updating issues, projects and comments from your AI tool.","who":"Teams and solo builders tracking work in Linear.","setup":[{"text":"Use the endpoint https://mcp.linear.app/mcp (Streamable HTTP)."},{"text":"In Claude Code, add it, then run /mcp to sign in:","code":"claude mcp add --transport http linear-server https://mcp.linear.app/mcp","language":"bash"},{"text":"For clients that need stdio:","code":"{\n  \"mcpServers\": {\n    \"linear\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"mcp-remote\",\n        \"https://mcp.linear.app/mcp\"\n      ]\n    }\n  }\n}","language":"json"}],"prompts":["Show my assigned issues for this cycle sorted by priority.","Create a bug issue for the login redirect problem.","Add a comment to issue ENG-123 with what I just fixed."],"install":{"name":"linear","transport":"http","url":"https://mcp.linear.app/mcp","requires":{"runtime":"None (hosted)","auth":"Linear OAuth sign-in"},"source":"https://linear.app/docs/mcp","checked":"2026-10-27","clients":[{"id":"claude-code","label":"Claude Code","where":"Run in a terminal","blocks":[{"language":"bash","code":"claude mcp add --transport http linear https://mcp.linear.app/mcp"}],"note":"Run /mcp inside Claude Code to check it connected and to sign in if the server asks."},{"id":"cursor","label":"Cursor","where":".cursor/mcp.json in a project, or ~/.cursor/mcp.json for all projects","blocks":[{"language":"json","code":"{\n  \"mcpServers\": {\n    \"linear\": {\n      \"url\": \"https://mcp.linear.app/mcp\"\n    }\n  }\n}"}]},{"id":"vscode","label":"VS Code","where":".vscode/mcp.json (note the top-level \"servers\" key)","blocks":[{"language":"json","code":"{\n  \"servers\": {\n    \"linear\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.linear.app/mcp\"\n    }\n  }\n}"}]},{"id":"codex","label":"Codex","where":"Run in a terminal, or edit ~/.codex/config.toml","blocks":[{"language":"bash","caption":"CLI","code":"codex mcp add linear --url https://mcp.linear.app/mcp"},{"language":"toml","caption":"Or in ~/.codex/config.toml","code":"[mcp_servers.linear]\nurl = \"https://mcp.linear.app/mcp\""}],"note":"If the server uses OAuth, run codex mcp login linear to sign in."}]},"sections":[],"faq":[],"guides":[]},{"slug":"mastra","name":"Mastra","category":"Agent Frameworks","categoryUrl":"https://www.pluginstackai.com/categories/agent-frameworks/","tags":["typescript","agents","workflows"],"maker":"Mastra","sourceUrl":"https://github.com/mastra-ai/mastra","url":"https://www.pluginstackai.com/plugins/mastra/","updated":"2026-10-17","what":"A TypeScript framework for AI apps and agents. It includes model routing across 40+ providers, agents with tools, graph-based workflows with suspend/resume, memory and RAG, MCP server authoring, evals and observability, plus a local Studio UI. Apache-2.0, except code in ee/ folders, which uses an enterprise license.","who":"JavaScript and TypeScript developers who want to add agents to a Next.js, React or Node app.","setup":[{"text":"Create a project:","code":"npm create mastra@latest","language":"bash"},{"text":"Follow the prompts to pick a project name and model provider, then add your API key to .env."},{"text":"Start the dev server and open Mastra Studio at http://localhost:4111 to test agents and workflows.","code":"npm run dev","language":"bash"}],"prompts":["Create a Mastra agent with a tool that fetches weather for a city.","Build a Mastra workflow that pauses for human approval before publishing a post.","Expose my Mastra tools as an MCP server."],"install":null,"sections":[],"faq":[],"guides":[]},{"slug":"blender-mcp","name":"MCP for Blender","category":"Game Dev","categoryUrl":"https://www.pluginstackai.com/categories/game-dev/","tags":["blender","3d","mcp"],"maker":"ahujasid (community project)","sourceUrl":"https://github.com/ahujasid/mcp-for-blender","url":"https://www.pluginstackai.com/plugins/blender-mcp/","updated":"2026-10-17","what":"A community plugin (formerly blender-mcp) that connects Blender to any LLM through MCP. A Blender add-on runs a local socket server and the MCP server sends it commands, so the AI can create and edit objects, materials and scenes, and pull in assets from Poly Haven, Sketchfab and Poly Pizza. Third-party, not made by or affiliated with Blender. MIT licensed.","who":"Game artists and indie devs who want to block out 3D scenes or props by prompting. The plugin is free; built-in AI 3D model generation without your own API keys is an optional paid Premium feature.","setup":[{"text":"One-command setup on macOS/Linux (installs uv if needed, configures your MCP clients and the Blender add-on):","code":"curl -LsSf https://www.mcp-for-blender.com/install.sh | sh","language":"bash"},{"text":"Windows PowerShell:","code":"powershell -ExecutionPolicy ByPass -c \"irm https://www.mcp-for-blender.com/install.ps1 | iex\"","language":"powershell"},{"text":"Already have uv? Run setup directly, or add it to Claude Code by hand:","code":"uvx mcp-for-blender setup\n# or\nclaude mcp add blender uvx mcp-for-blender","language":"bash"},{"text":"Fully quit and reopen your AI app, then open Blender. By default the AI can run any Python code inside Blender, so save your work first (setting BLENDER_MCP_SAFE_MODE=1 blocks risky scripts)."},{"text":"Privacy: a minimal anonymous usage record (tool name, success, timing, versions, OS) is sent by default; prompts, code and scene data are only collected if you opt in. To turn telemetry off completely, set DISABLE_TELEMETRY=true in the server's env."}],"prompts":["Create a low-poly campfire scene with logs, rocks and a warm point light.","Make a stylized treasure chest and give it a wood and gold material.","Set up a camera that orbits the scene and render a preview."],"install":null,"sections":[],"faq":[],"guides":[]},{"slug":"unity-mcp","name":"MCP for Unity","category":"Game Dev","categoryUrl":"https://www.pluginstackai.com/categories/game-dev/","tags":["unity","mcp","gamedev"],"maker":"CoplayDev (maintained by Aura)","sourceUrl":"https://github.com/CoplayDev/unity-mcp","url":"https://www.pluginstackai.com/plugins/unity-mcp/","updated":"2026-10-17","what":"A free, MIT-licensed bridge between AI assistants and the Unity Editor over MCP. From any MCP client you can create scenes and GameObjects, edit C# scripts, manage assets, run tests, profile and build. It is maintained by Aura, which also sells a separate paid assistant (Aura for Unity). Not affiliated with Unity Technologies.","who":"Unity developers (Unity 2021.3 LTS through 6.x) who want Claude, Codex, Cursor or another MCP client to work directly in the editor.","setup":[{"text":"Needs Python 3.10+ via uv. In Unity, open Package Manager → Add package from git URL and paste:","code":"https://github.com/CoplayDev/unity-mcp.git?path=/MCPForUnity#main","language":"text"},{"text":"Or install from OpenUPM:","code":"openupm add com.coplaydev.unity-mcp","language":"bash"},{"text":"In Unity, choose Window → MCP for Unity → Configure All Detected Clients."},{"text":"Try the README's first prompt:","code":"Create a cube at the origin and add a Rigidbody.","language":"text"}],"prompts":["Create a third-person player controller script and attach it to a capsule.","Set up a simple level with a ground plane, three platforms and a spawn point.","Run the edit-mode tests and fix any failures."],"install":null,"sections":[],"faq":[],"guides":[]},{"slug":"mcp-inspector","name":"MCP Inspector","category":"MCP Dev Tools","categoryUrl":"https://www.pluginstackai.com/categories/mcp-dev-tools/","tags":["testing","debugging","mcp"],"maker":"Model Context Protocol","sourceUrl":"https://github.com/modelcontextprotocol/inspector","url":"https://www.pluginstackai.com/plugins/mcp-inspector/","updated":"2026-10-17","what":"The official developer tool for testing MCP servers. It connects to a local or remote server and lets you list and call its tools, resources and prompts from a web UI, a scriptable CLI or a terminal UI. Version 2 needs Node 22.19 or newer.","who":"Anyone building or debugging an MCP server who wants to see exactly what it exposes before wiring it into an agent.","setup":[{"text":"Open the web UI against a local stdio server:","code":"npx @modelcontextprotocol/inspector node build/index.js","language":"bash"},{"text":"Or use the CLI in scripts and CI:","code":"npx @modelcontextprotocol/inspector --cli node build/index.js --method tools/list","language":"bash"},{"text":"Remote server over HTTP:","code":"npx @modelcontextprotocol/inspector --server-url https://example.com/mcp --transport http","language":"bash"},{"text":"It stores OAuth tokens and env secrets in your OS keychain when one is available; see the README if you're on a machine without one."}],"prompts":["Help me write an Inspector CLI command that calls my search tool with query=test and checks the output.","My server's tools don't show up in the Inspector. Look at my server code and find out why.","Add a CI step that runs the Inspector CLI tools/list against my server."],"install":null,"sections":[],"faq":[],"guides":[]},{"slug":"memory-mcp","name":"Memory MCP Server","category":"MCP Servers","categoryUrl":"https://www.pluginstackai.com/categories/mcp-servers/","tags":["memory","knowledge-graph"],"maker":"Model Context Protocol","sourceUrl":"https://github.com/modelcontextprotocol/servers/tree/main/src/memory","url":"https://www.pluginstackai.com/plugins/memory-mcp/","updated":"2026-10-27","what":"Reference MCP server that gives an AI basic persistent memory: a local knowledge graph of entities, relations and observations that survives across chats. Version 2.0.0 (19 Oct 2026) needs Node 24 or later.","who":"People who want their assistant to remember preferences and facts across chats.","setup":[{"text":"Install Node.js 24 or later (the README's requirement for running through npx)."},{"text":"Add the server (or run the mcp/memory Docker image). Optionally set MEMORY_FILE_PATH to choose where the memory .jsonl file is stored. If you leave it out, the file (memory.jsonl) is created inside the server's own package directory, so an absolute path is easier to find and back up:","code":"{\n  \"mcpServers\": {\n    \"memory\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@modelcontextprotocol/server-memory\"\n      ],\n      \"env\": {\n        \"MEMORY_FILE_PATH\": \"/path/to/custom/memory.jsonl\"\n      }\n    }\n  }\n}","language":"json"},{"text":"On Windows, the README launches npx through cmd /c:","code":"{\n  \"mcpServers\": {\n    \"memory\": {\n      \"command\": \"cmd\",\n      \"args\": [\n        \"/c\",\n        \"npx\",\n        \"-y\",\n        \"@modelcontextprotocol/server-memory\"\n      ],\n      \"env\": {\n        \"MEMORY_FILE_PATH\": \"C:\\\\Users\\\\you\\\\memory.jsonl\"\n      }\n    }\n  }\n}","language":"json"},{"text":"Two clients pointed at the same MEMORY_FILE_PATH run two server processes on one file. The write tools take a lock file next to the memory file so they don't overwrite each other, which assumes a local filesystem rather than a network share."},{"text":"Add a system prompt or custom instructions telling the assistant when to save and recall memories. The README includes an example prompt."}],"prompts":["Remember that my main project uses Next.js and Supabase.","What do you remember about my coding preferences?","Store that my teammate Sam owns the billing code."],"install":{"name":"memory","transport":"stdio","command":"npx","args":["-y","@modelcontextprotocol/server-memory"],"env":{"MEMORY_FILE_PATH":"/path/to/custom/memory.jsonl"},"requires":{"runtime":"Node.js 24 or later","auth":"None"},"notes":["MEMORY_FILE_PATH is optional. Leave the env part out and the server stores memory.jsonl inside its own package directory."],"source":"https://github.com/modelcontextprotocol/servers/tree/main/src/memory","checked":"2026-10-27","clients":[{"id":"claude-code","label":"Claude Code","where":"Run in a terminal","blocks":[{"language":"bash","code":"claude mcp add --env MEMORY_FILE_PATH=/path/to/custom/memory.jsonl --transport stdio memory -- npx -y @modelcontextprotocol/server-memory"}],"note":"Everything after -- is the server command. Run /mcp inside Claude Code to check it connected."},{"id":"claude-desktop","label":"Claude Desktop","where":"Settings → Developer → Edit Config (claude_desktop_config.json)","blocks":[{"language":"json","code":"{\n  \"mcpServers\": {\n    \"memory\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@modelcontextprotocol/server-memory\"\n      ],\n      \"env\": {\n        \"MEMORY_FILE_PATH\": \"/path/to/custom/memory.jsonl\"\n      }\n    }\n  }\n}"}],"note":"Fully quit and reopen Claude Desktop after saving."},{"id":"cursor","label":"Cursor","where":".cursor/mcp.json in a project, or ~/.cursor/mcp.json for all projects","blocks":[{"language":"json","code":"{\n  \"mcpServers\": {\n    \"memory\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@modelcontextprotocol/server-memory\"\n      ],\n      \"env\": {\n        \"MEMORY_FILE_PATH\": \"/path/to/custom/memory.jsonl\"\n      }\n    }\n  }\n}"}]},{"id":"vscode","label":"VS Code","where":".vscode/mcp.json (note the top-level \"servers\" key)","blocks":[{"language":"json","code":"{\n  \"servers\": {\n    \"memory\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@modelcontextprotocol/server-memory\"\n      ],\n      \"env\": {\n        \"MEMORY_FILE_PATH\": \"/path/to/custom/memory.jsonl\"\n      }\n    }\n  }\n}"}]},{"id":"codex","label":"Codex","where":"Run in a terminal, or edit ~/.codex/config.toml","blocks":[{"language":"bash","caption":"CLI","code":"codex mcp add memory --env MEMORY_FILE_PATH=/path/to/custom/memory.jsonl -- npx -y @modelcontextprotocol/server-memory"},{"language":"toml","caption":"Or in ~/.codex/config.toml","code":"[mcp_servers.memory]\ncommand = \"npx\"\nargs = [\"-y\", \"@modelcontextprotocol/server-memory\"]\n\n[mcp_servers.memory.env]\nMEMORY_FILE_PATH = \"/path/to/custom/memory.jsonl\""}]}]},"sections":[],"faq":[],"guides":[]},{"slug":"neon-mcp","name":"Neon MCP Server","category":"MCP Servers","categoryUrl":"https://www.pluginstackai.com/categories/mcp-servers/","tags":["database","postgres","backend"],"maker":"Neon","sourceUrl":"https://github.com/neondatabase/mcp-server-neon","url":"https://www.pluginstackai.com/plugins/neon-mcp/","updated":"2026-10-17","what":"Neon's official MCP server for managing Neon Postgres in plain language: create projects and branches, run queries, inspect schemas and run migrations on a branch. It is offered as a hosted remote server with OAuth or API-key auth. MIT licensed.","who":"Developers using Neon Postgres for local development. Neon says it is meant for development and IDE use, not production, so review every action before approving it.","setup":[{"text":"Quick setup for Cursor, VS Code and Claude Code (signs you in and configures the editor):","code":"npx neon@latest init","language":"bash"},{"text":"Or add the hosted server to all detected agents with OAuth:","code":"npx add-mcp https://mcp.neon.tech/mcp","language":"bash"},{"text":"Or add it to your MCP config by hand; an OAuth window opens on first use:","code":"{\n  \"mcpServers\": {\n    \"Neon\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.neon.tech/mcp\"\n    }\n  }\n}","language":"json"},{"text":"To limit what the agent can do, uncheck Allow writes on the OAuth page, or use https://mcp.neon.tech/mcp?readonly=true."}],"prompts":["Create a new Neon project called my-app with a users table (id, name, email).","Add a created_at column to the users table on a new branch first, then show me the diff.","Summarize all of my Neon projects and what tables each one has."],"install":{"name":"neon","transport":"http","url":"https://mcp.neon.tech/mcp","requires":{"runtime":"None (hosted)","auth":"Neon OAuth sign-in"},"source":"https://github.com/neondatabase/mcp-server-neon","checked":"2026-10-27","clients":[{"id":"claude-code","label":"Claude Code","where":"Run in a terminal","blocks":[{"language":"bash","code":"claude mcp add --transport http neon https://mcp.neon.tech/mcp"}],"note":"Run /mcp inside Claude Code to check it connected and to sign in if the server asks."},{"id":"cursor","label":"Cursor","where":".cursor/mcp.json in a project, or ~/.cursor/mcp.json for all projects","blocks":[{"language":"json","code":"{\n  \"mcpServers\": {\n    \"neon\": {\n      \"url\": \"https://mcp.neon.tech/mcp\"\n    }\n  }\n}"}]},{"id":"vscode","label":"VS Code","where":".vscode/mcp.json (note the top-level \"servers\" key)","blocks":[{"language":"json","code":"{\n  \"servers\": {\n    \"neon\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.neon.tech/mcp\"\n    }\n  }\n}"}]},{"id":"codex","label":"Codex","where":"Run in a terminal, or edit ~/.codex/config.toml","blocks":[{"language":"bash","caption":"CLI","code":"codex mcp add neon --url https://mcp.neon.tech/mcp"},{"language":"toml","caption":"Or in ~/.codex/config.toml","code":"[mcp_servers.neon]\nurl = \"https://mcp.neon.tech/mcp\""}],"note":"If the server uses OAuth, run codex mcp login neon to sign in."}]},"sections":[],"faq":[],"guides":[]},{"slug":"notion-mcp","name":"Notion MCP","category":"MCP Servers","categoryUrl":"https://www.pluginstackai.com/categories/mcp-servers/","tags":["docs","productivity"],"maker":"Notion","sourceUrl":"https://developers.notion.com/docs/get-started-with-mcp","url":"https://www.pluginstackai.com/plugins/notion-mcp/","updated":"2026-10-15","what":"Notion's hosted MCP server that lets AI tools search, read, create and update pages and databases you have access to in your Notion workspace.","who":"Anyone keeping specs, notes or task lists in Notion who wants the AI to use them.","setup":[{"text":"Add the remote server. Claude Code (then run /mcp):","code":"claude mcp add --transport http notion https://mcp.notion.com/mcp","language":"bash"},{"text":"Complete the OAuth flow to connect your workspace. Workspace members only; guests can't connect."},{"text":"If your client only supports local servers:","code":"{\n  \"mcpServers\": {\n    \"notion\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"mcp-remote\",\n        \"https://mcp.notion.com/mcp\"\n      ]\n    }\n  }\n}","language":"json"}],"prompts":["Find my product spec page and turn it into a task list.","Create a Notion page summarizing today's changes.","Search my workspace for notes about pricing."],"install":{"name":"notion","transport":"http","url":"https://mcp.notion.com/mcp","requires":{"runtime":"None (hosted)","auth":"Notion OAuth sign-in"},"notes":["Workspace members only; guests can't connect."],"source":"https://developers.notion.com/docs/get-started-with-mcp","checked":"2026-10-27","clients":[{"id":"claude-code","label":"Claude Code","where":"Run in a terminal","blocks":[{"language":"bash","code":"claude mcp add --transport http notion https://mcp.notion.com/mcp"}],"note":"Run /mcp inside Claude Code to check it connected and to sign in if the server asks."},{"id":"cursor","label":"Cursor","where":".cursor/mcp.json in a project, or ~/.cursor/mcp.json for all projects","blocks":[{"language":"json","code":"{\n  \"mcpServers\": {\n    \"notion\": {\n      \"url\": \"https://mcp.notion.com/mcp\"\n    }\n  }\n}"}]},{"id":"vscode","label":"VS Code","where":".vscode/mcp.json (note the top-level \"servers\" key)","blocks":[{"language":"json","code":"{\n  \"servers\": {\n    \"notion\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.notion.com/mcp\"\n    }\n  }\n}"}]},{"id":"codex","label":"Codex","where":"Run in a terminal, or edit ~/.codex/config.toml","blocks":[{"language":"bash","caption":"CLI","code":"codex mcp add notion --url https://mcp.notion.com/mcp"},{"language":"toml","caption":"Or in ~/.codex/config.toml","code":"[mcp_servers.notion]\nurl = \"https://mcp.notion.com/mcp\""}],"note":"If the server uses OAuth, run codex mcp login notion to sign in."}]},"sections":[],"faq":[],"guides":[]},{"slug":"openai-agents-sdk","name":"OpenAI Agents SDK","category":"Agent Frameworks","categoryUrl":"https://www.pluginstackai.com/categories/agent-frameworks/","tags":["python","multi-agent","sdk"],"maker":"OpenAI","sourceUrl":"https://github.com/openai/openai-agents-python","url":"https://www.pluginstackai.com/plugins/openai-agents-sdk/","updated":"2026-10-27","what":"OpenAI's lightweight, open-source framework for building agents and multi-agent workflows, in Python (openai-agents) and JavaScript/TypeScript (@openai/agents). It covers agents with tools (functions, MCP servers, hosted tools), handoffs, guardrails, human-in-the-loop, sessions, tracing, sandbox agents and realtime/voice agents. Per the README it is provider-agnostic: it supports the OpenAI Responses and Chat Completions APIs and 100+ other LLMs. MIT licensed.","who":"Python developers building their own agents who want a small, well-documented framework.","setup":[{"text":"Needs Python 3.10 or newer. Install:","code":"python -m venv .venv\nsource .venv/bin/activate\npip install openai-agents","language":"bash"},{"text":"Or with uv:","code":"uv init\nuv add openai-agents","language":"bash"},{"text":"Set OPENAI_API_KEY and run a first agent:","code":"from agents import Agent, Runner\n\nagent = Agent(name=\"Assistant\", instructions=\"You are a helpful assistant\")\nresult = Runner.run_sync(agent, \"Write a haiku about recursion in programming.\")\nprint(result.final_output)","language":"text"},{"text":"JavaScript/TypeScript equivalent of the first agent (after npm install @openai/agents zod):","code":"import { Agent, run } from '@openai/agents';\n\nconst agent = new Agent({\n  name: 'Assistant',\n  instructions: 'You are a helpful assistant.',\n});\nconst result = await run(agent, 'Write a haiku about recursion in programming.');\nconsole.log(result.finalOutput);","language":"text"},{"text":"Optional Python extras: pip install 'openai-agents[voice]' for voice pipelines and pip install 'openai-agents[redis]' for Redis-backed sessions. Docs: openai.github.io/openai-agents-python."}],"prompts":["Build a triage agent with the OpenAI Agents SDK that hands off to a billing agent or a support agent.","Add an input guardrail that blocks requests unrelated to our product.","Connect my agent to a local MCP server and list the tools it can see."],"install":null,"sections":[{"heading":"Agents SDK vs the OpenAI SDK","paragraphs":["People often search for \"OpenAI SDK\" and mean one of two things. The openai package is OpenAI's general API client. The OpenAI Agents SDK is a separate package (openai-agents for Python, @openai/agents for JavaScript/TypeScript) that adds the agent loop, handoffs, guardrails, sessions and tracing on top of model calls.","The Agents SDK docs include a section on when to use the Agents SDK and when to call the Responses API directly. A single model call with no tools or handoffs doesn't need an agent framework."]},{"heading":"JavaScript / TypeScript version","paragraphs":["There is a separate repository, openai/openai-agents-js. Its README lists Node.js 22 or later, Deno and Bun as supported environments, with Cloudflare Workers (nodejs_compat enabled) as experimental."],"code":"npm install @openai/agents zod","language":"bash"}],"faq":[{"q":"What is the OpenAI Agents SDK?","a":"An open-source framework from OpenAI for building agents and multi-agent workflows. An agent is a model configured with instructions, tools, guardrails and handoffs, and the SDK runs the loop that calls tools and passes work between agents."},{"q":"How do I install the OpenAI Agents SDK?","a":"For Python 3.10 or newer, run pip install openai-agents (or uv add openai-agents) and set OPENAI_API_KEY. For JavaScript/TypeScript, run npm install @openai/agents zod."},{"q":"Does it only work with OpenAI models?","a":"No. The README describes it as provider-agnostic: it supports the OpenAI Responses and Chat Completions APIs and 100+ other LLMs. You still need credentials for whichever provider you use."},{"q":"Can agents use MCP servers?","a":"Yes. The README lists MCP among the tool types, next to function tools and hosted tools."},{"q":"Is it the same as the openai package?","a":"No. The openai package is the general API client. The Agents SDK is a separate package built for agent workflows."},{"q":"Is it free?","a":"The SDK is MIT licensed and free to use. Model calls to OpenAI or another provider are billed by that provider."}],"guides":[]},{"slug":"opencode","name":"OpenCode","category":"Coding Agents","categoryUrl":"https://www.pluginstackai.com/categories/coding-agents/","tags":["cli","agent","open-source"],"maker":"Anomaly","sourceUrl":"https://opencode.ai","url":"https://www.pluginstackai.com/plugins/opencode/","updated":"2026-10-27","what":"An open-source AI coding agent with a terminal UI, plus a desktop app (beta) and IDE support. It works with API keys from many LLM providers, and also has an optional curated model service called OpenCode Zen. It ships a full-access build agent and a read-only plan agent you switch between with Tab. The code is on GitHub at anomalyco/opencode (the older sst/opencode address redirects there). MIT licensed.","who":"Terminal users who want an open-source agent and the freedom to pick their own model provider.","setup":[{"text":"OpenCode 2 (what the GitHub README and opencode.ai/download offer now). Use one of:","code":"curl -fsSL https://opencode.ai/v2/install | bash\n# or\nnpm i -g @opencode/cli@latest\n# or (macOS and Linux)\nbrew install anomalyco/tap/opencode-v2","language":"bash"},{"text":"OpenCode 1 (what opencode.ai/docs still documents; npm package name is different):","code":"curl -fsSL https://opencode.ai/install | bash\n# or\nnpm install -g opencode-ai\n# or (macOS and Linux)\nbrew install anomalyco/tap/opencode","language":"bash"},{"text":"Don't mix them: both versions provide the opencode command. If you're moving from V1, read opencode.ai/v2/docs/migrate-v1 first (V1 plugins don't run in V2). On Windows, the docs recommend WSL."},{"text":"cd into your project, start OpenCode, then run /connect to add a provider and /init to generate AGENTS.md:","code":"cd your-project\nopencode","language":"bash"}],"prompts":["Switch to plan mode and explain how authentication works in this repo.","Add pagination to the /api/posts endpoint and update the tests.","@general find every place we call the payments API."],"install":null,"sections":[{"heading":"Using OpenCode in the terminal","bullets":["Run opencode inside a project folder to open the terminal UI.","Use /connect to add a provider's API key. OpenCode Zen is suggested for newcomers but optional; any supported provider works.","Run /init and OpenCode analyzes the project and creates an AGENTS.md in the project root. Commit it so every agent that reads AGENTS.md shares the same instructions.","Press Tab to switch between the build agent (full access) and the plan agent (read-only by default; it asks before running shell commands).","Type @general to hand a search or multi-step task to the built-in general subagent."]},{"heading":"OpenCode 1 vs OpenCode 2","paragraphs":["OpenCode currently ships in two major versions that share the opencode command and can't be installed side by side under it. The GitHub README and opencode.ai/download point at V2. The main docs at opencode.ai/docs still document V1 installs and note that V2 is available. V1 plugins don't run in V2, so read the migration page at opencode.ai/v2/docs/migrate-v1 before switching."]},{"heading":"Where the OpenCode docs are","bullets":["opencode.ai/docs: intro, config, providers, TUI, CLI, agents, rules, MCP servers, permissions and more.","opencode.ai/v2/docs/migrate-v1: moving from V1 to V2.","github.com/anomalyco/opencode: source, releases and issues."]}],"faq":[{"q":"What is OpenCode?","a":"An open-source AI coding agent you run in your terminal (there is also a beta desktop app and IDE support). You bring an API key from a model provider, or use OpenCode's optional Zen service."},{"q":"How do I install OpenCode?","a":"For OpenCode 2, run curl -fsSL https://opencode.ai/v2/install | bash or npm i -g @opencode/cli@latest. For OpenCode 1, use curl -fsSL https://opencode.ai/install | bash or npm install -g opencode-ai."},{"q":"Where are the OpenCode docs?","a":"At opencode.ai/docs, which currently documents V1 and links to the V2 docs. The source is at github.com/anomalyco/opencode."},{"q":"Does OpenCode read AGENTS.md?","a":"Yes. It is listed as a supported tool on agents.md, and /init creates an AGENTS.md file in your project root."},{"q":"What is the difference between the build and plan agents?","a":"Build has full access for making changes. Plan is read-only by default: it denies edits and asks before running shell commands. Press Tab to switch."},{"q":"Can OpenCode 1 and 2 be installed together?","a":"Not under the default opencode command. Both use it, and the docs say they can't be installed side by side."}],"guides":[{"slug":"cursor-rules-vs-agents-md","url":"https://www.pluginstackai.com/guides/cursor-rules-vs-agents-md/"}]},{"slug":"openhands","name":"OpenHands","category":"Coding Agents","categoryUrl":"https://www.pluginstackai.com/categories/coding-agents/","tags":["agent","self-hosted","open-source"],"maker":"OpenHands","sourceUrl":"https://github.com/OpenHands/OpenHands","url":"https://www.pluginstackai.com/plugins/openhands/","updated":"2026-10-17","what":"An open-source platform for running coding agents. Its Agent Canvas app (labeled beta) is a self-hosted control center where you start agent conversations and set up automations (for example with Slack, GitHub or Linear). It runs the OpenHands agent by default and can also run Claude Code, Codex, OpenCode and other ACP-compatible agents, locally, in Docker, on VMs or in OpenHands Cloud. MIT licensed.","who":"Developers and teams who want agents running on their own machines or servers, ideally in a sandbox, with any LLM. The self-hosted app is free; OpenHands Cloud and Enterprise are paid options.","setup":[{"text":"Quick local install (needs Node.js 24+ and uv). Warning: without a sandbox the agent has full access to your files.","code":"npm install -g @openhands/agent-canvas\nagent-canvas","language":"bash"},{"text":"Safer: run each conversation in its own Docker container (needs Docker running):","code":"OH_CONVERSATION_RUNTIME=docker agent-canvas","language":"bash"},{"text":"Open http://localhost:8000 and start a conversation. See the README for the single-container Docker command and self-hosting security notes."}],"prompts":["Fix the failing tests in this repo and open a summary of what changed.","Every morning, summarize new GitHub issues and post the summary to Slack.","Upgrade this project's dependencies and make sure the build still passes."],"install":null,"sections":[],"faq":[],"guides":[]},{"slug":"playwright-mcp","name":"Playwright MCP","category":"MCP Servers","categoryUrl":"https://www.pluginstackai.com/categories/mcp-servers/","tags":["browser","testing","automation"],"maker":"Microsoft","sourceUrl":"https://github.com/microsoft/playwright-mcp","url":"https://www.pluginstackai.com/plugins/playwright-mcp/","updated":"2026-10-15","what":"Microsoft's MCP server that gives an AI agent a real browser via Playwright. It works from the page's structured accessibility snapshot instead of screenshots, so no vision model is needed.","who":"Vibe coders and QA folks who want the agent to test their web app or automate web tasks.","setup":[{"text":"Install Node.js 18 or newer."},{"text":"Add to your MCP client config:","code":"{\n  \"mcpServers\": {\n    \"playwright\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"@playwright/mcp@latest\"\n      ]\n    }\n  }\n}","language":"json"},{"text":"Or via CLI: Claude Code / Codex:","code":"claude mcp add playwright npx @playwright/mcp@latest\ncodex mcp add playwright npx \"@playwright/mcp@latest\"","language":"bash"},{"text":"Optional flags include --headless, --isolated (in-memory profile) and --browser (chrome, firefox, webkit, msedge)."},{"text":"Using a coding agent? Microsoft notes that Playwright CLI + Skills (github.com/microsoft/playwright-cli) can be more token-efficient than the MCP server."}],"prompts":["Open localhost:3000, sign up with a test email and tell me if anything breaks.","Go to my pricing page and check every link works.","Fill out the contact form on my site and report the confirmation message."],"install":{"name":"playwright","transport":"stdio","command":"npx","args":["@playwright/mcp@latest"],"requires":{"runtime":"Node.js 18 or newer","auth":"None"},"source":"https://github.com/microsoft/playwright-mcp","checked":"2026-10-27","clients":[{"id":"claude-code","label":"Claude Code","where":"Run in a terminal","blocks":[{"language":"bash","code":"claude mcp add --transport stdio playwright -- npx @playwright/mcp@latest"}],"note":"Everything after -- is the server command. Run /mcp inside Claude Code to check it connected."},{"id":"claude-desktop","label":"Claude Desktop","where":"Settings → Developer → Edit Config (claude_desktop_config.json)","blocks":[{"language":"json","code":"{\n  \"mcpServers\": {\n    \"playwright\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"@playwright/mcp@latest\"\n      ]\n    }\n  }\n}"}],"note":"Fully quit and reopen Claude Desktop after saving."},{"id":"cursor","label":"Cursor","where":".cursor/mcp.json in a project, or ~/.cursor/mcp.json for all projects","blocks":[{"language":"json","code":"{\n  \"mcpServers\": {\n    \"playwright\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"@playwright/mcp@latest\"\n      ]\n    }\n  }\n}"}]},{"id":"vscode","label":"VS Code","where":".vscode/mcp.json (note the top-level \"servers\" key)","blocks":[{"language":"json","code":"{\n  \"servers\": {\n    \"playwright\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\n        \"@playwright/mcp@latest\"\n      ]\n    }\n  }\n}"}]},{"id":"codex","label":"Codex","where":"Run in a terminal, or edit ~/.codex/config.toml","blocks":[{"language":"bash","caption":"CLI","code":"codex mcp add playwright -- npx @playwright/mcp@latest"},{"language":"toml","caption":"Or in ~/.codex/config.toml","code":"[mcp_servers.playwright]\ncommand = \"npx\"\nargs = [\"@playwright/mcp@latest\"]"}]}]},"sections":[],"faq":[],"guides":[]},{"slug":"pydantic-ai","name":"Pydantic AI","category":"Agent Frameworks","categoryUrl":"https://www.pluginstackai.com/categories/agent-frameworks/","tags":["python","typed","sdk"],"maker":"Pydantic","sourceUrl":"https://github.com/pydantic/pydantic-ai","url":"https://www.pluginstackai.com/plugins/pydantic-ai/","updated":"2026-10-17","what":"A typed Python agent framework from the Pydantic team. You define agents with typed outputs and tools, and switching model providers is a one-string change. Companion packages add a harness for long-running agents (files, shell, sub-agents) and Pydantic Evals for testing. MIT licensed.","who":"Python developers who like type hints and want validated, structured outputs from their agents.","setup":[{"text":"Needs Python 3.11 or newer. Install:","code":"uv add pydantic-ai","language":"bash"},{"text":"For a ready-made coding agent toolkit, add the harness too:","code":"uv add pydantic-ai pydantic-ai-harness","language":"bash"},{"text":"Set your provider's API key (for example OPENAI_API_KEY or ANTHROPIC_API_KEY) and follow the docs at pydantic.dev/docs/ai."}],"prompts":["Build a Pydantic AI agent that extracts invoice data into a typed Invoice model.","Add a tool to this agent that looks up a customer by email in our database.","Write Pydantic Evals tests for this agent's outputs."],"install":null,"sections":[],"faq":[],"guides":[]},{"slug":"sentry-mcp","name":"Sentry MCP Server","category":"MCP Servers","categoryUrl":"https://www.pluginstackai.com/categories/mcp-servers/","tags":["errors","monitoring"],"maker":"Sentry","sourceUrl":"https://github.com/getsentry/sentry-mcp","url":"https://www.pluginstackai.com/plugins/sentry-mcp/","updated":"2026-10-15","what":"Sentry's official remote MCP server, built for coding agents: it lets your AI look up Sentry issues, errors and traces and help you debug them.","who":"Developers who use Sentry and want the agent to fix bugs from real error reports.","setup":[{"text":"Add the remote server https://mcp.sentry.dev/mcp to your MCP client and complete the Sentry OAuth sign-in."},{"text":"Claude Code users can also install it as a plugin:","code":"claude plugin marketplace add getsentry/sentry-mcp\nclaude plugin install sentry-mcp@sentry-mcp","language":"bash"},{"text":"Or run it locally with an access token. Only add --host=<your-host> (hostname only) if you use self-hosted Sentry. Note: the AI-powered search tools need an LLM provider key.","code":"npx @sentry/mcp-server@latest --access-token=<token>","language":"bash"}],"prompts":["What are the top unresolved errors in my frontend project this week?","Look at this Sentry issue and suggest a fix in my code: <issue URL>","Find the traces for slow checkout requests in the last 24 hours."],"install":{"name":"sentry","transport":"http","url":"https://mcp.sentry.dev/mcp","requires":{"runtime":"None (hosted)","auth":"Sentry OAuth sign-in"},"source":"https://github.com/getsentry/sentry-mcp","checked":"2026-10-27","clients":[{"id":"claude-code","label":"Claude Code","where":"Run in a terminal","blocks":[{"language":"bash","code":"claude mcp add --transport http sentry https://mcp.sentry.dev/mcp"}],"note":"Run /mcp inside Claude Code to check it connected and to sign in if the server asks."},{"id":"cursor","label":"Cursor","where":".cursor/mcp.json in a project, or ~/.cursor/mcp.json for all projects","blocks":[{"language":"json","code":"{\n  \"mcpServers\": {\n    \"sentry\": {\n      \"url\": \"https://mcp.sentry.dev/mcp\"\n    }\n  }\n}"}]},{"id":"vscode","label":"VS Code","where":".vscode/mcp.json (note the top-level \"servers\" key)","blocks":[{"language":"json","code":"{\n  \"servers\": {\n    \"sentry\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.sentry.dev/mcp\"\n    }\n  }\n}"}]},{"id":"codex","label":"Codex","where":"Run in a terminal, or edit ~/.codex/config.toml","blocks":[{"language":"bash","caption":"CLI","code":"codex mcp add sentry --url https://mcp.sentry.dev/mcp"},{"language":"toml","caption":"Or in ~/.codex/config.toml","code":"[mcp_servers.sentry]\nurl = \"https://mcp.sentry.dev/mcp\""}],"note":"If the server uses OAuth, run codex mcp login sentry to sign in."}]},"sections":[],"faq":[],"guides":[]},{"slug":"sequential-thinking-mcp","name":"Sequential Thinking MCP Server","category":"MCP Servers","categoryUrl":"https://www.pluginstackai.com/categories/mcp-servers/","tags":["reasoning","planning","reference-server"],"maker":"Model Context Protocol","sourceUrl":"https://github.com/modelcontextprotocol/servers/tree/main/src/sequentialthinking","url":"https://www.pluginstackai.com/plugins/sequential-thinking-mcp/","updated":"2026-10-27","what":"An official MCP reference server with one tool, sequential_thinking, that lets the model work through a problem as numbered steps. It can revise earlier steps, branch into alternatives and change how many steps it plans as it goes. Version 2.0.0 (19 Oct 2026) needs Node 24 or later.","who":"People who want the agent to plan out a tricky design or debugging task step by step before it acts.","setup":[{"text":"Install Node.js 24 or later (the README's requirement for running through npx)."},{"text":"Add to your MCP client config:","code":"{\n  \"mcpServers\": {\n    \"sequential-thinking\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@modelcontextprotocol/server-sequential-thinking\"\n      ]\n    }\n  }\n}","language":"json"},{"text":"Or add it from the Codex CLI (everything after -- is the server command):","code":"codex mcp add sequential-thinking -- npx -y @modelcontextprotocol/server-sequential-thinking","language":"bash"},{"text":"On Windows, the README launches npx through cmd /c:","code":"{\n  \"mcpServers\": {\n    \"sequential-thinking\": {\n      \"command\": \"cmd\",\n      \"args\": [\n        \"/c\",\n        \"npx\",\n        \"-y\",\n        \"@modelcontextprotocol/server-sequential-thinking\"\n      ]\n    }\n  }\n}","language":"json"},{"text":"To stop it logging thought details, set the environment variable DISABLE_THOUGHT_LOGGING to true in the server's env block."}],"prompts":["Use sequential thinking to plan a migration from REST to tRPC for this app.","Think step by step about why this test is flaky before changing any code.","Break down how to add multiplayer to this game into ordered steps, revising as needed."],"install":{"name":"sequential-thinking","transport":"stdio","command":"npx","args":["-y","@modelcontextprotocol/server-sequential-thinking"],"requires":{"runtime":"Node.js 24 or later","auth":"None"},"source":"https://github.com/modelcontextprotocol/servers/tree/main/src/sequentialthinking","checked":"2026-10-27","clients":[{"id":"claude-code","label":"Claude Code","where":"Run in a terminal","blocks":[{"language":"bash","code":"claude mcp add --transport stdio sequential-thinking -- npx -y @modelcontextprotocol/server-sequential-thinking"}],"note":"Everything after -- is the server command. Run /mcp inside Claude Code to check it connected."},{"id":"claude-desktop","label":"Claude Desktop","where":"Settings → Developer → Edit Config (claude_desktop_config.json)","blocks":[{"language":"json","code":"{\n  \"mcpServers\": {\n    \"sequential-thinking\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@modelcontextprotocol/server-sequential-thinking\"\n      ]\n    }\n  }\n}"}],"note":"Fully quit and reopen Claude Desktop after saving."},{"id":"cursor","label":"Cursor","where":".cursor/mcp.json in a project, or ~/.cursor/mcp.json for all projects","blocks":[{"language":"json","code":"{\n  \"mcpServers\": {\n    \"sequential-thinking\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@modelcontextprotocol/server-sequential-thinking\"\n      ]\n    }\n  }\n}"}]},{"id":"vscode","label":"VS Code","where":".vscode/mcp.json (note the top-level \"servers\" key)","blocks":[{"language":"json","code":"{\n  \"servers\": {\n    \"sequential-thinking\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@modelcontextprotocol/server-sequential-thinking\"\n      ]\n    }\n  }\n}"}]},{"id":"codex","label":"Codex","where":"Run in a terminal, or edit ~/.codex/config.toml","blocks":[{"language":"bash","caption":"CLI","code":"codex mcp add sequential-thinking -- npx -y @modelcontextprotocol/server-sequential-thinking"},{"language":"toml","caption":"Or in ~/.codex/config.toml","code":"[mcp_servers.sequential-thinking]\ncommand = \"npx\"\nargs = [\"-y\", \"@modelcontextprotocol/server-sequential-thinking\"]"}]}]},"sections":[],"faq":[],"guides":[]},{"slug":"serena","name":"Serena","category":"MCP Servers","categoryUrl":"https://www.pluginstackai.com/categories/mcp-servers/","tags":["coding","code-navigation","refactoring"],"maker":"Oraios AI","sourceUrl":"https://github.com/oraios/serena","url":"https://www.pluginstackai.com/plugins/serena/","updated":"2026-10-21","what":"An MCP server that gives coding agents IDE-style tools: find a symbol, list references, rename across files, replace a function body and read diagnostics, working at the symbol level instead of with line numbers and text search. It uses language servers (free and open source, 40+ languages) by default, or an optional paid JetBrains plugin. It also has a project memory system and a local web dashboard. Serena v2.1.0 was released on 2026-10-19. The Serena application is GPL-3.0-or-later; its SolidLSP component is MIT.","who":"Developers using Claude Code, Codex, Cursor or another MCP client on larger codebases, where cross-file renames and reference lookups by text search get slow or error-prone.","setup":[{"text":"Install uv, then install Serena (the project asks you not to install it from MCP or plugin marketplaces, which can carry outdated commands):","code":"uv tool install -p 3.13 serena-agent\nserena init","language":"bash"},{"text":"Claude Code: let Serena configure it, or add it by hand for all projects:","code":"serena setup claude-code\n# or\nclaude mcp add --scope user serena -- serena start-mcp-server --context claude-code --project-from-cwd","language":"bash"},{"text":"Codex: run serena setup codex. Cursor and other MCP clients: add a server that runs serena start-mcp-server with the ide context, then ask the agent to \"Activate the current dir as project using serena\":","code":"{\n  \"mcpServers\": {\n    \"serena\": {\n      \"command\": \"serena\",\n      \"args\": [\"start-mcp-server\", \"--context\", \"ide\"]\n    }\n  }\n}","language":"json"},{"text":"If it starts too slowly in Claude Code, raise MCP_TIMEOUT (for example export MCP_TIMEOUT=60000). By default Serena opens a web dashboard on localhost when it starts; you can choose whether it opens on launch. Serena's docs also describe optional hooks that remind the agent to use its tools."}],"prompts":["Activate the current dir as project using serena.","Use serena to find every reference to createInvoice and rename it to createDraftInvoice across the project.","Use serena to give me an overview of the symbols in src/billing/ and where each is used."],"install":null,"sections":[],"faq":[],"guides":[]},{"slug":"stripe-mcp","name":"Stripe MCP Server","category":"MCP Servers","categoryUrl":"https://www.pluginstackai.com/categories/mcp-servers/","tags":["payments","api"],"maker":"Stripe","sourceUrl":"https://docs.stripe.com/mcp","url":"https://www.pluginstackai.com/plugins/stripe-mcp/","updated":"2026-10-15","what":"Stripe's MCP server that lets AI agents work with the Stripe API (customers, products, prices, invoices, subscriptions and more) and search Stripe's docs and support articles.","who":"Builders adding payments to an app, or managing customers and products with an agent.","setup":[{"text":"Recommended: install the Stripe CLI and run agent setup. It detects your agents and configures the MCP server plus Stripe's skills.","code":"npm install -g @stripe/cli@latest\nstripe agent setup","language":"bash"},{"text":"Manual: add the remote server https://mcp.stripe.com. Claude Code (then /mcp to sign in with OAuth):","code":"claude mcp add --transport http stripe https://mcp.stripe.com/","language":"bash"},{"text":"For clients without OAuth, use an agent API key as a Bearer token. Legacy keys: from December 2026, Stripe MCP stops accepting full-access secret keys and restricted keys without the Agent tag, so migrate to agent API keys or OAuth by November 30, 2026. Try it in a sandbox first; refunds and payouts require human confirmation.","code":"{\n  \"stripe\": {\n    \"url\": \"https://mcp.stripe.com\",\n    \"headers\": {\n      \"Authorization\": \"Bearer {{AGENT_API_KEY}}\"\n    }\n  }\n}","language":"json"}],"prompts":["Create a sandbox product 'Pro Plan' with a $9/month price.","How do I handle a failed subscription payment webhook?","List my most recent customers in the sandbox."],"install":{"name":"stripe","transport":"http","url":"https://mcp.stripe.com","requires":{"runtime":"None (hosted)","auth":"Stripe OAuth sign-in (or an agent API key)"},"source":"https://docs.stripe.com/mcp","checked":"2026-10-27","clients":[{"id":"claude-code","label":"Claude Code","where":"Run in a terminal","blocks":[{"language":"bash","code":"claude mcp add --transport http stripe https://mcp.stripe.com"}],"note":"Run /mcp inside Claude Code to check it connected and to sign in if the server asks."},{"id":"cursor","label":"Cursor","where":".cursor/mcp.json in a project, or ~/.cursor/mcp.json for all projects","blocks":[{"language":"json","code":"{\n  \"mcpServers\": {\n    \"stripe\": {\n      \"url\": \"https://mcp.stripe.com\"\n    }\n  }\n}"}]},{"id":"vscode","label":"VS Code","where":".vscode/mcp.json (note the top-level \"servers\" key)","blocks":[{"language":"json","code":"{\n  \"servers\": {\n    \"stripe\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.stripe.com\"\n    }\n  }\n}"}]},{"id":"codex","label":"Codex","where":"Run in a terminal, or edit ~/.codex/config.toml","blocks":[{"language":"bash","caption":"CLI","code":"codex mcp add stripe --url https://mcp.stripe.com"},{"language":"toml","caption":"Or in ~/.codex/config.toml","code":"[mcp_servers.stripe]\nurl = \"https://mcp.stripe.com\""}],"note":"If the server uses OAuth, run codex mcp login stripe to sign in."}]},"sections":[],"faq":[],"guides":[]},{"slug":"supabase-mcp","name":"Supabase MCP Server","category":"MCP Servers","categoryUrl":"https://www.pluginstackai.com/categories/mcp-servers/","tags":["database","backend"],"maker":"Supabase","sourceUrl":"https://github.com/supabase-community/supabase-mcp","url":"https://www.pluginstackai.com/plugins/supabase-mcp/","updated":"2026-10-15","what":"Supabase's MCP server that connects AI assistants to your Supabase projects so they can manage tables, fetch config and query data.","who":"Vibe coders building apps on Supabase who want the agent to handle the database side.","setup":[{"text":"Read Supabase's MCP security best practices first. Connecting an LLM to a database carries real risks."},{"text":"Add the remote server. Your client will prompt you to log in to Supabase; pick the organization that has your project.","code":"{\n  \"mcpServers\": {\n    \"supabase\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.supabase.com/mcp\"\n    }\n  }\n}","language":"json"},{"text":"Optionally scope it with URL options. With the local Supabase CLI, the server is at http://localhost:54321/mcp (fewer tools).","code":"https://mcp.supabase.com/mcp?project_ref=<ref>&read_only=true","language":"text"}],"prompts":["Create a 'profiles' table linked to auth users with a username column.","List the tables in my project and describe how they relate.","Write and run a query that counts signups per day this week."],"install":{"name":"supabase","transport":"http","url":"https://mcp.supabase.com/mcp","requires":{"runtime":"None (hosted)","auth":"Supabase login"},"notes":["Connecting an AI to a database carries real risks; read Supabase's MCP security best practices first."],"source":"https://github.com/supabase-community/supabase-mcp","checked":"2026-10-27","clients":[{"id":"claude-code","label":"Claude Code","where":"Run in a terminal","blocks":[{"language":"bash","code":"claude mcp add --transport http supabase https://mcp.supabase.com/mcp"}],"note":"Run /mcp inside Claude Code to check it connected and to sign in if the server asks."},{"id":"cursor","label":"Cursor","where":".cursor/mcp.json in a project, or ~/.cursor/mcp.json for all projects","blocks":[{"language":"json","code":"{\n  \"mcpServers\": {\n    \"supabase\": {\n      \"url\": \"https://mcp.supabase.com/mcp\"\n    }\n  }\n}"}]},{"id":"vscode","label":"VS Code","where":".vscode/mcp.json (note the top-level \"servers\" key)","blocks":[{"language":"json","code":"{\n  \"servers\": {\n    \"supabase\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.supabase.com/mcp\"\n    }\n  }\n}"}]},{"id":"codex","label":"Codex","where":"Run in a terminal, or edit ~/.codex/config.toml","blocks":[{"language":"bash","caption":"CLI","code":"codex mcp add supabase --url https://mcp.supabase.com/mcp"},{"language":"toml","caption":"Or in ~/.codex/config.toml","code":"[mcp_servers.supabase]\nurl = \"https://mcp.supabase.com/mcp\""}],"note":"If the server uses OAuth, run codex mcp login supabase to sign in."}]},"sections":[],"faq":[],"guides":[]}],"guides":[{"slug":"add-mcp-server-to-cursor","title":"How to add an MCP server to Cursor","seoTitle":"How to add an MCP server to Cursor (mcp.json, examples & fixes)","description":"Add an MCP server to Cursor via one click or mcp.json: file locations, local and remote config examples, API keys with ${env:}, and fixes for common errors.","kind":"Setup guide","url":"https://www.pluginstackai.com/guides/add-mcp-server-to-cursor/","published":"2026-10-20","updated":"2026-10-20","markdown":"MCP (Model Context Protocol) servers give Cursor's Agent extra tools, such as reading GitHub issues, driving a browser or looking up current library docs. There are two ways to add one: one click from Cursor's Customize panel, or a few lines in an `mcp.json` file. This guide covers both, with copy-paste configs and fixes for the errors people hit most.\n\n## Quick answer\n\n1. Create `~/.cursor/mcp.json` (all your projects) or `.cursor/mcp.json` in your project folder (that project only).\n2. Add the server under an `mcpServers` key: a `command` for a local server, or a `url` for a remote one (examples below).\n3. Save the file and restart Cursor.\n4. Open **Customize** in the sidebar, then **MCPs**, and check the server is listed and switched on.\n\nPrefer not to edit JSON? Use the one-click install first and come back to `mcp.json` for anything it doesn't list.\n\n## Option 1: one-click install from Customize\n\n1. Open **Customize** in Cursor's sidebar and click **MCPs**.\n2. Browse or search for the server you want.\n3. Click **Add to Cursor** next to it.\n4. Follow the sign-in (OAuth) prompts if the server asks for them.\n\nThese entries come from the Cursor Marketplace. Cursor also points to [cursor.directory](https://cursor.directory) for community plugins and MCP servers; community servers aren't reviewed by Cursor, so check who publishes them before installing.\n\n## Option 2: add a server with mcp.json\n\n### Where the file goes\n\n- **Global** (just you, every project): `~/.cursor/mcp.json` in your home folder.\n- **Project** (this project, can be shared with your team through git): `.cursor/mcp.json` in the project root.\n\nCursor merges both files. If the same server name appears in both, the project file wins.\n\n### A local (stdio) server\n\nA local server is a program Cursor starts on your machine. You give it a `command` and optional `args` and `env`. This adds [Playwright MCP](https://www.pluginstackai.com/plugins/playwright-mcp/), which lets the Agent open and control a browser (it needs Node.js 18 or newer):\n\n_~/.cursor/mcp.json_\n\n```json\n{\n  \"mcpServers\": {\n    \"playwright\": {\n      \"command\": \"npx\",\n      \"args\": [\"@playwright/mcp@latest\"]\n    }\n  }\n}\n```\n\nThe key (`playwright` here) is just a label you choose. The `command` has to be on your system PATH or be a full path to the program.\n\n### A remote server (URL)\n\nA remote server is hosted by the provider and reached over HTTP. Cursor supports Streamable HTTP and SSE endpoints with a `url`. This adds the [Notion MCP server](https://www.pluginstackai.com/plugins/notion-mcp/). After saving, enable it in **Customize** and complete Notion's OAuth sign-in to connect your workspace:\n\n```json\n{\n  \"mcpServers\": {\n    \"notion\": {\n      \"url\": \"https://mcp.notion.com/mcp\"\n    }\n  }\n}\n```\n\n### A remote server that needs a token\n\nSome servers take an API key or token in a header instead of OAuth. The [GitHub MCP Server](https://www.pluginstackai.com/plugins/github-mcp-server/)'s Cursor guide uses a GitHub personal access token as a Bearer header. Rather than pasting the token into the file, read it from an environment variable with `${env:NAME}`:\n\n```json\n{\n  \"mcpServers\": {\n    \"github\": {\n      \"url\": \"https://api.githubcopilot.com/mcp/\",\n      \"headers\": {\n        \"Authorization\": \"Bearer ${env:GITHUB_PAT}\"\n      }\n    }\n  }\n}\n```\n\nSet `GITHUB_PAT` in your shell profile (for example `export GITHUB_PAT=...` in `~/.zshrc`), then restart Cursor so it picks up the variable. Give the token only the repositories and permissions you want the Agent to have.\n\n### Several servers in one file\n\nEach server is one entry inside the same `mcpServers` object. Separate entries with a comma, and don't leave a comma after the last one:\n\n```json\n{\n  \"mcpServers\": {\n    \"playwright\": {\n      \"command\": \"npx\",\n      \"args\": [\"@playwright/mcp@latest\"]\n    },\n    \"notion\": {\n      \"url\": \"https://mcp.notion.com/mcp\"\n    }\n  }\n}\n```\n\n## Keep API keys out of mcp.json\n\nA project `.cursor/mcp.json` is meant to be committed, so never put real keys in it. Cursor resolves these variables in `command`, `args`, `env`, `url` and `headers`:\n\n- `${env:NAME}`: an environment variable.\n- `${userHome}`: your home folder.\n- `${workspaceFolder}`: the project root (the folder that contains `.cursor/mcp.json`).\n- `${workspaceFolderBasename}`: the project folder's name.\n- `${pathSeparator}` or `${/}`: the OS path separator.\n\nLocal (stdio) servers can also load variables from a file with `envFile`, for example `\"envFile\": \"${workspaceFolder}/.env\"`. Remote servers don't support `envFile`, so use `${env:NAME}` for them. Keep `.env` in `.gitignore`.\n\n```json\n{\n  \"mcpServers\": {\n    \"my-local-server\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"some-mcp-server\"],\n      \"envFile\": \"${workspaceFolder}/.env\"\n    }\n  }\n}\n```\n\n## Check that it works\n\n1. Open **Customize → MCPs**. The server should be listed with its toggle on.\n2. In the Agent chat, ask for something only that server can do, for example \"Use playwright to open https://example.com and tell me the page title\".\n3. Approve the tool call. Cursor asks for approval before running MCP tools unless your approval settings (Cursor Settings → Agents → Approvals & Execution) let them run; click the arrow next to the tool name to see the arguments it will send.\n\n## Common errors and fixes\n\n### The server doesn't show up\n\n- Check the path and name: the file must be `mcp.json` inside a `.cursor` folder, either in your home folder or in the project root.\n- Check the JSON. A trailing comma, a missing quote or a missing closing brace makes the file invalid. Paste it into any JSON validator.\n- Restart Cursor after editing the file.\n\n### Read the MCP logs\n\nOpen the Output panel (**Cmd+Shift+U** on Mac, **Ctrl+Shift+U** on Windows/Linux) and pick **MCP Logs** from the dropdown. It shows connection errors, authentication problems and server crashes, which usually name the fix.\n\n### \"command not found\" or the server exits immediately\n\n- Most local servers start with `npx` or `uvx`, so install Node.js (for `npx`) or uv (for `uvx`) first, then restart Cursor.\n- If Cursor still can't find it, use the full path to the program in `command` (run `which npx` on macOS/Linux or `where npx` on Windows to get it).\n- Run the same command in a terminal (for example `npx @playwright/mcp@latest`). If it errors there, the message tells you what's missing. If it starts and waits silently, the server works and the problem is in the config.\n- On Windows, some servers' READMEs (such as the official Filesystem server) launch `npx` through `cmd /c`: set `\"command\": \"cmd\"` and put `\"/c\", \"npx\"` at the start of `args`.\n\n### The server can't see my API key\n\nIf the server relies on variables set in your shell profile, make sure Cursor can see them and restart Cursor after changing the profile. For local servers, putting the key in `env` or an `envFile` avoids the problem.\n\n### Authentication fails on a remote server\n\n- For token servers, check the header format (`Authorization: Bearer <token>`), that the token hasn't expired, and that it has the permissions the tool needs.\n- For OAuth servers, remove the server in **Customize → MCPs** and add it again to restart the sign-in.\n\n### A Docker-based server won't start\n\nServers that run with `\"command\": \"docker\"` (such as the local version of the GitHub MCP Server) need Docker Desktop installed and running before Cursor starts them.\n\n### An npm-based server is stuck on an old version\n\nCursor's docs suggest removing the server in Customize, running `npm cache clean --force`, then adding it again.\n\n### Too many tools\n\nEvery server adds tools the Agent has to choose from. Switch off servers you're not using with their toggle in **Customize → MCPs**; disabled servers don't load or appear in chat, and you keep their config.\n\n## Stay safe with MCP servers\n\n- Install servers from the company or project that makes them. Our listings link to each official repo or docs page.\n- Use the narrowest key you can: read-only modes, restricted tokens, a single project or repository.\n- Read tool calls before approving them, especially ones that write, delete or spend money.\n- Be careful with servers that read outside content (web pages, issues, emails): that text can carry prompt-injection instructions.\n\n## Good servers to try first\n\n- [Context7](https://www.pluginstackai.com/plugins/context7/): current, version-specific library docs in the chat.\n- [GitHub MCP Server](https://www.pluginstackai.com/plugins/github-mcp-server/): issues, pull requests and Actions runs.\n- [Playwright MCP](https://www.pluginstackai.com/plugins/playwright-mcp/) or [Chrome DevTools MCP](https://www.pluginstackai.com/plugins/chrome-devtools-mcp/): let the Agent open and check your app in a real browser.\n- [Figma MCP Server](https://www.pluginstackai.com/plugins/figma-mcp/): design context from a Figma frame link.\n- [Linear MCP](https://www.pluginstackai.com/plugins/linear-mcp/) or [Notion MCP](https://www.pluginstackai.com/plugins/notion-mcp/): tickets and specs.\n- [Supabase MCP Server](https://www.pluginstackai.com/plugins/supabase-mcp/) or [Neon MCP Server](https://www.pluginstackai.com/plugins/neon-mcp/): your database (start in read-only mode).\n\nSee every server we list in [MCP Servers](https://www.pluginstackai.com/categories/mcp-servers/). Each page has setup steps checked against the official docs.\n\n## FAQ\n\n### Should I use the global or the project mcp.json?\n\nUse `~/.cursor/mcp.json` for personal tools you want everywhere, and `.cursor/mcp.json` for tools a project's team should share. Keep keys out of the project file with `${env:NAME}`.\n\n### Which transports does Cursor support?\n\nstdio (a local command Cursor starts), SSE and Streamable HTTP (both by URL). If a provider offers both a `/sse` and an `/mcp` endpoint, use the one its docs recommend for Cursor.\n\n### Can I turn a server off without deleting it?\n\nYes. Use the toggle next to it in **Customize → MCPs**.\n\n### Using Claude Code too?\n\nClaude Code reads the same kind of `mcpServers` entries but stores them differently. See [the best MCP servers for Claude Code](https://www.pluginstackai.com/guides/best-mcp-servers-for-claude-code/) for the `claude mcp add` commands.","sources":[{"label":"Cursor docs: Model Context Protocol (MCP)","url":"https://cursor.com/docs/context/mcp"},{"label":"Cursor help: MCP integrations","url":"https://cursor.com/help/customization/mcp"},{"label":"GitHub MCP Server: install in Cursor","url":"https://github.com/github/github-mcp-server/blob/main/docs/installation-guides/install-cursor.md"},{"label":"Playwright MCP README","url":"https://github.com/microsoft/playwright-mcp"},{"label":"Notion docs: Get started with MCP","url":"https://developers.notion.com/docs/get-started-with-mcp"},{"label":"Filesystem MCP server README (Windows config)","url":"https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem"}],"related":[{"slug":"context7","url":"https://www.pluginstackai.com/plugins/context7/"},{"slug":"github-mcp-server","url":"https://www.pluginstackai.com/plugins/github-mcp-server/"},{"slug":"playwright-mcp","url":"https://www.pluginstackai.com/plugins/playwright-mcp/"},{"slug":"figma-mcp","url":"https://www.pluginstackai.com/plugins/figma-mcp/"},{"slug":"notion-mcp","url":"https://www.pluginstackai.com/plugins/notion-mcp/"},{"slug":"cursor-rules","url":"https://www.pluginstackai.com/plugins/cursor-rules/"}]},{"slug":"best-mcp-servers-for-claude-code","title":"The best MCP servers for Claude Code","seoTitle":"Best MCP servers for Claude Code (with install commands)","description":"Ten official MCP servers worth adding to Claude Code, from GitHub and Context7 to Playwright, Sentry and Cloudflare, with the exact claude mcp add command for each.","kind":"Setup guide","url":"https://www.pluginstackai.com/guides/best-mcp-servers-for-claude-code/","published":"2026-10-20","updated":"2026-10-27","markdown":"Claude Code can already read, edit and run code in your project. MCP servers connect it to the things it can't see on its own: your GitHub issues, current library docs, a real browser, production errors, your tickets and your database. Below are ten official servers worth considering, the exact command to add each one, and how to fix the usual setup problems.\n\n## Short answer: where to start\n\n- **Almost everyone:** [GitHub](https://www.pluginstackai.com/plugins/github-mcp-server/) for issues and PRs, and [Context7](https://www.pluginstackai.com/plugins/context7/) for current library docs.\n- **Front-end work:** [Playwright](https://www.pluginstackai.com/plugins/playwright-mcp/) or [Chrome DevTools](https://www.pluginstackai.com/plugins/chrome-devtools-mcp/) so Claude can see the running page.\n- **Team tools:** [Sentry](https://www.pluginstackai.com/plugins/sentry-mcp/), [Linear](https://www.pluginstackai.com/plugins/linear-mcp/) and [Notion](https://www.pluginstackai.com/plugins/notion-mcp/) if your team already uses them.\n- **Data and infrastructure:** [Supabase](https://www.pluginstackai.com/plugins/supabase-mcp/) (or [Neon](https://www.pluginstackai.com/plugins/neon-mcp/)) and [Cloudflare](https://www.pluginstackai.com/plugins/cloudflare-mcp/), scoped to read-only or one project while you test.\n\nAdd two or three, not all ten. The reasons are under \"How we picked\".\n\n## How we picked\n\n- **Official**: published by the company behind the service (or by Microsoft and Google for the browser tools), so it tracks the real API.\n- **Fills a gap**: it gives Claude Code something it can't already do with its built-in tools.\n- **Can be scoped down**: OAuth sign-in, read-only modes or narrow tokens, so you don't have to hand over full access.\n\nThis isn't a ranking, and no one paid to be included. Pick the few that match how you work. Each connected server takes some of Claude's context window, because its tool names and server instructions load into every session, so fewer well-chosen servers beat many.\n\n## Adding any MCP server to Claude Code\n\nRun these in your terminal, not inside a `claude` session. A remote (hosted) server takes `--transport http` and a URL:\n\n```bash\nclaude mcp add --transport http <name> <url>\n```\n\nA local server takes the command that starts it after `--`. Everything after `--` goes to the server untouched, so flags like `-y` aren't read as Claude Code options:\n\n```bash\nclaude mcp add <name> -- npx -y <package>\n```\n\nThen check and manage your servers:\n\n```bash\nclaude mcp list          # every server and its status\nclaude mcp get <name>    # details for one server\nclaude mcp remove <name> # remove it\n```\n\nInside a session, `/mcp` shows status and handles OAuth sign-in for servers that need it.\n\n### Pick a scope\n\n- `--scope local` (default): just you, this project. Stored in `~/.claude.json`.\n- `--scope user`: just you, every project. Also in `~/.claude.json`.\n- `--scope project`: shared with everyone who clones the repo, through a `.mcp.json` file in the project root.\n\n## The servers\n\n### 1. GitHub MCP Server: issues, PRs and Actions\n\nGitHub's official server lets Claude read repositories, triage issues, review pull requests and check why a GitHub Actions run failed. The hosted server takes a personal access token as a header. Create a fine-grained token with access to only the repositories you want Claude to work with:\n\n```bash\nclaude mcp add --transport http github https://api.githubcopilot.com/mcp/ \\\n  --header \"Authorization: Bearer YOUR_GITHUB_PAT\"\n```\n\nFor read-only tools, GitHub's remote-server docs give `https://api.githubcopilot.com/mcp/readonly` as the URL. `claude mcp add` doesn't check the token when it saves, so run `/mcp` afterwards: a bad token shows an ✘ and an HTTP 401. More: [GitHub MCP Server on PluginStack](https://www.pluginstackai.com/plugins/github-mcp-server/).\n\n### 2. Context7: current library docs\n\nContext7 pulls version-specific documentation and code examples into the conversation, which helps with libraries that changed after the model was trained. The quickest setup is Context7's `ctx7` command, which signs you in, then lets you choose CLI + Skills or MCP mode; `--claude` targets Claude Code (needs Node.js 22.13 or newer):\n\n```bash\nnpx ctx7 setup --claude\n```\n\nOr add the hosted server by hand. An API key is optional but recommended for higher rate limits (free keys at context7.com/dashboard):\n\n```bash\nclaude mcp add --scope user --header \"Authorization: Bearer YOUR_API_KEY\" \\\n  --transport http context7 https://mcp.context7.com/mcp\n```\n\nAdd \"use context7\" to a prompt, or a line in `CLAUDE.md` telling Claude to use it for library questions. More: [Context7](https://www.pluginstackai.com/plugins/context7/).\n\n### 3. Playwright MCP: drive a real browser\n\nMicrosoft's Playwright server lets Claude open pages, click, fill forms and read the result, which is handy for checking that a UI change actually works. It needs Node.js 18 or newer:\n\n```bash\nclaude mcp add playwright -- npx -y @playwright/mcp@latest\n```\n\nThe first `claude mcp list` can show \"Failed to connect\" while `npx` downloads the package; run it again after a moment. Microsoft notes that for coding agents its Playwright CLI with skills can be more token-efficient than the MCP server. More: [Playwright MCP](https://www.pluginstackai.com/plugins/playwright-mcp/).\n\n### 4. Chrome DevTools MCP: debug and profile in Chrome\n\nGoogle's Chrome DevTools server lets Claude control and inspect a live Chrome browser: performance traces, network requests and console messages. It needs a current Node.js LTS and Chrome:\n\n```bash\nclaude mcp add chrome-devtools --scope user npx chrome-devtools-mcp@latest\n```\n\nGoogle collects usage statistics by default; add `--no-usage-statistics` to the server's arguments to opt out. Performance tools may send trace URLs to the CrUX API unless you pass `--no-performance-crux`. More: [Chrome DevTools MCP](https://www.pluginstackai.com/plugins/chrome-devtools-mcp/).\n\n### 5. Sentry MCP: production errors\n\nSentry's hosted server is built for coding agents: it lets Claude look up Sentry issues, errors and traces and help you debug them:\n\n```bash\nclaude mcp add --transport http sentry https://mcp.sentry.dev/mcp\n```\n\nThen run `/mcp`, select `sentry` and choose **Authenticate** to sign in through your browser. Sentry also offers a Claude Code plugin (`claude plugin marketplace add getsentry/sentry-mcp`, then `claude plugin install sentry-mcp@sentry-mcp`). More: [Sentry MCP](https://www.pluginstackai.com/plugins/sentry-mcp/).\n\n### 6. Linear MCP: tickets and projects\n\nLinear's official server lets Claude find, create and update issues, projects and comments:\n\n```bash\nclaude mcp add --transport http linear-server https://mcp.linear.app/mcp\n```\n\nRun `/mcp` to sign in. For read-only access, Linear offers `https://mcp.linear.app/mcp/readonly`. More: [Linear MCP](https://www.pluginstackai.com/plugins/linear-mcp/).\n\n### 7. Notion MCP: specs and docs\n\nNotion's hosted server lets Claude search, read, create and update the pages and databases you can access, so specs and notes don't have to be pasted in:\n\n```bash\nclaude mcp add --transport http notion https://mcp.notion.com/mcp\n```\n\nRun `/mcp` to complete the OAuth sign-in. Workspace members can connect; guests can't. More: [Notion MCP](https://www.pluginstackai.com/plugins/notion-mcp/).\n\n### 8. Supabase MCP (or Neon): your database\n\nSupabase's server lets Claude manage tables, fetch project config and query data. Supabase asks you to read its MCP security best practices first, because connecting an LLM to a database carries real risk. Scoping the server to one project in read-only mode is a sensible start:\n\n```bash\nclaude mcp add --scope project --transport http supabase \\\n  \"https://mcp.supabase.com/mcp?project_ref=<your-project-ref>&read_only=true\"\n```\n\nRun `/mcp` to sign in to Supabase. On Neon instead? `npx neon@latest init` signs you in and configures Neon's server for Claude Code, and `https://mcp.neon.tech/mcp?readonly=true` limits it to reads. More: [Supabase MCP Server](https://www.pluginstackai.com/plugins/supabase-mcp/), [Neon MCP Server](https://www.pluginstackai.com/plugins/neon-mcp/).\n\n### 9. Figma MCP Server: designs to code\n\nFigma's hosted server brings design context from your Figma files into Claude Code, so the code it writes can match your designs:\n\n```bash\nclaude mcp add --transport http figma https://mcp.figma.com/mcp\n```\n\nSign in through Figma's OAuth flow, then paste a link to a frame or layer into your prompt. More: [Figma MCP Server](https://www.pluginstackai.com/plugins/figma-mcp/).\n\n### 10. Cloudflare MCP server: your Cloudflare account\n\nCloudflare's recommended server covers the whole Cloudflare API through a few code-mode tools, so Claude can inspect and change zones, Workers, DNS and more. Cloudflare also runs separate hosted servers for docs, Browser Run and containers. Cloudflare's own README now marks its older observability and bindings servers as deprecated in favour of this one:\n\n```bash\nclaude mcp add --transport http cloudflare-api https://mcp.cloudflare.com/mcp\n```\n\nRun `/mcp` to sign in with Cloudflare OAuth and choose the permissions to grant. For CI, send a scoped API token as a Bearer header instead. It can change real settings, so review each action. More: [Cloudflare MCP servers](https://www.pluginstackai.com/plugins/cloudflare-mcp/).\n\n### Also worth a look\n\n- Web search and scraping: [Exa](https://www.pluginstackai.com/plugins/exa-mcp/), [Firecrawl](https://www.pluginstackai.com/plugins/firecrawl-mcp/) and [Brave Search](https://www.pluginstackai.com/plugins/brave-search-mcp/).\n- Payments: [Stripe MCP](https://www.pluginstackai.com/plugins/stripe-mcp/). It can change a real account, so review every action.\n\n## Servers you can usually skip\n\nClaude Code already reads and edits files in your project and loads project instructions from `CLAUDE.md` (or from `AGENTS.md` when there is no `CLAUDE.md`, on recent versions; see [Cursor rules vs AGENTS.md](https://www.pluginstackai.com/guides/cursor-rules-vs-agents-md/)). That makes general-purpose [Filesystem](https://www.pluginstackai.com/plugins/filesystem-mcp/) and [Memory](https://www.pluginstackai.com/plugins/memory-mcp/) servers mostly redundant in Claude Code. They're more useful when you want the same setup across several MCP apps, or access to folders outside the project.\n\n## Share servers with your team\n\nAdd a server with `--scope project` (or write the entry by hand) and commit the resulting `.mcp.json`. Teammates get a prompt to approve each project server the first time Claude Code sees it. Keep secrets out of the file with environment variables: `.mcp.json` expands `${VAR}` and `${VAR:-default}`.\n\n_.mcp.json_\n\n```json\n{\n  \"mcpServers\": {\n    \"github\": {\n      \"type\": \"http\",\n      \"url\": \"https://api.githubcopilot.com/mcp/\",\n      \"headers\": {\n        \"Authorization\": \"Bearer ${GITHUB_PAT}\"\n      }\n    },\n    \"playwright\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@playwright/mcp@latest\"]\n    }\n  }\n}\n```\n\nRemote entries need a `\"type\"` (`\"http\"`, `\"sse\"` or `\"ws\"`). An entry with a `url` but no `type` is read as a stdio server and skipped with an error.\n\nIf a remote server gets an empty token and answers 401, check the variable name. In remote `url` and `headers` values, Claude Code deliberately reads some well-known credential variables as empty, such as `ANTHROPIC_API_KEY` or `NPM_TOKEN`, so they can't leak to a third-party server. Use a name of your own, like `GITHUB_PAT` above.\n\n## Common errors and fixes\n\n### /mcp says \"No MCP servers configured\"\n\n- You added the server from a different folder. Local-scope servers belong to the project you ran `claude mcp add` in. Re-add it here, or use `--scope user`.\n- You edited the wrong file. Claude Code reads `~/.claude.json` and `<project>/.mcp.json`, not paths like `~/.claude/mcp.json`.\n- An entry in `.mcp.json` is malformed. Run `claude mcp list` and look for the parse warning that names the field.\n\n### \"Failed to connect\" or \"Connection error\"\n\n- Run `claude mcp get <name>`: on recent versions it shows the HTTP status and the server's error text.\n- For a remote server, test the URL with `curl -I <url>` (`curl.exe` in PowerShell). A 404 or 405 still means it's reachable, since many MCP endpoints only answer POST; a 401 or 403 means you need to sign in or fix your token.\n- For a local server, run its command directly (for example `npx -y @playwright/mcp@latest`). If it errors, the message names what's missing. If it starts and waits, check that you put `--` before the command when adding it.\n\n### Timed out at startup\n\nThe first run of an `npx` server can be slow while it downloads. Raise the startup timeout (in milliseconds):\n\n```bash\nMCP_TIMEOUT=60000 claude\n```\n\n### \"already exists\"\n\nA server with that name already exists in that scope. Remove it with `claude mcp remove <name>` (add `--scope` if it exists in more than one) or pick another name.\n\n### Connected, but no tools\n\nThe server is usually missing a required environment variable such as an API key. Pass it with `--env KEY=value` (before `--`) or in the entry's `env` field.\n\n### Edits to .mcp.json don't take effect\n\nClaude Code reads `.mcp.json` when a session starts, so exit and restart. If you rejected the server earlier, reset your choices with `claude mcp reset-project-choices`.\n\n### OAuth sign-in fails\n\nRun `/mcp`, select the server and choose **Authenticate** again. If the browser doesn't open, copy the URL from the terminal into your browser.\n\n## Building your own server?\n\nAnthropic's `mcp-server-dev` plugin can scaffold one: run `/plugin install mcp-server-dev@claude-plugins-official` inside Claude Code, then `/mcp-server-dev:build-mcp-server`. Test it with the [MCP Inspector](https://www.pluginstackai.com/plugins/mcp-inspector/), or start from a framework like [FastMCP](https://www.pluginstackai.com/plugins/fastmcp/). If you want ready-made prompts for this, our own (paid) [Agent Builder Rules + Prompts](https://www.pluginstackai.com/packs/) pack includes MCP server scaffolding prompts and rules for Claude Code and Cursor.\n\n## FAQ\n\n### How many MCP servers should I add?\n\nOnly the ones you'll use. Each server's tool names and instructions take up context in every session. Turn one off in the `/mcp` panel to keep its config without loading it, and remove the ones you've stopped using.\n\n### Can I reuse servers I set up in Claude Desktop or claude.ai?\n\nYes. `claude mcp add-from-claude-desktop` imports Claude Desktop servers (macOS and WSL). Connectors you added at claude.ai show up automatically when you sign in to Claude Code with that claude.ai account.\n\n### Using Cursor too?\n\nMost of these servers work in Cursor as well. See [how to add an MCP server to Cursor](https://www.pluginstackai.com/guides/add-mcp-server-to-cursor/).","sources":[{"label":"Claude Code docs: Connect Claude Code to tools via MCP","url":"https://code.claude.com/docs/en/mcp"},{"label":"Claude Code docs: Connect to MCP servers (quickstart and troubleshooting)","url":"https://code.claude.com/docs/en/mcp-quickstart"},{"label":"GitHub MCP Server README and remote-server docs","url":"https://github.com/github/github-mcp-server"},{"label":"Context7: MCP clients","url":"https://context7.com/docs/resources/all-clients"},{"label":"Playwright MCP README","url":"https://github.com/microsoft/playwright-mcp"},{"label":"Chrome DevTools MCP: client configurations","url":"https://github.com/ChromeDevTools/chrome-devtools-mcp/blob/main/docs/client-configurations.md"},{"label":"Sentry MCP README","url":"https://github.com/getsentry/sentry-mcp"},{"label":"Linear docs: MCP server","url":"https://linear.app/docs/mcp"},{"label":"Notion docs: Get started with MCP","url":"https://developers.notion.com/docs/get-started-with-mcp"},{"label":"Supabase MCP README","url":"https://github.com/supabase-community/supabase-mcp"},{"label":"Neon MCP Server README","url":"https://github.com/neondatabase/mcp-server-neon"},{"label":"Cloudflare MCP server repo (servers, URLs, deprecations)","url":"https://github.com/cloudflare/mcp-server-cloudflare"},{"label":"Cloudflare API MCP server README","url":"https://github.com/cloudflare/mcp"},{"label":"Figma docs: Remote MCP server installation","url":"https://developers.figma.com/docs/figma-mcp-server/remote-server-installation/"}],"related":[{"slug":"claude-code","url":"https://www.pluginstackai.com/plugins/claude-code/"},{"slug":"github-mcp-server","url":"https://www.pluginstackai.com/plugins/github-mcp-server/"},{"slug":"context7","url":"https://www.pluginstackai.com/plugins/context7/"},{"slug":"playwright-mcp","url":"https://www.pluginstackai.com/plugins/playwright-mcp/"},{"slug":"sentry-mcp","url":"https://www.pluginstackai.com/plugins/sentry-mcp/"},{"slug":"supabase-mcp","url":"https://www.pluginstackai.com/plugins/supabase-mcp/"},{"slug":"cloudflare-mcp","url":"https://www.pluginstackai.com/plugins/cloudflare-mcp/"}]},{"slug":"cursor-rules-vs-agents-md","title":"Cursor rules vs AGENTS.md","seoTitle":"Cursor rules vs AGENTS.md: which to use (and .cursorrules)","description":"Cursor rules (.cursor/rules .mdc), the legacy .cursorrules file and AGENTS.md compared: what each does, which tools read it, when to use each, with examples.","kind":"Setup guide","url":"https://www.pluginstackai.com/guides/cursor-rules-vs-agents-md/","published":"2026-10-27","updated":"2026-10-27","markdown":"Cursor gives you three ways to hand your coding agent standing instructions: project rules in `.cursor/rules`, an `AGENTS.md` file, and the older `.cursorrules` file. They overlap, and they work differently. This guide explains each one, which tools read it, and which to pick, with copy-paste examples checked against Cursor's docs and the agents.md site.\n\n## Quick answer\n\n- **Use `AGENTS.md`** for plain, always-relevant project instructions (setup, test and lint commands, code style). It is an open format that many coding agents read, and Cursor reads it in your project root and in subfolders.\n- **Use `.cursor/rules/*.mdc`** when you need Cursor to apply an instruction only sometimes: for certain file patterns, when the agent judges it relevant, or only when you @-mention it.\n- **Don't start with `.cursorrules`.** Cursor calls it legacy and says it will be deprecated. If you have one, migrate it.\n- **Using several agents?** Put the shared basics in `AGENTS.md` and keep Cursor-specific, file-scoped rules in `.cursor/rules`.\n\n## The three options at a glance\n\n- **Project rules**: `.mdc` files in `.cursor/rules/`. Cursor-only. YAML frontmatter controls when each rule loads. Supports folders and globs.\n- **AGENTS.md**: one markdown file with no required fields or frontmatter. Cross-tool. Nested files in subfolders apply to that part of the repo.\n- **.cursorrules**: a single file in the project root. Legacy. Always-on behaviour only, with no scoping.\n\nCursor also has **User Rules** (your personal preferences across projects, set in Customize) and **Team Rules** (managed from the dashboard on Team and Enterprise plans). Cursor applies them in this order when guidance conflicts: Team Rules, then Project Rules, then User Rules.\n\n## Cursor project rules (.cursor/rules)\n\nProject rules live in `.cursor/rules` as `.mdc` files and are meant to be committed to git. The extension matters: Cursor's docs say a plain `.md` file in that folder is ignored because it has no frontmatter. Folders inside `.cursor/rules` are fine.\n\n_Rule files_\n\n```text\n.cursor/rules/\n  react-patterns.mdc      # recognized\n  api-guidelines.md       # ignored (wrong extension)\n  frontend/\n    components.mdc        # recognized\n```\n\nThree frontmatter fields decide when a rule is included:\n\n- `alwaysApply: true`: included in every chat session. Globs and description are ignored.\n- `globs` set and `alwaysApply: false`: attached automatically when a matching file is in context (**Apply to Specific Files**).\n- `description` set, no globs, `alwaysApply: false`: the agent reads the description and pulls the rule in when relevant (**Apply Intelligently**).\n- None of them: the rule is only used when you @-mention it in chat (**Apply Manually**).\n\nA rule that applies only to React components:\n\n_.cursor/rules/components.mdc_\n\n```text\n---\nglobs: src/components/**/*.tsx\nalwaysApply: false\n---\n\n- Use named exports, not default exports\n- Co-locate styles in a module CSS file next to the component\n- Keep components under 200 lines\n```\n\nA rule the agent can choose to load, plus a file reference. Cursor's docs note that `@template.ts` tells the agent where to look; the file is read when needed, not pasted into the prompt:\n\n_.cursor/rules/services.mdc_\n\n```text\n---\ndescription: RPC service conventions and patterns for the backend\nalwaysApply: false\n---\n\n- Define each service in its own file under `src/services/`\n- Validate inputs at the service boundary\n- Read `@service-template.ts` before creating a new service\n```\n\nCreate one by typing `/create-rule` in Agent chat, or open **Customize**, go to **Rules** and click **Add Rule**. Cursor's tips: keep each rule under 500 lines, split big ones into smaller composable rules, point to example files instead of copying code, and add a rule only after you see the agent make the same mistake more than once. Rules don't affect Cursor Tab or other AI features.\n\n## AGENTS.md\n\n[AGENTS.md](https://www.pluginstackai.com/plugins/agents-md/) is an open format described at agents.md as \"a README for agents\". It is plain markdown with no required fields: headings are up to you. The agents.md site is stewarded by the Agentic AI Foundation under the Linux Foundation. A typical file:\n\n_AGENTS.md_\n\n```text\n# AGENTS.md\n\n## Setup commands\n- Install deps: `pnpm install`\n- Start dev server: `pnpm dev`\n- Run tests: `pnpm test`\n\n## Code style\n- TypeScript strict mode\n- Single quotes, no semicolons\n```\n\n### How Cursor treats it\n\nCursor supports `AGENTS.md` in the project root and in subdirectories. Nested files are combined with their parents, and the more specific one wins when instructions conflict. Cursor describes it as a simple alternative to `.cursor/rules` for straightforward cases: no metadata, no globs, no rule types.\n\n_Nested AGENTS.md_\n\n```text\nproject/\n  AGENTS.md              # global instructions\n  frontend/\n    AGENTS.md            # frontend-specific\n  backend/\n    AGENTS.md            # backend-specific\n```\n\n### Which tools read AGENTS.md\n\nThe agents.md site lists these among supported tools: Codex, Jules, Factory, Aider, goose, OpenCode, Zed, Warp, VS Code, Devin, Junie, Amp, Cursor, RooCode, Gemini CLI, Kilo Code, Windsurf, Augment Code and GitHub Copilot's coding agent. Two are worth knowing about:\n\n- **Claude Code** reads `AGENTS.md` too, but only when your project has no `CLAUDE.md` (or `CLAUDE.local.md`) in the working directory or above it, and it needs Claude Code v2.1.277 or later. If you have both, it reads `CLAUDE.md` only, unless you change the **Project instructions** setting in `/config`.\n- **Aider and Gemini CLI** need a one-line setting pointing at `AGENTS.md`; the agents.md FAQ shows each one.\n\nSee [Codex CLI](https://www.pluginstackai.com/plugins/codex-cli/), [OpenCode](https://www.pluginstackai.com/plugins/opencode/) and [Claude Code](https://www.pluginstackai.com/plugins/claude-code/) for those tools.\n\n### Conflicts\n\nPer agents.md, the closest `AGENTS.md` to the file being edited wins, and explicit instructions you type in chat override everything.\n\n## .cursorrules (legacy)\n\nThe `.cursorrules` file in your project root is the original format. Cursor's help center calls it legacy and says it will be deprecated. In March 2026 a Cursor team member said on the forum that it should still work for now, but that `.cursor/rules` is the actively supported format, and that when both exist the `.mdc` rules take precedence where they overlap. Treat it as something to move off, not build on.\n\n### Migrate it\n\n1. Create a new rule: open the command palette and run **New Cursor Rule** (or use `/create-rule`).\n2. Copy the contents of `.cursorrules` into the new rule.\n3. Set the rule type to **Always Apply**, which matches the old behaviour.\n4. Delete `.cursorrules` from your project root.\n\nIf the instructions aren't Cursor-specific, you could put them in `AGENTS.md` instead and skip the rule file.\n\n## When to use which\n\n- **One small project, only Cursor:** either works. `AGENTS.md` is faster to write; a single always-apply rule is equivalent.\n- **Team uses Cursor plus Claude Code, Codex or another agent:** `AGENTS.md` for the shared facts, so nobody maintains duplicate files.\n- **Different conventions for different file types** (React components versus SQL migrations): `.cursor/rules` with globs. `AGENTS.md` has no way to scope by file pattern, other than nesting by folder.\n- **A long reference the agent should only load when relevant:** an Apply Intelligently rule with a good description.\n- **A checklist you want to trigger by hand** (release steps, migration template): an Apply Manually rule you @-mention.\n- **Personal preferences** such as reply style: User Rules, not the repo.\n\n### Using both\n\nCursor loads both, so a common setup is a short `AGENTS.md` for commands and conventions plus a few scoped `.mdc` rules. Avoid saying the same thing in both places: if the two disagree you're leaving the agent to guess. To keep a single source of truth for Claude Code as well, Anthropic's docs suggest a `CLAUDE.md` that imports `AGENTS.md`:\n\n_CLAUDE.md_\n\n```text\n@AGENTS.md\n\n## Claude Code\n\nUse plan mode for changes under `src/billing/`.\n```\n\nA symlink (`ln -s AGENTS.md CLAUDE.md`) also works if you need no Claude-specific content, but Anthropic notes the import is safer on Windows.\n\n## What to put in either one\n\n- Exact commands: install, build, test, lint, and how to run a single test.\n- Conventions the agent can't infer from the code, such as naming and folder layout.\n- Hard rules: files that are generated, directories not to touch, checks to run before finishing.\n- Pointers to canonical example files rather than copied code.\n\nCursor's docs advise against pasting whole style guides (use a linter), documenting every common command, and covering rare edge cases. Instructions are guidance for the model, not enforcement: for hard security limits, use permissions and review rather than a rules file.\n\n## FAQ\n\n### Does Cursor read AGENTS.md?\n\nYes. Cursor supports `AGENTS.md` in the project root and in subdirectories.\n\n### Should I replace .cursor/rules with AGENTS.md?\n\nOnly if you don't need scoping. Rules can attach by glob, by description or by @-mention; `AGENTS.md` is always plain instructions.\n\n### Can I use .md files in .cursor/rules?\n\nNo. Cursor's docs say project rules must use the `.mdc` extension and a plain `.md` file there is ignored. If you prefer plain markdown, use `AGENTS.md`.\n\n### Why isn't my rule applying?\n\nCheck the rule type. For Apply Intelligently, make sure a description is set. For Apply to Specific Files, make sure the glob matches the files in context.\n\n### Do rules apply to Cursor Tab?\n\nNo. Cursor says rules don't impact Cursor Tab or other AI features.\n\n### Setting up MCP servers too?\n\nMCP servers are configured separately in `mcp.json`. See [how to add an MCP server to Cursor](https://www.pluginstackai.com/guides/add-mcp-server-to-cursor/).","sources":[{"label":"Cursor docs: Rules","url":"https://cursor.com/docs/rules"},{"label":"Cursor help: Rules (including migrating from .cursorrules)","url":"https://cursor.com/help/customization/rules"},{"label":"Cursor forum: .cursorrules is legacy, use .cursor/rules (staff reply, March 2026)","url":"https://forum.cursor.com/t/project-rule-in-cursorrules-not-applied-in-agent-chat-works-in-cursor-rules/154309"},{"label":"agents.md: the AGENTS.md format, FAQ and supported tools","url":"https://agents.md/"},{"label":"agentsmd/agents.md on GitHub","url":"https://github.com/agentsmd/agents.md"},{"label":"Claude Code docs: How Claude remembers your project (CLAUDE.md and AGENTS.md)","url":"https://code.claude.com/docs/en/memory"}],"related":[{"slug":"cursor-rules","url":"https://www.pluginstackai.com/plugins/cursor-rules/"},{"slug":"agents-md","url":"https://www.pluginstackai.com/plugins/agents-md/"},{"slug":"cursor-plugins","url":"https://www.pluginstackai.com/plugins/cursor-plugins/"},{"slug":"codex-cli","url":"https://www.pluginstackai.com/plugins/codex-cli/"},{"slug":"claude-code","url":"https://www.pluginstackai.com/plugins/claude-code/"},{"slug":"opencode","url":"https://www.pluginstackai.com/plugins/opencode/"}]},{"slug":"install-claude-code-plugins","title":"How to install Claude Code plugins","seoTitle":"How to install Claude Code plugins (marketplaces, scopes & fixes)","description":"Install Claude Code plugins from the official marketplace or any GitHub repo: /plugin commands, install scopes, updates, safety checks and fixes for common errors.","kind":"Setup guide","url":"https://www.pluginstackai.com/guides/install-claude-code-plugins/","published":"2026-10-21","updated":"2026-10-21","markdown":"Claude Code plugins bundle skills, subagents, hooks and MCP servers so you can add a whole workflow or integration in one step. This guide covers installing from Anthropic's official marketplace and from other repositories, choosing a scope, keeping plugins updated, checking what a plugin can do before you trust it, and fixing the errors people hit most.\n\n## Quick answer\n\n1. Open a terminal in your project and start Claude Code with `claude`.\n2. Run `/plugin` to browse the **Discover** tab, or open one plugin's details directly with `/plugin install <name>@claude-plugins-official`.\n3. Read what the plugin will install, then choose a scope: you (every project), everyone on this repository, or you in this repository only.\n4. Type `/` and look for the plugin's skills, which appear as `/plugin-name:skill-name`.\n\n`/plugin` only works inside a Claude Code terminal session. To install from a script or a plain shell, use `claude plugin install` instead (see below).\n\n## What a plugin is (and when you need one)\n\nA plugin is a folder of components that Claude Code installs and loads as one unit: **skills** (SKILL.md instructions), **agents** (subagents Claude can delegate to), **hooks** (commands that run at points such as after every edit) and **MCP or LSP servers**. Plugins come from a **marketplace**, which is just a catalog: a repository with a `.claude-plugin/marketplace.json` file listing plugins and where to fetch each one.\n\nYou don't need a plugin for a single skill or a single MCP server. A skill saved in `~/.claude/skills/` already works in every project (see [how to create an Agent Skill](https://www.pluginstackai.com/guides/how-to-create-agent-skills/)), and one MCP server is a single `claude mcp add` command (see [the best MCP servers for Claude Code](https://www.pluginstackai.com/guides/best-mcp-servers-for-claude-code/)). Plugins are worth it when you want several pieces packaged together, with updates from the marketplace.\n\n## Install from the official marketplace\n\nClaude Code adds Anthropic's official marketplace, `claude-plugins-official`, the first time you start an interactive terminal session. It lists plugins Anthropic maintains plus plugins from partners and other authors. This example installs `commit-commands`, which adds commands for committing, pushing and opening pull requests:\n\n_Inside a Claude Code session_\n\n```text\n/plugin install commit-commands@claude-plugins-official\n```\n\n1. The command opens the plugin's details instead of installing straight away.\n2. Check **Will install**: the commands, agents, skills, hooks and MCP and LSP servers the plugin adds. For plugins in the official marketplace, a **Context cost** estimate shows what it adds to every message and what its skills add once loaded.\n3. Pick a scope (next section). Claude Code installs the plugin and any plugins it depends on.\n4. If the summary says `Plugin is now active.`, you're done. If it says `Run /reload-plugins to apply.`, Claude Code runs that reload for you when the panel closes.\n\nThen type `/` and look for `/commit-commands:commit`. The **Installed** tab in `/plugin` and `claude plugin list` in your shell also list the plugin with its scope.\n\n### Pick a scope\n\n- **User** (Install for you): every project on this machine. Saved in `~/.claude/settings.json`.\n- **Project** (Install for all collaborators on this repository): saved in `.claude/settings.json`, which you commit. That turns the plugin on for teammates but doesn't download it for them, so each person runs `claude plugin install <plugin>@<marketplace> --scope project` once.\n- **Local** (Install for you, in this repo only): saved in `.claude/settings.local.json`.\n\nIf the same plugin is set at several scopes, local beats project and project beats user.\n\n## Install from your shell, the desktop app or VS Code\n\nFrom a shell or setup script, without starting a session (user scope unless you pass `--scope`):\n\n```bash\nclaude plugin install commit-commands@claude-plugins-official\nclaude plugin install commit-commands@claude-plugins-official --scope project\n```\n\nOn a machine where nobody has opened an interactive Claude Code session yet, the official marketplace isn't registered, so add it first with `claude plugin marketplace add anthropics/claude-plugins-official`. Shell installs load the next time you start Claude Code, or after `/reload-plugins` in an open session.\n\n- **Desktop app** (local or SSH session in the Code tab): click **+** next to the prompt box, choose **Add plugins**, select the plugin and a scope.\n- **VS Code extension**: type `/plugins` to open **Manage plugins** and click **Install** on the Plugins tab. If the list is empty, add `anthropics/claude-plugins-official` on the Marketplaces tab first.\n- **Cloud sessions** (including claude.ai/code) have no plugin browser and don't load the plugins installed on your machine.\n\nThe terminal, the desktop app's local sessions and the VS Code extension share the same settings files, so a user-scope plugin installed in one shows up in the other two.\n\n## Install from other marketplaces\n\nMany plugins live in their authors' own marketplaces, usually a GitHub repository. Add the marketplace once, then install by `plugin@marketplace-name`:\n\n```text\n/plugin marketplace add <owner>/<repo>\n/plugin install <plugin>@<marketplace-name>\n```\n\nClaude Code prints the marketplace name when it adds it. Two real examples from our directory:\n\n_Android Skills (Google)_\n\n```text\n/plugin marketplace add android/skills\n/plugin install android-skills@android-skills\n```\n\n_Apify MCP Server + skills_\n\n```text\n/plugin marketplace add apify/apify-claude-code-plugin\n/plugin install apify@apify\n```\n\nAnthropic also runs two other general marketplaces you add yourself: the community marketplace (`/plugin marketplace add anthropics/claude-plugins-community`, install with `@claude-community`) and a small demo marketplace in `anthropics/claude-code` (named `claude-code-plugins`). Older tutorials often add the demo one; most of its plugins, such as `code-review` and `commit-commands`, are also in the official marketplace, so install them from there to avoid duplicates.\n\n`/plugin marketplace add` also accepts a full git URL, a local folder or an `https://` URL to a `marketplace.json`. Recent versions can add and install in one step with `--marketplace`, for example `/plugin install deploy-helper --marketplace your-org/plugins` (Claude Code v2.1.275 or later in a session, v2.1.292 or later for `claude plugin install`).\n\n## Plugins worth trying first\n\nThis isn't a ranking and nobody paid to be listed. Each name below is in the official marketplace, so install it with `/plugin install <name>@claude-plugins-official`.\n\n- **From Anthropic**: `commit-commands` (commit, push, open a PR), `code-review` (multi-agent review of a pull request), `feature-dev` (a guided feature workflow with exploration, architecture and review agents) and `security-guidance` (security review of the code Claude writes).\n- **Code intelligence**: language-server plugins such as `typescript-lsp` and `pyright-lsp` let Claude see type errors after its edits and navigate by symbol. Install the language server itself first; for TypeScript that's `npm install -g typescript-language-server typescript`.\n- **Services you already use**: the official marketplace includes plugins named `context7`, `github`, `playwright`, `sentry`, `supabase`, `linear`, `notion` and `figma`. Our listings explain each tool: [Context7](https://www.pluginstackai.com/plugins/context7/), [GitHub MCP Server](https://www.pluginstackai.com/plugins/github-mcp-server/), [Playwright MCP](https://www.pluginstackai.com/plugins/playwright-mcp/), [Sentry MCP](https://www.pluginstackai.com/plugins/sentry-mcp/), [Supabase MCP](https://www.pluginstackai.com/plugins/supabase-mcp/).\n- **Skills**: `skill-creator` helps you write, improve and test your own skills.\n\n[Serena](https://www.pluginstackai.com/plugins/serena/) also appears in the official marketplace, but its maintainers ask users to install it with uv instead because marketplace entries can carry outdated commands. When a tool's own docs give a different install path, follow the tool's docs.\n\nEach enabled plugin adds the names and descriptions of its skills, agents and commands to Claude's context on every turn, and its MCP servers run alongside each session. Install the few you'll use. To see what an installed plugin costs, run `claude plugin details <name>` and read the `Always-on` line; the **Installed** tab groups plugins you haven't used recently under **Not used recently**.\n\n## Check a plugin before you trust it\n\nA plugin runs with your user permissions. Its hooks, MCP servers and language servers run outside Claude Code's sandbox, and its skills become instructions Claude follows. Anthropic's install screen says it plainly: Anthropic doesn't control what MCP servers, files or other software plugins include.\n\n- Run `claude plugin marketplace list` to see where each marketplace came from.\n- In the plugin's details pane, choose **Open homepage** or **View on GitHub** and read `hooks/hooks.json` (what each hook runs), `.mcp.json` (each server's command or URL) and anything in `bin/`.\n- Prefer plugins from the company behind the service. Names such as `claude-plugins-official` are reserved: Claude Code only accepts them from `github.com/anthropics/` repositories, so a third-party catalog can't pose as Anthropic's.\n- Remember that updates can change what you reviewed. Auto-update is on by default for the official marketplace and off for third-party ones.\n\n## Update, disable or remove plugins\n\nRun `/plugin` and press Tab to reach **Installed**. Select a plugin to disable, update or uninstall it, or press Space to toggle it. From your shell:\n\n```bash\nclaude plugin list\nclaude plugin disable <plugin>@<marketplace>\nclaude plugin enable <plugin>@<marketplace>\nclaude plugin update <plugin>@<marketplace>\nclaude plugin uninstall <plugin>@<marketplace> --scope project\n```\n\nUpdated plugins load in your next session, or after `/reload-plugins`. Removing a marketplace (`claude plugin marketplace remove <name>`) also uninstalls every plugin you installed from it.\n\n## Common errors and fixes\n\n### \"zsh: no such file or directory: /plugin\"\n\nYou typed `/plugin` at the shell prompt. Run `claude` first and type it at the Claude Code prompt, or use `claude plugin install <plugin>@<marketplace>` in the shell.\n\n### \"/plugin isn't available in this environment\"\n\n`/plugin` needs a terminal session. It doesn't run with `claude -p`, the Agent SDK, the desktop app's Code tab or claude.ai/code, and in the VS Code panel only `/plugin` or `/plugins` on its own opens **Manage plugins**. Use that surface's own install steps above, or a terminal.\n\n### Marketplace \"claude-plugins-official\" not found\n\nThe official marketplace isn't registered yet, which happens if you've only used the VS Code extension, a policy blocks it, or `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` is set. Add it and retry:\n\n```text\n/plugin marketplace add anthropics/claude-plugins-official\n```\n\nThe same fix applies when the **Discover** tab is empty or `claude plugin marketplace list` says `No marketplaces configured`.\n\n### Plugin \"<name>\" not found in any marketplace\n\nYou left off `@marketplace`, so Claude Code only searched catalogs it already had. Name the marketplace (`/plugin install <name>@<marketplace>`), which refreshes it first, or copy the exact name from the **Discover** tab. If the plugin lives in a third-party marketplace, add that marketplace first.\n\n### \"not found in marketplace\" with a refresh hint\n\nYour local copy of the catalog is out of date. Refresh it, then install again:\n\n```text\n/plugin marketplace update <marketplace>\n```\n\n### Installed, but its skills don't show up\n\n- Check **Installed** in `/plugin` (or `claude plugin list`) and make sure it's enabled.\n- Open the **Errors** tab in `/plugin`; each entry says what failed.\n- If you installed it during this session, run `/reload-plugins`.\n- Open the plugin's details: a plugin that lists no skills has none to show when you type `/`.\n\n### \"This reload changes MCP tools … Run /reload-plugins --force to apply\"\n\nAdding or removing a plugin's MCP server would invalidate the prompt cache, so Claude Code waits. Run `/reload-plugins --force` to apply it now (your next message re-reads the whole conversation), or start a new session.\n\n## FAQ\n\n### What's the difference between a plugin and an MCP server?\n\nAn MCP server gives Claude tools. A plugin is a package that can include MCP servers along with skills, subagents and hooks. Many plugins in the official marketplace, such as `github` or `sentry`, package a service's MCP server for you.\n\n### Do plugins work on claude.ai or in the desktop app?\n\nThe desktop app's local and SSH sessions do (use **+ → Add plugins**). Cloud sessions, including claude.ai/code, don't load plugins from your machine. claude.ai and Cowork have their own plugin support with a different set of components.\n\n### Using Cursor too?\n\nCursor has its own plugin format and marketplace, installed from **Customize**. See [Cursor Plugins](https://www.pluginstackai.com/plugins/cursor-plugins/), and [how to add an MCP server to Cursor](https://www.pluginstackai.com/guides/add-mcp-server-to-cursor/) for single servers.","sources":[{"label":"Claude Code docs: Install and manage plugins","url":"https://code.claude.com/docs/en/plugins/install"},{"label":"Claude Code docs: Anthropic's marketplaces","url":"https://code.claude.com/docs/en/plugins/anthropic-marketplaces"},{"label":"Claude Code docs: Plugins overview","url":"https://code.claude.com/docs/en/plugins/overview"},{"label":"Claude Code docs: Plugin security and trust","url":"https://code.claude.com/docs/en/plugins/security"},{"label":"Claude Code docs: Troubleshoot plugins","url":"https://code.claude.com/docs/en/plugins/troubleshooting"},{"label":"Claude Code docs: Plugin commands reference","url":"https://code.claude.com/docs/en/plugins/cli-reference"},{"label":"Claude Code docs: Code intelligence plugins","url":"https://code.claude.com/docs/en/plugins/code-intelligence"},{"label":"anthropics/claude-plugins-official (marketplace.json and README)","url":"https://github.com/anthropics/claude-plugins-official"},{"label":"Android Skills README (plugin install)","url":"https://github.com/android/skills"},{"label":"Apify docs: Install the Apify plugin in your AI agent","url":"https://docs.apify.com/agents/plugins"},{"label":"Serena README (installation)","url":"https://github.com/oraios/serena"}],"related":[{"slug":"claude-code-plugins","url":"https://www.pluginstackai.com/plugins/claude-code-plugins/"},{"slug":"claude-code","url":"https://www.pluginstackai.com/plugins/claude-code/"},{"slug":"android-skills","url":"https://www.pluginstackai.com/plugins/android-skills/"},{"slug":"apify-mcp","url":"https://www.pluginstackai.com/plugins/apify-mcp/"},{"slug":"serena","url":"https://www.pluginstackai.com/plugins/serena/"},{"slug":"cursor-plugins","url":"https://www.pluginstackai.com/plugins/cursor-plugins/"}]},{"slug":"how-to-create-agent-skills","title":"How to create an Agent Skill (SKILL.md)","seoTitle":"How to create an Agent Skill (SKILL.md) for Claude Code, Cursor and Codex","description":"Write a SKILL.md that works in Claude Code, Cursor and Codex: where the folder goes, the frontmatter rules, a copy-paste example, and fixes when a skill won't trigger.","kind":"Setup guide","url":"https://www.pluginstackai.com/guides/how-to-create-agent-skills/","published":"2026-10-21","updated":"2026-10-21","markdown":"An Agent Skill is a folder with a `SKILL.md` file that teaches a coding agent how to do one job, such as reviewing changes before a commit or following your deploy steps. Skills follow an open standard, so the same file works in Claude Code, Cursor and Codex. Only the folder locations and a few optional settings differ. This guide walks through a working example and the differences that trip people up.\n\n## Quick answer\n\n1. Make a folder named after the skill, in lowercase with hyphens, for example `review-changes`, inside your tool's skills folder: `.claude/skills/` for Claude Code, `.agents/skills/` for Codex. Cursor reads either.\n2. Add a `SKILL.md` that starts with YAML frontmatter containing `name` (the same as the folder name) and `description` (what it does and when to use it), followed by the instructions.\n3. Ask for something that matches the description and the agent loads the skill on its own, or run it directly: `/review-changes` in Claude Code and Cursor, `$review-changes` in Codex.\n\n## How skills work\n\nAgents load skills in stages. At the start of a session they only see each skill's `name` and `description`. When a request matches a description, the agent reads the full `SKILL.md`, and it opens extra files in the skill folder only if the instructions point to them. That's why you can install many skills without filling the context window, and why the `description` decides whether a skill ever gets used.\n\nSkills are different from always-on instructions. Files such as `CLAUDE.md`, [AGENTS.md](https://www.pluginstackai.com/plugins/agents-md/) and [Cursor rules](https://www.pluginstackai.com/plugins/cursor-rules/) apply to every session. A skill only loads when it's relevant or when you call it. They're also different from MCP servers: a skill is instructions (plus optional scripts), while an [MCP server](https://www.pluginstackai.com/guides/add-mcp-server-to-cursor/) gives the agent new tools.\n\n## Where the skill folder goes\n\n- **Claude Code**: `.claude/skills/<name>/SKILL.md` in the project (commit it to share with your team) or `~/.claude/skills/<name>/SKILL.md` for all your projects. In a monorepo it also loads `.claude/skills/` from parent folders up to the repository root.\n- **Cursor**: `.agents/skills/` or `.cursor/skills/` in the project, `~/.agents/skills/` or `~/.cursor/skills/` for all projects. For compatibility it also reads `.claude/skills/`, `.codex/skills/`, `~/.claude/skills/` and `~/.codex/skills/`.\n- **Codex**: `.agents/skills/` in the folder you start Codex in and every parent folder up to the repository root, plus `~/.agents/skills/` (written as `$HOME/.agents/skills` in OpenAI's docs) for all projects.\n\n### One skill for all three tools\n\nIf you only use Claude Code and Cursor, `.claude/skills/` is enough, since Cursor reads it too. If you also use Codex, keep the real folder in `.agents/skills/` (read by Cursor and Codex) and link it into `.claude/skills/` for Claude Code, which follows symlinked skill folders. On macOS or Linux, from the project root:\n\n```bash\nmkdir -p .agents/skills/review-changes .claude/skills\nln -s ../../.agents/skills/review-changes .claude/skills/review-changes\n```\n\n## Write the SKILL.md\n\nThis skill reviews uncommitted changes before a commit. It uses only the fields all three tools understand. Save it as `SKILL.md` inside the `review-changes` folder:\n\n_.agents/skills/review-changes/SKILL.md_\n\n```text\n---\nname: review-changes\ndescription: Reviews uncommitted git changes and flags risky edits, missing tests and leftover debug code. Use when the user asks what changed, wants a review before committing, or asks for a commit message.\n---\n\n# Review changes\n\n1. Run git status and git diff HEAD to see what changed.\n2. Summarize the changes in two or three bullet points.\n3. List risks: missing error handling, hardcoded secrets or URLs, deleted or skipped tests, debug logging left in.\n4. Suggest a one-line commit message in the imperative mood.\n\nIf there are no uncommitted changes, say so and stop.\n```\n\n### Frontmatter rules\n\n- The opening `---` has to be the very first line of the file, or the frontmatter is read as plain text.\n- `name`: up to 64 characters, lowercase letters, numbers and hyphens only, no hyphen at the start or end, no double hyphens, and the same as the folder name. Claude Code treats `name` as optional (it falls back to the folder name), but Cursor and Codex require it, so always set it.\n- `description`: up to 1,024 characters under the open standard. Say what the skill does **and** when to use it, with the words people actually type. Put the main use case first: Claude Code cuts long descriptions in its skill list and Codex shortens descriptions when many skills are installed.\n\n### Keep the body short\n\nWrite direct, numbered steps with clear inputs and outputs. The open standard suggests keeping `SKILL.md` under 500 lines and moving detail into the skill folder:\n\n```text\nreview-changes/\n├── SKILL.md\n├── references/   # longer docs the agent reads only when needed\n├── scripts/      # code the agent can run\n└── assets/       # templates, schemas, example files\n```\n\nPoint to those files with paths relative to the skill folder, for example \"See references/checklist.md for the full checklist\", and keep references one level deep.\n\n## Optional settings that differ by tool\n\n- **Manual-only skills** (for steps with side effects, like deploying): add `disable-model-invocation: true` to the frontmatter in Claude Code and Cursor, and the agent won't load the skill on its own. In Codex, add an `agents/openai.yaml` file to the skill with `allow_implicit_invocation: false` under `policy`.\n- **Only for certain files**: Claude Code and Cursor accept `paths` with glob patterns such as `\"**/*.tsx\"`, so the skill only comes up when the agent works on matching files.\n- **Pre-approved tools**: `allowed-tools` is an experimental field in the open standard. In Claude Code it lets the skill use the listed tools without asking, for the turn that invokes it.\n- **Claude Code extras**: `context: fork` runs the skill in a subagent, `argument-hint` and `$ARGUMENTS` pass arguments, and dynamic context injection runs a shell command and inlines its output before Claude reads the skill.\n\nFor a skill you plan to share across tools, stick to `name` and `description` (plus the standard's optional `license`, `compatibility` and `metadata`) and put everything else in the instructions.\n\n## Use and test the skill\n\n- **Claude Code**: ask \"What did I change?\" or run `/review-changes`. Edits to existing skill folders are picked up during the session; if you create a new top-level skills folder mid-session, run `/reload-skills`. Ask \"What skills are available?\" to confirm it loaded.\n- **Cursor**: ask in Agent chat, or type `/` and pick the skill. Discovered skills are listed under **Customize → Skills**.\n- **Codex**: ask in the CLI or IDE extension, run `/skills`, or type `$review-changes`. Codex picks up changes automatically; restart it if the skill doesn't appear.\n\nTest it with a few differently worded requests. If it fires when it shouldn't, make the description narrower; if it never fires, add the words people actually say.\n\n## Let the agent draft it\n\nEach tool has a built-in helper that interviews you and writes the folder:\n\n- **Claude Code**: install Anthropic's skill-creator plugin with `/plugin install skill-creator@claude-plugins-official`; it can also run evals on a skill. See [how to install Claude Code plugins](https://www.pluginstackai.com/guides/install-claude-code-plugins/).\n- **Cursor**: type `/create-skill` in Agent chat. `/migrate-to-skills` converts eligible rules and slash commands into skills.\n- **Codex**: run `$skill-creator`.\n\nRead what it writes before relying on it, especially any scripts.\n\n## Share skills with your team\n\n- **In one repository**: commit the project skills folder. Everyone who opens the repo gets the skill.\n- **Across repositories**: package skills in a plugin. Claude Code installs plugins from marketplaces ([Claude Code Plugins](https://www.pluginstackai.com/plugins/claude-code-plugins/)), Cursor imports skills from GitHub only through plugins ([Cursor Plugins](https://www.pluginstackai.com/plugins/cursor-plugins/)), and OpenAI recommends plugins for distributing Codex skills.\n\n## Ready-made skills to learn from\n\n- [Agent Skills (Anthropic)](https://www.pluginstackai.com/plugins/agent-skills/): Anthropic's public repository of example and document skills, plus a skill template.\n- [Android Skills](https://www.pluginstackai.com/plugins/android-skills/): Google's official skills for Android tasks such as Compose migration and AGP upgrades, installable as plugins for Claude Code and Codex.\n\nBuilding MCP servers? Our own (paid) [Agent Builder Rules + Prompts](https://www.pluginstackai.com/packs/) pack includes two Claude Code skills for MCP server work and evals.\n\n## Common problems and fixes\n\n### The skill never triggers\n\n- Rewrite the `description` with the keywords people would use, and lead with the main use case.\n- Run it directly (`/name` or `$name`). If that works, the problem is the description; if it doesn't, the skill isn't loading.\n- Check the folder: `SKILL.md` must be spelled exactly like that, inside a folder whose name matches `name`, in one of the locations above.\n\n### The frontmatter is ignored\n\nIn Claude Code, broken YAML makes the skill load with empty metadata: `/name` still works but Claude can't match the description. Start with `claude --debug` to see the parse error, or check the whole folder with `claude plugin validate .claude/skills` (Claude Code v2.1.233 or later). The open standard's `skills-ref validate ./my-skill` checks the frontmatter and naming rules for any tool.\n\n### The skill triggers too often\n\nMake the description more specific, or make the skill manual-only with the settings under Optional settings above.\n\n### A Codex skill is missing\n\nRestart Codex, and check `~/.codex/config.toml` for a `[[skills.config]]` entry that sets `enabled = false` for that skill's path.\n\n## FAQ\n\n### Do my old Claude Code custom commands still work?\n\nYes. Files in `.claude/commands/` still work and create the same `/name` commands. Skills add a folder for supporting files and control over whether Claude can load them on its own.\n\n### Skill, rule or AGENTS.md?\n\nUse `AGENTS.md`, `CLAUDE.md` or an always-on rule for facts every session needs (stack, conventions, test command). Use a skill for a specific procedure that only matters sometimes, so it doesn't take up context the rest of the time.\n\n### Can a skill run scripts?\n\nYes. Put them in `scripts/` and tell the agent when to run them. They run with the agent's normal permissions, so review scripts in skills you didn't write.","sources":[{"label":"Claude Code docs: Extend Claude with skills","url":"https://code.claude.com/docs/en/skills"},{"label":"Cursor docs: Agent Skills","url":"https://cursor.com/docs/skills"},{"label":"OpenAI docs: Build skills (ChatGPT and Codex)","url":"https://learn.chatgpt.com/docs/build-skills"},{"label":"Agent Skills specification","url":"https://agentskills.io/specification"},{"label":"Claude Code docs: Install and manage plugins","url":"https://code.claude.com/docs/en/plugins/install"},{"label":"Android skills overview (Android Developers)","url":"https://developer.android.com/tools/agents/android-skills"}],"related":[{"slug":"agent-skills","url":"https://www.pluginstackai.com/plugins/agent-skills/"},{"slug":"android-skills","url":"https://www.pluginstackai.com/plugins/android-skills/"},{"slug":"claude-code","url":"https://www.pluginstackai.com/plugins/claude-code/"},{"slug":"codex-cli","url":"https://www.pluginstackai.com/plugins/codex-cli/"},{"slug":"cursor-rules","url":"https://www.pluginstackai.com/plugins/cursor-rules/"},{"slug":"agents-md","url":"https://www.pluginstackai.com/plugins/agents-md/"}]},{"slug":"mcp-reference-servers-v2-whats-changed","title":"MCP reference servers v2.0 and v2.1: what changed and what to do","seoTitle":"MCP reference servers v2.0 and v2.1: what changed and how to update","description":"The official MCP reference servers (Filesystem, Memory, Fetch, Sequential Thinking) moved to v2 in October 2026: Node 24 for the TypeScript ones, security fixes, how to update and what can break.","kind":"Setup guide","url":"https://www.pluginstackai.com/guides/mcp-reference-servers-v2-whats-changed/","published":"2026-10-27","updated":"2026-10-27","markdown":"On 19 October 2026 the official `modelcontextprotocol/servers` repository shipped v2.0.0, and a security-focused v2.1.0 followed on 25 October (UTC). If you run the Filesystem, Memory, Sequential Thinking or Fetch server from a Claude, Cursor, VS Code or Codex config, this is what changed, whether it affects you, and how to update. Everything below comes from the official release notes, changelogs and package registries; sources are listed at the end.\n\n## Quick answer\n\n- **The TypeScript servers now declare Node.js 24 or newer.** Filesystem, Memory, Sequential Thinking and Everything all list `\"node\": \">=24\"` in their package `engines`. Run `node --version`; if it is below 24, install Node 24 or newer before you restart your client.\n- **Fetch is a Python package, so the Node change does not apply to it.** It is published on PyPI as `mcp-server-fetch` and needs Python 3.10 or newer.\n- **v2.1.0 is a security release.** It fixes eight vulnerabilities across three servers. Move Filesystem to 2.0.1 (the first version with the fixes) and Fetch to 2026.10.24, or newer.\n- **The setup commands in the READMEs did not change.** `npx -y @modelcontextprotocol/server-filesystem <folders>` and `uvx mcp-server-fetch` are still the launch commands, so an existing config usually keeps working once the runtime is current.\n\nIf a server stops starting after an update, the cause is almost always the runtime or a stale cached version. See \"How to update\" and \"What can break\" below, and our guide to [MCP error -32000 \"Connection closed\"](https://www.pluginstackai.com/guides/fix-mcp-error-32000-connection-closed/).\n\n## What v2.0 and v2.1 are\n\n**v2.0.0 (19 October 2026)** refactored every server in the repository so that it supports the \"modern era\" of the MCP specification (the 2026-07-28 revision) while still answering clients that speak the older 2025-era protocol. The TypeScript servers moved onto the v2 TypeScript SDK packages and the Python servers onto the Python SDK 2.x line.\n\n**v2.1.0 (tagged 25 October 2026, UTC)** is a security release: eight vulnerabilities fixed across Filesystem, Fetch and Everything (the Everything server is a test server for client developers, not something most people configure). The release notes link a GitHub security advisory for each one. We do not repeat the advisory details here; read the release notes if you need them.\n\nThe versions that were current on 27 October 2026, checked against the npm and PyPI registries:\n\n- `@modelcontextprotocol/server-filesystem` **2.0.1** (npm, `engines.node` `>=24`)\n- `@modelcontextprotocol/server-memory` **2.0.0** (npm, `>=24`)\n- `@modelcontextprotocol/server-sequential-thinking` **2.0.0** (npm, `>=24`)\n- `mcp-server-fetch` **2026.10.24** (PyPI, Python `>=3.10`, depends on `mcp>=2.3,<3`)\n\nGit and Time, the other two Python servers, use the same date-style versions (2026.10.19 at the v2.0.0 release). Details for each server are on its listing: [Filesystem](https://www.pluginstackai.com/plugins/filesystem-mcp/), [Memory](https://www.pluginstackai.com/plugins/memory-mcp/), [Sequential Thinking](https://www.pluginstackai.com/plugins/sequential-thinking-mcp/) and [Fetch](https://www.pluginstackai.com/plugins/fetch-mcp/).\n\n## Who this affects\n\n- **Anyone launching a TypeScript reference server with `npx`**, which is how most Claude Desktop, Cursor, VS Code and Codex configs do it. You need Node 24 or newer on the machine that runs the client.\n- **Filesystem server users on any platform**, because the security fixes landed in 2.0.1. The release notes list every earlier version as affected (1.0.0 through 2.0.0, and the date versions up to 2026.8.31). The v2.1.0 release notes call the Windows fix partial, so on Windows treat the allowed-folder list as something to review, not a guarantee.\n- **Fetch server users**, for the 2026.10.24 security fixes. Fetch can reach any URL you let the model request, so keep it current.\n- **People who pinned an old version** or installed a global copy. Nothing updates those automatically.\n- **Developers who call the servers from their own client code**, because several behaviours changed (see \"What can break\").\n\nIt does not affect remote MCP servers run by other companies, such as the [Notion](https://www.pluginstackai.com/plugins/notion-mcp/) or [Linear](https://www.pluginstackai.com/plugins/linear-mcp/) ones, and it does not change servers from other publishers. Those have their own release notes and runtime requirements.\n\n## How to update\n\n### 1. Check your Node version\n\n_Node 24 or newer, and the engines the package declares_\n\n```bash\nnode --version\nnpm view @modelcontextprotocol/server-filesystem engines\n```\n\nIf `node --version` prints something below v24, install a current Node (the official download page, or a version manager such as nvm or fnm) and restart your terminal and your AI client. A client launched from a desktop icon uses the Node that was on its PATH when it started, so quit and reopen it fully.\n\n### 2. Get the new server version\n\nWith `npx -y <package>` in your config there is nothing to install: npx fetches the latest published version when it launches the server. Restart your client after upgrading Node, and the new version starts. If you want to be explicit, or you are jumping from an old date-style version, pin it:\n\n_Pin Filesystem to the first security-fixed version (change the folder to yours)_\n\n```bash\nnpx -y @modelcontextprotocol/server-filesystem@2.0.1 /Users/you/projects\n```\n\nIn a client config the same pin goes in the `args` array, for example `\"args\": [\"-y\", \"@modelcontextprotocol/server-filesystem@2.0.1\", \"/Users/you/projects\"]`. If Cursor keeps launching an old copy, its docs suggest removing the server in Customize, running `npm cache clean --force`, then adding it again.\n\nFor Fetch, run it through `uvx` (or `pip`), and ask for the latest:\n\n```bash\nuvx mcp-server-fetch@latest\n# or, if you installed it with pip:\npip install -U mcp-server-fetch\n```\n\n### 3. Restart your client and check\n\n- **Claude Code:** run `claude mcp list` and look for `✔ Connected` next to the server.\n- **Cursor:** open **Customize** then **MCPs** (the server should be listed with its toggle on).\n- **VS Code:** run **MCP: List Servers** from the Command Palette and check the server is running.\n- **Codex:** run `codex mcp list`, or type `/mcp` inside the Codex terminal UI.\n\n## What can break\n\n### Node older than 24\n\nThe maintainers declare Node 24 or newer, so treat anything older as unsupported. npm prints an `EBADENGINE` warning for it. In a quick test we ran on 27 October 2026, Node 20 and 22 still completed an MCP handshake with the new servers, so an old Node does not always fail outright. That is luck, not a promise: the declared requirement is 24, and a later release can use a Node 24 feature without notice. If a server will not start after the update, check this first.\n\n### Changes that matter if you write or run your own client\n\nThese come from the v2.0.0 notes and the per-server changelogs. Most people using Claude, Cursor, VS Code or Codex never see them.\n\n- A stdio message larger than 10 MiB now closes the connection.\n- Calling a tool name the server does not have now returns a JSON-RPC `-32602` error instead of a tool result flagged `isError`.\n- Error messages no longer start with an `MCP error <code>:` prefix, and validation errors now name the field first.\n- Tool input schemas declare JSON Schema 2020-12 rather than draft-07.\n- Tools no longer advertise `execution.taskSupport`.\n\n### Filesystem: Roots are deprecated\n\nOn a connection that uses the 2026-07-28 protocol, the Filesystem server does not use MCP Roots (the `roots/list` mechanism). The allowed folders are exactly the ones you pass on the command line. A server started with no folders answers each tool call on such a connection with an error. Clients still on the 2025-era protocol keep the older Roots behaviour.\n\nIf you are jumping from an older date-versioned release, the Filesystem changelog for 1.0.0 also lists behaviour changes (for example, an update to roots that leaves no valid folder now revokes access, `edit_file` keeps CRLF line endings, and `write_file` overwrites in place). Read the changelog before upgrading a setup you rely on.\n\n### The date-versus-semver trap on npm\n\nThe TypeScript servers were date-versioned (`2025.x` and `2026.x`) until they moved to semantic versions at 1.0.0. Package managers rank 2.0.1 below every 2025.x and 2026.x version, so they will not offer it as an upgrade. The release notes say that if you are on a date version you should install 2.0.1 explicitly, for example `npm install @modelcontextprotocol/server-filesystem@2.0.1`, or pin it as shown above.\n\n### Windows launch problems are separate\n\nIf your server fails on Windows with `spawn npx ENOENT`, that is not a v2 problem; `npx` needs a `cmd /c` wrapper in some clients. See [Fix \"spawn npx ENOENT\" for MCP servers on Windows](https://www.pluginstackai.com/guides/fix-spawn-npx-enoent-windows-mcp/).\n\n## FAQ\n\n### Do I need to change my MCP config?\n\nUsually not. The launch commands in the READMEs are the same. What you may need to change is the machine: Node 24 or newer for the TypeScript servers, and a restart.\n\n### Is Fetch affected by the Node 24 requirement?\n\nNo. Fetch is a Python package launched with `uvx` or `python -m mcp_server_fetch`. It needs Python 3.10 or newer, and its own update is 2026.10.24.\n\n### Which version should I run?\n\nThe latest published one: Filesystem 2.0.1 or newer, Memory and Sequential Thinking 2.0.0 or newer, Fetch 2026.10.24 or newer, as of 27 October 2026. Check the GitHub releases page for anything newer.\n\n### Where do I add these servers to my client?\n\nSee [how to add an MCP server to Cursor](https://www.pluginstackai.com/guides/add-mcp-server-to-cursor/), [the best MCP servers for Claude Code](https://www.pluginstackai.com/guides/best-mcp-servers-for-claude-code/) and [how to add an MCP server to Codex with config.toml](https://www.pluginstackai.com/guides/add-mcp-server-to-codex-config-toml/).","sources":[{"label":"modelcontextprotocol/servers release v2.0.0","url":"https://github.com/modelcontextprotocol/servers/releases/tag/v2.0.0"},{"label":"modelcontextprotocol/servers release v2.1.0 (security fixes)","url":"https://github.com/modelcontextprotocol/servers/releases/tag/v2.1.0"},{"label":"Filesystem server README and changelog","url":"https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem"},{"label":"Memory server README and changelog","url":"https://github.com/modelcontextprotocol/servers/tree/main/src/memory"},{"label":"Sequential Thinking server README and changelog","url":"https://github.com/modelcontextprotocol/servers/tree/main/src/sequentialthinking"},{"label":"Fetch server README and changelog","url":"https://github.com/modelcontextprotocol/servers/tree/main/src/fetch"},{"label":"npm: @modelcontextprotocol/server-filesystem (version and engines)","url":"https://www.npmjs.com/package/@modelcontextprotocol/server-filesystem"},{"label":"PyPI: mcp-server-fetch (version, Python and mcp requirements)","url":"https://pypi.org/project/mcp-server-fetch/"},{"label":"Cursor docs: MCP","url":"https://cursor.com/docs/mcp"}],"related":[{"slug":"filesystem-mcp","url":"https://www.pluginstackai.com/plugins/filesystem-mcp/"},{"slug":"fetch-mcp","url":"https://www.pluginstackai.com/plugins/fetch-mcp/"},{"slug":"memory-mcp","url":"https://www.pluginstackai.com/plugins/memory-mcp/"},{"slug":"sequential-thinking-mcp","url":"https://www.pluginstackai.com/plugins/sequential-thinking-mcp/"},{"slug":"mcp-inspector","url":"https://www.pluginstackai.com/plugins/mcp-inspector/"}]},{"slug":"fix-spawn-npx-enoent-windows-mcp","title":"Fix \"spawn npx ENOENT\" for MCP servers on Windows","seoTitle":"Fix \"spawn npx ENOENT\" for MCP servers on Windows (the cmd /c fix)","description":"MCP server fails on Windows with spawn npx ENOENT or Connection closed? Wrap npx in cmd /c. Exact config for Claude Code, Claude Desktop, Cursor, VS Code and Codex, plus other causes.","kind":"Setup guide","url":"https://www.pluginstackai.com/guides/fix-spawn-npx-enoent-windows-mcp/","published":"2026-10-27","updated":"2026-10-27","markdown":"You add a local MCP server that starts with `npx`, it works on a Mac, and on Windows your AI client reports `spawn npx ENOENT` (or a vague \"Connection closed\" or \"Failed to connect\"). This is a well-known Windows quirk, and the usual fix is a three-word change to your config. This guide explains why it happens, gives the exact fix for each client, and lists the other causes to rule out.\n\n## Quick answer\n\n1. In your MCP config, change `\"command\": \"npx\"` to `\"command\": \"cmd\"`.\n2. Put `\"/c\"` and `\"npx\"` at the start of `args`, before the rest of the arguments.\n3. Save, then fully quit and reopen your client (not just a new chat).\n\n_Only the command and the first two args change_\n\n```json\n// before: fails on Windows in some clients\n{\n  \"command\": \"npx\",\n  \"args\": [\"-y\", \"@modelcontextprotocol/server-memory\"]\n}\n\n// after\n{\n  \"command\": \"cmd\",\n  \"args\": [\"/c\", \"npx\", \"-y\", \"@modelcontextprotocol/server-memory\"]\n}\n```\n\nNot every client needs this. The official MCP quickstart for Claude Desktop uses plain `npx` on Windows, and if your server already connects you should leave it alone. Use the wrapper when you see the error.\n\n## Why it happens\n\n`ENOENT` means \"no such file\": the program that started your MCP server could not find the command you gave it. On Windows, `npx` is not a program (`npx.exe`) but a script launcher called `npx.cmd`. Many MCP clients start servers directly, with no shell in between, and a directly-started process cannot resolve `npx` to `npx.cmd`. Node's own documentation says that `.bat` and `.cmd` files are not executable on their own without a terminal and can only be run through `cmd.exe` (or by spawning with a shell).\n\nYou also cannot fix it by pointing at `npx.cmd`. Since the April 2024 Node.js security releases (CVE-2024-27980), starting a `.cmd` or `.bat` file without a shell fails with `EINVAL` on Node 18.20.2, 20.12.2 and later. So the reliable route is to start `cmd.exe` yourself, and let it run `npx`: `cmd /c npx ...`. `/c` tells `cmd` to run the rest as a command and exit.\n\nThe MCP server READMEs use this pattern for Windows. The official Filesystem server README, for instance, has a Windows config that starts with `\"command\": \"cmd\"` and `\"/c\", \"npx\"`. Users reported the same fix in Claude Code issue #3369, where a native-Windows setup showed `MCP error -32000: Connection closed` until the config was changed to `cmd /c`. A reply there said the `cmd` solutions fix it.\n\n## The fix, per client\n\nEvery client uses the same idea: `command` is `cmd`, and `args` begins with `/c` and `npx`. Each argument stays a separate string. The server here is the official [Memory server](https://www.pluginstackai.com/plugins/memory-mcp/); swap in your own package and arguments.\n\n### Claude Code\n\nWith the CLI, everything after `--` is the command. Keep each word separate (do not wrap the whole command in one pair of quotes) and keep the `--`:\n\n_Run in PowerShell or Command Prompt_\n\n```bash\nclaude mcp add memory -- cmd /c npx -y @modelcontextprotocol/server-memory\n```\n\nTo change an existing entry, remove it first (`claude mcp remove memory`) and add it again. Or add it from JSON, which keeps the arguments exactly as you write them:\n\n_Bash or Git Bash quoting. In PowerShell, escape the inner quotes or put the JSON in a .mcp.json file instead_\n\n```bash\nclaude mcp add-json memory '{\"type\":\"stdio\",\"command\":\"cmd\",\"args\":[\"/c\",\"npx\",\"-y\",\"@modelcontextprotocol/server-memory\"]}'\n```\n\nIn a project `.mcp.json` file at the repository root, use the same `command` and `args` shape under `mcpServers`. Check the result with `claude mcp get memory`, which prints the command Claude Code will run, and `claude mcp list`.\n\nA note on versions: Claude Code's current MCP docs say that executables on your `PATH` such as `npx` or `uvx` work as-is, and do not mention `cmd /c`. Users on native Windows have reported otherwise in issues #3369, #9594 and #68221 (the last one traces it to the `EINVAL` behaviour above). Some Claude Code versions have printed a warning that a Windows `npx` server needs the `cmd /c` wrapper. If plain `npx` connects for you, you do not need the wrapper.\n\n### Claude Desktop\n\nOpen the config from **Settings**, then **Developer**, then **Edit Config**. The file is `%APPDATA%\\Claude\\claude_desktop_config.json` on Windows.\n\n_%APPDATA%\\Claude\\claude_desktop_config.json_\n\n```json\n{\n  \"mcpServers\": {\n    \"memory\": {\n      \"command\": \"cmd\",\n      \"args\": [\"/c\", \"npx\", \"-y\", \"@modelcontextprotocol/server-memory\"]\n    }\n  }\n}\n```\n\nSave the file, then completely quit Claude Desktop and reopen it; the MCP docs say it must restart to load the new configuration.\n\n### Cursor\n\nSame shape in `~/.cursor/mcp.json` (global) or `.cursor/mcp.json` (project). More in [how to add an MCP server to Cursor](https://www.pluginstackai.com/guides/add-mcp-server-to-cursor/), which also shows this wrapper in its troubleshooting section.\n\n_~/.cursor/mcp.json_\n\n```json\n{\n  \"mcpServers\": {\n    \"memory\": {\n      \"command\": \"cmd\",\n      \"args\": [\"/c\", \"npx\", \"-y\", \"@modelcontextprotocol/server-memory\"]\n    }\n  }\n}\n```\n\n### VS Code\n\nVS Code uses a `servers` key (not `mcpServers`) in `.vscode/mcp.json` for a workspace, or in your user profile's `mcp.json`. Open either from the Command Palette with **MCP: Open Workspace Folder MCP Configuration** or **MCP: Open User Configuration**.\n\n_.vscode/mcp.json_\n\n```json\n{\n  \"servers\": {\n    \"memory\": {\n      \"type\": \"stdio\",\n      \"command\": \"cmd\",\n      \"args\": [\"/c\", \"npx\", \"-y\", \"@modelcontextprotocol/server-memory\"]\n    }\n  }\n}\n```\n\n### Codex\n\nUpdate Codex first. A fix merged on 16 November 2025 (pull request #3828, \"resolve Windows MCP server execution for script-based tools\") makes Codex resolve script launchers such as `npx`, `pnpm` and `yarn` through the Windows `PATHEXT` list, so a recent Codex may need no wrapper at all. If you still get the error on a current build, use the same shape in `~/.codex/config.toml`:\n\n_~/.codex/config.toml (%USERPROFILE%\\.codex\\config.toml on Windows)_\n\n```text\n[mcp_servers.memory]\ncommand = \"cmd\"\nargs = [\"/c\", \"npx\", \"-y\", \"@modelcontextprotocol/server-memory\"]\n```\n\nOlder Codex versions behaved differently. A 2025 issue on Codex 0.23 (#2555) reports `cmd /c` timing out with \"request timed out\", and another (#3385) describes using the full path to `npx.cmd` together with a larger `startup_timeout_sec`. Those are user reports against old releases, so try updating before using them. Full config details are in [how to add an MCP server to Codex](https://www.pluginstackai.com/guides/add-mcp-server-to-codex-config-toml/).\n\n## If it still fails: other causes\n\n### Node.js is not installed, or the client cannot see it\n\nOpen a new Command Prompt and run `where node` and `where npx`. If either prints nothing, install Node.js. If they work in your terminal but not in the client, the client was started before Node was on your PATH: quit it fully and reopen it, or sign out and back in.\n\n### The server runs fine by hand\n\nRun the full command yourself, for example `cmd /c npx -y @modelcontextprotocol/server-memory`. A working MCP server starts and then waits silently for input (press Ctrl+C to stop it). If it prints an error and returns to the prompt, fix that error first; the client is only reporting it. Official servers need Node 24 or newer from v2 onward (see [what changed in v2](https://www.pluginstackai.com/guides/mcp-reference-servers-v2-whats-changed/)).\n\n### `${APPDATA}` or npm folder errors (Claude Desktop)\n\nThe MCP docs describe an `ENOENT` where the server log mentions `${APPDATA}` in a path. The fix they give is to add the expanded value to the server's `env`, for example `\"APPDATA\": \"C:\\\\Users\\\\you\\\\AppData\\\\Roaming\\\\\"`, and to make sure npm is installed globally, so that `%APPDATA%\\npm` exists (`npm install -g npm` creates it).\n\n### The command is not an `.cmd` script at all\n\nThe wrapper is for launchers that are `.cmd` or `.bat` scripts, such as `npx`, `npm`, `pnpm` and `yarn`. A real `.exe` such as `node.exe` does not need it. Use an absolute path for your own scripts, since a relative one resolves against whatever folder the client was started from.\n\n### Backslashes in JSON\n\nIn JSON, a Windows path needs doubled backslashes, `C:\\\\Users\\\\you\\\\projects`, or forward slashes. A single backslash makes the file invalid or changes the path. In Codex's TOML file use single-quoted strings, `'C:\\Users\\you\\projects'`, which TOML treats literally.\n\nStill seeing \"Connection closed\"? That message covers many causes; work through [Fix MCP error -32000 \"Connection closed\"](https://www.pluginstackai.com/guides/fix-mcp-error-32000-connection-closed/).\n\n## FAQ\n\n### Does this apply to WSL?\n\nThe cause is specific to launching `.cmd` scripts from native Windows. Inside WSL you run Linux versions of the tools, where `npx` is a normal executable. The issue above notes that the same setup worked in WSL2.\n\n### Do I need `cmd /c` for `uvx` or Python servers?\n\nNot for the same reason. `npx`, `npm`, `pnpm` and `yarn` are the `.cmd` launchers. A server started with `uvx` or `python` is a different command, so only wrap it if you see an equivalent error.\n\n### Why not just use the full path to npx.cmd?\n\nSince the CVE-2024-27980 hardening, Node refuses to start a `.cmd` file without a shell, and the failure is `EINVAL` rather than `ENOENT`. Going through `cmd /c` avoids the problem.","sources":[{"label":"Node.js docs: child_process (spawning .bat and .cmd files on Windows)","url":"https://nodejs.org/docs/latest-v24.x/api/child_process.html"},{"label":"Node.js April 2024 security releases (CVE-2024-27980)","url":"https://nodejs.org/en/blog/vulnerability/april-2024-security-releases-2"},{"label":"Filesystem MCP server README (Windows config uses cmd /c)","url":"https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem"},{"label":"Model Context Protocol docs: Connect to local MCP servers (Windows troubleshooting)","url":"https://modelcontextprotocol.io/docs/develop/connect-local-servers"},{"label":"Claude Code docs: Connect Claude Code to tools via MCP","url":"https://code.claude.com/docs/en/mcp"},{"label":"Claude Code issue #3369: MCP fails on native Windows (user report)","url":"https://github.com/anthropics/claude-code/issues/3369"},{"label":"Claude Code issue #9594: Windows npx servers and the cmd /c wrapper (user report)","url":"https://github.com/anthropics/claude-code/issues/9594"},{"label":"Claude Code issue #68221: npx servers fail with spawn EINVAL (user report)","url":"https://github.com/anthropics/claude-code/issues/68221"},{"label":"Codex pull request #3828: resolve Windows MCP server execution for script-based tools","url":"https://github.com/openai/codex/pull/3828"},{"label":"Codex issue #2555: Windows MCP server \"request timed out\" (user report)","url":"https://github.com/openai/codex/issues/2555"},{"label":"VS Code docs: Add and manage MCP servers","url":"https://code.visualstudio.com/docs/agent-customization/mcp-servers"},{"label":"Cursor docs: MCP","url":"https://cursor.com/docs/mcp"}],"related":[{"slug":"filesystem-mcp","url":"https://www.pluginstackai.com/plugins/filesystem-mcp/"},{"slug":"memory-mcp","url":"https://www.pluginstackai.com/plugins/memory-mcp/"},{"slug":"sequential-thinking-mcp","url":"https://www.pluginstackai.com/plugins/sequential-thinking-mcp/"},{"slug":"claude-code","url":"https://www.pluginstackai.com/plugins/claude-code/"},{"slug":"codex-cli","url":"https://www.pluginstackai.com/plugins/codex-cli/"},{"slug":"mcp-inspector","url":"https://www.pluginstackai.com/plugins/mcp-inspector/"}]},{"slug":"fix-mcp-error-32000-connection-closed","title":"Fix MCP error -32000: \"Connection closed\"","seoTitle":"Fix MCP error -32000 \"Connection closed\" (causes and fixes)","description":"MCP error -32000 \"Connection closed\" means your MCP server process exited or never started. How to find the real cause with a 60-second test, the common fixes, and where each client keeps its logs.","kind":"Setup guide","url":"https://www.pluginstackai.com/guides/fix-mcp-error-32000-connection-closed/","published":"2026-10-27","updated":"2026-10-27","markdown":"You add an MCP server, restart your client, and get `MCP error -32000: Connection closed`. The message is accurate but unhelpful: it only says that the connection to the server ended. The cause is almost always on the server side, usually in the first second after it launches. This guide shows how to find it fast.\n\n## Quick answer\n\n`-32000` is the code the MCP SDKs use for `ConnectionClosed`. For a local (stdio) server it means the server process exited, or its pipe closed, before the client finished talking to it. So the job is to find out why the server stopped:\n\n1. Copy the exact `command`, `args` and `env` from your config and run that command yourself in a terminal.\n2. Read what it prints. A healthy stdio server starts and then waits silently for input. If it prints an error and returns to the prompt, that error is your answer (wrong Node version, missing package, missing API key, bad path).\n3. Fix that, then restart the client fully. If you are on Windows and the command starts with `npx`, try the [`cmd /c` fix](https://www.pluginstackai.com/guides/fix-spawn-npx-enoent-windows-mcp/) first.\n\nThe rest of this page covers the usual causes, where to find each client's logs, and how to test a server without any client.\n\n## What the error means\n\nMCP clients talk to a local server over its standard input and output. When the process behind that pipe ends, the SDK rejects every pending request with `MCP error -32000: Connection closed`. We reproduced it with the official TypeScript SDK: a server command that starts and then exits with an error code produces exactly that message. A command that does not exist at all produces a different one, a `spawn ... ENOENT` error, because the client could not even start the process.\n\nThe error comes from the client, not the server, so the same server can show it in Claude Code, Claude Desktop, Cursor, VS Code and Codex. What differs between clients is only where the useful detail is logged.\n\n## Step 1: run the server by hand\n\nThis is the same test the Claude Code docs recommend. Run the server's command exactly as written in your config, with the same environment variables:\n\n```bash\n# example: the official Memory server\nnpx -y @modelcontextprotocol/server-memory\n```\n\n- **It starts and sits there:** the server itself works (press Ctrl+C to stop it). The problem is how the client launches it: the path, the environment, the working directory, or Windows `npx` (next section).\n- **It prints an error and exits:** the message names what is missing, such as a Node.js version, a package, or an environment variable. That is the real cause.\n\nSet any `env` values from your config in the same terminal first (for example `export API_KEY=...` on macOS and Linux, or `$env:API_KEY = \"...\"` in PowerShell).\n\n## Step 2: the common causes\n\n### Windows and `npx`\n\nOn native Windows, a client that launches `npx` directly can fail to start it. One of the first reports of this exact `MCP error -32000: Connection closed` was Claude Code issue #3369 on native Windows. Wrap the command in `cmd /c`: see [Fix \"spawn npx ENOENT\" for MCP servers on Windows](https://www.pluginstackai.com/guides/fix-spawn-npx-enoent-windows-mcp/).\n\n### The runtime is missing or too old\n\nThe server needs Node.js, Python or uv, and the client cannot find it or finds an old copy. Check `node --version` in the same environment the client uses. The official TypeScript reference servers declare Node 24 or newer from v2.0.0 (see [what changed in the MCP reference servers v2](https://www.pluginstackai.com/guides/mcp-reference-servers-v2-whats-changed/)), and a server that needs `uvx` needs uv installed. After installing a runtime, quit and reopen the client so it sees the new PATH.\n\n### A required API key or setting is missing\n\nMany servers exit immediately if a required environment variable is not set. Check the server's README for its variables, and set them in the config's `env` block, not only in your shell. Claude Code's troubleshooting notes that a server may miss variables that are not in its own config entry, because the client passes a limited environment to stdio servers.\n\n### A wrong or relative path\n\nUse absolute paths for local scripts and folders. Claude Code's docs say relative paths in `command` or `args` are a frequent cause of failed starts, because they resolve against the folder you launched the client from, not the config file's folder. Programs on your PATH, such as `npx` or `uvx`, are fine as they are.\n\n### The command was added wrongly (Claude Code)\n\nWith `claude mcp add`, everything after the `--` separator is the server command. If you leave out the `--`, or quote the whole command as one string, Claude Code parses the pieces wrongly. Run `claude mcp get <name>` and check that the command shown is what you intended; if not, `claude mcp remove <name>` and add it again.\n\n### The package cannot be downloaded\n\nThe first `npx -y` run downloads the package, which can fail on an offline machine, behind a proxy, or with a broken npm cache. Running the command by hand (Step 1) shows the npm error. A slow first download can instead end as a startup timeout; Claude Code's default is 30 seconds and can be raised with `MCP_TIMEOUT=60000 claude`, and Codex's default is 10 seconds, raised with `startup_timeout_sec` in `config.toml`.\n\n### The server crashes on startup, or writes to stdout\n\nIf you wrote the server yourself, remember that a stdio server must never print logs to standard output: the MCP docs warn that it corrupts the JSON-RPC messages and breaks the server. Use stderr (`console.error` in Node, the `logging` module in Python). A plain crash on startup, such as an import error, also ends the connection.\n\n## Step 3: read the client's logs\n\n- **Claude Desktop:** logs are in `~/Library/Logs/Claude` on macOS and `%APPDATA%\\Claude\\logs` on Windows. `mcp.log` covers connections and failures, and `mcp-server-<name>.log` holds that server's stderr output.\n- **Claude Code:** run `/mcp` to see which server failed. `claude mcp list` and `claude mcp get <name>` show failure details. For a server's stderr, run `claude --debug=mcp` and read the log under `~/.claude/debug/`.\n- **Cursor:** open the Output panel (Cmd+Shift+U on Mac, Ctrl+Shift+U on Windows and Linux) and choose **MCP Logs**. See [how to add an MCP server to Cursor](https://www.pluginstackai.com/guides/add-mcp-server-to-cursor/).\n- **VS Code:** run **MCP: List Servers** from the Command Palette, pick the server, and choose to show its output.\n- **Codex:** run `codex mcp list` to check the entry, and type `/mcp` in the terminal UI to see active servers.\n\n## Step 4: test the server without a client\n\nThe [MCP Inspector](https://www.pluginstackai.com/plugins/mcp-inspector/) runs your server and lets you list and call its tools in a browser, with the client taken out of the picture. If the server works there, the problem is your client config; if it fails there too, the server is the problem.\n\n_Inspector, then your server's command and arguments (this example launches a locally built Node server)_\n\n```bash\nnpx @modelcontextprotocol/inspector node build/index.js\n```\n\n## FAQ\n\n### Is -32000 always a local server problem?\n\nThe code means \"connection closed\", which can also happen with a remote server if the connection drops. The advice above is for local stdio servers, which is where this error shows up most. For a remote server that needs sign-in, see [Claude Code MCP \"needs authentication\"](https://www.pluginstackai.com/guides/fix-claude-code-mcp-needs-authentication/).\n\n### It worked yesterday. What changed?\n\nUsually the runtime or the package. With `npx -y` and no version, npx fetches the latest release on each launch, so a server update (or a Node update on your machine) can change behaviour. The official reference servers moved to v2 in October 2026; pinning a version with `package@version` is a quick way to test.\n\n### Does a stdout log line cause this error?\n\nThe MCP docs say writing to stdout from a stdio server corrupts the protocol and breaks the server. We could not show that a stray stdout line by itself produces `-32000` in our own test, so treat it as a likely cause for a custom server and rely on Step 1 to confirm it.","sources":[{"label":"MCP TypeScript SDK (ConnectionClosed error code -32000)","url":"https://github.com/modelcontextprotocol/typescript-sdk"},{"label":"Model Context Protocol docs: Debugging","url":"https://modelcontextprotocol.io/docs/tools/debugging"},{"label":"Model Context Protocol docs: Connect to local MCP servers (logs, troubleshooting)","url":"https://modelcontextprotocol.io/docs/develop/connect-local-servers"},{"label":"Model Context Protocol docs: Build an MCP server (logging to stdout)","url":"https://modelcontextprotocol.io/docs/develop/build-server"},{"label":"Claude Code docs: Connect Claude Code to tools via MCP","url":"https://code.claude.com/docs/en/mcp"},{"label":"Claude Code docs: Debug your configuration","url":"https://code.claude.com/docs/en/debug-your-config"},{"label":"Claude Code issue #3369: MCP fails on native Windows (user report)","url":"https://github.com/anthropics/claude-code/issues/3369"},{"label":"OpenAI Codex docs: Configuration reference (startup_timeout_sec)","url":"https://learn.chatgpt.com/docs/config-file/config-reference"},{"label":"VS Code docs: Add and manage MCP servers","url":"https://code.visualstudio.com/docs/agent-customization/mcp-servers"},{"label":"Cursor docs: MCP","url":"https://cursor.com/docs/mcp"}],"related":[{"slug":"mcp-inspector","url":"https://www.pluginstackai.com/plugins/mcp-inspector/"},{"slug":"filesystem-mcp","url":"https://www.pluginstackai.com/plugins/filesystem-mcp/"},{"slug":"memory-mcp","url":"https://www.pluginstackai.com/plugins/memory-mcp/"},{"slug":"claude-code","url":"https://www.pluginstackai.com/plugins/claude-code/"},{"slug":"codex-cli","url":"https://www.pluginstackai.com/plugins/codex-cli/"}]},{"slug":"fix-claude-code-mcp-needs-authentication","title":"Fix Claude Code MCP \"needs authentication\"","seoTitle":"Fix Claude Code MCP \"needs authentication\" (sign in with /mcp)","description":"A remote MCP server shows \"Needs authentication\" in Claude Code? Sign in from /mcp or with claude mcp login, then fix expired tokens, headless sessions and servers that need a fixed callback port.","kind":"Setup guide","url":"https://www.pluginstackai.com/guides/fix-claude-code-mcp-needs-authentication/","published":"2026-10-27","updated":"2026-10-27","markdown":"You added a remote MCP server to Claude Code and `claude mcp list` shows `! Needs authentication`, or a tool call fails and asks you to sign in again. That is not a broken install: Claude Code connected, the server answered 401 or 403, and it is waiting for you to log in. Here is how to finish the sign-in and what to check when it will not stick.\n\n## Quick answer\n\n1. Start Claude Code and run `/mcp`.\n2. Select the server that needs authentication and follow the steps in the browser window that opens to log in and approve access.\n3. Run `claude mcp list` (or `/mcp` again) and check the server now shows `✔ Connected`.\n\nPrefer the terminal, or working over SSH? Run `claude mcp login <name>` instead (add `--no-browser` to get a URL you can open on another machine and paste the redirect URL back). To sign out later, run `claude mcp logout <name>`.\n\n## Why you see it\n\nClaude Code marks a remote server as needing authentication when the server responds with `401 Unauthorized` or `403 Forbidden`, so you can complete the OAuth flow. OAuth in Claude Code applies to remote HTTP servers. A local stdio server does not use it; those take keys through environment variables (`claude mcp add --env KEY=value ...`), and a failing one is a different problem, covered in [Fix MCP error -32000](https://www.pluginstackai.com/guides/fix-mcp-error-32000-connection-closed/).\n\nClaude Code stores the tokens it gets and refreshes them automatically. If a stored token is rejected, it refreshes and retries once before it flags the server again, so a flag that keeps returning usually means the refresh token was revoked or expired.\n\n## Add a server that needs sign-in, then authenticate\n\nThe example from the Claude Code docs adds Sentry's remote server. See also the [Sentry MCP listing](https://www.pluginstackai.com/plugins/sentry-mcp/) and the [Notion](https://www.pluginstackai.com/plugins/notion-mcp/) and [Linear](https://www.pluginstackai.com/plugins/linear-mcp/) servers, which use the same flow.\n\n```bash\nclaude mcp add --transport http sentry https://mcp.sentry.dev/mcp\nclaude\n# then inside Claude Code:\n/mcp\n```\n\nIf you already added the server, running `claude mcp add` again with the same name at the same scope fails with a message that the server already exists. Skip straight to `/mcp`.\n\nMore on adding servers to Claude Code is in [the best MCP servers for Claude Code](https://www.pluginstackai.com/guides/best-mcp-servers-for-claude-code/).\n\n## If sign-in does not complete\n\n### The browser does not open, or the redirect fails\n\n- If the browser does not open on its own, copy the URL Claude Code shows and open it manually.\n- If the redirect shows a connection error after you approve access, copy the full callback URL from your browser's address bar and paste it into the URL prompt that Claude Code shows.\n- Over SSH, or on Linux with no display, `claude mcp login <name>` detects there is no local browser and prints the URL instead. Open it on your own machine and paste the redirect URL back. It needs an interactive terminal for that paste step.\n\n### \"MCP server needs you to sign in again\"\n\nThe full message in the Claude Code docs is `MCP server \"<name>\" needs you to sign in again (run /mcp to re-authenticate)`. It means a sign-in expired or was revoked, or the token lacks a permission the tool needs. Run `/mcp`, select the server, and choose **Re-authenticate**. If the same error returns for one specific tool, the token may be missing a scope; Claude Code requests the scopes pinned in the server's config (`oauth.scopes`) when they are set, so add the missing scope there before signing in again.\n\n### You use claude -p or the Agent SDK\n\nHeadless runs have no `/mcp` panel, so Claude Code cannot run the OAuth flow there. Sign in once from an interactive session (`/mcp`, or `claude mcp login <name>` in your shell), then start the run again.\n\n### You set an Authorization header yourself\n\nIf the server entry has `headers.Authorization` (or a `headersHelper`) and the server rejects it, Claude Code reports the connection as failed rather than falling back to OAuth. Fix the token, or remove the header to use the OAuth flow. If the header comes from a `${VAR}`, check that the variable is set; Claude Code warns about unset ones in `claude mcp list` and `/mcp`.\n\n### The server requires a pre-registered redirect URI or client\n\nBy default Claude Code uses a random free port for the OAuth callback. Servers that only accept a redirect URI of the form `http://localhost:PORT/callback` registered in advance need a fixed port, and some need a pre-registered client ID:\n\n_Replace the name, URL and ID with your server's_\n\n```bash\nclaude mcp add --transport http --callback-port 8080 my-server https://mcp.example.com/mcp\n\n# with a pre-registered OAuth client (the secret is prompted for, masked)\nclaude mcp add --transport http --client-id your-client-id --client-secret --callback-port 8080 my-server https://mcp.example.com/mcp\n```\n\n### The same server name is defined in two scopes\n\nClaude Code stores OAuth sign-ins per endpoint. If one name points at different URLs in different scopes (for example a user-level and a project-level entry), signing in to one does not sign you in to the other, and `claude mcp list` warns about the conflict. Keep one definition and remove the rest with `claude mcp remove`.\n\n### Google, Microsoft 365 and other Anthropic-hosted connectors\n\nSome Anthropic-hosted connectors, such as Gmail, Google Calendar and Microsoft 365, do not support local OAuth from Claude Code, because the identity provider only accepts the redirect URL registered by claude.ai. If Claude Code says so, connect the service at claude.ai under **Customize**, then **Connectors**, and remove your own entry with `claude mcp remove <name>`; the connector then appears in Claude Code on its own.\n\n### Start fresh\n\nChoose **Clear authentication** from the server's menu in `/mcp`, or run `claude mcp logout <name>`, then authenticate again. If that still fails, `claude mcp remove <name>` and add the server again.\n\n## FAQ\n\n### Is \"needs authentication\" the same as \"Failed to connect\"?\n\nNo. `Failed to connect` means Claude Code could not reach or start the server, and `claude mcp get <name>` shows the HTTP status or error text. `Needs authentication` means it reached the server, and the server asked for credentials.\n\n### Does a local server (npx, uvx) use /mcp to sign in?\n\nNo. OAuth sign-in is for remote HTTP servers. For a local server, put the API key in its environment with `--env` or the `env` block of `.mcp.json`.\n\n### Can I do this for a team without everyone clicking through?\n\nEach person signs in with their own account; tokens are stored per user. Teams can share the server definition through a project `.mcp.json` file, but not the credentials.","sources":[{"label":"Claude Code docs: Authenticate with remote MCP servers","url":"https://code.claude.com/docs/en/mcp"},{"label":"Claude Code docs: Error reference (MCP server needs you to sign in again)","url":"https://code.claude.com/docs/en/errors"},{"label":"Claude Code docs: Debug your configuration (check MCP servers)","url":"https://code.claude.com/docs/en/debug-your-config"}],"related":[{"slug":"claude-code","url":"https://www.pluginstackai.com/plugins/claude-code/"},{"slug":"sentry-mcp","url":"https://www.pluginstackai.com/plugins/sentry-mcp/"},{"slug":"notion-mcp","url":"https://www.pluginstackai.com/plugins/notion-mcp/"},{"slug":"linear-mcp","url":"https://www.pluginstackai.com/plugins/linear-mcp/"},{"slug":"github-mcp-server","url":"https://www.pluginstackai.com/plugins/github-mcp-server/"}]},{"slug":"add-mcp-server-to-codex-config-toml","title":"How to add an MCP server to Codex","seoTitle":"How to add an MCP server to Codex (config.toml and codex mcp add)","description":"Add an MCP server to OpenAI Codex with codex mcp add or config.toml: file locations, stdio and remote examples, env vars, timeouts, OAuth login and fixes for common errors.","kind":"Setup guide","url":"https://www.pluginstackai.com/guides/add-mcp-server-to-codex-config-toml/","published":"2026-10-27","updated":"2026-10-27","markdown":"Codex (the CLI, the IDE extension and the desktop app) can use MCP servers to reach tools and data beyond your repository. You add one either with a single `codex mcp add` command or by editing `config.toml`, and all Codex surfaces share the same configuration. This guide covers both, with examples built from OpenAI's documentation.\n\n## Quick answer\n\n1. Run `codex mcp add <name> -- <command> <args>`. For example `codex mcp add context7 -- npx -y @upstash/context7-mcp` (the example OpenAI's docs use).\n2. Run `codex mcp list` to confirm it is saved.\n3. Start `codex` and type `/mcp` to see the active servers.\n\nThe command writes a `[mcp_servers.<name>]` table into `~/.codex/config.toml`. You can edit that file directly for anything the command does not cover. The IDE extension and desktop app also have an **MCP servers** screen (in settings) that edits the same configuration.\n\n## Where the config lives\n\n- **Global:** `~/.codex/config.toml` (on Windows, in `.codex` under your user folder).\n- **Project:** `.codex/config.toml` in a project, which Codex reads for trusted projects only.\n\nThe ChatGPT desktop app, the Codex CLI and the IDE extension share this configuration, so you set a server up once. ChatGPT on the web does not read your local Codex files; it uses plugins instead.\n\n## Option 1: codex mcp add\n\n_The general form from OpenAI's docs_\n\n```bash\ncodex mcp add <server-name> --env VAR1=VALUE1 --env VAR2=VALUE2 -- <stdio server-command>\n```\n\nEverything after `--` is the command that starts the server. Put `--env` options before it. A few real examples, using servers listed on PluginStack:\n\n```bash\n# Context7: current library docs (example from the OpenAI docs)\ncodex mcp add context7 -- npx -y @upstash/context7-mcp\n\n# Official Memory server\ncodex mcp add memory -- npx -y @modelcontextprotocol/server-memory\n\n# Official Filesystem server: the last argument is the folder it may access\ncodex mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /Users/you/projects\n```\n\nSee [Context7](https://www.pluginstackai.com/plugins/context7/), [Memory](https://www.pluginstackai.com/plugins/memory-mcp/) and [Filesystem](https://www.pluginstackai.com/plugins/filesystem-mcp/). The official TypeScript servers need Node 24 or newer from v2 onward ([what changed](https://www.pluginstackai.com/guides/mcp-reference-servers-v2-whats-changed/)).\n\n### Other commands\n\n- `codex mcp list` shows the configured servers.\n- `codex mcp --help` lists all MCP commands.\n- `codex mcp login <server-name>` starts the OAuth login for a server that supports it.\n\n### A remote (HTTP) server\n\nFor a hosted server, pass its address with `--url` instead of a command:\n\n_Then run: codex mcp login example (if the server uses OAuth)_\n\n```bash\ncodex mcp add example --url https://mcp.example.com\n```\n\n## Option 2: edit config.toml\n\nEach server is a `[mcp_servers.<name>]` table. For a local (stdio) server, `command` is required; `args`, `env`, `env_vars` and `cwd` are optional:\n\n_~/.codex/config.toml_\n\n```text\n[mcp_servers.filesystem]\ncommand = \"npx\"\nargs = [\"-y\", \"@modelcontextprotocol/server-filesystem\", \"/Users/you/projects\"]\n\n[mcp_servers.context7]\ncommand = \"npx\"\nargs = [\"-y\", \"@upstash/context7-mcp\"]\nstartup_timeout_sec = 20   # default is 10\n```\n\nThe table name (`filesystem`) is the label you choose. Save the file and restart Codex (in the IDE extension, use **Restart extension**).\n\n### Environment variables and API keys\n\n- `env` sets values for the server: `env = { API_KEY = \"value\" }`.\n- `env_vars` lists variable names to allow and forward from your own environment, such as `env_vars = [\"API_KEY\"]`, so the secret does not have to sit in the file.\n\nPrefer `env_vars` for real keys, and never commit a `config.toml` that contains one. A project-level `.codex/config.toml` is easy to commit by accident.\n\n### A remote server in config.toml\n\n```text\n[mcp_servers.example]\nurl = \"https://mcp.example.com\"\nbearer_token_env_var = \"EXAMPLE_TOKEN\"   # token read from this variable, sent in Authorization\n```\n\nFor HTTP servers, `url` is required. You can add a bearer token from an environment variable (`bearer_token_env_var`), static headers (`http_headers`), or headers read from variables (`env_http_headers`). With none of those, Codex tries stored OAuth credentials, so run `codex mcp login <name>` for servers that use OAuth.\n\n### Useful options\n\n- `startup_timeout_sec`: seconds to wait for the server to start. Default 10. Raise it if the first `npx` download is slow.\n- `tool_timeout_sec`: seconds a tool call may run. Default 60.\n- `enabled = false`: switch a server off without deleting its config.\n- `required = true`: make Codex fail at startup if that server cannot initialise.\n- `enabled_tools` and `disabled_tools`: allow or deny specific tool names.\n- `default_tools_approval_mode`: how Codex asks before running the server's tools (`auto`, `prompt`, `writes` or `approve`).\n\nOpenAI's configuration reference has the complete list of MCP options. Settings change between Codex releases, so check it for your version.\n\n## Check that it works\n\n1. Run `codex mcp list`: the server should appear.\n2. Start `codex` and type `/mcp`: the server should be listed as active.\n3. Ask for something only that server can do, for example \"Use the memory server to remember that I prefer tabs\", and approve the tool call if asked.\n\n## Common errors and fixes\n\n- **The server does not appear:** check the table is `[mcp_servers.<name>]` (plural `mcp_servers`) and that the TOML is valid. For a project file, the project must be trusted.\n- **It times out on the first run:** the first `npx -y` run downloads the package. Raise `startup_timeout_sec`, or run the command once by hand so it is cached.\n- **`spawn npx ENOENT`, or it fails only on Windows:** update Codex, then see [Fix \"spawn npx ENOENT\" on Windows](https://www.pluginstackai.com/guides/fix-spawn-npx-enoent-windows-mcp/).\n- **The server exits at once:** run its command yourself in a terminal to see why. [Fix MCP error -32000](https://www.pluginstackai.com/guides/fix-mcp-error-32000-connection-closed/) walks through it.\n- **An OAuth server stays unauthenticated:** run `codex mcp login <name>`; in the desktop app or IDE extension, use **Authenticate** in the MCP servers list.\n\nUsing Codex alongside other tools? The same servers can be added to [Cursor](https://www.pluginstackai.com/guides/add-mcp-server-to-cursor/) and [Claude Code](https://www.pluginstackai.com/guides/best-mcp-servers-for-claude-code/). More about the agent itself: [Codex CLI](https://www.pluginstackai.com/plugins/codex-cli/).\n\n## FAQ\n\n### Is the config the same for the CLI and the IDE extension?\n\nYes. OpenAI's docs say the desktop app, CLI and IDE extension share MCP configuration, so you can switch between them without redoing setup.\n\n### Where do I put an API key?\n\nUse `env_vars` to forward a variable from your shell, or `bearer_token_env_var` for remote servers, so the key stays out of the file. If you use `env` or `codex mcp add --env`, the value is saved in `config.toml`; keep that file private.\n\n### How do I turn a server off without removing it?\n\nSet `enabled = false` in its `[mcp_servers.<name>]` table.","sources":[{"label":"OpenAI docs: Model Context Protocol (Codex)","url":"https://learn.chatgpt.com/docs/extend/mcp"},{"label":"OpenAI docs: Configuration reference (mcp_servers options)","url":"https://learn.chatgpt.com/docs/config-file/config-reference"},{"label":"Codex CLI repository","url":"https://github.com/openai/codex"},{"label":"Context7 repository (Codex install command)","url":"https://github.com/upstash/context7"}],"related":[{"slug":"codex-cli","url":"https://www.pluginstackai.com/plugins/codex-cli/"},{"slug":"context7","url":"https://www.pluginstackai.com/plugins/context7/"},{"slug":"filesystem-mcp","url":"https://www.pluginstackai.com/plugins/filesystem-mcp/"},{"slug":"memory-mcp","url":"https://www.pluginstackai.com/plugins/memory-mcp/"},{"slug":"mcp-inspector","url":"https://www.pluginstackai.com/plugins/mcp-inspector/"}]},{"slug":"free-ai-courses","title":"Best free AI courses (2026)","seoTitle":"Best free AI courses (2026): beginner to builder","description":"Free AI courses for 2026, from no-code basics to building agents and MCP servers, each checked on its official page: OpenAI, Anthropic, Google, Hugging Face, fast.ai, CS50 and more.","kind":"Learning guide","url":"https://www.pluginstackai.com/guides/free-ai-courses/","published":"2026-10-27","updated":"2026-10-27","markdown":"You don't need to pay to learn AI. These are the best free courses we found, from total beginner (no coding) to building your own agents and MCP servers. For each one we say who it's for, what's actually free, and whether you get a certificate.\n\n## Quick answer: where to start\n\n- **Never used AI tools much?** Start with [Elements of AI](https://www.elementsofai.com/) or **Claude 101** from Anthropic Academy. No coding needed.\n- **Want to use ChatGPT or Codex better at work?** [OpenAI Academy](https://academy.openai.com/).\n- **Starting to code with AI?** **Claude Code 101** from Anthropic Academy, then our [Start here](https://www.pluginstackai.com/start-here/) page to set up your first tools.\n- **Want to build agents?** The [Hugging Face Agents Course](https://huggingface.co/learn/agents-course/unit0/introduction) (basic Python needed).\n- **Want to build MCP servers?** **Introduction to Model Context Protocol** from Anthropic Academy (Python).\n- **Want the computer science behind it?** [Harvard CS50 AI](https://cs50.harvard.edu/ai/) or [fast.ai](https://course.fast.ai/).\n\n> How we picked: the lessons have to be free to take. Where a certificate or extras cost money, we say so. We don't earn anything from these links.\n\n## Beginner courses (no coding)\n\n### OpenAI Academy\n\nOpenAI's free, self-paced courses on using AI at work, building with AI and Codex, leading AI adoption, and teaching and learning with AI. You can browse without signing in, but you need a ChatGPT account to enroll and save your progress.\n\n- **Cost:** free.\n- **Certificate:** pass a course's assessment (80% or higher) to earn a shareable badge. Finish every course in a pathway (such as Foundations, Codex or API) for a certificate of completion. OpenAI says these are not formal certifications.\n- **Link:** [academy.openai.com](https://academy.openai.com/)\n\n### Anthropic Academy: Claude 101 and AI Fluency\n\nAnthropic's free courses, hosted on Skilljar. (Anthropic's learning hub is now called [Claude Academy](https://academy.claude.com/); the course catalog is still headed Anthropic Academy.) Two good beginner picks:\n\n- [Claude 101](https://anthropic.skilljar.com/claude-101): using Claude for everyday work, including projects, artifacts, skills and connecting your tools.\n- [AI Fluency: Framework & Foundations](https://anthropic.skilljar.com/ai-fluency-framework-foundations): how to work with any AI effectively, efficiently, ethically and safely. Made with professors from University College Cork and Ringling College.\n- **Cost:** free (you register for each course).\n- **Certificate:** each course page lists a certificate of completion.\n\n### Elements of AI\n\nA free online course series from MinnaLearn and the University of Helsinki, taken by over 2 million people. **Introduction to AI** explains what AI is and what it can and can't do, with no complicated math or programming. **Building AI** is the follow-up and goes a step further (basic Python helps).\n\n- **Cost:** free, self-paced.\n- **Link:** [elementsofai.com](https://www.elementsofai.com/)\n\n### Google: Introduction to Generative AI\n\nA short (about 45 minutes) introductory course on what generative AI is, how it works and how it differs from traditional machine learning. It's on Google Skills (formerly Google Cloud Skills Boost) and you can earn a badge.\n\n- **Cost:** free.\n- **Link:** [Introduction to Generative AI on Google Skills](https://www.skills.google/course_templates/536)\n\n> Heads up: **Google AI Essentials** is not free. Google says it costs $49 USD per month in the U.S. and Canada after a 7-day free trial (it may cost less in other countries). It's on Coursera. If you want a free Google option, take Introduction to Generative AI above.\n\n## For people who code with AI\n\n### Anthropic Academy: Claude Code 101\n\nFor developers who are new to software engineering, or experienced engineers who haven't tried AI coding agents yet. It goes from installing [Claude Code](https://www.pluginstackai.com/plugins/claude-code/) to customizing it for your daily work.\n\n- **Cost:** free. (Using Claude Code itself needs a paid Claude plan or a Console account.)\n- **Certificate:** certificate of completion.\n- **Link:** [Claude Code 101](https://anthropic.skilljar.com/claude-code-101)\n\n### DeepLearning.AI short courses\n\nShort, hands-on courses on specific topics like prompting, agents, RAG and tools such as MCP, some made with the companies behind those tools (like Anthropic). A good way to learn one thing in an afternoon.\n\n- **Cost:** the course videos are free to watch. Quizzes, labs and certificates of completion need a paid Pro membership.\n- **Link:** [deeplearning.ai/courses](https://www.deeplearning.ai/courses)\n\n## For people who want to build agents and models\n\n### Anthropic Academy: Introduction to Model Context Protocol\n\nBuild MCP servers and clients from scratch in Python, covering MCP's three core parts: tools, resources and prompts. Take this after you've used a few MCP servers (see [what an MCP server is](https://www.pluginstackai.com/start-here/)).\n\n- **Cost:** free. **Certificate:** certificate of completion.\n- **Link:** [Introduction to Model Context Protocol](https://anthropic.skilljar.com/introduction-to-model-context-protocol)\n\n### Hugging Face Agents Course\n\nA free course that takes you from beginner to building your own AI agents, using frameworks like smolagents, LlamaIndex and LangGraph, and ending with a final project. You need basic Python, a free Hugging Face account and an internet connection.\n\n- **Cost:** free.\n- **Certificate:** follow along for free in \"audit mode\", or do the assignments to earn one of its two certificates.\n- **Link:** [Hugging Face Agents Course](https://huggingface.co/learn/agents-course/unit0/introduction)\n\n### Hugging Face LLM Course\n\nHow large language models work and how to use, fine-tune and share them with the Hugging Face libraries. It needs a good knowledge of Python, and Hugging Face suggests taking an intro deep learning course first (such as fast.ai below).\n\n- **Cost:** completely free, with no ads.\n- **Certificate:** the course FAQ says there isn't a certification for it yet.\n- **Link:** [Hugging Face LLM Course](https://huggingface.co/learn/llm-course/chapter1/1)\n\n### fast.ai: Practical Deep Learning for Coders\n\nA free course for people with some coding experience (about a year, ideally in Python) and high-school math. There are 9 lessons of about 90 minutes each, and the book it's based on is free online too. You use free tools for building and running models.\n\n- **Cost:** free.\n- **Link:** [course.fast.ai](https://course.fast.ai/)\n\n### Harvard CS50's Introduction to AI with Python\n\nHarvard's course on the ideas and algorithms behind modern AI: search, knowledge, uncertainty, optimization, machine learning, neural networks and language. It's seven weeks of lectures and projects. You need CS50x or at least a year of Python.\n\n- **Cost:** free through Harvard's OpenCourseWare.\n- **Certificate:** score at least 70% on each project for a free CS50 Certificate. A verified certificate from edX costs extra.\n- **Link:** [cs50.harvard.edu/ai](https://cs50.harvard.edu/ai/)\n\n## FAQ\n\n### Which free AI course is best for a complete beginner?\n\nElements of AI if you want to understand AI in general, or Claude 101 or OpenAI Academy if you want to get better at using an AI assistant. None of them need coding.\n\n### Do free courses give you a certificate?\n\nSome do. Anthropic Academy and the Hugging Face Agents Course offer free certificates, OpenAI Academy gives badges, and CS50 AI has a free CS50 Certificate. DeepLearning.AI certificates need a paid membership.\n\n### I finished a course. What next?\n\nTry it for real. Our [Start here](https://www.pluginstackai.com/start-here/) page walks you through installing Cursor or Claude Code and adding your first MCP server. Then browse the [directory](https://www.pluginstackai.com/) for tools to add.","sources":[{"label":"OpenAI Academy","url":"https://academy.openai.com/"},{"label":"OpenAI Help Center: OpenAI Academy courses (free, badges, pathways)","url":"https://help.openai.com/en/articles/20001270-openai-academy-courses"},{"label":"Anthropic Academy course catalog","url":"https://anthropic.skilljar.com/"},{"label":"Claude Academy (Anthropic)","url":"https://academy.claude.com/"},{"label":"Anthropic Academy: Claude 101","url":"https://anthropic.skilljar.com/claude-101"},{"label":"Anthropic Academy: AI Fluency: Framework & Foundations","url":"https://anthropic.skilljar.com/ai-fluency-framework-foundations"},{"label":"Anthropic Academy: Claude Code 101","url":"https://anthropic.skilljar.com/claude-code-101"},{"label":"Anthropic Academy: Introduction to Model Context Protocol","url":"https://anthropic.skilljar.com/introduction-to-model-context-protocol"},{"label":"Elements of AI","url":"https://www.elementsofai.com/"},{"label":"Google Skills: Introduction to Generative AI","url":"https://www.skills.google/course_templates/536"},{"label":"Google AI Essentials (pricing FAQ)","url":"https://grow.google/ai-essentials/"},{"label":"DeepLearning.AI courses","url":"https://www.deeplearning.ai/courses"},{"label":"DeepLearning.AI: what Pro includes","url":"https://info.deeplearning.ai/knowledge-base/what-do-i-get-with-the-deeplearning.ai-pro-membership-that-i-dont-get-for-free"},{"label":"Hugging Face Agents Course","url":"https://huggingface.co/learn/agents-course/unit0/introduction"},{"label":"Hugging Face LLM Course","url":"https://huggingface.co/learn/llm-course/chapter1/1"},{"label":"fast.ai: Practical Deep Learning for Coders","url":"https://course.fast.ai/"},{"label":"Harvard CS50 AI","url":"https://cs50.harvard.edu/ai/"},{"label":"Harvard CS50 AI: CS50 Certificate","url":"https://cs50.harvard.edu/ai/certificate/"}],"related":[]}]}