Setup by IDE

Feri works with any IDE or agent that supports MCP servers and runs a tool-calling session. Here is exactly where the MCP server, skill, and steering go on each one.

How the pieces map

Feri has three parts. Only the first is required to run:

  • The MCP server (required): the Feri process your IDE launches and calls as a tool. Every supported IDE registers this the same way, in its own MCP config file.
  • The skill (skill/skill.md): documents the tools and how to use them.
  • The steering file (steering/feri.md): sets runtime behaviour, like polling cadence and stop handling.

Skills and steering are native, separate concepts in Kiro. Other IDEs have one mechanism for persistent custom instructions (rules files, custom instructions, guidelines). On those, put the contents of both the skill and the steering file into that mechanism and set it to always apply. The behaviour is the same; only the home differs.

Compatibility

The requirement is MCP support plus an agent that can call tools between tasks. Tools without MCP are not supported (see the bottom of this page).

IDE / agentMCPSkill + steering homeSupported
Kiro Yes Native: Agent Skills + Steering (.kiro/steering/*.md). 1:1 with skill/skill.md and steering/feri.md.
Cursor Yes Project Rules: .cursor/rules/*.mdc (set alwaysApply: true).
Claude Code Yes CLAUDE.md (repo root or ~/.claude/CLAUDE.md); skills under .claude/skills/.
Devin Desktop (formerly Windsurf) Yes Rules: .devin/rules/*.md (or .windsurf/rules fallback); global_rules.md. Agent: Cascade.
VS Code + Copilot Yes .github/copilot-instructions.md (repo-wide) or *.instructions.md.
Cline Yes Cline Rules: .clinerules/ (folder or file) in the workspace.
Roo Code Yes Custom Instructions: .roo/rules/ directory.
Continue Yes Rules: .continue/rules/.
Zed Yes Instructions: a .rules file in the project root.
JetBrains (Junie) Yes Junie Guidelines: .junie/guidelines.md.
Visual Studio Yes .github/copilot-instructions.md (shared with Copilot).
Amazon Q Developer Yes Project Rules: .amazonq/rules/*.md (auto-loaded as context).
Goose Yes .goosehints (project or global). Closest to context hints, not first-class rules.
Google Antigravity Yes Settings → Customizations → Rules; also reads AGENTS.md and GEMINI.md.
Trae (ByteDance) Yes Project Rules: .trae/rules/project_rules.md (+ user_rules.md).
Augment Code Yes Rules: .augment/rules/*.md (+ .augment-guidelines, AGENTS.md).
Warp Yes Project Rules in AGENTS.md (legacy WARP.md); global rules in Warp Drive.
Qodo Gen Yes Agent instruction / best-practices files via the plugin.

1. Add the MCP server

First build Feri (npm install && npm run build), then register the built entry point as a stdio MCP server. The standard shape, used by most IDEs:

{
  "mcpServers": {
    "feri": {
      "command": "node",
      "args": ["/absolute/path/to/feri/dist/index.js"]
    }
  }
}

No secrets go in this file. Feri reads its own config and connection code at boot. Use an absolute path to dist/index.js.

The root key is not the same everywhere. Get it wrong and the server silently won't load:

  • Most IDEs use mcpServers (the shape above).
  • VS Code + Copilot and Visual Studio use servers.
  • Zed uses context_servers (in settings.json).
  • Continue uses YAML, not JSON (see below).
  • Goose registers MCP as an extensions entry in config.yaml.

VS Code / Visual Studio (servers key):

{
  "servers": {
    "feri": { "command": "node", "args": ["/absolute/path/to/feri/dist/index.js"] }
  }
}

Zed (context_servers in settings.json):

{
  "context_servers": {
    "feri": {
      "command": { "path": "node", "args": ["/absolute/path/to/feri/dist/index.js"] }
    }
  }
}

Continue (.continue/mcpServers/feri.yaml):

name: Feri
version: 0.0.1
schema: v1
mcpServers:
  - name: feri
    command: node
    args:
      - /absolute/path/to/feri/dist/index.js

Claude Code (CLI, instead of editing a file):

claude mcp add feri -- node /absolute/path/to/feri/dist/index.js
Agent mode required: VS Code, Visual Studio, JetBrains, and Continue only expose MCP tools in their agent mode, and tools often need to be enabled and trusted once. Devin Desktop (formerly Windsurf) reads MCP from a global file only (~/.codeium/windsurf/mcp_config.json) and does not expand environment variables. Google Antigravity uses ~/.gemini/antigravity/mcp_config.json; for HTTP servers it expects serverUrl rather than url (not an issue for Feri's stdio setup). Some tools (Trae, Augment, Qodo) manage MCP through their UI rather than a fixed config file.

2. Add the skill + steering

On Kiro, drop skill/skill.md into your skills directory and steering/feri.md into .kiro/steering/. They load as a first-class skill and steering file.

On every other IDE, paste the contents of both files into that IDE's persistent rules / instructions mechanism and set it to always apply. Where each one lives:

IDE / agentRules / instructions location
KiroNative: Agent Skills + Steering (.kiro/steering/*.md). 1:1 with skill/skill.md and steering/feri.md.
CursorProject Rules: .cursor/rules/*.mdc (set alwaysApply: true).
Claude CodeCLAUDE.md (repo root or ~/.claude/CLAUDE.md); skills under .claude/skills/.
Devin Desktop (formerly Windsurf)Rules: .devin/rules/*.md (or .windsurf/rules fallback); global_rules.md. Agent: Cascade.
VS Code + Copilot.github/copilot-instructions.md (repo-wide) or *.instructions.md.
ClineCline Rules: .clinerules/ (folder or file) in the workspace.
Roo CodeCustom Instructions: .roo/rules/ directory.
ContinueRules: .continue/rules/.
ZedInstructions: a .rules file in the project root.
JetBrains (Junie)Junie Guidelines: .junie/guidelines.md.
Visual Studio.github/copilot-instructions.md (shared with Copilot).
Amazon Q DeveloperProject Rules: .amazonq/rules/*.md (auto-loaded as context).
Goose.goosehints (project or global). Closest to context hints, not first-class rules.
Google AntigravitySettings → Customizations → Rules; also reads AGENTS.md and GEMINI.md.
Trae (ByteDance)Project Rules: .trae/rules/project_rules.md (+ user_rules.md).
Augment CodeRules: .augment/rules/*.md (+ .augment-guidelines, AGENTS.md).
WarpProject Rules in AGENTS.md (legacy WARP.md); global rules in Warp Drive.
Qodo GenAgent instruction / best-practices files via the plugin.

Per-IDE MCP reference

Exact MCP config file and root key for each supported IDE:

IDE / agentMCP config locationRoot keyFormat
Kiro .kiro/settings/mcp.json (workspace) or ~/.kiro/settings/mcp.json (user) mcpServers JSON
Cursor .cursor/mcp.json (project) or ~/.cursor/mcp.json (global) mcpServers JSON
Claude Code .mcp.json (repo root), or run claude mcp add mcpServers JSON / CLI
Devin Desktop (formerly Windsurf) ~/.codeium/windsurf/mcp_config.json (global only; path unchanged after rebrand) mcpServers JSON
VS Code + Copilot .vscode/mcp.json (workspace) servers JSON
Cline cline_mcp_settings.json (MCP Servers panel → Configure) mcpServers JSON
Roo Code .roo/mcp.json (project) or global mcp_settings.json mcpServers JSON
Continue .continue/mcpServers/feri.yaml mcpServers YAML
Zed settings.json context_servers JSON
JetBrains (AI Assistant / Junie) MCP Settings UI → writes mcp.json mcpServers JSON / UI
Visual Studio <solution>\.mcp.json or %USERPROFILE%\.mcp.json servers JSON
Amazon Q Developer .amazonq/mcp.json (workspace) or ~/.aws/amazonq/mcp.json mcpServers JSON
Goose ~/.config/goose/config.yaml (extensions:) or goose configure extensions YAML
Google Antigravity ~/.gemini/antigravity/mcp_config.json (managed via Agent panel → MCP Servers) mcpServers JSON
Trae (ByteDance) Managed in-app (AI panel); Cursor-compatible schema mcpServers JSON / UI
Augment Code Settings panel or import JSON (stored in IDE settings) mcpServers JSON / UI
Warp .warp/.mcp.json (project) or ~/.warp/.mcp.json (global) mcpServers JSON
Qodo Gen Plugin UI (JSON import), agentic mode mcpServers JSON / UI

Workspace-scoped config beats user/global config where both exist. Visual Studio also auto-discovers .vscode/mcp.json and .cursor/mcp.json, so a repo set up for another IDE may work without changes.

Not supported

Feri needs an MCP client and an agent tool-loop. Tools that only do inline completion or chat, with no MCP client, can't run Feri:

  • GitHub Copilot classic completions (inline autocomplete, non-agent). MCP only exists in Copilot agent mode inside VS Code, Visual Studio, and JetBrains, which are supported.
  • Tabnine: no MCP client in its documentation.
  • Legacy Codeium plugin (the pre-Windsurf VS Code / JetBrains plugin). MCP is in the Windsurf editor, which is supported.
  • Replit Agent: Replit's docs cover building and hosting MCP servers, not the Agent consuming external stdio MCP servers in-session. Treat as unsupported until confirmed.

If your IDE has MCP support that isn't listed here, it most likely works. Open an issue on GitHub and we'll confirm it.